From 5a27bcaf7115e46a5123e9857007d940998f0650 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 14 May 2019 17:57:45 +0200 Subject: Review examples collection -WIP- WARNING: Examples list has been reviewed but examples haven't been recompiled yet... that's not trivial... --- examples/src/audio/audio_module_playing.c | 6 +- examples/src/audio/audio_music_stream.c | 2 + examples/src/audio/audio_raw_stream.c | 2 +- examples/src/core/core_2d_camera.c | 4 +- examples/src/core/core_3d_camera_mode.c | 73 + examples/src/core/core_3d_mode.c | 73 - examples/src/core/core_basic_window.c | 12 +- examples/src/core/core_color_select.c | 94 - examples/src/core/core_custom_logging.c | 84 + examples/src/core/core_gestures_detection.c | 115 - examples/src/core/core_input_gamepad.c | 80 +- examples/src/core/core_input_gestures.c | 115 + examples/src/core/core_input_mouse_wheel.c | 58 + examples/src/core/core_input_multitouch.c | 89 + examples/src/core/core_loading_thread.c | 147 + examples/src/core/core_mouse_wheel.c | 58 - examples/src/core/core_vr_simulator.c | 38 +- examples/src/core/core_window_letterbox.c | 90 + examples/src/models/models_animation.c | 101 + examples/src/models/models_billboard.c | 7 +- examples/src/models/models_cubicmap.c | 2 +- examples/src/models/models_first_person_maze.c | 126 + examples/src/models/models_heightmap.c | 2 +- examples/src/models/models_material_pbr.c | 62 +- examples/src/models/models_mesh_generation.c | 17 +- examples/src/models/models_mesh_picking.c | 44 +- examples/src/models/models_obj_loading.c | 27 +- examples/src/models/models_obj_viewer.c | 127 + .../src/models/models_orthographic_projection.c | 99 + examples/src/models/models_rlgl_solar_system.c | 168 + examples/src/models/models_skybox.c | 10 +- examples/src/models/models_yaw_pitch_roll.c | 10 +- examples/src/physac/physics_demo.c | 26 +- examples/src/physac/physics_friction.c | 11 +- examples/src/physac/physics_movement.c | 11 +- examples/src/physac/physics_restitution.c | 14 +- examples/src/physac/physics_shatter.c | 30 +- examples/src/shaders/shaders_custom_uniform.c | 51 +- examples/src/shaders/shaders_julia_set.c | 179 + examples/src/shaders/shaders_model_shader.c | 43 +- examples/src/shaders/shaders_palette_switch.c | 147 + examples/src/shaders/shaders_postprocessing.c | 56 +- examples/src/shaders/shaders_raymarching.c | 112 + examples/src/shaders/shaders_shapes_textures.c | 13 +- examples/src/shaders/shaders_texture_drawing.c | 79 + examples/src/shaders/shaders_texture_waves.c | 115 + examples/src/shapes/shapes_basic_shapes.c | 17 +- examples/src/shapes/shapes_bouncing_ball.c | 76 + examples/src/shapes/shapes_collision_area.c | 108 + examples/src/shapes/shapes_colors_palette.c | 114 +- examples/src/shapes/shapes_draw_circle_sector.c | 81 + .../src/shapes/shapes_draw_rectangle_rounded.c | 89 + examples/src/shapes/shapes_draw_ring.c | 94 + examples/src/shapes/shapes_easings_ball_anim.c | 110 + examples/src/shapes/shapes_easings_box_anim.c | 136 + .../src/shapes/shapes_easings_rectangle_array.c | 118 + examples/src/shapes/shapes_following_eyes.c | 104 + examples/src/shapes/shapes_logo_raylib_anim.c | 4 +- examples/src/shapes/shapes_rectangle_scaling.c | 94 + examples/src/text/text_bmfont_ttf.c | 40 +- examples/src/text/text_bmfont_unordered.c | 65 - examples/src/text/text_font_sdf.c | 125 + examples/src/text/text_rectangle_bounds.c | 120 + examples/src/text/text_unicode.c | 323 + examples/src/text/text_writing_anim.c | 4 +- .../src/textures/textures_background_scrolling.c | 87 + examples/src/textures/textures_bunnymark.c | 116 + examples/src/textures/textures_image_processing.c | 19 +- examples/src/textures/textures_image_text.c | 83 + examples/src/textures/textures_npatch_drawing.c | 109 + examples/src/textures/textures_raw_data.c | 14 +- examples/src/textures/textures_sprite_button.c | 97 + examples/src/textures/textures_sprite_explosion.c | 120 + examples/src/textures/textures_srcrec_dstrec.c | 8 +- examples/web/core/core_3d_camera_mode.png | Bin 0 -> 8492 bytes examples/web/core/core_3d_mode.c | 112 - examples/web/core/core_3d_mode.html | 240 - examples/web/core/core_3d_mode.js | 25055 --------- examples/web/core/core_3d_mode.png | Bin 8492 -> 0 bytes examples/web/core/core_color_select.c | 137 - examples/web/core/core_color_select.html | 240 - examples/web/core/core_color_select.js | 23764 --------- examples/web/core/core_color_select.png | Bin 14328 -> 0 bytes examples/web/core/core_custom_logging.png | Bin 0 -> 15200 bytes examples/web/core/core_gestures_detection.c | 160 - examples/web/core/core_gestures_detection.html | 1 - examples/web/core/core_gestures_detection.js | 1 - examples/web/core/core_gestures_detection.png | Bin 19480 -> 0 bytes examples/web/core/core_gestures_detection.wasm | Bin 120371 -> 0 bytes examples/web/core/core_input_gestures.png | Bin 0 -> 19480 bytes examples/web/core/core_input_mouse_wheel.png | Bin 0 -> 15375 bytes examples/web/core/core_input_multitouch.png | Bin 0 -> 17177 bytes examples/web/core/core_loading_thread.png | Bin 0 -> 15032 bytes examples/web/core/core_mouse_wheel.c | 100 - examples/web/core/core_mouse_wheel.html | 240 - examples/web/core/core_mouse_wheel.js | 24478 --------- examples/web/core/core_mouse_wheel.png | Bin 15375 -> 0 bytes examples/web/core/core_window_letterbox.png | Bin 0 -> 17967 bytes examples/web/models/models_first_person_maze.png | Bin 0 -> 327996 bytes examples/web/models/models_mesh_picking.png | Bin 97991 -> 138786 bytes examples/web/models/models_obj_loading.png | Bin 127720 -> 266343 bytes examples/web/models/models_obj_viewer.png | Bin 0 -> 96822 bytes .../web/models/models_orthographic_projection.png | Bin 0 -> 32775 bytes examples/web/models/models_rlgl_solar_system.png | Bin 0 -> 30443 bytes examples/web/models/models_skybox.png | Bin 723949 -> 427348 bytes examples/web/others/audio_standalone.c | 123 - examples/web/others/font_selector.c | 196 - examples/web/others/oculus_rift.c | 538 - .../others/resources/shaders/glsl100/standard.fs | 152 - .../others/resources/shaders/glsl100/standard.vs | 23 - .../others/resources/shaders/glsl330/standard.fs | 150 - .../others/resources/shaders/glsl330/standard.vs | 23 - examples/web/others/rlgl_standalone.c | 395 - examples/web/others/standard_lighting.c | 154 - examples/web/shaders/shaders_custom_uniform.png | Bin 257677 -> 331971 bytes examples/web/shaders/shaders_julia_set.png | Bin 0 -> 337885 bytes examples/web/shaders/shaders_model_shader.png | Bin 141964 -> 219627 bytes examples/web/shaders/shaders_postprocessing.png | Bin 193424 -> 142672 bytes examples/web/shaders/shaders_raymarching.png | Bin 0 -> 463513 bytes examples/web/shaders/shaders_texture_drawing.png | Bin 0 -> 16865 bytes examples/web/shaders/shaders_texture_waves.png | Bin 0 -> 86453 bytes examples/web/shapes/shapes_bouncing_ball.png | Bin 0 -> 15523 bytes examples/web/shapes/shapes_collision_area.png | Bin 0 -> 15319 bytes examples/web/shapes/shapes_colors_palette.png | Bin 6591 -> 18089 bytes examples/web/shapes/shapes_draw_circle_sector.png | Bin 0 -> 18474 bytes .../web/shapes/shapes_draw_rectangle_rounded.png | Bin 0 -> 17952 bytes examples/web/shapes/shapes_draw_ring.png | Bin 0 -> 21873 bytes examples/web/shapes/shapes_easings_ball_anim.png | Bin 0 -> 15602 bytes examples/web/shapes/shapes_easings_box_anim.png | Bin 0 -> 15217 bytes .../web/shapes/shapes_easings_rectangle_array.png | Bin 0 -> 17142 bytes examples/web/shapes/shapes_following_eyes.png | Bin 0 -> 16169 bytes examples/web/shapes/shapes_rectangle_scaling.png | Bin 0 -> 15191 bytes examples/web/text/text_bmfont_ttf.png | Bin 19542 -> 20086 bytes examples/web/text/text_bmfont_unordered.data | 213 - examples/web/text/text_bmfont_unordered.html | 240 - examples/web/text/text_bmfont_unordered.js | 50652 ------------------- examples/web/text/text_bmfont_unordered.png | Bin 18713 -> 0 bytes examples/web/text/text_font_sdf.png | Bin 0 -> 52217 bytes examples/web/text/text_rectangle_bounds.png | Bin 0 -> 17844 bytes examples/web/text/text_ttf_loading.png | Bin 55588 -> 54908 bytes examples/web/text/text_unicode.png | Bin 0 -> 65642 bytes examples/web/textures/models_material_pbr.png | Bin 324224 -> 0 bytes examples/web/textures/models_mesh_generation.png | Bin 27504 -> 0 bytes examples/web/textures/models_skybox.png | Bin 723949 -> 0 bytes examples/web/textures/models_yaw_pitch_roll.png | Bin 183992 -> 0 bytes .../web/textures/textures_background_scrolling.png | Bin 0 -> 42935 bytes examples/web/textures/textures_image_text.png | Bin 0 -> 556322 bytes examples/web/textures/textures_npatch_drawing.png | Bin 0 -> 26858 bytes .../web/textures/textures_particles_blending.png | Bin 358260 -> 421110 bytes 149 files changed, 4580 insertions(+), 128111 deletions(-) create mode 100644 examples/src/core/core_3d_camera_mode.c delete mode 100644 examples/src/core/core_3d_mode.c delete mode 100644 examples/src/core/core_color_select.c create mode 100644 examples/src/core/core_custom_logging.c delete mode 100644 examples/src/core/core_gestures_detection.c create mode 100644 examples/src/core/core_input_gestures.c create mode 100644 examples/src/core/core_input_mouse_wheel.c create mode 100644 examples/src/core/core_input_multitouch.c create mode 100644 examples/src/core/core_loading_thread.c delete mode 100644 examples/src/core/core_mouse_wheel.c create mode 100644 examples/src/core/core_window_letterbox.c create mode 100644 examples/src/models/models_animation.c create mode 100644 examples/src/models/models_first_person_maze.c create mode 100644 examples/src/models/models_obj_viewer.c create mode 100644 examples/src/models/models_orthographic_projection.c create mode 100644 examples/src/models/models_rlgl_solar_system.c create mode 100644 examples/src/shaders/shaders_julia_set.c create mode 100644 examples/src/shaders/shaders_palette_switch.c create mode 100644 examples/src/shaders/shaders_raymarching.c create mode 100644 examples/src/shaders/shaders_texture_drawing.c create mode 100644 examples/src/shaders/shaders_texture_waves.c create mode 100644 examples/src/shapes/shapes_bouncing_ball.c create mode 100644 examples/src/shapes/shapes_collision_area.c create mode 100644 examples/src/shapes/shapes_draw_circle_sector.c create mode 100644 examples/src/shapes/shapes_draw_rectangle_rounded.c create mode 100644 examples/src/shapes/shapes_draw_ring.c create mode 100644 examples/src/shapes/shapes_easings_ball_anim.c create mode 100644 examples/src/shapes/shapes_easings_box_anim.c create mode 100644 examples/src/shapes/shapes_easings_rectangle_array.c create mode 100644 examples/src/shapes/shapes_following_eyes.c create mode 100644 examples/src/shapes/shapes_rectangle_scaling.c delete mode 100644 examples/src/text/text_bmfont_unordered.c create mode 100644 examples/src/text/text_font_sdf.c create mode 100644 examples/src/text/text_rectangle_bounds.c create mode 100644 examples/src/text/text_unicode.c create mode 100644 examples/src/textures/textures_background_scrolling.c create mode 100644 examples/src/textures/textures_bunnymark.c create mode 100644 examples/src/textures/textures_image_text.c create mode 100644 examples/src/textures/textures_npatch_drawing.c create mode 100644 examples/src/textures/textures_sprite_button.c create mode 100644 examples/src/textures/textures_sprite_explosion.c create mode 100644 examples/web/core/core_3d_camera_mode.png delete mode 100644 examples/web/core/core_3d_mode.c delete mode 100644 examples/web/core/core_3d_mode.html delete mode 100644 examples/web/core/core_3d_mode.js delete mode 100644 examples/web/core/core_3d_mode.png delete mode 100644 examples/web/core/core_color_select.c delete mode 100644 examples/web/core/core_color_select.html delete mode 100644 examples/web/core/core_color_select.js delete mode 100644 examples/web/core/core_color_select.png create mode 100644 examples/web/core/core_custom_logging.png delete mode 100644 examples/web/core/core_gestures_detection.c delete mode 100644 examples/web/core/core_gestures_detection.html delete mode 100644 examples/web/core/core_gestures_detection.js delete mode 100644 examples/web/core/core_gestures_detection.png delete mode 100644 examples/web/core/core_gestures_detection.wasm create mode 100644 examples/web/core/core_input_gestures.png create mode 100644 examples/web/core/core_input_mouse_wheel.png create mode 100644 examples/web/core/core_input_multitouch.png create mode 100644 examples/web/core/core_loading_thread.png delete mode 100644 examples/web/core/core_mouse_wheel.c delete mode 100644 examples/web/core/core_mouse_wheel.html delete mode 100644 examples/web/core/core_mouse_wheel.js delete mode 100644 examples/web/core/core_mouse_wheel.png create mode 100644 examples/web/core/core_window_letterbox.png create mode 100644 examples/web/models/models_first_person_maze.png create mode 100644 examples/web/models/models_obj_viewer.png create mode 100644 examples/web/models/models_orthographic_projection.png create mode 100644 examples/web/models/models_rlgl_solar_system.png delete mode 100644 examples/web/others/audio_standalone.c delete mode 100644 examples/web/others/font_selector.c delete mode 100644 examples/web/others/oculus_rift.c delete mode 100644 examples/web/others/resources/shaders/glsl100/standard.fs delete mode 100644 examples/web/others/resources/shaders/glsl100/standard.vs delete mode 100644 examples/web/others/resources/shaders/glsl330/standard.fs delete mode 100644 examples/web/others/resources/shaders/glsl330/standard.vs delete mode 100644 examples/web/others/rlgl_standalone.c delete mode 100644 examples/web/others/standard_lighting.c create mode 100644 examples/web/shaders/shaders_julia_set.png create mode 100644 examples/web/shaders/shaders_raymarching.png create mode 100644 examples/web/shaders/shaders_texture_drawing.png create mode 100644 examples/web/shaders/shaders_texture_waves.png create mode 100644 examples/web/shapes/shapes_bouncing_ball.png create mode 100644 examples/web/shapes/shapes_collision_area.png create mode 100644 examples/web/shapes/shapes_draw_circle_sector.png create mode 100644 examples/web/shapes/shapes_draw_rectangle_rounded.png create mode 100644 examples/web/shapes/shapes_draw_ring.png create mode 100644 examples/web/shapes/shapes_easings_ball_anim.png create mode 100644 examples/web/shapes/shapes_easings_box_anim.png create mode 100644 examples/web/shapes/shapes_easings_rectangle_array.png create mode 100644 examples/web/shapes/shapes_following_eyes.png create mode 100644 examples/web/shapes/shapes_rectangle_scaling.png delete mode 100644 examples/web/text/text_bmfont_unordered.data delete mode 100644 examples/web/text/text_bmfont_unordered.html delete mode 100644 examples/web/text/text_bmfont_unordered.js delete mode 100644 examples/web/text/text_bmfont_unordered.png create mode 100644 examples/web/text/text_font_sdf.png create mode 100644 examples/web/text/text_rectangle_bounds.png create mode 100644 examples/web/text/text_unicode.png delete mode 100644 examples/web/textures/models_material_pbr.png delete mode 100644 examples/web/textures/models_mesh_generation.png delete mode 100644 examples/web/textures/models_skybox.png delete mode 100644 examples/web/textures/models_yaw_pitch_roll.png create mode 100644 examples/web/textures/textures_background_scrolling.png create mode 100644 examples/web/textures/textures_image_text.png create mode 100644 examples/web/textures/textures_npatch_drawing.png (limited to 'examples') diff --git a/examples/src/audio/audio_module_playing.c b/examples/src/audio/audio_module_playing.c index 671a119..54bfa3d 100644 --- a/examples/src/audio/audio_module_playing.c +++ b/examples/src/audio/audio_module_playing.c @@ -30,11 +30,11 @@ int main() int screenWidth = 800; int screenHeight = 450; - SetConfigFlags(FLAG_MSAA_4X_HINT); // NOTE: Try to enable MSAA 4X + SetConfigFlags(FLAG_MSAA_4X_HINT); // NOTE: Try to enable MSAA 4X InitWindow(screenWidth, screenHeight, "raylib [audio] example - module playing (streaming)"); - InitAudioDevice(); // Initialize audio device + InitAudioDevice(); // Initialize audio device Color colors[14] = { ORANGE, RED, GOLD, LIME, BLUE, VIOLET, BROWN, LIGHTGRAY, PINK, YELLOW, GREEN, SKYBLUE, PURPLE, BEIGE }; @@ -52,7 +52,7 @@ int main() circles[i].color = colors[GetRandomValue(0, 13)]; } - Music xm = LoadMusicStream("resources/mini1111.xm"); + Music xm = LoadMusicStream("resources/chiptun1.mod"); PlayMusicStream(xm); diff --git a/examples/src/audio/audio_music_stream.c b/examples/src/audio/audio_music_stream.c index f9fe23d..26450a8 100644 --- a/examples/src/audio/audio_music_stream.c +++ b/examples/src/audio/audio_music_stream.c @@ -59,6 +59,8 @@ int main() // Get timePlayed scaled to bar dimensions (400 pixels) timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music)*400; + + if (timePlayed > 400) StopMusicStream(music); //---------------------------------------------------------------------------------- // Draw diff --git a/examples/src/audio/audio_raw_stream.c b/examples/src/audio/audio_raw_stream.c index 7eee46f..d7fa5d7 100644 --- a/examples/src/audio/audio_raw_stream.c +++ b/examples/src/audio/audio_raw_stream.c @@ -7,7 +7,7 @@ * This example has been created using raylib 1.6 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * -* Copyright (c) 2015-2018 Ramon Santamaria (@raysan5) and James Hofmann (@triplefox) +* Copyright (c) 2015-2019 Ramon Santamaria (@raysan5) and James Hofmann (@triplefox) * ********************************************************************************************/ diff --git a/examples/src/core/core_2d_camera.c b/examples/src/core/core_2d_camera.c index 7c35c90..6a0b11a 100644 --- a/examples/src/core/core_2d_camera.c +++ b/examples/src/core/core_2d_camera.c @@ -105,8 +105,8 @@ int main() DrawRectangleRec(player, RED); - DrawRectangle(camera.target.x, -500, 1, screenHeight*4, GREEN); - DrawRectangle(-500, camera.target.y, screenWidth*4, 1, GREEN); + DrawLine(camera.target.x, -screenHeight*10, camera.target.x, screenHeight*10, GREEN); + DrawLine(-screenWidth*10, camera.target.y, screenWidth*10, camera.target.y, GREEN); EndMode2D(); diff --git a/examples/src/core/core_3d_camera_mode.c b/examples/src/core/core_3d_camera_mode.c new file mode 100644 index 0000000..a496220 --- /dev/null +++ b/examples/src/core/core_3d_camera_mode.c @@ -0,0 +1,73 @@ +/******************************************************************************************* +* +* raylib [core] example - Initialize 3d camera mode +* +* This example has been created using raylib 1.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera mode"); + + // Define the camera to look into our 3d world + Camera3D camera = { 0 }; + camera.position = (Vector3){ 0.0f, 10.0f, 10.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) + camera.fovy = 45.0f; // Camera field-of-view Y + camera.type = CAMERA_PERSPECTIVE; // Camera mode type + + Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + // TODO: Update your variables here + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginMode3D(camera); + + DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); + DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); + + DrawGrid(10, 1.0f); + + EndMode3D(); + + DrawText("Welcome to the third dimension!", 10, 40, 20, DARKGRAY); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/core/core_3d_mode.c b/examples/src/core/core_3d_mode.c deleted file mode 100644 index 39c0752..0000000 --- a/examples/src/core/core_3d_mode.c +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Initialize 3d mode -* -* This example has been created using raylib 1.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d mode"); - - // Define the camera to look into our 3d world - Camera3D camera; - camera.position = (Vector3){ 0.0f, 10.0f, 10.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 45.0f; // Camera field-of-view Y - camera.type = CAMERA_PERSPECTIVE; // Camera mode type - - Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); - DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); - - DrawGrid(10, 1.0f); - - EndMode3D(); - - DrawText("Welcome to the third dimension!", 10, 40, 20, DARKGRAY); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/examples/src/core/core_basic_window.c b/examples/src/core/core_basic_window.c index 51caa45..b30f05d 100644 --- a/examples/src/core/core_basic_window.c +++ b/examples/src/core/core_basic_window.c @@ -1,6 +1,16 @@ /******************************************************************************************* * -* raylib [core] example - basic window +* raylib [core] example - Basic window +* +* Welcome to raylib! +* +* To test examples, just press F6 and execute raylib_compile_execute script +* Note that compiled executable is placed in the same folder as .c file +* +* You can find all basic examples on C:\raylib\raylib\examples folder or +* raylib official webpage: www.raylib.com +* +* Enjoy using raylib. :) * * This example has been created using raylib 1.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) diff --git a/examples/src/core/core_color_select.c b/examples/src/core/core_color_select.c deleted file mode 100644 index 002a693..0000000 --- a/examples/src/core/core_color_select.c +++ /dev/null @@ -1,94 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Color selection by mouse (collision detection) -* -* This example has been created using raylib 1.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - color selection (collision detection)"); - - Color colors[21] = { DARKGRAY, MAROON, ORANGE, DARKGREEN, DARKBLUE, DARKPURPLE, DARKBROWN, - GRAY, RED, GOLD, LIME, BLUE, VIOLET, BROWN, LIGHTGRAY, PINK, YELLOW, - GREEN, SKYBLUE, PURPLE, BEIGE }; - - Rectangle colorsRecs[21]; // Rectangles array - - // Fills colorsRecs data (for every rectangle) - for (int i = 0; i < 21; i++) - { - colorsRecs[i].x = 20 + 100*(i%7) + 10*(i%7); - colorsRecs[i].y = 60 + 100*(i/7) + 10*(i/7); - colorsRecs[i].width = 100; - colorsRecs[i].height = 100; - } - - bool selected[21] = { false }; // Selected rectangles indicator - - Vector2 mousePoint; - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - mousePoint = GetMousePosition(); - - for (int i = 0; i < 21; i++) // Iterate along all the rectangles - { - if (CheckCollisionPointRec(mousePoint, colorsRecs[i])) - { - colors[i].a = 120; - - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) selected[i] = !selected[i]; - } - else colors[i].a = 255; - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - for (int i = 0; i < 21; i++) // Draw all rectangles - { - DrawRectangleRec(colorsRecs[i], colors[i]); - - // Draw four rectangles around selected rectangle - if (selected[i]) - { - DrawRectangle(colorsRecs[i].x, colorsRecs[i].y, 100, 10, RAYWHITE); // Square top rectangle - DrawRectangle(colorsRecs[i].x, colorsRecs[i].y, 10, 100, RAYWHITE); // Square left rectangle - DrawRectangle(colorsRecs[i].x + 90, colorsRecs[i].y, 10, 100, RAYWHITE); // Square right rectangle - DrawRectangle(colorsRecs[i].x, colorsRecs[i].y + 90, 100, 10, RAYWHITE); // Square bottom rectangle - } - } - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/examples/src/core/core_custom_logging.c b/examples/src/core/core_custom_logging.c new file mode 100644 index 0000000..cf1a601 --- /dev/null +++ b/examples/src/core/core_custom_logging.c @@ -0,0 +1,84 @@ +/******************************************************************************************* +* +* raylib [core] example - Custom logging +* +* This example has been created using raylib 2.1 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Pablo Marcos Oltra (@pamarcos) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2018 Pablo Marcos Oltra (@pamarcos) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include // Required for: fopen(), fclose(), fputc(), fwrite(), printf(), fprintf(), funopen() +#include // Required for: time_t, tm, time(), localtime(), strftime() + +// Custom logging funtion +void LogCustom(int msgType, const char *text, va_list args) +{ + char timeStr[64]; + time_t now = time(NULL); + struct tm *tm_info = localtime(&now); + + strftime(timeStr, sizeof(timeStr), "%Y-%m-%d %H:%M:%S", tm_info); + printf("[%s] ", timeStr); + + switch (msgType) + { + case LOG_INFO: printf("[INFO] : "); break; + case LOG_ERROR: printf("[ERROR]: "); break; + case LOG_WARNING: printf("[WARN] : "); break; + case LOG_DEBUG: printf("[DEBUG]: "); break; + default: break; + } + + vprintf(text, args); + printf("\n"); +} + +int main(int argc, char* argv[]) +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + // First thing we do is setting our custom logger to ensure everything raylib logs + // will use our own logger instead of its internal one + SetTraceLogCallback(LogCustom); + + InitWindow(screenWidth, screenHeight, "raylib [core] example - custom logging"); + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + // TODO: Update your variables here + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawText("Check out the console output to see the custom logger in action!", 60, 200, 20, LIGHTGRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/src/core/core_gestures_detection.c b/examples/src/core/core_gestures_detection.c deleted file mode 100644 index 63a1e6b..0000000 --- a/examples/src/core/core_gestures_detection.c +++ /dev/null @@ -1,115 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Gestures Detection -* -* This example has been created using raylib 1.4 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2016 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" -#include - -#define MAX_GESTURE_STRINGS 20 - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - gestures detection"); - - Vector2 touchPosition = { 0, 0 }; - Rectangle touchArea = { 220, 10, screenWidth - 230, screenHeight - 20 }; - - int gesturesCount = 0; - char gestureStrings[MAX_GESTURE_STRINGS][32]; - - int currentGesture = GESTURE_NONE; - int lastGesture = GESTURE_NONE; - - //SetGesturesEnabled(0b0000000000001001); // Enable only some gestures to be detected - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - lastGesture = currentGesture; - currentGesture = GetGestureDetected(); - touchPosition = GetTouchPosition(0); - - if (CheckCollisionPointRec(touchPosition, touchArea) && (currentGesture != GESTURE_NONE)) - { - if (currentGesture != lastGesture) - { - // Store gesture string - switch (currentGesture) - { - case GESTURE_TAP: strcpy(gestureStrings[gesturesCount], "GESTURE TAP"); break; - case GESTURE_DOUBLETAP: strcpy(gestureStrings[gesturesCount], "GESTURE DOUBLETAP"); break; - case GESTURE_HOLD: strcpy(gestureStrings[gesturesCount], "GESTURE HOLD"); break; - case GESTURE_DRAG: strcpy(gestureStrings[gesturesCount], "GESTURE DRAG"); break; - case GESTURE_SWIPE_RIGHT: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE RIGHT"); break; - case GESTURE_SWIPE_LEFT: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE LEFT"); break; - case GESTURE_SWIPE_UP: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE UP"); break; - case GESTURE_SWIPE_DOWN: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE DOWN"); break; - case GESTURE_PINCH_IN: strcpy(gestureStrings[gesturesCount], "GESTURE PINCH IN"); break; - case GESTURE_PINCH_OUT: strcpy(gestureStrings[gesturesCount], "GESTURE PINCH OUT"); break; - default: break; - } - - gesturesCount++; - - // Reset gestures strings - if (gesturesCount >= MAX_GESTURE_STRINGS) - { - for (int i = 0; i < MAX_GESTURE_STRINGS; i++) strcpy(gestureStrings[i], "\0"); - - gesturesCount = 0; - } - } - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawRectangleRec(touchArea, GRAY); - DrawRectangle(225, 15, screenWidth - 240, screenHeight - 30, RAYWHITE); - - DrawText("GESTURES TEST AREA", screenWidth - 270, screenHeight - 40, 20, Fade(GRAY, 0.5f)); - - for (int i = 0; i < gesturesCount; i++) - { - if (i%2 == 0) DrawRectangle(10, 30 + 20*i, 200, 20, Fade(LIGHTGRAY, 0.5f)); - else DrawRectangle(10, 30 + 20*i, 200, 20, Fade(LIGHTGRAY, 0.3f)); - - if (i < gesturesCount - 1) DrawText(gestureStrings[i], 35, 36 + 20*i, 10, DARKGRAY); - else DrawText(gestureStrings[i], 35, 36 + 20*i, 10, MAROON); - } - - DrawRectangleLines(10, 29, 200, screenHeight - 50, GRAY); - DrawText("DETECTED GESTURES", 50, 15, 10, GRAY); - - if (currentGesture != GESTURE_NONE) DrawCircleV(touchPosition, 30, MAROON); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- -} \ No newline at end of file diff --git a/examples/src/core/core_input_gamepad.c b/examples/src/core/core_input_gamepad.c index 64520a4..e8a1c05 100644 --- a/examples/src/core/core_input_gamepad.c +++ b/examples/src/core/core_input_gamepad.c @@ -66,93 +66,93 @@ int main() DrawTexture(texXboxPad, 0, 0, DARKGRAY); // Draw buttons: xbox home - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_HOME)) DrawCircle(394, 89, 19, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_MIDDLE)) DrawCircle(394, 89, 19, RED); // Draw buttons: basic - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_START)) DrawCircle(436, 150, 9, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_SELECT)) DrawCircle(352, 150, 9, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_X)) DrawCircle(501, 151, 15, BLUE); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_A)) DrawCircle(536, 187, 15, LIME); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_B)) DrawCircle(572, 151, 15, MAROON); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_Y)) DrawCircle(536, 115, 15, GOLD); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_MIDDLE_RIGHT)) DrawCircle(436, 150, 9, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_MIDDLE_LEFT)) DrawCircle(352, 150, 9, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_RIGHT_FACE_LEFT)) DrawCircle(501, 151, 15, BLUE); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_RIGHT_FACE_DOWN)) DrawCircle(536, 187, 15, LIME); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_RIGHT_FACE_RIGHT)) DrawCircle(572, 151, 15, MAROON); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_RIGHT_FACE_UP)) DrawCircle(536, 115, 15, GOLD); // Draw buttons: d-pad DrawRectangle(317, 202, 19, 71, BLACK); DrawRectangle(293, 228, 69, 19, BLACK); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_UP)) DrawRectangle(317, 202, 19, 26, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_DOWN)) DrawRectangle(317, 202 + 45, 19, 26, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_LEFT)) DrawRectangle(292, 228, 25, 19, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_RIGHT)) DrawRectangle(292 + 44, 228, 26, 19, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_LEFT_FACE_UP)) DrawRectangle(317, 202, 19, 26, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_LEFT_FACE_DOWN)) DrawRectangle(317, 202 + 45, 19, 26, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_LEFT_FACE_LEFT)) DrawRectangle(292, 228, 25, 19, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_LEFT_FACE_RIGHT)) DrawRectangle(292 + 44, 228, 26, 19, RED); // Draw buttons: left-right back - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_LB)) DrawCircle(259, 61, 20, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_RB)) DrawCircle(536, 61, 20, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_LEFT_TRIGGER_1)) DrawCircle(259, 61, 20, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_RIGHT_TRIGGER_1)) DrawCircle(536, 61, 20, RED); // Draw axis: left joystick DrawCircle(259, 152, 39, BLACK); DrawCircle(259, 152, 34, LIGHTGRAY); - DrawCircle(259 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LEFT_X)*20), - 152 - (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LEFT_Y)*20), 25, BLACK); + DrawCircle(259 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_AXIS_LEFT_X)*20), + 152 - (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_AXIS_LEFT_Y)*20), 25, BLACK); // Draw axis: right joystick DrawCircle(461, 237, 38, BLACK); DrawCircle(461, 237, 33, LIGHTGRAY); - DrawCircle(461 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RIGHT_X)*20), - 237 - (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RIGHT_Y)*20), 25, BLACK); + DrawCircle(461 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_AXIS_RIGHT_X)*20), + 237 - (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_AXIS_RIGHT_Y)*20), 25, BLACK); // Draw axis: left-right triggers DrawRectangle(170, 30, 15, 70, GRAY); DrawRectangle(604, 30, 15, 70, GRAY); - DrawRectangle(170, 30, 15, (((1.0f + GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LT))/2.0f)*70), RED); - DrawRectangle(604, 30, 15, (((1.0f + GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RT))/2.0f)*70), RED); + DrawRectangle(170, 30, 15, (((1.0f + GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_AXIS_LEFT_TRIGGER))/2.0f)*70), RED); + DrawRectangle(604, 30, 15, (((1.0f + GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_AXIS_RIGHT_TRIGGER))/2.0f)*70), RED); - //DrawText(FormatText("Xbox axis LT: %02.02f", GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LT)), 10, 40, 10, BLACK); - //DrawText(FormatText("Xbox axis RT: %02.02f", GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RT)), 10, 60, 10, BLACK); + //DrawText(FormatText("Xbox axis LT: %02.02f", GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_AXIS_LEFT_TRIGGER)), 10, 40, 10, BLACK); + //DrawText(FormatText("Xbox axis RT: %02.02f", GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_AXIS_RIGHT_TRIGGER)), 10, 60, 10, BLACK); } else if (IsGamepadName(GAMEPAD_PLAYER1, PS3_NAME_ID)) { DrawTexture(texPs3Pad, 0, 0, DARKGRAY); // Draw buttons: ps - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_PS)) DrawCircle(396, 222, 13, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_MIDDLE)) DrawCircle(396, 222, 13, RED); // Draw buttons: basic - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_SELECT)) DrawRectangle(328, 170, 32, 13, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_START)) DrawTriangle((Vector2){ 436, 168 }, (Vector2){ 436, 185 }, (Vector2){ 464, 177 }, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_TRIANGLE)) DrawCircle(557, 144, 13, LIME); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_CIRCLE)) DrawCircle(586, 173, 13, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_CROSS)) DrawCircle(557, 203, 13, VIOLET); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_SQUARE)) DrawCircle(527, 173, 13, PINK); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_MIDDLE_LEFT)) DrawRectangle(328, 170, 32, 13, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_MIDDLE_RIGHT)) DrawTriangle((Vector2){ 436, 168 }, (Vector2){ 436, 185 }, (Vector2){ 464, 177 }, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_RIGHT_FACE_UP)) DrawCircle(557, 144, 13, LIME); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_RIGHT_FACE_RIGHT)) DrawCircle(586, 173, 13, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_RIGHT_FACE_DOWN)) DrawCircle(557, 203, 13, VIOLET); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_RIGHT_FACE_LEFT)) DrawCircle(527, 173, 13, PINK); // Draw buttons: d-pad DrawRectangle(225, 132, 24, 84, BLACK); DrawRectangle(195, 161, 84, 25, BLACK); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_UP)) DrawRectangle(225, 132, 24, 29, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_DOWN)) DrawRectangle(225, 132 + 54, 24, 30, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_LEFT)) DrawRectangle(195, 161, 30, 25, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_RIGHT)) DrawRectangle(195 + 54, 161, 30, 25, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_LEFT_FACE_UP)) DrawRectangle(225, 132, 24, 29, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_LEFT_FACE_DOWN)) DrawRectangle(225, 132 + 54, 24, 30, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_LEFT_FACE_LEFT)) DrawRectangle(195, 161, 30, 25, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_LEFT_FACE_RIGHT)) DrawRectangle(195 + 54, 161, 30, 25, RED); // Draw buttons: left-right back buttons - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_L1)) DrawCircle(239, 82, 20, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_R1)) DrawCircle(557, 82, 20, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_LEFT_TRIGGER_1)) DrawCircle(239, 82, 20, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_RIGHT_TRIGGER_1)) DrawCircle(557, 82, 20, RED); // Draw axis: left joystick DrawCircle(319, 255, 35, BLACK); DrawCircle(319, 255, 31, LIGHTGRAY); - DrawCircle(319 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_LEFT_X)*20), - 255 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_LEFT_Y)*20), 25, BLACK); + DrawCircle(319 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_AXIS_LEFT_X)*20), + 255 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_AXIS_LEFT_Y)*20), 25, BLACK); // Draw axis: right joystick DrawCircle(475, 255, 35, BLACK); DrawCircle(475, 255, 31, LIGHTGRAY); - DrawCircle(475 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_RIGHT_X)*20), - 255 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_RIGHT_Y)*20), 25, BLACK); + DrawCircle(475 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_AXIS_RIGHT_X)*20), + 255 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_AXIS_RIGHT_Y)*20), 25, BLACK); // Draw axis: left-right triggers DrawRectangle(169, 48, 15, 70, GRAY); DrawRectangle(611, 48, 15, 70, GRAY); - DrawRectangle(169, 48, 15, (((1.0f - GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_L2))/2.0f)*70), RED); - DrawRectangle(611, 48, 15, (((1.0f - GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_R2))/2.0f)*70), RED); + DrawRectangle(169, 48, 15, (((1.0f - GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_AXIS_LEFT_TRIGGER))/2.0f)*70), RED); + DrawRectangle(611, 48, 15, (((1.0f - GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_AXIS_RIGHT_TRIGGER))/2.0f)*70), RED); } else { diff --git a/examples/src/core/core_input_gestures.c b/examples/src/core/core_input_gestures.c new file mode 100644 index 0000000..ce2ed86 --- /dev/null +++ b/examples/src/core/core_input_gestures.c @@ -0,0 +1,115 @@ +/******************************************************************************************* +* +* raylib [core] example - Input Gestures Detection +* +* This example has been created using raylib 1.4 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2016 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" +#include + +#define MAX_GESTURE_STRINGS 20 + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [core] example - input gestures"); + + Vector2 touchPosition = { 0, 0 }; + Rectangle touchArea = { 220, 10, screenWidth - 230, screenHeight - 20 }; + + int gesturesCount = 0; + char gestureStrings[MAX_GESTURE_STRINGS][32]; + + int currentGesture = GESTURE_NONE; + int lastGesture = GESTURE_NONE; + + //SetGesturesEnabled(0b0000000000001001); // Enable only some gestures to be detected + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + lastGesture = currentGesture; + currentGesture = GetGestureDetected(); + touchPosition = GetTouchPosition(0); + + if (CheckCollisionPointRec(touchPosition, touchArea) && (currentGesture != GESTURE_NONE)) + { + if (currentGesture != lastGesture) + { + // Store gesture string + switch (currentGesture) + { + case GESTURE_TAP: strcpy(gestureStrings[gesturesCount], "GESTURE TAP"); break; + case GESTURE_DOUBLETAP: strcpy(gestureStrings[gesturesCount], "GESTURE DOUBLETAP"); break; + case GESTURE_HOLD: strcpy(gestureStrings[gesturesCount], "GESTURE HOLD"); break; + case GESTURE_DRAG: strcpy(gestureStrings[gesturesCount], "GESTURE DRAG"); break; + case GESTURE_SWIPE_RIGHT: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE RIGHT"); break; + case GESTURE_SWIPE_LEFT: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE LEFT"); break; + case GESTURE_SWIPE_UP: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE UP"); break; + case GESTURE_SWIPE_DOWN: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE DOWN"); break; + case GESTURE_PINCH_IN: strcpy(gestureStrings[gesturesCount], "GESTURE PINCH IN"); break; + case GESTURE_PINCH_OUT: strcpy(gestureStrings[gesturesCount], "GESTURE PINCH OUT"); break; + default: break; + } + + gesturesCount++; + + // Reset gestures strings + if (gesturesCount >= MAX_GESTURE_STRINGS) + { + for (int i = 0; i < MAX_GESTURE_STRINGS; i++) strcpy(gestureStrings[i], "\0"); + + gesturesCount = 0; + } + } + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawRectangleRec(touchArea, GRAY); + DrawRectangle(225, 15, screenWidth - 240, screenHeight - 30, RAYWHITE); + + DrawText("GESTURES TEST AREA", screenWidth - 270, screenHeight - 40, 20, Fade(GRAY, 0.5f)); + + for (int i = 0; i < gesturesCount; i++) + { + if (i%2 == 0) DrawRectangle(10, 30 + 20*i, 200, 20, Fade(LIGHTGRAY, 0.5f)); + else DrawRectangle(10, 30 + 20*i, 200, 20, Fade(LIGHTGRAY, 0.3f)); + + if (i < gesturesCount - 1) DrawText(gestureStrings[i], 35, 36 + 20*i, 10, DARKGRAY); + else DrawText(gestureStrings[i], 35, 36 + 20*i, 10, MAROON); + } + + DrawRectangleLines(10, 29, 200, screenHeight - 50, GRAY); + DrawText("DETECTED GESTURES", 50, 15, 10, GRAY); + + if (currentGesture != GESTURE_NONE) DrawCircleV(touchPosition, 30, MAROON); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- +} \ No newline at end of file diff --git a/examples/src/core/core_input_mouse_wheel.c b/examples/src/core/core_input_mouse_wheel.c new file mode 100644 index 0000000..48cf704 --- /dev/null +++ b/examples/src/core/core_input_mouse_wheel.c @@ -0,0 +1,58 @@ +/******************************************************************************************* +* +* raylib [core] examples - Mouse wheel input +* +* This test has been created using raylib 1.1 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [core] example - input mouse wheel"); + + int boxPositionY = screenHeight/2 - 40; + int scrollSpeed = 4; // Scrolling speed in pixels + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + boxPositionY -= (GetMouseWheelMove()*scrollSpeed); + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawRectangle(screenWidth/2 - 40, boxPositionY, 80, 80, MAROON); + + DrawText("Use mouse wheel to move the cube up and down!", 10, 10, 20, GRAY); + DrawText(FormatText("Box position Y: %03i", boxPositionY), 10, 40, 20, LIGHTGRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/core/core_input_multitouch.c b/examples/src/core/core_input_multitouch.c new file mode 100644 index 0000000..5baab27 --- /dev/null +++ b/examples/src/core/core_input_multitouch.c @@ -0,0 +1,89 @@ +/******************************************************************************************* +* +* raylib [core] example - Input multitouch +* +* This example has been created using raylib 2.1 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Berni (@Berni8k) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2019 Berni (@Berni8k) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [core] example - input multitouch"); + + Vector2 ballPosition = { -100.0f, -100.0f }; + Color ballColor = BEIGE; + + int touchCounter = 0; + Vector2 touchPosition; + + SetTargetFPS(60); + //--------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + ballPosition = GetMousePosition(); + + ballColor = BEIGE; + + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) ballColor = MAROON; + if (IsMouseButtonDown(MOUSE_MIDDLE_BUTTON)) ballColor = LIME; + if (IsMouseButtonDown(MOUSE_RIGHT_BUTTON)) ballColor = DARKBLUE; + + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) touchCounter = 10; + if (IsMouseButtonPressed(MOUSE_MIDDLE_BUTTON)) touchCounter = 10; + if (IsMouseButtonPressed(MOUSE_RIGHT_BUTTON)) touchCounter = 10; + + if (touchCounter > 0) touchCounter--; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + // Multitouch + for (int i = 0; i < MAX_TOUCH_POINTS; ++i) + { + touchPosition = GetTouchPosition(i); // Get the touch point + + if ((touchPosition.x >= 0) && (touchPosition.y >= 0)) // Make sure point is not (-1,-1) as this means there is no touch for it + { + // Draw circle and touch index number + DrawCircleV(touchPosition, 34, ORANGE); + DrawText(FormatText("%d", i), touchPosition.x - 10, touchPosition.y - 70, 40, BLACK); + } + } + + // Draw the normal mouse location + DrawCircleV(ballPosition, 30 + (touchCounter*3), ballColor); + + DrawText("move ball with mouse and click mouse button to change color", 10, 10, 20, DARKGRAY); + DrawText("touch the screen at multiple locations to get multiple balls", 10, 30, 20, DARKGRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/core/core_loading_thread.c b/examples/src/core/core_loading_thread.c new file mode 100644 index 0000000..1dacd69 --- /dev/null +++ b/examples/src/core/core_loading_thread.c @@ -0,0 +1,147 @@ +/******************************************************************************************* +* +* raylib example - loading thread +* +* NOTE: This example requires linking with pthreads library, +* on MinGW, it can be accomplished passing -static parameter to compiler +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014-2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include "pthread.h" // POSIX style threads management + +#include // C11 atomic data types + +#include // Required for: clock() + +// Using C11 atomics for synchronization +// NOTE: A plain bool (or any plain data type for that matter) can't be used for inter-thread synchronization +static atomic_bool dataLoaded = ATOMIC_VAR_INIT(false); // Data Loaded completion indicator +static void *LoadDataThread(void *arg); // Loading data thread function declaration + +static int dataProgress = 0; // Data progress accumulator + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [core] example - loading thread"); + + pthread_t threadId; // Loading data thread id + + enum { STATE_WAITING, STATE_LOADING, STATE_FINISHED } state = STATE_WAITING; + int framesCounter = 0; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + switch (state) + { + case STATE_WAITING: + { + if (IsKeyPressed(KEY_ENTER)) + { + int error = pthread_create(&threadId, NULL, &LoadDataThread, NULL); + if (error != 0) TraceLog(LOG_ERROR, "Error creating loading thread"); + else TraceLog(LOG_INFO, "Loading thread initialized successfully"); + + state = STATE_LOADING; + } + } break; + case STATE_LOADING: + { + framesCounter++; + if (atomic_load(&dataLoaded)) + { + framesCounter = 0; + state = STATE_FINISHED; + } + } break; + case STATE_FINISHED: + { + if (IsKeyPressed(KEY_ENTER)) + { + // Reset everything to launch again + atomic_store(&dataLoaded, false); + dataProgress = 0; + state = STATE_WAITING; + } + } break; + default: break; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + switch (state) + { + case STATE_WAITING: DrawText("PRESS ENTER to START LOADING DATA", 150, 170, 20, DARKGRAY); break; + case STATE_LOADING: + { + DrawRectangle(150, 200, dataProgress, 60, SKYBLUE); + if ((framesCounter/15)%2) DrawText("LOADING DATA...", 240, 210, 40, DARKBLUE); + + } break; + case STATE_FINISHED: + { + DrawRectangle(150, 200, 500, 60, LIME); + DrawText("DATA LOADED!", 250, 210, 40, GREEN); + + } break; + default: break; + } + + DrawRectangleLines(150, 200, 500, 60, DARKGRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +// Loading data thread function definition +static void *LoadDataThread(void *arg) +{ + int timeCounter = 0; // Time counted in ms + clock_t prevTime = clock(); // Previous time + + // We simulate data loading with a time counter for 5 seconds + while (timeCounter < 5000) + { + clock_t currentTime = clock() - prevTime; + timeCounter = currentTime*1000/CLOCKS_PER_SEC; + + // We accumulate time over a global variable to be used in + // main thread as a progress bar + dataProgress = timeCounter/10; + } + + // When data has finished loading, we set global variable + atomic_store(&dataLoaded, true); + + return NULL; +} diff --git a/examples/src/core/core_mouse_wheel.c b/examples/src/core/core_mouse_wheel.c deleted file mode 100644 index 6a5252e..0000000 --- a/examples/src/core/core_mouse_wheel.c +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] examples - Mouse wheel -* -* This test has been created using raylib 1.1 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - mouse wheel"); - - int boxPositionY = screenHeight/2 - 40; - int scrollSpeed = 4; // Scrolling speed in pixels - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - boxPositionY -= (GetMouseWheelMove()*scrollSpeed); - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawRectangle(screenWidth/2 - 40, boxPositionY, 80, 80, MAROON); - - DrawText("Use mouse wheel to move the cube up and down!", 10, 10, 20, GRAY); - DrawText(FormatText("Box position Y: %03i", boxPositionY), 10, 40, 20, LIGHTGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/examples/src/core/core_vr_simulator.c b/examples/src/core/core_vr_simulator.c index 3f59e83..65054b7 100644 --- a/examples/src/core/core_vr_simulator.c +++ b/examples/src/core/core_vr_simulator.c @@ -23,7 +23,35 @@ int main() InitWindow(screenWidth, screenHeight, "raylib [core] example - vr simulator"); // Init VR simulator (Oculus Rift CV1 parameters) - InitVrSimulator(GetVrDeviceInfo(HMD_OCULUS_RIFT_CV1)); + InitVrSimulator(); + + VrDeviceInfo hmd = { 0 }; // VR device parameters (head-mounted-device) + + // Oculus Rift CV1 parameters for simulator + hmd.hResolution = 2160; // HMD horizontal resolution in pixels + hmd.vResolution = 1200; // HMD vertical resolution in pixels + hmd.hScreenSize = 0.133793f; // HMD horizontal size in meters + hmd.vScreenSize = 0.0669f; // HMD vertical size in meters + hmd.vScreenCenter = 0.04678f; // HMD screen center in meters + hmd.eyeToScreenDistance = 0.041f; // HMD distance between eye and display in meters + hmd.lensSeparationDistance = 0.07f; // HMD lens separation distance in meters + hmd.interpupillaryDistance = 0.07f; // HMD IPD (distance between pupils) in meters + + // NOTE: CV1 uses a Fresnel-hybrid-asymmetric lenses with specific distortion compute shaders. + // Following parameters are an approximation to distortion stereo rendering but results differ from actual device. + hmd.lensDistortionValues[0] = 1.0f; // HMD lens distortion constant parameter 0 + hmd.lensDistortionValues[1] = 0.22f; // HMD lens distortion constant parameter 1 + hmd.lensDistortionValues[2] = 0.24f; // HMD lens distortion constant parameter 2 + hmd.lensDistortionValues[3] = 0.0f; // HMD lens distortion constant parameter 3 + hmd.chromaAbCorrection[0] = 0.996f; // HMD chromatic aberration correction parameter 0 + hmd.chromaAbCorrection[1] = -0.004f; // HMD chromatic aberration correction parameter 1 + hmd.chromaAbCorrection[2] = 1.014f; // HMD chromatic aberration correction parameter 2 + hmd.chromaAbCorrection[3] = 0.0f; // HMD chromatic aberration correction parameter 3 + + // Distortion shader (uses device lens distortion and chroma) + Shader distortion = LoadShader(0, "resources/distortion.fs"); + + SetVrConfiguration(hmd, distortion); // Set Vr device parameters for stereo rendering // Define the camera to look into our 3d world Camera camera; @@ -77,9 +105,11 @@ int main() // De-Initialization //-------------------------------------------------------------------------------------- - CloseVrSimulator(); // Close VR simulator - - CloseWindow(); // Close window and OpenGL context + UnloadShader(distortion); // Unload distortion shader + + CloseVrSimulator(); // Close VR simulator + + CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; diff --git a/examples/src/core/core_window_letterbox.c b/examples/src/core/core_window_letterbox.c new file mode 100644 index 0000000..8c0843d --- /dev/null +++ b/examples/src/core/core_window_letterbox.c @@ -0,0 +1,90 @@ +/******************************************************************************************* +* +* raylib [core] example - window scale letterbox +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Anata (@anatagawa) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2019 Anata (@anatagawa) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#define max(a, b) ((a)>(b)? (a) : (b)) +#define min(a, b) ((a)<(b)? (a) : (b)) + +int main() +{ + const int windowWidth = 800; + const int windowHeight = 450; + + // Enable config flags for resizable window and vertical synchro + SetConfigFlags(FLAG_WINDOW_RESIZABLE | FLAG_VSYNC_HINT); + InitWindow(windowWidth, windowHeight, "raylib [core] example - window scale letterbox"); + SetWindowMinSize(320, 240); + + int gameScreenWidth = 640; + int gameScreenHeight = 480; + + // Render texture initialization + RenderTexture2D target = LoadRenderTexture(gameScreenWidth, gameScreenHeight); + SetTextureFilter(target.texture, FILTER_BILINEAR); // Texture scale filter to use + + Color colors[10] = { 0 }; + for (int i = 0; i < 10; i++) colors[i] = (Color){ GetRandomValue(100, 250), GetRandomValue(50, 150), GetRandomValue(10, 100), 255 }; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while( !WindowShouldClose() ) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + // Compute required framebuffer scaling + float scale = min((float)GetScreenWidth()/gameScreenWidth, (float)GetScreenHeight()/gameScreenHeight); + + if (IsKeyPressed(KEY_SPACE)) + { + // Recalculate random colors for the bars + for (int i = 0; i < 10; i++) colors[i] = (Color){ GetRandomValue(100, 250), GetRandomValue(50, 150), GetRandomValue(10, 100), 255 }; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + ClearBackground(BLACK); + + // Draw everything in the render texture + BeginTextureMode(target); + + ClearBackground(RAYWHITE); // Clear render texture background color + + for (int i = 0; i < 10; i++) DrawRectangle(0, (gameScreenHeight/10)*i, gameScreenWidth, gameScreenHeight/10, colors[i]); + + DrawText("You can resize the window,\nand see the screen scaling!", 10, 25, 20, WHITE); + + EndTextureMode(); + + // Draw RenderTexture2D to window, properly scaled + DrawTexturePro(target.texture, (Rectangle){ 0.0f, 0.0f, (float)target.texture.width, (float)-target.texture.height }, + (Rectangle){ (GetScreenWidth() - ((float)gameScreenWidth*scale))*0.5, (GetScreenHeight() - ((float)gameScreenHeight*scale))*0.5, + (float)gameScreenWidth*scale, (float)gameScreenHeight*scale }, (Vector2){ 0, 0 }, 0.0f, WHITE); + + EndDrawing(); + //-------------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadRenderTexture(target); // Unload render texture + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/src/models/models_animation.c b/examples/src/models/models_animation.c new file mode 100644 index 0000000..a75241b --- /dev/null +++ b/examples/src/models/models_animation.c @@ -0,0 +1,101 @@ +/******************************************************************************************* +* +* raylib [models] example - Load 3d model with animations and play them +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2019 Ramon Santamaria (@raysan5) and @culacant +* +********************************************************************************************/ + +#include "raylib.h" + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [models] example - model animation"); + + // Define the camera to look into our 3d world + Camera camera = { 0 }; + camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) + camera.fovy = 45.0f; // Camera field-of-view Y + camera.type = CAMERA_PERSPECTIVE; // Camera mode type + + + Model model = LoadModel("resources/guy/guy.iqm"); // Load the animated model mesh and basic data + Texture2D texture = LoadTexture("resources/guy/guytex.png"); // Load model texture and set material + SetMaterialTexture(&model.materials[0], MAP_DIFFUSE, texture); // Set model material map texture + + Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position + + // Load animation data + int animsCount = 0; + ModelAnimation *anims = LoadModelAnimations("resources/guy/guyanim.iqm", &animsCount); + int animFrameCounter = 0; + + SetCameraMode(camera, CAMERA_FREE); // Set free camera mode + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + UpdateCamera(&camera); + + // Play animation when spacebar is held down + if (IsKeyDown(KEY_SPACE)) + { + animFrameCounter++; + UpdateModelAnimation(model, anims[0], animFrameCounter); + if (animFrameCounter >= anims[0].frameCount) animFrameCounter = 0; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginMode3D(camera); + + DrawModelEx(model, position, (Vector3){ 1.0f, 0.0f, 0.0f }, -90.0f, (Vector3){ 1.0f, 1.0f, 1.0f }, WHITE); + + for (int i = 0; i < model.boneCount; i++) + { + DrawCube(anims[0].framePoses[animFrameCounter][i].translation, 0.2f, 0.2f, 0.2f, RED); + } + + DrawGrid(10, 1.0f); // Draw a grid + + EndMode3D(); + + DrawText("PRESS SPACE to PLAY MODEL ANIMATION", 10, 10, 20, MAROON); + DrawText("(c) Guy IQM 3D model by @culacant", screenWidth - 200, screenHeight - 20, 10, GRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + // Unload model animations data + for (int i = 0; i < animsCount; i++) UnloadModelAnimation(anims[i]); + + UnloadModel(model); // Unload model + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/src/models/models_billboard.c b/examples/src/models/models_billboard.c index 8ce6a44..5965571 100644 --- a/examples/src/models/models_billboard.c +++ b/examples/src/models/models_billboard.c @@ -28,7 +28,6 @@ int main() camera.fovy = 45.0f; camera.type = CAMERA_PERSPECTIVE; - Texture2D bill = LoadTexture("resources/billboard.png"); // Our texture billboard Vector3 billPosition = { 0.0f, 2.0f, 0.0f }; // Position where draw billboard @@ -52,11 +51,11 @@ int main() ClearBackground(RAYWHITE); BeginMode3D(camera); - - DrawBillboard(camera, bill, billPosition, 2.0f, WHITE); DrawGrid(10, 1.0f); // Draw a grid - + + DrawBillboard(camera, bill, billPosition, 2.0f, WHITE); + EndMode3D(); DrawFPS(10, 10); diff --git a/examples/src/models/models_cubicmap.c b/examples/src/models/models_cubicmap.c index c8d62c4..ac24188 100644 --- a/examples/src/models/models_cubicmap.c +++ b/examples/src/models/models_cubicmap.c @@ -31,7 +31,7 @@ int main() // NOTE: By default each cube is mapped to one part of texture atlas Texture2D texture = LoadTexture("resources/cubicmap_atlas.png"); // Load map texture - model.material.maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture + model.materials[0].maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture Vector3 mapPosition = { -16.0f, 0.0f, -8.0f }; // Set model position diff --git a/examples/src/models/models_first_person_maze.c b/examples/src/models/models_first_person_maze.c new file mode 100644 index 0000000..093334b --- /dev/null +++ b/examples/src/models/models_first_person_maze.c @@ -0,0 +1,126 @@ +/******************************************************************************************* +* +* raylib [models] example - first person maze +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include // Required for: free() + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [models] example - first person maze"); + + // Define the camera to look into our 3d world + Camera camera = {{ 0.2f, 0.4f, 0.2f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; + + Image imMap = LoadImage("resources/cubicmap.png"); // Load cubicmap image (RAM) + Texture2D cubicmap = LoadTextureFromImage(imMap); // Convert image to texture to display (VRAM) + Mesh mesh = GenMeshCubicmap(imMap, (Vector3){ 1.0f, 1.0f, 1.0f }); + Model model = LoadModelFromMesh(mesh); + + // NOTE: By default each cube is mapped to one part of texture atlas + Texture2D texture = LoadTexture("resources/cubicmap_atlas.png"); // Load map texture + model.materials[0].maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture + + // Get map image data to be used for collision detection + Color *mapPixels = GetImageData(imMap); + UnloadImage(imMap); // Unload image from RAM + + Vector3 mapPosition = { -16.0f, 0.0f, -8.0f }; // Set model position + Vector3 playerPosition = camera.position; // Set player position + + SetCameraMode(camera, CAMERA_FIRST_PERSON); // Set camera mode + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + Vector3 oldCamPos = camera.position; // Store old camera position + + UpdateCamera(&camera); // Update camera + + // Check player collision (we simplify to 2D collision detection) + Vector2 playerPos = { camera.position.x, camera.position.z }; + float playerRadius = 0.1f; // Collision radius (player is modelled as a cilinder for collision) + + int playerCellX = (int)(playerPos.x - mapPosition.x + 0.5f); + int playerCellY = (int)(playerPos.y - mapPosition.z + 0.5f); + + // Out-of-limits security check + if (playerCellX < 0) playerCellX = 0; + else if (playerCellX >= cubicmap.width) playerCellX = cubicmap.width - 1; + + if (playerCellY < 0) playerCellY = 0; + else if (playerCellY >= cubicmap.height) playerCellY = cubicmap.height - 1; + + // Check map collisions using image data and player position + // TODO: Improvement: Just check player surrounding cells for collision + for (int y = 0; y < cubicmap.height; y++) + { + for (int x = 0; x < cubicmap.width; x++) + { + if ((mapPixels[y*cubicmap.width + x].r == 255) && // Collision: white pixel, only check R channel + (CheckCollisionCircleRec(playerPos, playerRadius, + (Rectangle){ mapPosition.x - 0.5f + x*1.0f, mapPosition.z - 0.5f + y*1.0f, 1.0f, 1.0f }))) + { + // Collision detected, reset camera position + camera.position = oldCamPos; + } + } + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginMode3D(camera); + + DrawModel(model, mapPosition, 1.0f, WHITE); // Draw maze map + //DrawCubeV(playerPosition, (Vector3){ 0.2f, 0.4f, 0.2f }, RED); // Draw player + + EndMode3D(); + + DrawTextureEx(cubicmap, (Vector2){ GetScreenWidth() - cubicmap.width*4 - 20, 20 }, 0.0f, 4.0f, WHITE); + DrawRectangleLines(GetScreenWidth() - cubicmap.width*4 - 20, 20, cubicmap.width*4, cubicmap.height*4, GREEN); + + // Draw player position radar + DrawRectangle(GetScreenWidth() - cubicmap.width*4 - 20 + playerCellX*4, 20 + playerCellY*4, 4, 4, RED); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + free(mapPixels); // Unload color array + + UnloadTexture(cubicmap); // Unload cubicmap texture + UnloadTexture(texture); // Unload map texture + UnloadModel(model); // Unload map model + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/src/models/models_heightmap.c b/examples/src/models/models_heightmap.c index d131b12..e0475f1 100644 --- a/examples/src/models/models_heightmap.c +++ b/examples/src/models/models_heightmap.c @@ -29,7 +29,7 @@ int main() Mesh mesh = GenMeshHeightmap(image, (Vector3){ 16, 8, 16 }); // Generate heightmap mesh (RAM and VRAM) Model model = LoadModelFromMesh(mesh); // Load model from generated mesh - model.material.maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture + model.materials[0].maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture Vector3 mapPosition = { -8.0f, 0.0f, -8.0f }; // Define model position UnloadImage(image); // Unload heightmap image from RAM, already uploaded to VRAM diff --git a/examples/src/models/models_material_pbr.c b/examples/src/models/models_material_pbr.c index 9f57634..5c308cf 100644 --- a/examples/src/models/models_material_pbr.c +++ b/examples/src/models/models_material_pbr.c @@ -12,6 +12,8 @@ #include "raylib.h" #include "raymath.h" +#include + #define RLIGHTS_IMPLEMENTATION #include "rlights.h" @@ -34,19 +36,29 @@ int main() InitWindow(screenWidth, screenHeight, "raylib [models] example - pbr material"); // Define the camera to look into our 3d world - Camera camera = {{ 4.0f, 4.0f, 4.0f }, { 0.0f, 0.5f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f }; + Camera camera = { 0 }; + camera.position = (Vector3){ 4.0f, 4.0f, 4.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 0.5f, 0.0f }; // Camera looking at point + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) + camera.fovy = 45.0f; // Camera field-of-view Y + camera.type = CAMERA_PERSPECTIVE; // Camera mode type // Load model and PBR material Model model = LoadModel("resources/pbr/trooper.obj"); - model.material = LoadMaterialPBR((Color){ 255, 255, 255, 255 }, 1.0f, 1.0f); + + // Mesh tangents are generated... and uploaded to GPU + // NOTE: New VBO for tangents is generated at default location and also binded to mesh VAO + MeshTangents(&model.meshes[0]); + + model.materials[0] = LoadMaterialPBR((Color){ 255, 255, 255, 255 }, 1.0f, 1.0f); // Define lights attributes // NOTE: Shader is passed to every light on creation to define shader bindings internally Light lights[MAX_LIGHTS] = { - CreateLight(LIGHT_POINT, (Vector3){ LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 0, 255 }, model.material.shader), - CreateLight(LIGHT_POINT, (Vector3){ 0.0f, LIGHT_HEIGHT, LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 255, 0, 255 }, model.material.shader), - CreateLight(LIGHT_POINT, (Vector3){ -LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 0, 255, 255 }, model.material.shader), - CreateLight(LIGHT_DIRECTIONAL, (Vector3){ 0.0f, LIGHT_HEIGHT*2.0f, -LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 255, 255 }, model.material.shader) + CreateLight(LIGHT_POINT, (Vector3){ LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 0, 255 }, model.materials[0].shader), + CreateLight(LIGHT_POINT, (Vector3){ 0.0f, LIGHT_HEIGHT, LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 255, 0, 255 }, model.materials[0].shader), + CreateLight(LIGHT_POINT, (Vector3){ -LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 0, 255, 255 }, model.materials[0].shader), + CreateLight(LIGHT_DIRECTIONAL, (Vector3){ 0.0f, LIGHT_HEIGHT*2.0f, -LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 255, 255 }, model.materials[0].shader) }; SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode @@ -63,7 +75,7 @@ int main() // Send to material PBR shader camera view position float cameraPos[3] = { camera.position.x, camera.position.y, camera.position.z }; - SetShaderValue(model.material.shader, model.material.shader.locs[LOC_VECTOR_VIEW], cameraPos, 3); + SetShaderValue(model.materials[0].shader, model.materials[0].shader.locs[LOC_VECTOR_VIEW], cameraPos, UNIFORM_VEC3); //---------------------------------------------------------------------------------- // Draw @@ -72,13 +84,13 @@ int main() ClearBackground(RAYWHITE); - Begin3dMode(camera); + BeginMode3D(camera); DrawModel(model, Vector3Zero(), 1.0f, WHITE); DrawGrid(10, 1.0f); - End3dMode(); + EndMode3D(); DrawFPS(10, 10); @@ -113,7 +125,7 @@ static Material LoadMaterialPBR(Color albedo, float metalness, float roughness) mat.shader.locs[LOC_MAP_METALNESS] = GetShaderLocation(mat.shader, "metalness.sampler"); mat.shader.locs[LOC_MAP_NORMAL] = GetShaderLocation(mat.shader, "normals.sampler"); mat.shader.locs[LOC_MAP_ROUGHNESS] = GetShaderLocation(mat.shader, "roughness.sampler"); - mat.shader.locs[LOC_MAP_OCCUSION] = GetShaderLocation(mat.shader, "occlusion.sampler"); + mat.shader.locs[LOC_MAP_OCCLUSION] = GetShaderLocation(mat.shader, "occlusion.sampler"); //mat.shader.locs[LOC_MAP_EMISSION] = GetShaderLocation(mat.shader, "emission.sampler"); //mat.shader.locs[LOC_MAP_HEIGHT] = GetShaderLocation(mat.shader, "height.sampler"); mat.shader.locs[LOC_MAP_IRRADIANCE] = GetShaderLocation(mat.shader, "irradianceMap"); @@ -121,7 +133,7 @@ static Material LoadMaterialPBR(Color albedo, float metalness, float roughness) mat.shader.locs[LOC_MAP_BRDF] = GetShaderLocation(mat.shader, "brdfLUT"); // Set view matrix location - mat.shader.locs[LOC_MATRIX_MODEL] = GetShaderLocation(mat.shader, "mMatrix"); + mat.shader.locs[LOC_MATRIX_MODEL] = GetShaderLocation(mat.shader, "matModel"); mat.shader.locs[LOC_MATRIX_VIEW] = GetShaderLocation(mat.shader, "view"); mat.shader.locs[LOC_VECTOR_VIEW] = GetShaderLocation(mat.shader, "viewPos"); @@ -142,20 +154,24 @@ static Material LoadMaterialPBR(Color albedo, float metalness, float roughness) #define PATH_BRDF_FS "resources/shaders/brdf.fs" // Path to bidirectional reflectance distribution function fragment shader Shader shdrCubemap = LoadShader(PATH_CUBEMAP_VS, PATH_CUBEMAP_FS); + printf("Loaded shader: cubemap\n"); Shader shdrIrradiance = LoadShader(PATH_SKYBOX_VS, PATH_IRRADIANCE_FS); + printf("Loaded shader: irradiance\n"); Shader shdrPrefilter = LoadShader(PATH_SKYBOX_VS, PATH_PREFILTER_FS); + printf("Loaded shader: prefilter\n"); Shader shdrBRDF = LoadShader(PATH_BRDF_VS, PATH_BRDF_FS); + printf("Loaded shader: brdf\n"); // Setup required shader locations - SetShaderValuei(shdrCubemap, GetShaderLocation(shdrCubemap, "equirectangularMap"), (int[1]){ 0 }, 1); - SetShaderValuei(shdrIrradiance, GetShaderLocation(shdrIrradiance, "environmentMap"), (int[1]){ 0 }, 1); - SetShaderValuei(shdrPrefilter, GetShaderLocation(shdrPrefilter, "environmentMap"), (int[1]){ 0 }, 1); + SetShaderValue(shdrCubemap, GetShaderLocation(shdrCubemap, "equirectangularMap"), (int[1]){ 0 }, UNIFORM_INT); + SetShaderValue(shdrIrradiance, GetShaderLocation(shdrIrradiance, "environmentMap"), (int[1]){ 0 }, UNIFORM_INT); + SetShaderValue(shdrPrefilter, GetShaderLocation(shdrPrefilter, "environmentMap"), (int[1]){ 0 }, UNIFORM_INT); - Texture2D texHDR = LoadTexture("resources/pinetree.hdr"); + Texture2D texHDR = LoadTexture("resources/dresden_square.hdr"); Texture2D cubemap = GenTextureCubemap(shdrCubemap, texHDR, CUBEMAP_SIZE); mat.maps[MAP_IRRADIANCE].texture = GenTextureIrradiance(shdrIrradiance, cubemap, IRRADIANCE_SIZE); mat.maps[MAP_PREFILTER].texture = GenTexturePrefilter(shdrPrefilter, cubemap, PREFILTERED_SIZE); - mat.maps[MAP_BRDF].texture = GenTextureBRDF(shdrBRDF, cubemap, BRDF_SIZE); + mat.maps[MAP_BRDF].texture = GenTextureBRDF(shdrBRDF, BRDF_SIZE); UnloadTexture(cubemap); UnloadTexture(texHDR); @@ -173,14 +189,14 @@ static Material LoadMaterialPBR(Color albedo, float metalness, float roughness) SetTextureFilter(mat.maps[MAP_OCCLUSION].texture, FILTER_BILINEAR); // Enable sample usage in shader for assigned textures - SetShaderValuei(mat.shader, GetShaderLocation(mat.shader, "albedo.useSampler"), (int[1]){ 1 }, 1); - SetShaderValuei(mat.shader, GetShaderLocation(mat.shader, "normals.useSampler"), (int[1]){ 1 }, 1); - SetShaderValuei(mat.shader, GetShaderLocation(mat.shader, "metalness.useSampler"), (int[1]){ 1 }, 1); - SetShaderValuei(mat.shader, GetShaderLocation(mat.shader, "roughness.useSampler"), (int[1]){ 1 }, 1); - SetShaderValuei(mat.shader, GetShaderLocation(mat.shader, "occlusion.useSampler"), (int[1]){ 1 }, 1); + SetShaderValue(mat.shader, GetShaderLocation(mat.shader, "albedo.useSampler"), (int[1]){ 1 }, UNIFORM_INT); + SetShaderValue(mat.shader, GetShaderLocation(mat.shader, "normals.useSampler"), (int[1]){ 1 }, UNIFORM_INT); + SetShaderValue(mat.shader, GetShaderLocation(mat.shader, "metalness.useSampler"), (int[1]){ 1 }, UNIFORM_INT); + SetShaderValue(mat.shader, GetShaderLocation(mat.shader, "roughness.useSampler"), (int[1]){ 1 }, UNIFORM_INT); + SetShaderValue(mat.shader, GetShaderLocation(mat.shader, "occlusion.useSampler"), (int[1]){ 1 }, UNIFORM_INT); int renderModeLoc = GetShaderLocation(mat.shader, "renderMode"); - SetShaderValuei(mat.shader, renderModeLoc, (int[1]){ 0 }, 1); + SetShaderValue(mat.shader, renderModeLoc, (int[1]){ 0 }, UNIFORM_INT); // Set up material properties color mat.maps[MAP_ALBEDO].color = albedo; @@ -192,4 +208,4 @@ static Material LoadMaterialPBR(Color albedo, float metalness, float roughness) mat.maps[MAP_HEIGHT].value = 0.5f; return mat; -} \ No newline at end of file +} diff --git a/examples/src/models/models_mesh_generation.c b/examples/src/models/models_mesh_generation.c index c02bd91..2b4b75a 100644 --- a/examples/src/models/models_mesh_generation.c +++ b/examples/src/models/models_mesh_generation.c @@ -11,7 +11,7 @@ #include "raylib.h" -#define NUM_MODELS 7 // We generate 7 parametric 3d shapes +#define NUM_MODELS 8 // We generate 8 parametric 3d shapes int main() { @@ -36,9 +36,10 @@ int main() models[4] = LoadModelFromMesh(GenMeshCylinder(1, 2, 16)); models[5] = LoadModelFromMesh(GenMeshTorus(0.25f, 4.0f, 16, 32)); models[6] = LoadModelFromMesh(GenMeshKnot(1.0f, 2.0f, 16, 128)); + models[7] = LoadModelFromMesh(GenMeshPoly(5, 2.0f)); // Set checked texture as default diffuse component for all models material - for (int i = 0; i < NUM_MODELS; i++) models[i].material.maps[MAP_DIFFUSE].texture = texture; + for (int i = 0; i < NUM_MODELS; i++) models[i].materials[0].maps[MAP_DIFFUSE].texture = texture; // Define the camera to look into our 3d world Camera camera = {{ 5.0f, 5.0f, 5.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; @@ -64,6 +65,17 @@ int main() { currentModel = (currentModel + 1)%NUM_MODELS; // Cycle between the textures } + + if (IsKeyPressed(KEY_RIGHT)) + { + currentModel++; + if (currentModel >= NUM_MODELS) currentModel = 0; + } + else if (IsKeyPressed(KEY_LEFT)) + { + currentModel--; + if (currentModel < 0) currentModel = NUM_MODELS - 1; + } //---------------------------------------------------------------------------------- // Draw @@ -93,6 +105,7 @@ int main() case 4: DrawText("CYLINDER", 680, 10, 20, DARKBLUE); break; case 5: DrawText("TORUS", 680, 10, 20, DARKBLUE); break; case 6: DrawText("KNOT", 680, 10, 20, DARKBLUE); break; + case 7: DrawText("POLY", 680, 10, 20, DARKBLUE); break; default: break; } diff --git a/examples/src/models/models_mesh_picking.c b/examples/src/models/models_mesh_picking.c index e150fe9..4202882 100644 --- a/examples/src/models/models_mesh_picking.c +++ b/examples/src/models/models_mesh_picking.c @@ -13,7 +13,7 @@ #include "raylib.h" #include "raymath.h" -#define FLT_MAX 3.40282347E+38F // Maximum value of a float, defined in +#define FLT_MAX 340282346638528859811704183484516925440.0f // Maximum value of a float, from bit pattern 01111111011111111111111111111111 int main() { @@ -25,20 +25,21 @@ int main() InitWindow(screenWidth, screenHeight, "raylib [models] example - mesh picking"); // Define the camera to look into our 3d world - Camera camera; - camera.position = (Vector3){ 10.0f, 8.0f, 10.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 2.3f, 0.0f }; // Camera looking at point + Camera camera = { 0 }; + camera.position = (Vector3){ 20.0f, 20.0f, 20.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 8.0f, 0.0f }; // Camera looking at point camera.up = (Vector3){ 0.0f, 1.6f, 0.0f }; // Camera up vector (rotation towards target) camera.fovy = 45.0f; // Camera field-of-view Y + camera.type = CAMERA_PERSPECTIVE; // Camera mode type - Ray ray; // Picking ray + Ray ray = { 0 }; // Picking ray - Model tower = LoadModel("resources/tower.obj"); // Load OBJ model - Texture2D texture = LoadTexture("resources/tower.png"); // Load model texture - tower.material.maps[MAP_DIFFUSE].texture = texture; // Set model diffuse texture + Model tower = LoadModel("resources/models/turret.obj"); // Load OBJ model + Texture2D texture = LoadTexture("resources/models/turret_diffuse.png"); // Load model texture + tower.materials[0].maps[MAP_DIFFUSE].texture = texture; // Set model diffuse texture Vector3 towerPos = { 0.0f, 0.0f, 0.0f }; // Set model position - BoundingBox towerBBox = CalculateBoundingBox(tower.mesh); + BoundingBox towerBBox = MeshBoundingBox(tower.meshes[0]); // Get mesh bounding box bool hitMeshBBox = false; bool hitTriangle = false; @@ -61,7 +62,7 @@ int main() UpdateCamera(&camera); // Update camera // Display information about closest hit - RayHitInfo nearestHit; + RayHitInfo nearestHit = { 0 }; char *hitObjectName = "None"; nearestHit.distance = FLT_MAX; nearestHit.hit = false; @@ -94,15 +95,16 @@ int main() } else hitTriangle = false; - RayHitInfo meshHitInfo; + RayHitInfo meshHitInfo = { 0 }; // Check ray collision against bounding box first, before trying the full ray-mesh test if (CheckCollisionRayBox(ray, towerBBox)) { hitMeshBBox = true; - // Check ray collision against mesh - meshHitInfo = GetCollisionRayMesh(ray, &tower.mesh); + // Check ray collision against model + // NOTE: It considers model.transform matrix! + meshHitInfo = GetCollisionRayModel(ray, &tower); if ((meshHitInfo.hit) && (meshHitInfo.distance < nearestHit.distance)) { @@ -111,7 +113,9 @@ int main() hitObjectName = "Mesh"; } - } hitMeshBBox = false; + } + + hitMeshBBox = false; //---------------------------------------------------------------------------------- // Draw @@ -120,10 +124,12 @@ int main() ClearBackground(RAYWHITE); - Begin3dMode(camera); + BeginMode3D(camera); // Draw the tower - DrawModel(tower, towerPos, 1.0, WHITE); + // WARNING: If scale is different than 1.0f, + // not considered by GetCollisionRayModel() + DrawModel(tower, towerPos, 1.0f, WHITE); // Draw the test triangle DrawLine3D(ta, tb, PURPLE); @@ -149,9 +155,9 @@ int main() DrawRay(ray, MAROON); - DrawGrid(100, 1.0f); + DrawGrid(10, 10.0f); - End3dMode(); + EndMode3D(); // Draw some debug GUI text DrawText(FormatText("Hit Object: %s", hitObjectName), 10, 50, 10, BLACK); @@ -176,6 +182,8 @@ int main() } DrawText("Use Mouse to Move Camera", 10, 430, 10, GRAY); + + DrawText("(c) Turret 3D model by Alberto Cano", screenWidth - 200, screenHeight - 20, 10, GRAY); DrawFPS(10, 10); diff --git a/examples/src/models/models_obj_loading.c b/examples/src/models/models_obj_loading.c index 70f9216..74e7d08 100644 --- a/examples/src/models/models_obj_loading.c +++ b/examples/src/models/models_obj_loading.c @@ -21,11 +21,16 @@ int main() InitWindow(screenWidth, screenHeight, "raylib [models] example - obj model loading"); // Define the camera to look into our 3d world - Camera camera = {{ 3.0f, 3.0f, 3.0f }, { 0.0f, 1.5f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f }; - - Model dwarf = LoadModel("resources/model/dwarf.obj"); // Load OBJ model - Texture2D texture = LoadTexture("resources/model/dwarf_diffuse.png"); // Load model texture - dwarf.material.maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture + Camera camera = { 0 }; + camera.position = (Vector3){ 8.0f, 8.0f, 8.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 2.5f, 0.0f }; // Camera looking at point + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) + camera.fovy = 45.0f; // Camera field-of-view Y + camera.type = CAMERA_PERSPECTIVE; // Camera mode type + + Model model = LoadModel("resources/models/castle.obj"); // Load OBJ model + Texture2D texture = LoadTexture("resources/models/castle_diffuse.png"); // Load model texture + model.materials[0].maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position SetTargetFPS(60); // Set our game to run at 60 frames-per-second @@ -45,17 +50,17 @@ int main() ClearBackground(RAYWHITE); - Begin3dMode(camera); + BeginMode3D(camera); - DrawModel(dwarf, position, 2.0f, WHITE); // Draw 3d model with texture + DrawModel(model, position, 0.2f, WHITE); // Draw 3d model with texture DrawGrid(10, 1.0f); // Draw a grid DrawGizmo(position); // Draw gizmo - End3dMode(); - - DrawText("(c) Dwarf 3D model by David Moreno", screenWidth - 200, screenHeight - 20, 10, GRAY); + EndMode3D(); + + DrawText("(c) Castle 3D model by Alberto Cano", screenWidth - 200, screenHeight - 20, 10, GRAY); DrawFPS(10, 10); @@ -66,7 +71,7 @@ int main() // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(texture); // Unload texture - UnloadModel(dwarf); // Unload model + UnloadModel(model); // Unload model CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- diff --git a/examples/src/models/models_obj_viewer.c b/examples/src/models/models_obj_viewer.c new file mode 100644 index 0000000..7d38744 --- /dev/null +++ b/examples/src/models/models_obj_viewer.c @@ -0,0 +1,127 @@ +/******************************************************************************************* +* +* raylib [models] example - OBJ models viewer +* +* This example has been created using raylib 2.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014-2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include // Required for: strcpy() + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib example - obj viewer"); + + // Define the camera to look into our 3d world + Camera camera = {{ 30.0f, 30.0f, 30.0f }, { 0.0f, 10.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; + + Model model = LoadModel("resources/models/turret.obj"); // Load default model obj + Texture2D texture = LoadTexture("resources/models/turret_diffuse.png"); // Load default model texture + model.materials[0].maps[MAP_DIFFUSE].texture = texture; // Bind texture to model + + Vector3 position = { 0.0, 0.0, 0.0 }; // Set model position + BoundingBox bounds = MeshBoundingBox(model.meshes[0]); // Set model bounds + bool selected = false; // Selected object flag + + SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode + + char objFilename[64] = "turret.obj"; + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + if (IsFileDropped()) + { + int count = 0; + char **droppedFiles = GetDroppedFiles(&count); + + if (count == 1) + { + if (IsFileExtension(droppedFiles[0], ".obj")) + { + for (int i = 0; i < model.meshCount; i++) UnloadMesh(&model.meshes[i]); + model.meshes = LoadMeshes(droppedFiles[0], &model.meshCount); + bounds = MeshBoundingBox(model.meshes[0]); + } + else if (IsFileExtension(droppedFiles[0], ".png")) + { + UnloadTexture(texture); + texture = LoadTexture(droppedFiles[0]); + model.materials[0].maps[MAP_DIFFUSE].texture = texture; + } + + strcpy(objFilename, GetFileName(droppedFiles[0])); + } + + ClearDroppedFiles(); // Clear internal buffers + } + + UpdateCamera(&camera); + + // Select model on mouse click + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) + { + // Check collision between ray and box + if (CheckCollisionRayBox(GetMouseRay(GetMousePosition(), camera), bounds)) selected = !selected; + else selected = false; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginMode3D(camera); + + DrawModel(model, position, 1.0f, WHITE); // Draw 3d model with texture + + DrawGrid(20.0, 10.0); // Draw a grid + + if (selected) DrawBoundingBox(bounds, GREEN); + + EndMode3D(); + + DrawText("Free camera default controls:", 10, 20, 10, DARKGRAY); + DrawText("- Mouse Wheel to Zoom in-out", 20, 40, 10, GRAY); + DrawText("- Mouse Wheel Pressed to Pan", 20, 60, 10, GRAY); + DrawText("- Alt + Mouse Wheel Pressed to Rotate", 20, 80, 10, GRAY); + DrawText("- Alt + Ctrl + Mouse Wheel Pressed for Smooth Zoom", 20, 100, 10, GRAY); + + DrawText("Drag & drop .obj/.png to load mesh/texture.", 10, GetScreenHeight() - 20, 10, DARKGRAY); + DrawText(FormatText("Current file: %s", objFilename), 250, GetScreenHeight() - 20, 10, GRAY); + if (selected) DrawText("MODEL SELECTED", GetScreenWidth() - 110, 10, 10, GREEN); + + DrawText("(c) Turret 3D model by Alberto Cano", screenWidth - 200, screenHeight - 20, 10, GRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadModel(model); // Unload model + + ClearDroppedFiles(); // Clear internal buffers + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/models/models_orthographic_projection.c b/examples/src/models/models_orthographic_projection.c new file mode 100644 index 0000000..3ad32b6 --- /dev/null +++ b/examples/src/models/models_orthographic_projection.c @@ -0,0 +1,99 @@ +/******************************************************************************************* +* +* raylib [models] example - Show the difference between perspective and orthographic projection +* +* This program is heavily based on the geometric objects example +* +* This example has been created using raylib 2.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Max Danielsson (@autious) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2018 Max Danielsson (@autious) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#define FOVY_PERSPECTIVE 45.0f +#define WIDTH_ORTHOGRAPHIC 10.0f + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [models] example - geometric shapes"); + + // Define the camera to look into our 3d world + Camera camera = {{ 0.0f, 10.0f, 10.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, FOVY_PERSPECTIVE, CAMERA_PERSPECTIVE }; + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + if (IsKeyPressed(KEY_SPACE)) + { + if (camera.type == CAMERA_PERSPECTIVE) + { + camera.fovy = WIDTH_ORTHOGRAPHIC; + camera.type = CAMERA_ORTHOGRAPHIC; + } + else + { + camera.fovy = FOVY_PERSPECTIVE; + camera.type = CAMERA_PERSPECTIVE; + } + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginMode3D(camera); + + DrawCube((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, RED); + DrawCubeWires((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, GOLD); + DrawCubeWires((Vector3){-4.0f, 0.0f, -2.0f}, 3.0f, 6.0f, 2.0f, MAROON); + + DrawSphere((Vector3){-1.0f, 0.0f, -2.0f}, 1.0f, GREEN); + DrawSphereWires((Vector3){1.0f, 0.0f, 2.0f}, 2.0f, 16, 16, LIME); + + DrawCylinder((Vector3){4.0f, 0.0f, -2.0f}, 1.0f, 2.0f, 3.0f, 4, SKYBLUE); + DrawCylinderWires((Vector3){4.0f, 0.0f, -2.0f}, 1.0f, 2.0f, 3.0f, 4, DARKBLUE); + DrawCylinderWires((Vector3){4.5f, -1.0f, 2.0f}, 1.0f, 1.0f, 2.0f, 6, BROWN); + + DrawCylinder((Vector3){1.0f, 0.0f, -4.0f}, 0.0f, 1.5f, 3.0f, 8, GOLD); + DrawCylinderWires((Vector3){1.0f, 0.0f, -4.0f}, 0.0f, 1.5f, 3.0f, 8, PINK); + + DrawGrid(10, 1.0f); // Draw a grid + + EndMode3D(); + + DrawText("Press Spacebar to switch camera type", 10, GetScreenHeight() - 30, 20, DARKGRAY); + + if (camera.type == CAMERA_ORTHOGRAPHIC) DrawText("ORTHOGRAPHIC", 10, 40, 20, BLACK); + else if (camera.type == CAMERA_PERSPECTIVE) DrawText("PERSPECTIVE", 10, 40, 20, BLACK); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/src/models/models_rlgl_solar_system.c b/examples/src/models/models_rlgl_solar_system.c new file mode 100644 index 0000000..7193d6f --- /dev/null +++ b/examples/src/models/models_rlgl_solar_system.c @@ -0,0 +1,168 @@ +/******************************************************************************************* +* +* raylib [models] example - rlgl module usage with push/pop matrix transformations +* +* This example uses [rlgl] module funtionality (pseudo-OpenGL 1.1 style coding) +* +* This example has been created using raylib 2.2 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2018 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" +#include "rlgl.h" + +//------------------------------------------------------------------------------------ +// Module Functions Declaration +//------------------------------------------------------------------------------------ +void DrawSphereBasic(Color color); // Draw sphere without any matrix transformation + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + const float sunRadius = 4.0f; + const float earthRadius = 0.6f; + const float earthOrbitRadius = 8.0f; + const float moonRadius = 0.16f; + const float moonOrbitRadius = 1.5f; + + InitWindow(screenWidth, screenHeight, "raylib [models] example - rlgl module usage with push/pop matrix transformations"); + + // Define the camera to look into our 3d world + Camera camera = { 0 }; + camera.position = (Vector3){ 16.0f, 16.0f, 16.0f }; + camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; + camera.fovy = 45.0f; + camera.type = CAMERA_PERSPECTIVE; + + SetCameraMode(camera, CAMERA_FREE); + + float rotationSpeed = 0.2f; // General system rotation speed + + float earthRotation = 0.0f; // Rotation of earth around itself (days) in degrees + float earthOrbitRotation = 0.0f; // Rotation of earth around the Sun (years) in degrees + float moonRotation = 0.0f; // Rotation of moon around itself + float moonOrbitRotation = 0.0f; // Rotation of moon around earth in degrees + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + UpdateCamera(&camera); + + earthRotation += (5.0f*rotationSpeed); + earthOrbitRotation += (365/360.0f*(5.0f*rotationSpeed)*rotationSpeed); + moonRotation += (2.0f*rotationSpeed); + moonOrbitRotation += (8.0f*rotationSpeed); + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginMode3D(camera); + + rlPushMatrix(); + rlScalef(sunRadius, sunRadius, sunRadius); // Scale Sun + DrawSphereBasic(GOLD); // Draw the Sun + rlPopMatrix(); + + rlPushMatrix(); + rlRotatef(earthOrbitRotation, 0.0f, 1.0f, 0.0f); // Rotation for Earth orbit around Sun + rlTranslatef(earthOrbitRadius, 0.0f, 0.0f); // Translation for Earth orbit + rlRotatef(-earthOrbitRotation, 0.0f, 1.0f, 0.0f); // Rotation for Earth orbit around Sun inverted + + rlPushMatrix(); + rlRotatef(earthRotation, 0.25, 1.0, 0.0); // Rotation for Earth itself + rlScalef(earthRadius, earthRadius, earthRadius);// Scale Earth + + DrawSphereBasic(BLUE); // Draw the Earth + rlPopMatrix(); + + rlRotatef(moonOrbitRotation, 0.0f, 1.0f, 0.0f); // Rotation for Moon orbit around Earth + rlTranslatef(moonOrbitRadius, 0.0f, 0.0f); // Translation for Moon orbit + rlRotatef(-moonOrbitRotation, 0.0f, 1.0f, 0.0f); // Rotation for Moon orbit around Earth inverted + rlRotatef(moonRotation, 0.0f, 1.0f, 0.0f); // Rotation for Moon itself + rlScalef(moonRadius, moonRadius, moonRadius); // Scale Moon + + DrawSphereBasic(LIGHTGRAY); // Draw the Moon + rlPopMatrix(); + + // Some reference elements (not affected by previous matrix transformations) + DrawCircle3D((Vector3){ 0.0f, 0.0f, 0.0f }, earthOrbitRadius, (Vector3){ 1, 0, 0 }, 90.0f, Fade(RED, 0.5f)); + DrawGrid(20, 1.0f); + + EndMode3D(); + + DrawText("EARTH ORBITING AROUND THE SUN!", 400, 10, 20, MAROON); + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//-------------------------------------------------------------------------------------------- +// Module Functions Definitions (local) +//-------------------------------------------------------------------------------------------- + +// Draw sphere without any matrix transformation +// NOTE: Sphere is drawn in world position ( 0, 0, 0 ) with radius 1.0f +void DrawSphereBasic(Color color) +{ + int rings = 16; + int slices = 16; + + rlBegin(RL_TRIANGLES); + rlColor4ub(color.r, color.g, color.b, color.a); + + for (int i = 0; i < (rings + 2); i++) + { + for (int j = 0; j < slices; j++) + { + rlVertex3f(cosf(DEG2RAD*(270+(180/(rings + 1))*i))*sinf(DEG2RAD*(j*360/slices)), + sinf(DEG2RAD*(270+(180/(rings + 1))*i)), + cosf(DEG2RAD*(270+(180/(rings + 1))*i))*cosf(DEG2RAD*(j*360/slices))); + rlVertex3f(cosf(DEG2RAD*(270+(180/(rings + 1))*(i+1)))*sinf(DEG2RAD*((j+1)*360/slices)), + sinf(DEG2RAD*(270+(180/(rings + 1))*(i+1))), + cosf(DEG2RAD*(270+(180/(rings + 1))*(i+1)))*cosf(DEG2RAD*((j+1)*360/slices))); + rlVertex3f(cosf(DEG2RAD*(270+(180/(rings + 1))*(i+1)))*sinf(DEG2RAD*(j*360/slices)), + sinf(DEG2RAD*(270+(180/(rings + 1))*(i+1))), + cosf(DEG2RAD*(270+(180/(rings + 1))*(i+1)))*cosf(DEG2RAD*(j*360/slices))); + + rlVertex3f(cosf(DEG2RAD*(270+(180/(rings + 1))*i))*sinf(DEG2RAD*(j*360/slices)), + sinf(DEG2RAD*(270+(180/(rings + 1))*i)), + cosf(DEG2RAD*(270+(180/(rings + 1))*i))*cosf(DEG2RAD*(j*360/slices))); + rlVertex3f(cosf(DEG2RAD*(270+(180/(rings + 1))*(i)))*sinf(DEG2RAD*((j+1)*360/slices)), + sinf(DEG2RAD*(270+(180/(rings + 1))*(i))), + cosf(DEG2RAD*(270+(180/(rings + 1))*(i)))*cosf(DEG2RAD*((j+1)*360/slices))); + rlVertex3f(cosf(DEG2RAD*(270+(180/(rings + 1))*(i+1)))*sinf(DEG2RAD*((j+1)*360/slices)), + sinf(DEG2RAD*(270+(180/(rings + 1))*(i+1))), + cosf(DEG2RAD*(270+(180/(rings + 1))*(i+1)))*cosf(DEG2RAD*((j+1)*360/slices))); + } + } + rlEnd(); +} diff --git a/examples/src/models/models_skybox.c b/examples/src/models/models_skybox.c index 6f6002b..759c79c 100644 --- a/examples/src/models/models_skybox.c +++ b/examples/src/models/models_skybox.c @@ -21,7 +21,7 @@ int main() InitWindow(screenWidth, screenHeight, "raylib [models] example - skybox loading and drawing"); // Define the camera to look into our 3d world - Camera camera = {{ 1.0f, 1.0f, 1.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; + Camera camera = {{ 1.0f, 1.0f, 1.0f }, { 4.0f, 1.0f, 4.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; // Load skybox model Mesh cube = GenMeshCube(1.0f, 1.0f, 1.0f); @@ -29,19 +29,19 @@ int main() // Load skybox shader and set required locations // NOTE: Some locations are automatically set at shader loading - skybox.material.shader = LoadShader("resources/shaders/skybox.vs", "resources/shaders/skybox.fs"); - SetShaderValuei(skybox.material.shader, GetShaderLocation(skybox.material.shader, "environmentMap"), (int[1]){ MAP_CUBEMAP }, 1); + skybox.materials[0].shader = LoadShader("resources/shaders/skybox.vs", "resources/shaders/skybox.fs"); + SetShaderValue(skybox.materials[0].shader, GetShaderLocation(skybox.materials[0].shader, "environmentMap"), (int[1]){ MAP_CUBEMAP }, UNIFORM_INT); // Load cubemap shader and setup required shader locations Shader shdrCubemap = LoadShader("resources/shaders/cubemap.vs", "resources/shaders/cubemap.fs"); - SetShaderValuei(shdrCubemap, GetShaderLocation(shdrCubemap, "equirectangularMap"), (int[1]){ 0 }, 1); + SetShaderValue(shdrCubemap, GetShaderLocation(shdrCubemap, "equirectangularMap"), (int[1]){ 0 }, UNIFORM_INT); // Load HDR panorama (sphere) texture Texture2D texHDR = LoadTexture("resources/dresden_square.hdr"); // Generate cubemap (texture with 6 quads-cube-mapping) from panorama HDR texture // NOTE: New texture is generated rendering to texture, shader computes the sphre->cube coordinates mapping - skybox.material.maps[MAP_CUBEMAP].texture = GenTextureCubemap(shdrCubemap, texHDR, 512); + skybox.materials[0].maps[MAP_CUBEMAP].texture = GenTextureCubemap(shdrCubemap, texHDR, 512); UnloadTexture(texHDR); // Texture not required anymore, cubemap already generated UnloadShader(shdrCubemap); // Unload cubemap generation shader, not required anymore diff --git a/examples/src/models/models_yaw_pitch_roll.c b/examples/src/models/models_yaw_pitch_roll.c index 652f168..658be08 100644 --- a/examples/src/models/models_yaw_pitch_roll.c +++ b/examples/src/models/models_yaw_pitch_roll.c @@ -5,9 +5,9 @@ * This example has been created using raylib 1.8 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * -* Example based on Berni work on Raspberry Pi +* Example contributed by Berni (@Berni8k) and reviewed by Ramon Santamaria (@raysan5) * -* Copyright (c) 2017 Ramon Santamaria (@raysan5) +* Copyright (c) 2017 Berni (@Berni8k) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ @@ -37,10 +37,10 @@ int main() RenderTexture2D framebuffer = LoadRenderTexture(192, 192); // Model loading - Model model = LoadModel("resources/plane.obj"); // Load OBJ model - model.material.maps[MAP_DIFFUSE].texture = LoadTexture("resources/plane_diffuse.png"); // Set map diffuse texture + Model model = LoadModel("resources/plane.obj"); // Load OBJ model + model.materials[0].maps[MAP_DIFFUSE].texture = LoadTexture("resources/plane_diffuse.png"); // Set map diffuse texture - GenTextureMipmaps(&model.material.maps[MAP_DIFFUSE].texture); + GenTextureMipmaps(&model.materials[0].maps[MAP_DIFFUSE].texture); Camera camera = { 0 }; camera.position = (Vector3){ 0.0f, 60.0f, -120.0f };// Camera position perspective diff --git a/examples/src/physac/physics_demo.c b/examples/src/physac/physics_demo.c index 1b54d51..a92bb9e 100644 --- a/examples/src/physac/physics_demo.c +++ b/examples/src/physac/physics_demo.c @@ -7,16 +7,18 @@ * * Use the following line to compile: * -* gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib_icon -static -lraylib -lpthread -* -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition +* gcc -o $(NAME_PART).exe $(FILE_NAME) -s -static / +* -lraylib -lpthread -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm / +* -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition * -* Copyright (c) 2017 Victor Fisac +* Copyright (c) 2016-2018 Victor Fisac * ********************************************************************************************/ #include "raylib.h" #define PHYSAC_IMPLEMENTATION +#define PHYSAC_NO_THREADS #include "physac.h" int main() @@ -32,6 +34,7 @@ int main() // Physac logo drawing position int logoX = screenWidth - MeasureText("Physac", 30) - 10; int logoY = 15; + bool needsReset = false; // Initialize physics and default physics bodies InitPhysics(); @@ -52,15 +55,25 @@ int main() { // Update //---------------------------------------------------------------------------------- - if (IsKeyPressed('R')) // Reset physics input - { - ResetPhysics(); + // Delay initialization of variables due to physics reset async + RunPhysicsStep(); + if (needsReset) + { floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, 500, 100, 10); floor->enabled = false; circle = CreatePhysicsBodyCircle((Vector2){ screenWidth/2, screenHeight/2 }, 45, 10); circle->enabled = false; + + needsReset = false; + } + + // Reset physics input + if (IsKeyPressed('R')) + { + ResetPhysics(); + needsReset = true; } // Physics body creation inputs @@ -127,4 +140,3 @@ int main() return 0; } - diff --git a/examples/src/physac/physics_friction.c b/examples/src/physac/physics_friction.c index 9472729..337a126 100644 --- a/examples/src/physac/physics_friction.c +++ b/examples/src/physac/physics_friction.c @@ -7,16 +7,18 @@ * * Use the following line to compile: * -* gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib_icon -static -lraylib -lpthread -* -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition +* gcc -o $(NAME_PART).exe $(FILE_NAME) -s -static / +* -lraylib -lpthread -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm / +* -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition * -* Copyright (c) 2017 Victor Fisac +* Copyright (c) 2016-2018 Victor Fisac * ********************************************************************************************/ #include "raylib.h" #define PHYSAC_IMPLEMENTATION +#define PHYSAC_NO_THREADS #include "physac.h" int main() @@ -71,6 +73,8 @@ int main() { // Update //---------------------------------------------------------------------------------- + RunPhysicsStep(); + if (IsKeyPressed('R')) // Reset physics input { // Reset dynamic physics bodies position, velocity and rotation @@ -141,4 +145,3 @@ int main() return 0; } - diff --git a/examples/src/physac/physics_movement.c b/examples/src/physac/physics_movement.c index 4b2c9ab..e799eaa 100644 --- a/examples/src/physac/physics_movement.c +++ b/examples/src/physac/physics_movement.c @@ -7,16 +7,18 @@ * * Use the following line to compile: * -* gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib_icon -static -lraylib -lpthread -* -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition +* gcc -o $(NAME_PART).exe $(FILE_NAME) -s -static / +* -lraylib -lpthread -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm / +* -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition * -* Copyright (c) 2017 Victor Fisac +* Copyright (c) 2016-2018 Victor Fisac * ********************************************************************************************/ #include "raylib.h" #define PHYSAC_IMPLEMENTATION +#define PHYSAC_NO_THREADS #include "physac.h" #define VELOCITY 0.5f @@ -64,6 +66,8 @@ int main() { // Update //---------------------------------------------------------------------------------- + RunPhysicsStep(); + if (IsKeyPressed('R')) // Reset physics input { // Reset movement physics body position, velocity and rotation @@ -127,4 +131,3 @@ int main() return 0; } - diff --git a/examples/src/physac/physics_restitution.c b/examples/src/physac/physics_restitution.c index 2be8f42..3231d0c 100644 --- a/examples/src/physac/physics_restitution.c +++ b/examples/src/physac/physics_restitution.c @@ -7,16 +7,18 @@ * * Use the following line to compile: * -* gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib_icon -static -lraylib -lpthread -* -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition +* gcc -o $(NAME_PART).exe $(FILE_NAME) -s -static / +* -lraylib -lpthread -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm / +* -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition * -* Copyright (c) 2017 Victor Fisac +* Copyright (c) 2016-2018 Victor Fisac * ********************************************************************************************/ #include "raylib.h" #define PHYSAC_IMPLEMENTATION +#define PHYSAC_NO_THREADS #include "physac.h" int main() @@ -50,6 +52,9 @@ int main() circleC->restitution = 1; SetTargetFPS(60); + + // Restitution demo needs a very tiny physics time step for a proper simulation + SetPhysicsTimeStep(1.0/60.0/100 * 1000); //-------------------------------------------------------------------------------------- // Main game loop @@ -57,6 +62,8 @@ int main() { // Update //---------------------------------------------------------------------------------- + RunPhysicsStep(); + if (IsKeyPressed('R')) // Reset physics input { // Reset circles physics bodies position and velocity @@ -120,4 +127,3 @@ int main() return 0; } - diff --git a/examples/src/physac/physics_shatter.c b/examples/src/physac/physics_shatter.c index 6b474cd..7478522 100644 --- a/examples/src/physac/physics_shatter.c +++ b/examples/src/physac/physics_shatter.c @@ -7,17 +7,19 @@ * * Use the following line to compile: * -* gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib_icon -static -lraylib -lpthread -* -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition +* gcc -o $(NAME_PART).exe $(FILE_NAME) -s -static / +* -lraylib -lpthread -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm / +* -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition * -* Copyright (c) 2017 Victor Fisac +* Copyright (c) 2016-2018 Victor Fisac * ********************************************************************************************/ #include "raylib.h" #define PHYSAC_IMPLEMENTATION -#include "physac.h" +#define PHYSAC_NO_THREADS +#include "physac.h" int main() { @@ -32,14 +34,15 @@ int main() // Physac logo drawing position int logoX = screenWidth - MeasureText("Physac", 30) - 10; int logoY = 15; + bool needsReset = false; // Initialize physics and default physics bodies InitPhysics(); SetPhysicsGravity(0, 0); // Create random polygon physics body to shatter - PhysicsBody body = CreatePhysicsBodyPolygon((Vector2){ screenWidth/2, screenHeight/2 }, GetRandomValue(80, 200), GetRandomValue(3, 8), 10); - + CreatePhysicsBodyPolygon((Vector2){ screenWidth/2, screenHeight/2 }, GetRandomValue(80, 200), GetRandomValue(3, 8), 10); + SetTargetFPS(60); //-------------------------------------------------------------------------------------- @@ -47,13 +50,21 @@ int main() while (!WindowShouldClose()) // Detect window close button or ESC key { // Update + RunPhysicsStep(); + //---------------------------------------------------------------------------------- + // Delay initialization of variables due to physics reset asynchronous + if (needsReset) + { + // Create random polygon physics body to shatter + CreatePhysicsBodyPolygon((Vector2){ screenWidth/2, screenHeight/2 }, GetRandomValue(80, 200), GetRandomValue(3, 8), 10); + needsReset = false; + } + if (IsKeyPressed('R')) // Reset physics input { ResetPhysics(); - - // Create random polygon physics body to shatter - body = CreatePhysicsBodyPolygon((Vector2){ screenWidth/2, screenHeight/2 }, GetRandomValue(80, 200), GetRandomValue(3, 8), 10); + needsReset = true; } if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) // Physics shatter input @@ -112,4 +123,3 @@ int main() return 0; } - diff --git a/examples/src/shaders/shaders_custom_uniform.c b/examples/src/shaders/shaders_custom_uniform.c index a0f6fd2..74b9e77 100644 --- a/examples/src/shaders/shaders_custom_uniform.c +++ b/examples/src/shaders/shaders_custom_uniform.c @@ -18,6 +18,12 @@ #include "raylib.h" +#if defined(PLATFORM_DESKTOP) + #define GLSL_VERSION 330 +#else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB + #define GLSL_VERSION 100 +#endif + int main() { // Initialization @@ -30,16 +36,22 @@ int main() InitWindow(screenWidth, screenHeight, "raylib [shaders] example - custom uniform variable"); // Define the camera to look into our 3d world - Camera camera = {{ 3.0f, 3.0f, 3.0f }, { 0.0f, 1.5f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f }; - - Model dwarf = LoadModel("resources/model/dwarf.obj"); // Load OBJ model - Texture2D texture = LoadTexture("resources/model/dwarf_diffuse.png"); // Load model texture (diffuse map) - dwarf.material.maps[MAP_DIFFUSE].texture = texture; // Set dwarf model diffuse texture - - Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position + Camera camera = { 0 }; + camera.position = (Vector3){ 8.0f, 8.0f, 8.0f }; + camera.target = (Vector3){ 0.0f, 1.5f, 0.0f }; + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; + camera.fovy = 45.0f; + camera.type = CAMERA_PERSPECTIVE; + + Model model = LoadModel("resources/models/barracks.obj"); // Load OBJ model + Texture2D texture = LoadTexture("resources/models/barracks_diffuse.png"); // Load model texture (diffuse map) + model.materials[0].maps[MAP_DIFFUSE].texture = texture; // Set model diffuse texture + + Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position - Shader shader = LoadShader("resources/shaders/glsl330/base.vs", - "resources/shaders/glsl330/swirl.fs"); // Load postpro shader + // Load postprocessing shader + // NOTE: Defining 0 (NULL) for vertex shader forces usage of internal default vertex shader + Shader shader = LoadShader(0, FormatText("resources/shaders/glsl%i/swirl.fs", GLSL_VERSION)); // Get variable (uniform) location on the shader to connect with the program // NOTE: If uniform variable could not be found in the shader, function returns -1 @@ -67,7 +79,7 @@ int main() swirlCenter[1] = screenHeight - mousePosition.y; // Send new value to the shader to be used on drawing - SetShaderValue(shader, swirlCenterLoc, swirlCenter, 2); + SetShaderValue(shader, swirlCenterLoc, swirlCenter, UNIFORM_VEC2); UpdateCamera(&camera); // Update camera //---------------------------------------------------------------------------------- @@ -78,19 +90,21 @@ int main() ClearBackground(RAYWHITE); - BeginTextureMode(target); // Enable drawing to texture + BeginTextureMode(target); // Enable drawing to texture + + ClearBackground(RAYWHITE); // Clear texture background - Begin3dMode(camera); + BeginMode3D(camera); // Begin 3d mode drawing - DrawModel(dwarf, position, 2.0f, WHITE); // Draw 3d model with texture + DrawModel(model, position, 0.5f, WHITE); // Draw 3d model with texture DrawGrid(10, 1.0f); // Draw a grid - End3dMode(); + EndMode3D(); // End 3d mode drawing, returns to orthographic 2d mode DrawText("TEXT DRAWN IN RENDER TEXTURE", 200, 10, 30, RED); - EndTextureMode(); // End drawing to texture (now we have a texture available for next passes) + EndTextureMode(); // End drawing to texture (now we have a texture available for next passes) BeginShaderMode(shader); @@ -99,8 +113,9 @@ int main() EndShaderMode(); - DrawText("(c) Dwarf 3D model by David Moreno", screenWidth - 200, screenHeight - 20, 10, GRAY); - + // Draw some 2d text over drawn texture + DrawText("(c) Barracks 3D model by Alberto Cano", screenWidth - 220, screenHeight - 20, 10, GRAY); + DrawFPS(10, 10); EndDrawing(); @@ -111,7 +126,7 @@ int main() //-------------------------------------------------------------------------------------- UnloadShader(shader); // Unload shader UnloadTexture(texture); // Unload texture - UnloadModel(dwarf); // Unload model + UnloadModel(model); // Unload model UnloadRenderTexture(target); // Unload render texture CloseWindow(); // Close window and OpenGL context diff --git a/examples/src/shaders/shaders_julia_set.c b/examples/src/shaders/shaders_julia_set.c new file mode 100644 index 0000000..c4dac6d --- /dev/null +++ b/examples/src/shaders/shaders_julia_set.c @@ -0,0 +1,179 @@ +/******************************************************************************************* +* +* raylib [shaders] example - julia sets +* +* NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, +* OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. +* +* NOTE: Shaders used in this example are #version 330 (OpenGL 3.3). +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by eggmund (@eggmund) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2019 eggmund (@eggmund) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include "raymath.h" + +// A few good julia sets +const float POINTS_OF_INTEREST[6][2] = +{ + { -0.348827, 0.607167 }, + { -0.786268, 0.169728 }, + { -0.8, 0.156 }, + { 0.285, 0.0 }, + { -0.835, -0.2321 }, + { -0.70176, -0.3842 }, +}; + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - julia sets"); + + // Load julia set shader + // NOTE: Defining 0 (NULL) for vertex shader forces usage of internal default vertex shader + Shader shader = LoadShader(0, "resources/shaders/glsl330/julia_shader.fs"); + + // c constant to use in z^2 + c + float c[2] = { POINTS_OF_INTEREST[0][0], POINTS_OF_INTEREST[0][1] }; + + // Offset and zoom to draw the julia set at. (centered on screen and 1.6 times smaller) + float offset[2] = { -(float)screenWidth/2, -(float)screenHeight/2 }; + float zoom = 1.6f; + + // Get variable (uniform) locations on the shader to connect with the program + // NOTE: If uniform variable could not be found in the shader, function returns -1 + int cLoc = GetShaderLocation(shader, "c"); + int zoomLoc = GetShaderLocation(shader, "zoom"); + int offsetLoc = GetShaderLocation(shader, "offset"); + + // Tell the shader what the screen dimensions, zoom, offset and c are + float screenDims[2] = { (float)screenWidth, (float)screenHeight }; + SetShaderValue(shader, GetShaderLocation(shader, "screenDims"), screenDims, UNIFORM_VEC2); + + SetShaderValue(shader, cLoc, c, UNIFORM_VEC2); + SetShaderValue(shader, zoomLoc, &zoom, UNIFORM_FLOAT); + SetShaderValue(shader, offsetLoc, offset, UNIFORM_VEC2); + + // Create a RenderTexture2D to be used for render to texture + RenderTexture2D target = LoadRenderTexture(screenWidth, screenHeight); + + int incrementSpeed = 3; // Multiplier of speed to change c value + bool showControls = true; // Show controls + bool pause = false; // Pause animation + + SetTargetFPS(60); // Set the window to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + + // Press [1 - 6] to reset c to a point of interest + if (IsKeyPressed(KEY_ONE) || + IsKeyPressed(KEY_TWO) || + IsKeyPressed(KEY_THREE) || + IsKeyPressed(KEY_FOUR) || + IsKeyPressed(KEY_FIVE) || + IsKeyPressed(KEY_SIX)) + { + if (IsKeyPressed(KEY_ONE)) c[0] = POINTS_OF_INTEREST[0][0], c[1] = POINTS_OF_INTEREST[0][1]; + else if (IsKeyPressed(KEY_TWO)) c[0] = POINTS_OF_INTEREST[1][0], c[1] = POINTS_OF_INTEREST[1][1]; + else if (IsKeyPressed(KEY_THREE)) c[0] = POINTS_OF_INTEREST[2][0], c[1] = POINTS_OF_INTEREST[2][1]; + else if (IsKeyPressed(KEY_FOUR)) c[0] = POINTS_OF_INTEREST[3][0], c[1] = POINTS_OF_INTEREST[3][1]; + else if (IsKeyPressed(KEY_FIVE)) c[0] = POINTS_OF_INTEREST[4][0], c[1] = POINTS_OF_INTEREST[4][1]; + else if (IsKeyPressed(KEY_SIX)) c[0] = POINTS_OF_INTEREST[5][0], c[1] = POINTS_OF_INTEREST[5][1]; + + SetShaderValue(shader, cLoc, c, UNIFORM_VEC2); + } + + if (IsKeyPressed(KEY_P)) pause = !pause; // Pause animation (c change) + if (IsKeyPressed(KEY_F1)) showControls = !showControls; // Toggle whether or not to show controls + + if (!pause) + { + if (IsKeyDown(KEY_RIGHT)) incrementSpeed++; + else if (IsKeyDown(KEY_LEFT)) incrementSpeed--; + + // Use mouse wheel to change zoom + zoom -= (float)GetMouseWheelMove()/10.f; + SetShaderValue(shader, zoomLoc, &zoom, UNIFORM_FLOAT); + + // Use mouse button to change offset + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) + { + // TODO: Logic is not correct, the idea is getting zoom focus to pointed area + Vector2 mousePos = GetMousePosition(); + + offset[0] = mousePos.x -(float)screenWidth; + offset[1] = mousePos.y -(float)screenHeight; + + SetShaderValue(shader, offsetLoc, offset, UNIFORM_VEC2); + } + + // Increment c value with time + float amount = GetFrameTime()*incrementSpeed*0.0005f; + c[0] += amount; + c[1] += amount; + + SetShaderValue(shader, cLoc, c, UNIFORM_VEC2); + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(BLACK); // Clear the screen of the previous frame. + + // Using a render texture to draw Julia set + BeginTextureMode(target); // Enable drawing to texture + ClearBackground(BLACK); // Clear the render texture + + // Draw a rectangle in shader mode + // NOTE: This acts as a canvas for the shader to draw on + BeginShaderMode(shader); + DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), BLACK); + EndShaderMode(); + EndTextureMode(); + + // Draw the saved texture (rendered julia set) + DrawTextureRec(target.texture, (Rectangle){ 0, 0, target.texture.width, -target.texture.height }, Vector2Zero(), WHITE); + + // Draw information + //DrawText( FormatText("cx: %f\ncy: %f\nspeed: %d", c[0], c[1], incrementSpeed), 10, 10, 10, RAYWHITE); + + if (showControls) + { + DrawText("Press keys [1 - 6] to change point of interest", 10, GetScreenHeight() - 60, 10, RAYWHITE); + DrawText("Press KEY_LEFT | KEY_RIGHT to change speed", 10, GetScreenHeight() - 45, 10, RAYWHITE); + DrawText("Press KEY_P to pause movement animation", 10, GetScreenHeight() - 30, 10, RAYWHITE); + DrawText("Press KEY_F1 to toggle these controls", 10, GetScreenHeight() - 15, 10, RAYWHITE); + } + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadShader(shader); // Unload shader + UnloadRenderTexture(target); // Unload render texture + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/src/shaders/shaders_model_shader.c b/examples/src/shaders/shaders_model_shader.c index b0ad1fd..2717c19 100644 --- a/examples/src/shaders/shaders_model_shader.c +++ b/examples/src/shaders/shaders_model_shader.c @@ -12,12 +12,18 @@ * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * -* Copyright (c) 2014-2017 Ramon Santamaria (@raysan5) +* Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #include "raylib.h" +#if defined(PLATFORM_DESKTOP) + #define GLSL_VERSION 330 +#else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB + #define GLSL_VERSION 100 +#endif + int main() { // Initialization @@ -30,19 +36,26 @@ int main() InitWindow(screenWidth, screenHeight, "raylib [shaders] example - model shader"); // Define the camera to look into our 3d world - Camera camera = {{ 3.0f, 3.0f, 3.0f }, { 0.0f, 1.5f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f }; - - Model dwarf = LoadModel("resources/model/dwarf.obj"); // Load OBJ model - Texture2D texture = LoadTexture("resources/model/dwarf_diffuse.png"); // Load model texture - Shader shader = LoadShader("resources/shaders/glsl330/base.vs", - "resources/shaders/glsl330/grayscale.fs"); // Load model shader + Camera camera = { 0 }; + camera.position = (Vector3){ 4.0f, 4.0f, 4.0f }; + camera.target = (Vector3){ 0.0f, 1.0f, -1.0f }; + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; + camera.fovy = 45.0f; + camera.type = CAMERA_PERSPECTIVE; + + Model model = LoadModel("resources/models/watermill.obj"); // Load OBJ model + Texture2D texture = LoadTexture("resources/models/watermill_diffuse.png"); // Load model texture + + // Load shader for model + // NOTE: Defining 0 (NULL) for vertex shader forces usage of internal default vertex shader + Shader shader = LoadShader(0, FormatText("resources/shaders/glsl%i/grayscale.fs", GLSL_VERSION)); - dwarf.material.shader = shader; // Set shader effect to 3d model - dwarf.material.maps[MAP_DIFFUSE].texture = texture; // Bind texture to model + model.materials[0].shader = shader; // Set shader effect to 3d model + model.materials[0].maps[MAP_DIFFUSE].texture = texture; // Bind texture to model Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position - SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode + SetCameraMode(camera, CAMERA_FREE); // Set an orbital camera mode SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- @@ -61,15 +74,15 @@ int main() ClearBackground(RAYWHITE); - Begin3dMode(camera); + BeginMode3D(camera); - DrawModel(dwarf, position, 2.0f, WHITE); // Draw 3d model with texture + DrawModel(model, position, 0.2f, WHITE); // Draw 3d model with texture DrawGrid(10, 1.0f); // Draw a grid - End3dMode(); + EndMode3D(); - DrawText("(c) Dwarf 3D model by David Moreno", screenWidth - 200, screenHeight - 20, 10, GRAY); + DrawText("(c) Watermill 3D model by Alberto Cano", screenWidth - 210, screenHeight - 20, 10, GRAY); DrawText(FormatText("Camera position: (%.2f, %.2f, %.2f)", camera.position.x, camera.position.y, camera.position.z), 600, 20, 10, BLACK); DrawText(FormatText("Camera target: (%.2f, %.2f, %.2f)", camera.target.x, camera.target.y, camera.target.z), 600, 40, 10, GRAY); @@ -84,7 +97,7 @@ int main() //-------------------------------------------------------------------------------------- UnloadShader(shader); // Unload shader UnloadTexture(texture); // Unload texture - UnloadModel(dwarf); // Unload model + UnloadModel(model); // Unload model CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- diff --git a/examples/src/shaders/shaders_palette_switch.c b/examples/src/shaders/shaders_palette_switch.c new file mode 100644 index 0000000..197ae54 --- /dev/null +++ b/examples/src/shaders/shaders_palette_switch.c @@ -0,0 +1,147 @@ +/******************************************************************************************* +* +* raylib [shaders] example - Color palette switch +* +* NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, +* OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. +* +* NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example +* on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders +* raylib comes with shaders ready for both versions, check raylib/shaders install folder +* +* This example has been created using raylib 2.3 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Marco Lizza (@MarcoLizza) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2019 Marco Lizza (@MarcoLizza) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#if defined(PLATFORM_DESKTOP) + #define GLSL_VERSION 330 +#else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB + #define GLSL_VERSION 100 +#endif + +#define MAX_PALETTES 3 +#define COLORS_PER_PALETTE 8 +#define VALUES_PER_COLOR 3 + +static const int palettes[MAX_PALETTES][COLORS_PER_PALETTE*VALUES_PER_COLOR] = { + { // 3-BIT RGB + 0, 0, 0, + 255, 0, 0, + 0, 255, 0, + 0, 0, 255, + 0, 255, 255, + 255, 0, 255, + 255, 255, 0, + 255, 255, 255, + }, + { // AMMO-8 (GameBoy-like) + 4, 12, 6, + 17, 35, 24, + 30, 58, 41, + 48, 93, 66, + 77, 128, 97, + 137, 162, 87, + 190, 220, 127, + 238, 255, 204, + }, + { // RKBV (2-strip film) + 21, 25, 26, + 138, 76, 88, + 217, 98, 117, + 230, 184, 193, + 69, 107, 115, + 75, 151, 166, + 165, 189, 194, + 255, 245, 247, + } +}; + +static const char *paletteText[] = { + "3-BIT RGB", + "AMMO-8 (GameBoy-like)", + "RKBV (2-strip film)" +}; + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - color palette switch"); + + // Load shader to be used on some parts drawing + // NOTE 1: Using GLSL 330 shader version, on OpenGL ES 2.0 use GLSL 100 shader version + // NOTE 2: Defining 0 (NULL) for vertex shader forces usage of internal default vertex shader + Shader shader = LoadShader(0, FormatText("resources/shaders/glsl%i/palette-switch.fs", GLSL_VERSION)); + + // Get variable (uniform) location on the shader to connect with the program + // NOTE: If uniform variable could not be found in the shader, function returns -1 + int paletteLoc = GetShaderLocation(shader, "palette"); + + int currentPalette = 0; + int lineHeight = screenHeight/COLORS_PER_PALETTE; + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + if (IsKeyPressed(KEY_RIGHT)) currentPalette++; + else if (IsKeyPressed(KEY_LEFT)) currentPalette--; + + if (currentPalette >= MAX_PALETTES) currentPalette = 0; + else if (currentPalette < 0) currentPalette = MAX_PALETTES - 1; + + // Send new value to the shader to be used on drawing. + // NOTE: We are sending RGB triplets w/o the alpha channel + SetShaderValueV(shader, paletteLoc, palettes[currentPalette], UNIFORM_IVEC3, COLORS_PER_PALETTE); + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginShaderMode(shader); + + for (int i = 0; i < COLORS_PER_PALETTE; i++) + { + // Draw horizontal screen-wide rectangles with increasing "palette index" + // The used palette index is encoded in the RGB components of the pixel + DrawRectangle(0, lineHeight*i, GetScreenWidth(), lineHeight, (Color){ i, i, i, 255 }); + } + + EndShaderMode(); + + DrawText("< >", 10, 10, 30, DARKBLUE); + DrawText("CURRENT PALETTE:", 60, 15, 20, RAYWHITE); + DrawText(paletteText[currentPalette], 300, 15, 20, RED); + + DrawFPS(700, 15); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadShader(shader); // Unload shader + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/src/shaders/shaders_postprocessing.c b/examples/src/shaders/shaders_postprocessing.c index 4aac5f9..7c14641 100644 --- a/examples/src/shaders/shaders_postprocessing.c +++ b/examples/src/shaders/shaders_postprocessing.c @@ -20,10 +20,8 @@ #if defined(PLATFORM_DESKTOP) #define GLSL_VERSION 330 - #define DEFAULT_VERTEX_SHADER "resources/shaders/glsl330/base.vs" #else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB #define GLSL_VERSION 100 - #define DEFAULT_VERTEX_SHADER "resources/shaders/glsl100/base.vs" #endif #define MAX_POSTPRO_SHADERS 12 @@ -72,31 +70,32 @@ int main() InitWindow(screenWidth, screenHeight, "raylib [shaders] example - postprocessing shader"); // Define the camera to look into our 3d world - Camera camera = {{ 3.0f, 3.0f, 3.0f }, { 0.0f, 1.5f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f }; + Camera camera = {{ 2.0f, 3.0f, 2.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; - Model dwarf = LoadModel("resources/model/dwarf.obj"); // Load OBJ model - Texture2D texture = LoadTexture("resources/model/dwarf_diffuse.png"); // Load model texture (diffuse map) - dwarf.material.maps[MAP_DIFFUSE].texture = texture; // Set dwarf model diffuse texture + Model model = LoadModel("resources/models/church.obj"); // Load OBJ model + Texture2D texture = LoadTexture("resources/models/church_diffuse.png"); // Load model texture (diffuse map) + model.materials[0].maps[MAP_DIFFUSE].texture = texture; // Set model diffuse texture - Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position + Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position // Load all postpro shaders // NOTE 1: All postpro shader use the base vertex shader (DEFAULT_VERTEX_SHADER) // NOTE 2: We load the correct shader depending on GLSL version Shader shaders[MAX_POSTPRO_SHADERS]; - shaders[FX_GRAYSCALE] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/grayscale.fs", GLSL_VERSION)); - shaders[FX_POSTERIZATION] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/posterization.fs", GLSL_VERSION)); - shaders[FX_DREAM_VISION] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/dream_vision.fs", GLSL_VERSION)); - shaders[FX_PIXELIZER] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/pixelizer.fs", GLSL_VERSION)); - shaders[FX_CROSS_HATCHING] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/cross_hatching.fs", GLSL_VERSION)); - shaders[FX_CROSS_STITCHING] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/cross_stitching.fs", GLSL_VERSION)); - shaders[FX_PREDATOR_VIEW] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/predator.fs", GLSL_VERSION)); - shaders[FX_SCANLINES] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/scanlines.fs", GLSL_VERSION)); - shaders[FX_FISHEYE] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/fisheye.fs", GLSL_VERSION)); - shaders[FX_SOBEL] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/sobel.fs", GLSL_VERSION)); - shaders[FX_BLOOM] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/bloom.fs", GLSL_VERSION)); - shaders[FX_BLUR] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/blur.fs", GLSL_VERSION)); + // NOTE: Defining 0 (NULL) for vertex shader forces usage of internal default vertex shader + shaders[FX_GRAYSCALE] = LoadShader(0, FormatText("resources/shaders/glsl%i/grayscale.fs", GLSL_VERSION)); + shaders[FX_POSTERIZATION] = LoadShader(0, FormatText("resources/shaders/glsl%i/posterization.fs", GLSL_VERSION)); + shaders[FX_DREAM_VISION] = LoadShader(0, FormatText("resources/shaders/glsl%i/dream_vision.fs", GLSL_VERSION)); + shaders[FX_PIXELIZER] = LoadShader(0, FormatText("resources/shaders/glsl%i/pixelizer.fs", GLSL_VERSION)); + shaders[FX_CROSS_HATCHING] = LoadShader(0, FormatText("resources/shaders/glsl%i/cross_hatching.fs", GLSL_VERSION)); + shaders[FX_CROSS_STITCHING] = LoadShader(0, FormatText("resources/shaders/glsl%i/cross_stitching.fs", GLSL_VERSION)); + shaders[FX_PREDATOR_VIEW] = LoadShader(0, FormatText("resources/shaders/glsl%i/predator.fs", GLSL_VERSION)); + shaders[FX_SCANLINES] = LoadShader(0, FormatText("resources/shaders/glsl%i/scanlines.fs", GLSL_VERSION)); + shaders[FX_FISHEYE] = LoadShader(0, FormatText("resources/shaders/glsl%i/fisheye.fs", GLSL_VERSION)); + shaders[FX_SOBEL] = LoadShader(0, FormatText("resources/shaders/glsl%i/sobel.fs", GLSL_VERSION)); + shaders[FX_BLOOM] = LoadShader(0, FormatText("resources/shaders/glsl%i/bloom.fs", GLSL_VERSION)); + shaders[FX_BLUR] = LoadShader(0, FormatText("resources/shaders/glsl%i/blur.fs", GLSL_VERSION)); int currentShader = FX_GRAYSCALE; @@ -129,17 +128,19 @@ int main() ClearBackground(RAYWHITE); - BeginTextureMode(target); // Enable drawing to texture + BeginTextureMode(target); // Enable drawing to texture - Begin3dMode(camera); + ClearBackground(RAYWHITE); // Clear texture background - DrawModel(dwarf, position, 2.0f, WHITE); // Draw 3d model with texture + BeginMode3D(camera); // Begin 3d mode drawing + + DrawModel(model, position, 0.1f, WHITE); // Draw 3d model with texture DrawGrid(10, 1.0f); // Draw a grid - End3dMode(); + EndMode3D(); // End 3d mode drawing, returns to orthographic 2d mode - EndTextureMode(); // End drawing to texture (now we have a texture available for next passes) + EndTextureMode(); // End drawing to texture (now we have a texture available for next passes) // Render previously generated texture using selected postpro shader BeginShaderMode(shaders[currentShader]); @@ -149,9 +150,10 @@ int main() EndShaderMode(); + // Draw 2d shapes and text over drawn texture DrawRectangle(0, 9, 580, 30, Fade(LIGHTGRAY, 0.7f)); - DrawText("(c) Dwarf 3D model by David Moreno", screenWidth - 200, screenHeight - 20, 10, DARKGRAY); + DrawText("(c) Church 3D model by Alberto Cano", screenWidth - 200, screenHeight - 20, 10, GRAY); DrawText("CURRENT POSTPRO SHADER:", 10, 15, 20, BLACK); DrawText(postproShaderText[currentShader], 330, 15, 20, RED); @@ -170,11 +172,11 @@ int main() for (int i = 0; i < MAX_POSTPRO_SHADERS; i++) UnloadShader(shaders[i]); UnloadTexture(texture); // Unload texture - UnloadModel(dwarf); // Unload model + UnloadModel(model); // Unload model UnloadRenderTexture(target); // Unload render texture CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; -} \ No newline at end of file +} diff --git a/examples/src/shaders/shaders_raymarching.c b/examples/src/shaders/shaders_raymarching.c new file mode 100644 index 0000000..f68222b --- /dev/null +++ b/examples/src/shaders/shaders_raymarching.c @@ -0,0 +1,112 @@ +/******************************************************************************************* +* +* raylib [shaders] example - Raymarching shapes generation +* +* NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, +* OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. +* +* NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example +* on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders +* raylib comes with shaders ready for both versions, check raylib/shaders install folder +* +* This example has been created using raylib 2.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2018 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#if defined(PLATFORM_DESKTOP) + #define GLSL_VERSION 330 +#else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB + #define GLSL_VERSION 100 +#endif + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - raymarching shapes"); + + Camera camera = { 0 }; + camera.position = (Vector3){ 2.5f, 2.5f, 3.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 0.0f, 0.7f }; // Camera looking at point + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) + camera.fovy = 65.0f; // Camera field-of-view Y + + SetCameraMode(camera, CAMERA_FREE); // Set camera mode + + // Load raymarching shader + // NOTE: Defining 0 (NULL) for vertex shader forces usage of internal default vertex shader + Shader shader = LoadShader(0, FormatText("resources/shaders/glsl%i/raymarching.fs", GLSL_VERSION)); + + // Get shader locations for required uniforms + int viewEyeLoc = GetShaderLocation(shader, "viewEye"); + int viewCenterLoc = GetShaderLocation(shader, "viewCenter"); + int viewUpLoc = GetShaderLocation(shader, "viewUp"); + int deltaTimeLoc = GetShaderLocation(shader, "deltaTime"); + int runTimeLoc = GetShaderLocation(shader, "runTime"); + int resolutionLoc = GetShaderLocation(shader, "resolution"); + + float resolution[2] = { screenWidth, screenHeight }; + SetShaderValue(shader, resolutionLoc, resolution, UNIFORM_VEC2); + + float runTime = 0.0f; + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + UpdateCamera(&camera); // Update camera + + float cameraPos[3] = { camera.position.x, camera.position.y, camera.position.z }; + float cameraTarget[3] = { camera.target.x, camera.target.y, camera.target.z }; + float cameraUp[3] = { camera.up.x, camera.up.y, camera.up.z }; + + float deltaTime = GetFrameTime(); + runTime += deltaTime; + + // Set shader required uniform values + SetShaderValue(shader, viewEyeLoc, cameraPos, UNIFORM_VEC3); + SetShaderValue(shader, viewCenterLoc, cameraTarget, UNIFORM_VEC3); + SetShaderValue(shader, viewUpLoc, cameraUp, UNIFORM_VEC3); + SetShaderValue(shader, deltaTimeLoc, &deltaTime, UNIFORM_FLOAT); + SetShaderValue(shader, runTimeLoc, &runTime, UNIFORM_FLOAT); + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + // We only draw a white full-screen rectangle, + // frame is generated in shader using raymarching + BeginShaderMode(shader); + DrawRectangle(0, 0, screenWidth, screenHeight, WHITE); + EndShaderMode(); + + DrawText("(c) Raymarching shader by Iñigo Quilez. MIT License.", screenWidth - 280, screenHeight - 20, 10, GRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadShader(shader); // Unload shader + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/shaders/shaders_shapes_textures.c b/examples/src/shaders/shaders_shapes_textures.c index e8c36a1..5ee5d56 100644 --- a/examples/src/shaders/shaders_shapes_textures.c +++ b/examples/src/shaders/shaders_shapes_textures.c @@ -18,6 +18,12 @@ #include "raylib.h" +#if defined(PLATFORM_DESKTOP) + #define GLSL_VERSION 330 +#else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB + #define GLSL_VERSION 100 +#endif + int main() { // Initialization @@ -29,9 +35,10 @@ int main() Texture2D fudesumi = LoadTexture("resources/fudesumi.png"); - // NOTE: Using GLSL 330 shader version, on OpenGL ES 2.0 use GLSL 100 shader version - Shader shader = LoadShader("resources/shaders/glsl330/base.vs", - "resources/shaders/glsl330/grayscale.fs"); + // Load shader to be used on some parts drawing + // NOTE 1: Using GLSL 330 shader version, on OpenGL ES 2.0 use GLSL 100 shader version + // NOTE 2: Defining 0 (NULL) for vertex shader forces usage of internal default vertex shader + Shader shader = LoadShader(0, FormatText("resources/shaders/glsl%i/grayscale.fs", GLSL_VERSION)); SetTargetFPS(60); //-------------------------------------------------------------------------------------- diff --git a/examples/src/shaders/shaders_texture_drawing.c b/examples/src/shaders/shaders_texture_drawing.c new file mode 100644 index 0000000..3a54009 --- /dev/null +++ b/examples/src/shaders/shaders_texture_drawing.c @@ -0,0 +1,79 @@ +/******************************************************************************************* +* +* raylib [textures] example - Texture drawing +* +* This example illustrates how to draw on a blank texture using a shader +* +* This example has been created using raylib 2.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by MichaÅ‚ Ciesielski and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2019 MichaÅ‚ Ciesielski and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#if defined(PLATFORM_DESKTOP) + #define GLSL_VERSION 330 +#else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB + #define GLSL_VERSION 100 +#endif + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - texture drawing"); + + Image imBlank = GenImageColor(1024, 1024, BLANK); + Texture2D texture = LoadTextureFromImage(imBlank); // Load blank texture to fill on shader + UnloadImage(imBlank); + + // NOTE: Using GLSL 330 shader version, on OpenGL ES 2.0 use GLSL 100 shader version + Shader shader = LoadShader(0, FormatText("resources/shaders/glsl%i/cubes_panning.fs", GLSL_VERSION)); + + float time = 0.0f; + int timeLoc = GetShaderLocation(shader, "uTime"); + SetShaderValue(shader, timeLoc, &time, UNIFORM_FLOAT); + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + while (!WindowShouldClose()) + { + // Update + //---------------------------------------------------------------------------------- + time = GetTime(); + SetShaderValue(shader, timeLoc, &time, UNIFORM_FLOAT); + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginShaderMode(shader); // Enable our custom shader for next shapes/textures drawings + DrawTexture(texture, 0, 0, WHITE); // Drawing BLANK texture, all magic happens on shader + EndShaderMode(); // Disable our custom shader, return to default shader + + DrawText("BACKGROUND is PAINTED and ANIMATED on SHADER!", 10, 10, 20, MAROON); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadShader(shader); + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/src/shaders/shaders_texture_waves.c b/examples/src/shaders/shaders_texture_waves.c new file mode 100644 index 0000000..bc677c7 --- /dev/null +++ b/examples/src/shaders/shaders_texture_waves.c @@ -0,0 +1,115 @@ +/******************************************************************************************* +* +* raylib [shaders] example - Texture Waves +* +* NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, +* OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. +* +* NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example +* on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders +* raylib comes with shaders ready for both versions, check raylib/shaders install folder +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Anata (@anatagawa) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2019 Anata (@anatagawa) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#if defined(PLATFORM_DESKTOP) + #define GLSL_VERSION 330 +#else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB + #define GLSL_VERSION 100 +#endif + +// ------------------------------------------------------------------------------------------------------------- +// Main Entry point +// ------------------------------------------------------------------------------------------------------------- +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - texture waves"); + + // Load space texture to apply shaders + Texture2D space = LoadTexture("resources/space.png"); + + // Load shader and setup location points and values + Shader wave = LoadShader(0, FormatText("resources/shaders/glsl%i/wave.fs", GLSL_VERSION)); + + float screenSizeLoc = GetShaderLocation(wave, "size"); + float secondsLoc = GetShaderLocation(wave, "secondes"); + float freqXLoc = GetShaderLocation(wave, "freqX"); + float freqYLoc = GetShaderLocation(wave, "freqY"); + float ampXLoc = GetShaderLocation(wave, "ampX"); + float ampYLoc = GetShaderLocation(wave, "ampY"); + float speedXLoc = GetShaderLocation(wave, "speedX"); + float speedYLoc = GetShaderLocation(wave, "speedY"); + + float screenSize[2] = { 800, 450 }; + + // Shader uniform values that can be updated at any time + float freqX = 25.0f; + float freqY = 25.0f; + float ampX = 5.0f; + float ampY = 5.0f; + float speedX = 8.0f; + float speedY = 8.0f; + + SetShaderValue(wave, screenSizeLoc, &screenSize, UNIFORM_VEC2); + SetShaderValue(wave, freqXLoc, &freqX, UNIFORM_FLOAT); + SetShaderValue(wave, freqYLoc, &freqY, UNIFORM_FLOAT); + SetShaderValue(wave, ampXLoc, &X, UNIFORM_FLOAT); + SetShaderValue(wave, ampYLoc, &Y, UNIFORM_FLOAT); + SetShaderValue(wave, speedXLoc, &speedX, UNIFORM_FLOAT); + SetShaderValue(wave, speedYLoc, &speedY, UNIFORM_FLOAT); + + float seconds = 0.0f; + + SetTargetFPS(60); + // ------------------------------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + seconds += GetFrameTime(); + + SetShaderValue(wave, secondsLoc, &seconds, UNIFORM_FLOAT); + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginShaderMode(wave); + + DrawTexture(space, 0, 0, WHITE); + DrawTexture(space, space.width, 0, WHITE); + + EndShaderMode(); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadShader(wave); // Unload shader + UnloadTexture(space); // Unload texture + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/src/shapes/shapes_basic_shapes.c b/examples/src/shapes/shapes_basic_shapes.c index 4b7cc26..67eea9d 100644 --- a/examples/src/shapes/shapes_basic_shapes.c +++ b/examples/src/shapes/shapes_basic_shapes.c @@ -39,26 +39,27 @@ int main() DrawText("some basic shapes available on raylib", 20, 20, 20, DARKGRAY); - DrawLine(18, 42, screenWidth - 18, 42, BLACK); - DrawCircle(screenWidth/4, 120, 35, DARKBLUE); - DrawCircleGradient(screenWidth/4, 220, 60, GREEN, SKYBLUE); - DrawCircleLines(screenWidth/4, 340, 80, DARKBLUE); DrawRectangle(screenWidth/4*2 - 60, 100, 120, 60, RED); + DrawRectangleLines(screenWidth/4*2 - 40, 320, 80, 60, ORANGE); // NOTE: Uses QUADS internally, not lines DrawRectangleGradientH(screenWidth/4*2 - 90, 170, 180, 130, MAROON, GOLD); - DrawRectangleLines(screenWidth/4*2 - 40, 320, 80, 60, ORANGE); DrawTriangle((Vector2){screenWidth/4*3, 80}, (Vector2){screenWidth/4*3 - 60, 150}, (Vector2){screenWidth/4*3 + 60, 150}, VIOLET); + DrawPoly((Vector2){screenWidth/4*3, 320}, 6, 80, 0, BROWN); + + DrawCircleGradient(screenWidth/4, 220, 60, GREEN, SKYBLUE); + + // NOTE: We draw all LINES based shapes together to optimize internal drawing, + // this way, all LINES are rendered in a single draw pass + DrawLine(18, 42, screenWidth - 18, 42, BLACK); + DrawCircleLines(screenWidth/4, 340, 80, DARKBLUE); DrawTriangleLines((Vector2){screenWidth/4*3, 160}, (Vector2){screenWidth/4*3 - 20, 230}, (Vector2){screenWidth/4*3 + 20, 230}, DARKBLUE); - - DrawPoly((Vector2){screenWidth/4*3, 320}, 6, 80, 0, BROWN); - EndDrawing(); //---------------------------------------------------------------------------------- } diff --git a/examples/src/shapes/shapes_bouncing_ball.c b/examples/src/shapes/shapes_bouncing_ball.c new file mode 100644 index 0000000..6b27c9d --- /dev/null +++ b/examples/src/shapes/shapes_bouncing_ball.c @@ -0,0 +1,76 @@ +/******************************************************************************************* +* +* raylib [shapes] example - bouncing ball +* +* This example has been created using raylib 1.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2013 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +int main() +{ + // Initialization + //--------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - bouncing ball"); + + Vector2 ballPosition = { GetScreenWidth()/2, GetScreenHeight()/2 }; + Vector2 ballSpeed = { 5.0f, 4.0f }; + int ballRadius = 20; + + bool pause = 0; + int framesCounter = 0; + + SetTargetFPS(60); + //---------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //----------------------------------------------------- + if (IsKeyPressed(KEY_SPACE)) pause = !pause; + + if (!pause) + { + ballPosition.x += ballSpeed.x; + ballPosition.y += ballSpeed.y; + + // Check walls collision for bouncing + if ((ballPosition.x >= (GetScreenWidth() - ballRadius)) || (ballPosition.x <= ballRadius)) ballSpeed.x *= -1.0f; + if ((ballPosition.y >= (GetScreenHeight() - ballRadius)) || (ballPosition.y <= ballRadius)) ballSpeed.y *= -1.0f; + } + else framesCounter++; + //----------------------------------------------------- + + // Draw + //----------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawCircleV(ballPosition, ballRadius, MAROON); + DrawText("PRESS SPACE to PAUSE BALL MOVEMENT", 10, GetScreenHeight() - 25, 20, LIGHTGRAY); + + // On pause, we draw a blinking message + if (pause && ((framesCounter/30)%2)) DrawText("PAUSED", 350, 200, 30, GRAY); + + DrawFPS(10, 10); + + EndDrawing(); + //----------------------------------------------------- + } + + // De-Initialization + //--------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //---------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/shapes/shapes_collision_area.c b/examples/src/shapes/shapes_collision_area.c new file mode 100644 index 0000000..e61623a --- /dev/null +++ b/examples/src/shapes/shapes_collision_area.c @@ -0,0 +1,108 @@ +/******************************************************************************************* +* +* raylib [shapes] example - collision area +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2013-2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" +#include // Required for abs() + +int main() +{ + // Initialization + //--------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - collision area"); + + // Box A: Moving box + Rectangle boxA = { 10, GetScreenHeight()/2 - 50, 200, 100 }; + int boxASpeedX = 4; + + // Box B: Mouse moved box + Rectangle boxB = { GetScreenWidth()/2 - 30, GetScreenHeight()/2 - 30, 60, 60 }; + + Rectangle boxCollision = { 0 }; // Collision rectangle + + int screenUpperLimit = 40; // Top menu limits + + bool pause = false; // Movement pause + bool collision = false; // Collision detection + + SetTargetFPS(60); + //---------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //----------------------------------------------------- + // Move box if not paused + if (!pause) boxA.x += boxASpeedX; + + // Bounce box on x screen limits + if (((boxA.x + boxA.width) >= GetScreenWidth()) || (boxA.x <= 0)) boxASpeedX *= -1; + + // Update player-controlled-box (box02) + boxB.x = GetMouseX() - boxB.width/2; + boxB.y = GetMouseY() - boxB.height/2; + + // Make sure Box B does not go out of move area limits + if ((boxB.x + boxB.width) >= GetScreenWidth()) boxB.x = GetScreenWidth() - boxB.width; + else if (boxB.x <= 0) boxB.x = 0; + + if ((boxB.y + boxB.height) >= GetScreenHeight()) boxB.y = GetScreenHeight() - boxB.height; + else if (boxB.y <= screenUpperLimit) boxB.y = screenUpperLimit; + + // Check boxes collision + collision = CheckCollisionRecs(boxA, boxB); + + // Get collision rectangle (only on collision) + if (collision) boxCollision = GetCollisionRec(boxA, boxB); + + // Pause Box A movement + if (IsKeyPressed(KEY_SPACE)) pause = !pause; + //----------------------------------------------------- + + // Draw + //----------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawRectangle(0, 0, screenWidth, screenUpperLimit, collision? RED : BLACK); + + DrawRectangleRec(boxA, GOLD); + DrawRectangleRec(boxB, BLUE); + + if (collision) + { + // Draw collision area + DrawRectangleRec(boxCollision, LIME); + + // Draw collision message + DrawText("COLLISION!", GetScreenWidth()/2 - MeasureText("COLLISION!", 20)/2, screenUpperLimit/2 - 10, 20, BLACK); + + // Draw collision area + DrawText(FormatText("Collision Area: %i", (int)boxCollision.width*(int)boxCollision.height), GetScreenWidth()/2 - 100, screenUpperLimit + 10, 20, BLACK); + } + + DrawFPS(10, 10); + + EndDrawing(); + //----------------------------------------------------- + } + + // De-Initialization + //--------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //---------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/shapes/shapes_colors_palette.c b/examples/src/shapes/shapes_colors_palette.c index dcab862..d6ac30a 100644 --- a/examples/src/shapes/shapes_colors_palette.c +++ b/examples/src/shapes/shapes_colors_palette.c @@ -1,26 +1,53 @@ /******************************************************************************************* * -* raylib [shapes] example - Draw raylib custom color palette +* raylib [shapes] example - Colors palette * -* This example has been created using raylib 1.0 (www.raylib.com) +* This example has been created using raylib 2.5 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * -* Copyright (c) 2014 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2019 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #include "raylib.h" +#define MAX_COLORS_COUNT 21 // Number of colors available + int main() { // Initialization //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - colors palette"); + + Color colors[MAX_COLORS_COUNT] = { + DARKGRAY, MAROON, ORANGE, DARKGREEN, DARKBLUE, DARKPURPLE, DARKBROWN, + GRAY, RED, GOLD, LIME, BLUE, VIOLET, BROWN, LIGHTGRAY, PINK, YELLOW, + GREEN, SKYBLUE, PURPLE, BEIGE }; + + const char *colorNames[MAX_COLORS_COUNT] = { + "DARKGRAY", "MAROON", "ORANGE", "DARKGREEN", "DARKBLUE", "DARKPURPLE", + "DARKBROWN", "GRAY", "RED", "GOLD", "LIME", "BLUE", "VIOLET", "BROWN", + "LIGHTGRAY", "PINK", "YELLOW", "GREEN", "SKYBLUE", "PURPLE", "BEIGE" }; + + Rectangle colorsRecs[MAX_COLORS_COUNT] = { 0 }; // Rectangles array + + // Fills colorsRecs data (for every rectangle) + for (int i = 0; i < MAX_COLORS_COUNT; i++) + { + colorsRecs[i].x = 20 + 100*(i%7) + 10*(i%7); + colorsRecs[i].y = 80 + 100*(i/7) + 10*(i/7); + colorsRecs[i].width = 100; + colorsRecs[i].height = 100; + } + + int colorState[MAX_COLORS_COUNT] = { 0 }; // Color state: 0-DEFAULT, 1-MOUSE_HOVER - InitWindow(screenWidth, screenHeight, "raylib [shapes] example - raylib color palette"); - - SetTargetFPS(60); + Vector2 mousePoint; + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop @@ -28,7 +55,13 @@ int main() { // Update //---------------------------------------------------------------------------------- - // TODO: Update your variables here + mousePoint = GetMousePosition(); + + for (int i = 0; i < MAX_COLORS_COUNT; i++) + { + if (CheckCollisionPointRec(mousePoint, colorsRecs[i])) colorState[i] = 1; + else colorState[i] = 0; + } //---------------------------------------------------------------------------------- // Draw @@ -36,53 +69,22 @@ int main() BeginDrawing(); ClearBackground(RAYWHITE); + + DrawText("raylib colors palette", 28, 42, 20, BLACK); + DrawText("press SPACE to see all colors", GetScreenWidth() - 180, GetScreenHeight() - 40, 10, GRAY); - DrawText("raylib color palette", 28, 42, 20, BLACK); - - DrawRectangle(26, 80, 100, 100, DARKGRAY); - DrawRectangle(26, 188, 100, 100, GRAY); - DrawRectangle(26, 296, 100, 100, LIGHTGRAY); - DrawRectangle(134, 80, 100, 100, MAROON); - DrawRectangle(134, 188, 100, 100, RED); - DrawRectangle(134, 296, 100, 100, PINK); - DrawRectangle(242, 80, 100, 100, ORANGE); - DrawRectangle(242, 188, 100, 100, GOLD); - DrawRectangle(242, 296, 100, 100, YELLOW); - DrawRectangle(350, 80, 100, 100, DARKGREEN); - DrawRectangle(350, 188, 100, 100, LIME); - DrawRectangle(350, 296, 100, 100, GREEN); - DrawRectangle(458, 80, 100, 100, DARKBLUE); - DrawRectangle(458, 188, 100, 100, BLUE); - DrawRectangle(458, 296, 100, 100, SKYBLUE); - DrawRectangle(566, 80, 100, 100, DARKPURPLE); - DrawRectangle(566, 188, 100, 100, VIOLET); - DrawRectangle(566, 296, 100, 100, PURPLE); - DrawRectangle(674, 80, 100, 100, DARKBROWN); - DrawRectangle(674, 188, 100, 100, BROWN); - DrawRectangle(674, 296, 100, 100, BEIGE); - - - DrawText("DARKGRAY", 65, 166, 10, BLACK); - DrawText("GRAY", 93, 274, 10, BLACK); - DrawText("LIGHTGRAY", 61, 382, 10, BLACK); - DrawText("MAROON", 186, 166, 10, BLACK); - DrawText("RED", 208, 274, 10, BLACK); - DrawText("PINK", 204, 382, 10, BLACK); - DrawText("ORANGE", 295, 166, 10, BLACK); - DrawText("GOLD", 310, 274, 10, BLACK); - DrawText("YELLOW", 300, 382, 10, BLACK); - DrawText("DARKGREEN", 382, 166, 10, BLACK); - DrawText("LIME", 420, 274, 10, BLACK); - DrawText("GREEN", 410, 382, 10, BLACK); - DrawText("DARKBLUE", 498, 166, 10, BLACK); - DrawText("BLUE", 526, 274, 10, BLACK); - DrawText("SKYBLUE", 505, 382, 10, BLACK); - DrawText("DARKPURPLE", 592, 166, 10, BLACK); - DrawText("VIOLET", 621, 274, 10, BLACK); - DrawText("PURPLE", 620, 382, 10, BLACK); - DrawText("DARKBROWN", 705, 166, 10, BLACK); - DrawText("BROWN", 733, 274, 10, BLACK); - DrawText("BEIGE", 737, 382, 10, BLACK); + for (int i = 0; i < MAX_COLORS_COUNT; i++) // Draw all rectangles + { + DrawRectangleRec(colorsRecs[i], Fade(colors[i], colorState[i]? 0.6f : 1.0f)); + + if (IsKeyDown(KEY_SPACE) || colorState[i]) + { + DrawRectangle(colorsRecs[i].x, colorsRecs[i].y + colorsRecs[i].height - 26, colorsRecs[i].width, 20, BLACK); + DrawRectangleLinesEx(colorsRecs[i], 6, Fade(BLACK, 0.3f)); + DrawText(colorNames[i], colorsRecs[i].x + colorsRecs[i].width - MeasureText(colorNames[i], 10) - 12, + colorsRecs[i].y + colorsRecs[i].height - 20, 10, colors[i]); + } + } EndDrawing(); //---------------------------------------------------------------------------------- @@ -90,7 +92,7 @@ int main() // De-Initialization //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context + CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; diff --git a/examples/src/shapes/shapes_draw_circle_sector.c b/examples/src/shapes/shapes_draw_circle_sector.c new file mode 100644 index 0000000..597b85a --- /dev/null +++ b/examples/src/shapes/shapes_draw_circle_sector.c @@ -0,0 +1,81 @@ +/******************************************************************************************* +* +* raylib [shapes] example - draw circle sector (with gui options) +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Vlad Adrian (@demizdor) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2018 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include + +#define RAYGUI_IMPLEMENTATION +#include "raygui.h" // Required for GUI controls + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - draw circle sector"); + + Vector2 center = {(GetScreenWidth() - 300)/2, GetScreenHeight()/2 }; + + float outerRadius = 180.f; + int startAngle = 0; + int endAngle = 180; + int segments = 0; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + // NOTE: All variables update happens inside GUI control functions + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawLine(500, 0, 500, GetScreenHeight(), Fade(LIGHTGRAY, 0.6f)); + DrawRectangle(500, 0, GetScreenWidth() - 500, GetScreenHeight(), Fade(LIGHTGRAY, 0.3f)); + + DrawCircleSector(center, outerRadius, startAngle, endAngle, segments, Fade(MAROON, 0.3)); + DrawCircleSectorLines(center, outerRadius, startAngle, endAngle, segments, Fade(MAROON, 0.6)); + + // Draw GUI controls + //------------------------------------------------------------------------------ + startAngle = GuiSliderBar((Rectangle){ 600, 40, 120, 20}, "StartAngle", startAngle, 0, 720, true ); + endAngle = GuiSliderBar((Rectangle){ 600, 70, 120, 20}, "EndAngle", endAngle, 0, 720, true); + + outerRadius = GuiSliderBar((Rectangle){ 600, 140, 120, 20}, "Radius", outerRadius, 0, 200, true); + segments = GuiSliderBar((Rectangle){ 600, 170, 120, 20}, "Segments", segments, 0, 100, true); + //------------------------------------------------------------------------------ + + DrawText(FormatText("MODE: %s", (segments >= 4)? "MANUAL" : "AUTO"), 600, 200, 10, (segments >= 4)? MAROON : DARKGRAY); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/shapes/shapes_draw_rectangle_rounded.c b/examples/src/shapes/shapes_draw_rectangle_rounded.c new file mode 100644 index 0000000..e36e273 --- /dev/null +++ b/examples/src/shapes/shapes_draw_rectangle_rounded.c @@ -0,0 +1,89 @@ +/******************************************************************************************* +* +* raylib [shapes] example - draw rectangle rounded (with gui options) +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Vlad Adrian (@demizdor) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2018 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include + +#define RAYGUI_IMPLEMENTATION +#include "raygui.h" // Required for GUI controls + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - draw rectangle rounded"); + + float roundness = 0.2f; + int width = 200; + int height = 100; + int segments = 0; + int lineThick = 1; + + bool drawRect = false; + bool drawRoundedRect = true; + bool drawRoundedLines = false; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + Rectangle rec = { (GetScreenWidth() - width - 250)/2, (GetScreenHeight() - height)/2, width, height }; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawLine(560, 0, 560, GetScreenHeight(), Fade(LIGHTGRAY, 0.6f)); + DrawRectangle(560, 0, GetScreenWidth() - 500, GetScreenHeight(), Fade(LIGHTGRAY, 0.3f)); + + if (drawRect) DrawRectangleRec(rec, Fade(GOLD, 0.6)); + if (drawRoundedRect) DrawRectangleRounded(rec, roundness, segments, Fade(MAROON, 0.2)); + if (drawRoundedLines) DrawRectangleRoundedLines(rec,roundness, segments, lineThick, Fade(MAROON, 0.4)); + + // Draw GUI controls + //------------------------------------------------------------------------------ + width = GuiSliderBar((Rectangle){ 640, 40, 105, 20 }, "Width", width, 0, GetScreenWidth() - 300, true ); + height = GuiSliderBar((Rectangle){ 640, 70, 105, 20 }, "Height", height, 0, GetScreenHeight() - 50, true); + roundness = GuiSliderBar((Rectangle){ 640, 140, 105, 20 }, "Roundness", roundness, 0.0f, 1.0f, true); + lineThick = GuiSliderBar((Rectangle){ 640, 170, 105, 20 }, "Thickness", lineThick, 0, 20, true); + segments = GuiSliderBar((Rectangle){ 640, 240, 105, 20}, "Segments", segments, 0, 60, true); + + drawRoundedRect = GuiCheckBox((Rectangle){ 640, 320, 20, 20 }, "DrawRoundedRect", drawRoundedRect); + drawRoundedLines = GuiCheckBox((Rectangle){ 640, 350, 20, 20 }, "DrawRoundedLines", drawRoundedLines); + drawRect = GuiCheckBox((Rectangle){ 640, 380, 20, 20}, "DrawRect", drawRect); + //------------------------------------------------------------------------------ + + DrawText(FormatText("MODE: %s", (segments >= 4)? "MANUAL" : "AUTO"), 640, 280, 10, (segments >= 4)? MAROON : DARKGRAY); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/src/shapes/shapes_draw_ring.c b/examples/src/shapes/shapes_draw_ring.c new file mode 100644 index 0000000..44a3ec5 --- /dev/null +++ b/examples/src/shapes/shapes_draw_ring.c @@ -0,0 +1,94 @@ +/******************************************************************************************* +* +* raylib [shapes] example - draw ring (with gui options) +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Vlad Adrian (@demizdor) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2018 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include + +#define RAYGUI_IMPLEMENTATION +#include "raygui.h" // Required for GUI controls + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - draw ring"); + + Vector2 center = {(GetScreenWidth() - 300)/2, GetScreenHeight()/2 }; + + float innerRadius = 80.0f; + float outerRadius = 190.0f; + + int startAngle = 0; + int endAngle = 360; + int segments = 0; + + bool drawRing = true; + bool drawRingLines = false; + bool drawCircleLines = false; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + // NOTE: All variables update happens inside GUI control functions + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawLine(500, 0, 500, GetScreenHeight(), Fade(LIGHTGRAY, 0.6f)); + DrawRectangle(500, 0, GetScreenWidth() - 500, GetScreenHeight(), Fade(LIGHTGRAY, 0.3f)); + + if (drawRing) DrawRing(center, innerRadius, outerRadius, startAngle, endAngle, segments, Fade(MAROON, 0.3)); + if (drawRingLines) DrawRingLines(center, innerRadius, outerRadius, startAngle, endAngle, segments, Fade(BLACK, 0.4)); + if (drawCircleLines) DrawCircleSectorLines(center, outerRadius, startAngle, endAngle, segments, Fade(BLACK, 0.4)); + + // Draw GUI controls + //------------------------------------------------------------------------------ + startAngle = GuiSliderBar((Rectangle){ 600, 40, 120, 20 }, "StartAngle", startAngle, -450, 450, true); + endAngle = GuiSliderBar((Rectangle){ 600, 70, 120, 20 }, "EndAngle", endAngle, -450, 450, true); + + innerRadius = GuiSliderBar((Rectangle){ 600, 140, 120, 20 }, "InnerRadius", innerRadius, 0, 100, true); + outerRadius = GuiSliderBar((Rectangle){ 600, 170, 120, 20 }, "OuterRadius", outerRadius, 0, 200, true); + + segments = GuiSliderBar((Rectangle){ 600, 240, 120, 20 }, "Segments", segments, 0, 100, true); + + drawRing = GuiCheckBox((Rectangle){ 600, 320, 20, 20 }, "Draw Ring", drawRing); + drawRingLines = GuiCheckBox((Rectangle){ 600, 350, 20, 20 }, "Draw RingLines", drawRingLines); + drawCircleLines = GuiCheckBox((Rectangle){ 600, 380, 20, 20 }, "Draw CircleLines", drawCircleLines); + //------------------------------------------------------------------------------ + + DrawText(FormatText("MODE: %s", (segments >= 4)? "MANUAL" : "AUTO"), 600, 270, 10, (segments >= 4)? MAROON : DARKGRAY); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/shapes/shapes_easings_ball_anim.c b/examples/src/shapes/shapes_easings_ball_anim.c new file mode 100644 index 0000000..4477203 --- /dev/null +++ b/examples/src/shapes/shapes_easings_ball_anim.c @@ -0,0 +1,110 @@ +/******************************************************************************************* +* +* raylib [shapes] example - easings ball anim +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014-2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include "easings.h" // Required for easing functions + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - easings ball anim"); + + // Ball variable value to be animated with easings + int ballPositionX = -100; + int ballRadius = 20; + float ballAlpha = 0.0f; + + int state = 0; + int framesCounter = 0; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + if (state == 0) // Move ball position X with easing + { + framesCounter++; + ballPositionX = EaseElasticOut(framesCounter, -100, screenWidth/2 + 100, 120); + + if (framesCounter >= 120) + { + framesCounter = 0; + state = 1; + } + } + else if (state == 1) // Increase ball radius with easing + { + framesCounter++; + ballRadius = EaseElasticIn(framesCounter, 20, 500, 200); + + if (framesCounter >= 200) + { + framesCounter = 0; + state = 2; + } + } + else if (state == 2) // Change ball alpha with easing (background color blending) + { + framesCounter++; + ballAlpha = EaseCubicOut(framesCounter, 0.0f, 1.0f, 200); + + if (framesCounter >= 200) + { + framesCounter = 0; + state = 3; + } + } + else if (state == 3) // Reset state to play again + { + if (IsKeyPressed(KEY_ENTER)) + { + // Reset required variables to play again + ballPositionX = -100; + ballRadius = 20; + ballAlpha = 0.0f; + state = 0; + } + } + + if (IsKeyPressed(KEY_R)) framesCounter = 0; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + if (state >= 2) DrawRectangle(0, 0, screenWidth, screenHeight, GREEN); + DrawCircle(ballPositionX, 200, ballRadius, Fade(RED, 1.0f - ballAlpha)); + + if (state == 3) DrawText("PRESS [ENTER] TO PLAY AGAIN!", 240, 200, 20, BLACK); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/shapes/shapes_easings_box_anim.c b/examples/src/shapes/shapes_easings_box_anim.c new file mode 100644 index 0000000..c74cb2a --- /dev/null +++ b/examples/src/shapes/shapes_easings_box_anim.c @@ -0,0 +1,136 @@ +/******************************************************************************************* +* +* raylib [shapes] example - easings box anim +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014-2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include "easings.h" // Required for easing functions + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - easings box anim"); + + // Box variables to be animated with easings + Rectangle rec = { GetScreenWidth()/2, -100, 100, 100 }; + float rotation = 0.0f; + float alpha = 1.0f; + + int state = 0; + int framesCounter = 0; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + switch (state) + { + case 0: // Move box down to center of screen + { + framesCounter++; + + // NOTE: Remember that 3rd parameter of easing function refers to + // desired value variation, do not confuse it with expected final value! + rec.y = EaseElasticOut(framesCounter, -100, GetScreenHeight()/2 + 100, 120); + + if (framesCounter >= 120) + { + framesCounter = 0; + state = 1; + } + } break; + case 1: // Scale box to an horizontal bar + { + framesCounter++; + rec.height = EaseBounceOut(framesCounter, 100, -90, 120); + rec.width = EaseBounceOut(framesCounter, 100, GetScreenWidth(), 120); + + if (framesCounter >= 120) + { + framesCounter = 0; + state = 2; + } + } break; + case 2: // Rotate horizontal bar rectangle + { + framesCounter++; + rotation = EaseQuadOut(framesCounter, 0.0f, 270.0f, 240); + + if (framesCounter >= 240) + { + framesCounter = 0; + state = 3; + } + } break; + case 3: // Increase bar size to fill all screen + { + framesCounter++; + rec.height = EaseCircOut(framesCounter, 10, GetScreenWidth(), 120); + + if (framesCounter >= 120) + { + framesCounter = 0; + state = 4; + } + } break; + case 4: // Fade out animation + { + framesCounter++; + alpha = EaseSineOut(framesCounter, 1.0f, -1.0f, 160); + + if (framesCounter >= 160) + { + framesCounter = 0; + state = 5; + } + } break; + default: break; + } + + // Reset animation at any moment + if (IsKeyPressed(KEY_SPACE)) + { + rec = (Rectangle){ GetScreenWidth()/2, -100, 100, 100 }; + rotation = 0.0f; + alpha = 1.0f; + state = 0; + framesCounter = 0; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawRectanglePro(rec, (Vector2){ rec.width/2, rec.height/2 }, rotation, Fade(BLACK, alpha)); + + DrawText("PRESS [SPACE] TO RESET BOX ANIMATION!", 10, GetScreenHeight() - 25, 20, LIGHTGRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/shapes/shapes_easings_rectangle_array.c b/examples/src/shapes/shapes_easings_rectangle_array.c new file mode 100644 index 0000000..27bad5c --- /dev/null +++ b/examples/src/shapes/shapes_easings_rectangle_array.c @@ -0,0 +1,118 @@ +/******************************************************************************************* +* +* raylib [shapes] example - easings rectangle array +* +* NOTE: This example requires 'easings.h' library, provided on raylib/src. Just copy +* the library to same directory as example or make sure it's available on include path. +* +* This example has been created using raylib 2.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014-2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include "easings.h" // Required for easing functions + +#define RECS_WIDTH 50 +#define RECS_HEIGHT 50 + +#define MAX_RECS_X 800/RECS_WIDTH +#define MAX_RECS_Y 450/RECS_HEIGHT + +#define PLAY_TIME_IN_FRAMES 240 // At 60 fps = 4 seconds + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - easings rectangle array"); + + Rectangle recs[MAX_RECS_X*MAX_RECS_Y]; + + for (int y = 0; y < MAX_RECS_Y; y++) + { + for (int x = 0; x < MAX_RECS_X; x++) + { + recs[y*MAX_RECS_X + x].x = RECS_WIDTH/2 + RECS_WIDTH*x; + recs[y*MAX_RECS_X + x].y = RECS_HEIGHT/2 + RECS_HEIGHT*y; + recs[y*MAX_RECS_X + x].width = RECS_WIDTH; + recs[y*MAX_RECS_X + x].height = RECS_HEIGHT; + } + } + + float rotation = 0.0f; + int framesCounter = 0; + int state = 0; // Rectangles animation state: 0-Playing, 1-Finished + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + if (state == 0) + { + framesCounter++; + + for (int i = 0; i < MAX_RECS_X*MAX_RECS_Y; i++) + { + recs[i].height = EaseCircOut(framesCounter, RECS_HEIGHT, -RECS_HEIGHT, PLAY_TIME_IN_FRAMES); + recs[i].width = EaseCircOut(framesCounter, RECS_WIDTH, -RECS_WIDTH, PLAY_TIME_IN_FRAMES); + + if (recs[i].height < 0) recs[i].height = 0; + if (recs[i].width < 0) recs[i].width = 0; + + if ((recs[i].height == 0) && (recs[i].width == 0)) state = 1; // Finish playing + + rotation = EaseLinearIn(framesCounter, 0.0f, 360.0f, PLAY_TIME_IN_FRAMES); + } + } + else if ((state == 1) && IsKeyPressed(KEY_SPACE)) + { + // When animation has finished, press space to restart + framesCounter = 0; + + for (int i = 0; i < MAX_RECS_X*MAX_RECS_Y; i++) + { + recs[i].height = RECS_HEIGHT; + recs[i].width = RECS_WIDTH; + } + + state = 0; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + if (state == 0) + { + for (int i = 0; i < MAX_RECS_X*MAX_RECS_Y; i++) + { + DrawRectanglePro(recs[i], (Vector2){ recs[i].width/2, recs[i].height/2 }, rotation, RED); + } + } + else if (state == 1) DrawText("PRESS [SPACE] TO PLAY AGAIN!", 240, 200, 20, GRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/shapes/shapes_following_eyes.c b/examples/src/shapes/shapes_following_eyes.c new file mode 100644 index 0000000..e99a7e0 --- /dev/null +++ b/examples/src/shapes/shapes_following_eyes.c @@ -0,0 +1,104 @@ +/******************************************************************************************* +* +* raylib [shapes] example - following eyes +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2013-2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include // Required for: atan2f() + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - following eyes"); + + Vector2 scleraLeftPosition = { GetScreenWidth()/2 - 100, GetScreenHeight()/2 }; + Vector2 scleraRightPosition = { GetScreenWidth()/2 + 100, GetScreenHeight()/2 }; + float scleraRadius = 80; + + Vector2 irisLeftPosition = { GetScreenWidth()/2 - 100, GetScreenHeight()/2 }; + Vector2 irisRightPosition = { GetScreenWidth()/2 + 100, GetScreenHeight()/2}; + float irisRadius = 24; + + float angle; + float dx, dy, dxx, dyy; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + irisLeftPosition = GetMousePosition(); + irisRightPosition = GetMousePosition(); + + // Check not inside the left eye sclera + if (!CheckCollisionPointCircle(irisLeftPosition, scleraLeftPosition, scleraRadius - 20)) + { + dx = irisLeftPosition.x - scleraLeftPosition.x; + dy = irisLeftPosition.y - scleraLeftPosition.y; + + angle = atan2f(dy, dx); + + dxx = (scleraRadius - irisRadius)*cosf(angle); + dyy = (scleraRadius - irisRadius)*sinf(angle); + + irisLeftPosition.x = scleraLeftPosition.x + dxx; + irisLeftPosition.y = scleraLeftPosition.y + dyy; + } + + // Check not inside the right eye sclera + if (!CheckCollisionPointCircle(irisRightPosition, scleraRightPosition, scleraRadius - 20)) + { + dx = irisRightPosition.x - scleraRightPosition.x; + dy = irisRightPosition.y - scleraRightPosition.y; + + angle = atan2f(dy, dx); + + dxx = (scleraRadius - irisRadius)*cosf(angle); + dyy = (scleraRadius - irisRadius)*sinf(angle); + + irisRightPosition.x = scleraRightPosition.x + dxx; + irisRightPosition.y = scleraRightPosition.y + dyy; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawCircleV(scleraLeftPosition, scleraRadius, LIGHTGRAY); + DrawCircleV(irisLeftPosition, irisRadius, BROWN); + DrawCircleV(irisLeftPosition, 10, BLACK); + + DrawCircleV(scleraRightPosition, scleraRadius, LIGHTGRAY); + DrawCircleV(irisRightPosition, irisRadius, DARKGREEN); + DrawCircleV(irisRightPosition, 10, BLACK); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/shapes/shapes_logo_raylib_anim.c b/examples/src/shapes/shapes_logo_raylib_anim.c index c6d3796..9be1d96 100644 --- a/examples/src/shapes/shapes_logo_raylib_anim.c +++ b/examples/src/shapes/shapes_logo_raylib_anim.c @@ -2,7 +2,7 @@ * * raylib [shapes] example - raylib logo animation * -* This example has been created using raylib 1.4 (www.raylib.com) +* This example has been created using raylib 2.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) @@ -140,7 +140,7 @@ int main() DrawRectangle(screenWidth/2 - 112, screenHeight/2 - 112, 224, 224, Fade(RAYWHITE, alpha)); - DrawText(SubText("raylib", 0, lettersCount), screenWidth/2 - 44, screenHeight/2 + 48, 50, Fade(BLACK, alpha)); + DrawText(TextSubtext("raylib", 0, lettersCount), screenWidth/2 - 44, screenHeight/2 + 48, 50, Fade(BLACK, alpha)); } else if (state == 4) { diff --git a/examples/src/shapes/shapes_rectangle_scaling.c b/examples/src/shapes/shapes_rectangle_scaling.c new file mode 100644 index 0000000..036a1dd --- /dev/null +++ b/examples/src/shapes/shapes_rectangle_scaling.c @@ -0,0 +1,94 @@ +/******************************************************************************************* +* +* raylib [shapes] example - rectangle scaling by mouse +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Vlad Adrian (@demizdor) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2018 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#define MOUSE_SCALE_MARK_SIZE 12 + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - rectangle scaling mouse"); + + Rectangle rec = { 100, 100, 200, 80 }; + + Vector2 mousePosition = { 0 }; + + bool mouseScaleReady = false; + bool mouseScaleMode = false; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + mousePosition = GetMousePosition(); + + if (CheckCollisionPointRec(mousePosition, rec) && + CheckCollisionPointRec(mousePosition, (Rectangle){ rec.x + rec.width - MOUSE_SCALE_MARK_SIZE, rec.y + rec.height - MOUSE_SCALE_MARK_SIZE, MOUSE_SCALE_MARK_SIZE, MOUSE_SCALE_MARK_SIZE })) + { + mouseScaleReady = true; + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) mouseScaleMode = true; + } + else mouseScaleReady = false; + + if (mouseScaleMode) + { + mouseScaleReady = true; + + rec.width = (mousePosition.x - rec.x); + rec.height = (mousePosition.y - rec.y); + + if (rec.width < MOUSE_SCALE_MARK_SIZE) rec.width = MOUSE_SCALE_MARK_SIZE; + if (rec.height < MOUSE_SCALE_MARK_SIZE) rec.height = MOUSE_SCALE_MARK_SIZE; + + if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) mouseScaleMode = false; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawText("Scale rectangle dragging from bottom-right corner!", 10, 10, 20, GRAY); + + DrawRectangleRec(rec, Fade(GREEN, 0.5f)); + + if (mouseScaleReady) + { + DrawRectangleLinesEx(rec, 1, RED); + DrawTriangle((Vector2){ rec.x + rec.width - MOUSE_SCALE_MARK_SIZE, rec.y + rec.height }, + (Vector2){ rec.x + rec.width, rec.y + rec.height }, + (Vector2){ rec.x + rec.width, rec.y + rec.height - MOUSE_SCALE_MARK_SIZE }, RED); + } + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/text/text_bmfont_ttf.c b/examples/src/text/text_bmfont_ttf.c index f71f5dd..ca26b2c 100644 --- a/examples/src/text/text_bmfont_ttf.c +++ b/examples/src/text/text_bmfont_ttf.c @@ -20,17 +20,20 @@ int main() InitWindow(screenWidth, screenHeight, "raylib [text] example - bmfont and ttf sprite fonts loading"); - const char msgBm[64] = "THIS IS AN AngelCode SPRITE FONT"; - const char msgTtf[64] = "THIS SPRITE FONT has been GENERATED from a TTF"; + // Define characters to draw + // NOTE: raylib supports UTF-8 encoding, following list is actually codified as UTF8 internally + const char msg[256] = "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI\nJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmn\nopqrstuvwxyz{|}~¿ÀÃÂÃÄÅÆÇÈÉÊËÌÃÃŽÃÃÑÒÓ\nÔÕÖרÙÚÛÜÃÞßàáâãäåæçèéêëìíîïðñòóôõö÷\nøùúûüýþÿ"; // NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required) - Font fontBm = LoadFont("resources/bmfont.fnt"); // BMFont (AngelCode) - Font fontTtf = LoadFont("resources/pixantiqua.ttf"); // TTF font - - Vector2 fontPosition; - - fontPosition.x = screenWidth/2 - MeasureTextEx(fontBm, msgBm, fontBm.baseSize, 0).x/2; - fontPosition.y = screenHeight/2 - fontBm.baseSize/2 - 80; + + // BMFont (AngelCode) : Font data and image atlas have been generated using external program + Font fontBm = LoadFont("resources/pixantiqua.fnt"); + + // TTF font : Font data and atlas are generated directly from TTF + // NOTE: We define a font base size of 32 pixels tall and up-to 250 characters + Font fontTtf = LoadFontEx("resources/pixantiqua.ttf", 32, 0, 250); + + bool useTtf = false; SetTargetFPS(60); //-------------------------------------------------------------------------------------- @@ -40,7 +43,8 @@ int main() { // Update //---------------------------------------------------------------------------------- - // TODO: Update variables here... + if (IsKeyDown(KEY_SPACE)) useTtf = true; + else useTtf = false; //---------------------------------------------------------------------------------- // Draw @@ -48,9 +52,19 @@ int main() BeginDrawing(); ClearBackground(RAYWHITE); - - DrawTextEx(fontBm, msgBm, fontPosition, fontBm.baseSize, 0, MAROON); - DrawTextEx(fontTtf, msgTtf, (Vector2){ 75.0f, 240.0f }, fontTtf.baseSize*0.8f, 2, LIME); + + DrawText("Press SPACE to use TTF generated font", 20, 20, 20, LIGHTGRAY); + + if (!useTtf) + { + DrawTextEx(fontBm, msg, (Vector2){ 20.0f, 100.0f }, fontBm.baseSize, 2, MAROON); + DrawText("Using BMFont (Angelcode) imported", 20, GetScreenHeight() - 30, 20, GRAY); + } + else + { + DrawTextEx(fontTtf, msg, (Vector2){ 20.0f, 100.0f }, fontTtf.baseSize, 2, LIME); + DrawText("Using TTF font generated", 20, GetScreenHeight() - 30, 20, GRAY); + } EndDrawing(); //---------------------------------------------------------------------------------- diff --git a/examples/src/text/text_bmfont_unordered.c b/examples/src/text/text_bmfont_unordered.c deleted file mode 100644 index a514761..0000000 --- a/examples/src/text/text_bmfont_unordered.c +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************************* -* -* raylib [text] example - BMFont unordered chars loading and drawing -* -* This example has been created using raylib 1.4 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2016 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [text] example - bmfont unordered loading and drawing"); - - // NOTE: Using chars outside the [32..127] limits! - // NOTE: If a character is not found in the font, it just renders a space - const char msg[256] = "ASCII extended characters:\n¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÃÂÃÄÅÆ\nÇÈÉÊËÌÃÃŽÃÃÑÒÓÔÕÖרÙÚÛÜÃÞßàáâãäåæ\nçèéêëìíîïðñòóôõö÷øùúûüýþÿ"; - - // NOTE: Loaded font has an unordered list of characters (chars in the range 32..255) - Font font = LoadFont("resources/pixantiqua.fnt"); // BMFont (AngelCode) - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update variables here... - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("Font name: PixAntiqua", 40, 50, 20, GRAY); - DrawText(FormatText("Font base size: %i", font.baseSize), 40, 80, 20, GRAY); - DrawText(FormatText("Font chars number: %i", font.charsCount), 40, 110, 20, GRAY); - - DrawTextEx(font, msg, (Vector2){ 40, 180 }, font.baseSize, 0, MAROON); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadFont(font); // AngelCode Font unloading - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/examples/src/text/text_font_sdf.c b/examples/src/text/text_font_sdf.c new file mode 100644 index 0000000..755b642 --- /dev/null +++ b/examples/src/text/text_font_sdf.c @@ -0,0 +1,125 @@ +/******************************************************************************************* +* +* raylib [text] example - TTF loading and usage +* +* This example has been created using raylib 1.3.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [text] example - SDF fonts"); + + // NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required) + + const char msg[50] = "Signed Distance Fields"; + + // Default font generation from TTF font + Font fontDefault = { 0 }; + fontDefault.baseSize = 16; + fontDefault.charsCount = 95; + // Parameters > font size: 16, no chars array provided (0), chars count: 95 (autogenerate chars array) + fontDefault.chars = LoadFontData("resources/AnonymousPro-Bold.ttf", 16, 0, 95, FONT_DEFAULT); + // Parameters > chars count: 95, font size: 16, chars padding in image: 4 px, pack method: 0 (default) + Image atlas = GenImageFontAtlas(fontDefault.chars, 95, 16, 4, 0); + fontDefault.texture = LoadTextureFromImage(atlas); + UnloadImage(atlas); + + // SDF font generation from TTF font + Font fontSDF = { 0 }; + fontSDF.baseSize = 16; + fontSDF.charsCount = 95; + // Parameters > font size: 16, no chars array provided (0), chars count: 0 (defaults to 95) + fontSDF.chars = LoadFontData("resources/AnonymousPro-Bold.ttf", 16, 0, 0, FONT_SDF); + // Parameters > chars count: 95, font size: 16, chars padding in image: 0 px, pack method: 1 (Skyline algorythm) + atlas = GenImageFontAtlas(fontSDF.chars, 95, 16, 0, 1); + fontSDF.texture = LoadTextureFromImage(atlas); + UnloadImage(atlas); + + // Load SDF required shader (we use default vertex shader) + Shader shader = LoadShader(0, "resources/shaders/sdf.fs"); + SetTextureFilter(fontSDF.texture, FILTER_BILINEAR); // Required for SDF font + + Vector2 fontPosition = { 40, screenHeight/2 - 50 }; + Vector2 textSize = { 0.0f }; + float fontSize = 16.0f; + int currentFont = 0; // 0 - fontDefault, 1 - fontSDF + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + fontSize += GetMouseWheelMove()*8.0f; + + if (fontSize < 6) fontSize = 6; + + if (IsKeyDown(KEY_SPACE)) currentFont = 1; + else currentFont = 0; + + if (currentFont == 0) textSize = MeasureTextEx(fontDefault, msg, fontSize, 0); + else textSize = MeasureTextEx(fontSDF, msg, fontSize, 0); + + fontPosition.x = GetScreenWidth()/2 - textSize.x/2; + fontPosition.y = GetScreenHeight()/2 - textSize.y/2 + 80; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + if (currentFont == 1) + { + // NOTE: SDF fonts require a custom SDf shader to compute fragment color + BeginShaderMode(shader); // Activate SDF font shader + DrawTextEx(fontSDF, msg, fontPosition, fontSize, 0, BLACK); + EndShaderMode(); // Activate our default shader for next drawings + + DrawTexture(fontSDF.texture, 10, 10, BLACK); + } + else + { + DrawTextEx(fontDefault, msg, fontPosition, fontSize, 0, BLACK); + DrawTexture(fontDefault.texture, 10, 10, BLACK); + } + + if (currentFont == 1) DrawText("SDF!", 320, 20, 80, RED); + else DrawText("default font", 315, 40, 30, GRAY); + + DrawText("FONT SIZE: 16.0", GetScreenWidth() - 240, 20, 20, DARKGRAY); + DrawText(FormatText("RENDER SIZE: %02.02f", fontSize), GetScreenWidth() - 240, 50, 20, DARKGRAY); + DrawText("Use MOUSE WHEEL to SCALE TEXT!", GetScreenWidth() - 240, 90, 10, DARKGRAY); + + DrawText("PRESS SPACE to USE SDF FONT VERSION!", 340, GetScreenHeight() - 30, 20, MAROON); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadFont(fontDefault); // Default font unloading + UnloadFont(fontSDF); // SDF font unloading + + UnloadShader(shader); // Unload SDF shader + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/text/text_rectangle_bounds.c b/examples/src/text/text_rectangle_bounds.c new file mode 100644 index 0000000..d4cd240 --- /dev/null +++ b/examples/src/text/text_rectangle_bounds.c @@ -0,0 +1,120 @@ +/******************************************************************************************* +* +* raylib [text] example - Draw text inside a rectangle +* +* This example has been created using raylib 2.3 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Vlad Adrian (@demizdor) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2018 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [text] example - draw text inside a rectangle"); + + char text[] = "Text cannot escape\tthis container\t...word wrap also works when active so here's\ + a long text for testing.\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\ + tempor incididunt ut labore et dolore magna aliqua. Nec ullamcorper sit amet risus nullam eget felis eget."; + + bool resizing = false; + bool wordWrap = true; + + Rectangle container = { 25, 25, screenWidth - 50, screenHeight - 250}; + Rectangle resizer = { container.x + container.width - 17, container.y + container.height - 17, 14, 14 }; + + // Minimum width and heigh for the container rectangle + const int minWidth = 60; + const int minHeight = 60; + const int maxWidth = screenWidth - 50; + const int maxHeight = screenHeight - 160; + + Vector2 lastMouse = { 0, 0 }; // Stores last mouse coordinates + Color borderColor = MAROON; // Container border color + Font font = GetFontDefault(); // Get default system font + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + if (IsKeyPressed(KEY_SPACE)) wordWrap = !wordWrap; + + Vector2 mouse = GetMousePosition(); + + // Check if the mouse is inside the container and toggle border color + if (CheckCollisionPointRec(mouse, container)) borderColor = Fade(MAROON, 0.4f); + else if (!resizing) borderColor = MAROON; + + // Container resizing logic + if (resizing) + { + if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) resizing = false; + + int width = container.width + (mouse.x - lastMouse.x); + container.width = (width > minWidth)? ((width < maxWidth)? width : maxWidth) : minWidth; + + int height = container.height + (mouse.y - lastMouse.y); + container.height = (height > minHeight)? ((height < maxHeight)? height : maxHeight) : minHeight; + } + else + { + // Check if we're resizing + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON) && CheckCollisionPointRec(mouse, resizer)) resizing = true; + } + + // Move resizer rectangle properly + resizer.x = container.x + container.width - 17; + resizer.y = container.y + container.height - 17; + + lastMouse = mouse; // Update mouse + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawRectangleLinesEx(container, 3, borderColor); // Draw container border + + // Draw text in container (add some padding) + DrawTextRec(font, text, + (Rectangle){ container.x + 4, container.y + 4, container.width - 4, container.height - 4 }, + 20.0f, 2.0f, wordWrap, GRAY); + + DrawRectangleRec(resizer, borderColor); // Draw the resize box + + // Draw info + DrawText("Word Wrap: ", 313, screenHeight-115, 20, BLACK); + if (wordWrap) DrawText("ON", 447, screenHeight - 115, 20, RED); + else DrawText("OFF", 447, screenHeight - 115, 20, BLACK); + DrawText("Press [SPACE] to toggle word wrap", 218, screenHeight - 91, 20, GRAY); + + DrawRectangle(0, screenHeight - 54, screenWidth, 54, GRAY); + DrawText("Click hold & drag the to resize the container", 155, screenHeight - 38, 20, RAYWHITE); + DrawRectangleRec((Rectangle){ 382, screenHeight - 34, 12, 12 }, MAROON); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/text/text_unicode.c b/examples/src/text/text_unicode.c new file mode 100644 index 0000000..6b456a7 --- /dev/null +++ b/examples/src/text/text_unicode.c @@ -0,0 +1,323 @@ +/******************************************************************************************* +* +* raylib [text] example - Using unicode with raylib +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Vlad Adrian (@demizdor) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2019 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include +#include + +#define SIZEOF(A) (sizeof(A)/sizeof(A[0])) +#define EMOJI_PER_WIDTH 8 +#define EMOJI_PER_HEIGHT 4 + +// String containing 180 emoji codepoints separated by a '\0' char +const char *const emojiCodepoints = "\xF0\x9F\x8C\x80\x00\xF0\x9F\x98\x80\x00\xF0\x9F\x98\x82\x00\xF0\x9F\xA4\xA3\x00\xF0\x9F\x98\x83\x00\xF0\x9F\x98\x86\x00\xF0\x9F\x98\x89\x00" + "\xF0\x9F\x98\x8B\x00\xF0\x9F\x98\x8E\x00\xF0\x9F\x98\x8D\x00\xF0\x9F\x98\x98\x00\xF0\x9F\x98\x97\x00\xF0\x9F\x98\x99\x00\xF0\x9F\x98\x9A\x00\xF0\x9F\x99\x82\x00" + "\xF0\x9F\xA4\x97\x00\xF0\x9F\xA4\xA9\x00\xF0\x9F\xA4\x94\x00\xF0\x9F\xA4\xA8\x00\xF0\x9F\x98\x90\x00\xF0\x9F\x98\x91\x00\xF0\x9F\x98\xB6\x00\xF0\x9F\x99\x84\x00" + "\xF0\x9F\x98\x8F\x00\xF0\x9F\x98\xA3\x00\xF0\x9F\x98\xA5\x00\xF0\x9F\x98\xAE\x00\xF0\x9F\xA4\x90\x00\xF0\x9F\x98\xAF\x00\xF0\x9F\x98\xAA\x00\xF0\x9F\x98\xAB\x00" + "\xF0\x9F\x98\xB4\x00\xF0\x9F\x98\x8C\x00\xF0\x9F\x98\x9B\x00\xF0\x9F\x98\x9D\x00\xF0\x9F\xA4\xA4\x00\xF0\x9F\x98\x92\x00\xF0\x9F\x98\x95\x00\xF0\x9F\x99\x83\x00" + "\xF0\x9F\xA4\x91\x00\xF0\x9F\x98\xB2\x00\xF0\x9F\x99\x81\x00\xF0\x9F\x98\x96\x00\xF0\x9F\x98\x9E\x00\xF0\x9F\x98\x9F\x00\xF0\x9F\x98\xA4\x00\xF0\x9F\x98\xA2\x00" + "\xF0\x9F\x98\xAD\x00\xF0\x9F\x98\xA6\x00\xF0\x9F\x98\xA9\x00\xF0\x9F\xA4\xAF\x00\xF0\x9F\x98\xAC\x00\xF0\x9F\x98\xB0\x00\xF0\x9F\x98\xB1\x00\xF0\x9F\x98\xB3\x00" + "\xF0\x9F\xA4\xAA\x00\xF0\x9F\x98\xB5\x00\xF0\x9F\x98\xA1\x00\xF0\x9F\x98\xA0\x00\xF0\x9F\xA4\xAC\x00\xF0\x9F\x98\xB7\x00\xF0\x9F\xA4\x92\x00\xF0\x9F\xA4\x95\x00" + "\xF0\x9F\xA4\xA2\x00\xF0\x9F\xA4\xAE\x00\xF0\x9F\xA4\xA7\x00\xF0\x9F\x98\x87\x00\xF0\x9F\xA4\xA0\x00\xF0\x9F\xA4\xAB\x00\xF0\x9F\xA4\xAD\x00\xF0\x9F\xA7\x90\x00" + "\xF0\x9F\xA4\x93\x00\xF0\x9F\x98\x88\x00\xF0\x9F\x91\xBF\x00\xF0\x9F\x91\xB9\x00\xF0\x9F\x91\xBA\x00\xF0\x9F\x92\x80\x00\xF0\x9F\x91\xBB\x00\xF0\x9F\x91\xBD\x00" + "\xF0\x9F\x91\xBE\x00\xF0\x9F\xA4\x96\x00\xF0\x9F\x92\xA9\x00\xF0\x9F\x98\xBA\x00\xF0\x9F\x98\xB8\x00\xF0\x9F\x98\xB9\x00\xF0\x9F\x98\xBB\x00\xF0\x9F\x98\xBD\x00" + "\xF0\x9F\x99\x80\x00\xF0\x9F\x98\xBF\x00\xF0\x9F\x8C\xBE\x00\xF0\x9F\x8C\xBF\x00\xF0\x9F\x8D\x80\x00\xF0\x9F\x8D\x83\x00\xF0\x9F\x8D\x87\x00\xF0\x9F\x8D\x93\x00" + "\xF0\x9F\xA5\x9D\x00\xF0\x9F\x8D\x85\x00\xF0\x9F\xA5\xA5\x00\xF0\x9F\xA5\x91\x00\xF0\x9F\x8D\x86\x00\xF0\x9F\xA5\x94\x00\xF0\x9F\xA5\x95\x00\xF0\x9F\x8C\xBD\x00" + "\xF0\x9F\x8C\xB6\x00\xF0\x9F\xA5\x92\x00\xF0\x9F\xA5\xA6\x00\xF0\x9F\x8D\x84\x00\xF0\x9F\xA5\x9C\x00\xF0\x9F\x8C\xB0\x00\xF0\x9F\x8D\x9E\x00\xF0\x9F\xA5\x90\x00" + "\xF0\x9F\xA5\x96\x00\xF0\x9F\xA5\xA8\x00\xF0\x9F\xA5\x9E\x00\xF0\x9F\xA7\x80\x00\xF0\x9F\x8D\x96\x00\xF0\x9F\x8D\x97\x00\xF0\x9F\xA5\xA9\x00\xF0\x9F\xA5\x93\x00" + "\xF0\x9F\x8D\x94\x00\xF0\x9F\x8D\x9F\x00\xF0\x9F\x8D\x95\x00\xF0\x9F\x8C\xAD\x00\xF0\x9F\xA5\xAA\x00\xF0\x9F\x8C\xAE\x00\xF0\x9F\x8C\xAF\x00\xF0\x9F\xA5\x99\x00" + "\xF0\x9F\xA5\x9A\x00\xF0\x9F\x8D\xB3\x00\xF0\x9F\xA5\x98\x00\xF0\x9F\x8D\xB2\x00\xF0\x9F\xA5\xA3\x00\xF0\x9F\xA5\x97\x00\xF0\x9F\x8D\xBF\x00\xF0\x9F\xA5\xAB\x00" + "\xF0\x9F\x8D\xB1\x00\xF0\x9F\x8D\x98\x00\xF0\x9F\x8D\x9D\x00\xF0\x9F\x8D\xA0\x00\xF0\x9F\x8D\xA2\x00\xF0\x9F\x8D\xA5\x00\xF0\x9F\x8D\xA1\x00\xF0\x9F\xA5\x9F\x00" + "\xF0\x9F\xA5\xA1\x00\xF0\x9F\x8D\xA6\x00\xF0\x9F\x8D\xAA\x00\xF0\x9F\x8E\x82\x00\xF0\x9F\x8D\xB0\x00\xF0\x9F\xA5\xA7\x00\xF0\x9F\x8D\xAB\x00\xF0\x9F\x8D\xAF\x00" + "\xF0\x9F\x8D\xBC\x00\xF0\x9F\xA5\x9B\x00\xF0\x9F\x8D\xB5\x00\xF0\x9F\x8D\xB6\x00\xF0\x9F\x8D\xBE\x00\xF0\x9F\x8D\xB7\x00\xF0\x9F\x8D\xBB\x00\xF0\x9F\xA5\x82\x00" + "\xF0\x9F\xA5\x83\x00\xF0\x9F\xA5\xA4\x00\xF0\x9F\xA5\xA2\x00\xF0\x9F\x91\x81\x00\xF0\x9F\x91\x85\x00\xF0\x9F\x91\x84\x00\xF0\x9F\x92\x8B\x00\xF0\x9F\x92\x98\x00" + "\xF0\x9F\x92\x93\x00\xF0\x9F\x92\x97\x00\xF0\x9F\x92\x99\x00\xF0\x9F\x92\x9B\x00\xF0\x9F\xA7\xA1\x00\xF0\x9F\x92\x9C\x00\xF0\x9F\x96\xA4\x00\xF0\x9F\x92\x9D\x00" + "\xF0\x9F\x92\x9F\x00\xF0\x9F\x92\x8C\x00\xF0\x9F\x92\xA4\x00\xF0\x9F\x92\xA2\x00\xF0\x9F\x92\xA3\x00"; + +struct { + char *text; + char *language; +} const messages[] = { // Array containing all of the emojis messages + {"\x46\x61\x6C\x73\x63\x68\x65\x73\x20\xC3\x9C\x62\x65\x6E\x20\x76\x6F\x6E\x20\x58\x79\x6C\x6F\x70\x68\x6F\x6E\x6D\x75\x73\x69\x6B\x20\x71\x75\xC3\xA4\x6C" + "\x74\x20\x6A\x65\x64\x65\x6E\x20\x67\x72\xC3\xB6\xC3\x9F\x65\x72\x65\x6E\x20\x5A\x77\x65\x72\x67", "German"}, + {"\x42\x65\x69\xC3\x9F\x20\x6E\x69\x63\x68\x74\x20\x69\x6E\x20\x64\x69\x65\x20\x48\x61\x6E\x64\x2C\x20\x64\x69\x65\x20\x64\x69\x63\x68\x20\x66\xC3\xBC\x74" + "\x74\x65\x72\x74\x2E", "German"}, + {"\x41\x75\xC3\x9F\x65\x72\x6F\x72\x64\x65\x6E\x74\x6C\x69\x63\x68\x65\x20\xC3\x9C\x62\x65\x6C\x20\x65\x72\x66\x6F\x72\x64\x65\x72\x6E\x20\x61\x75\xC3\x9F" + "\x65\x72\x6F\x72\x64\x65\x6E\x74\x6C\x69\x63\x68\x65\x20\x4D\x69\x74\x74\x65\x6C\x2E", "German"}, + {"\xD4\xBF\xD6\x80\xD5\xB6\xD5\xA1\xD5\xB4\x20\xD5\xA1\xD5\xBA\xD5\xA1\xD5\xAF\xD5\xAB\x20\xD5\xB8\xD6\x82\xD5\xBF\xD5\xA5\xD5\xAC\x20\xD6\x87\x20\xD5\xAB" + "\xD5\xB6\xD5\xAE\xD5\xAB\x20\xD5\xA1\xD5\xB6\xD5\xB0\xD5\xA1\xD5\xB6\xD5\xA3\xD5\xAB\xD5\xBD\xD5\xBF\x20\xD5\xB9\xD5\xA8\xD5\xB6\xD5\xA5\xD6\x80", "Armenian"}, + {"\xD4\xB5\xD6\x80\xD5\xA2\x20\xD5\xB8\xD6\x80\x20\xD5\xAF\xD5\xA1\xD6\x81\xD5\xAB\xD5\xB6\xD5\xA8\x20\xD5\xA5\xD5\xAF\xD5\xA1\xD6\x82\x20\xD5\xA1\xD5\xB6\xD5" + "\xBF\xD5\xA1\xD5\xBC\x2C\x20\xD5\xAE\xD5\xA1\xD5\xBC\xD5\xA5\xD6\x80\xD5\xA8\x20\xD5\xA1\xD5\xBD\xD5\xA1\xD6\x81\xD5\xAB\xD5\xB6\x2E\x2E\x2E\x20\xC2\xAB\xD4\xBF" + "\xD5\xB8\xD5\xBF\xD5\xA8\x20\xD5\xB4\xD5\xA5\xD6\x80\xD5\xB8\xD5\xB6\xD6\x81\xD5\xAB\xD6\x81\x20\xD5\xA7\x3A\xC2\xBB", "Armenian"}, + {"\xD4\xB3\xD5\xA1\xD5\xBC\xD5\xA8\xD5\x9D\x20\xD5\xA3\xD5\xA1\xD6\x80\xD5\xB6\xD5\xA1\xD5\xB6\x2C\x20\xD5\xB1\xD5\xAB\xD6\x82\xD5\xB6\xD5\xA8\xD5\x9D\x20\xD5" + "\xB1\xD5\xB4\xD5\xBC\xD5\xA1\xD5\xB6", "Armenian"}, + {"\x4A\x65\xC5\xBC\x75\x20\x6B\x6C\xC4\x85\x74\x77\x2C\x20\x73\x70\xC5\x82\xC3\xB3\x64\xC5\xBA\x20\x46\x69\x6E\x6F\x6D\x20\x63\x7A\xC4\x99\xC5\x9B\xC4\x87" + "\x20\x67\x72\x79\x20\x68\x61\xC5\x84\x62\x21", "Polish"}, + {"\x44\x6F\x62\x72\x79\x6D\x69\x20\x63\x68\xC4\x99\x63\x69\x61\x6D\x69\x20\x6A\x65\x73\x74\x20\x70\x69\x65\x6B\xC5\x82\x6F\x20\x77\x79\x62\x72\x75\x6B\x6F" + "\x77\x61\x6E\x65\x2E", "Polish"}, + {"\xC3\x8E\xC8\x9B\x69\x20\x6D\x75\x6C\xC8\x9B\x75\x6D\x65\x73\x63\x20\x63\xC4\x83\x20\x61\x69\x20\x61\x6C\x65\x73\x20\x72\x61\x79\x6C\x69\x62\x2E\x0A\xC8\x98" + "\x69\x20\x73\x70\x65\x72\x20\x73\xC4\x83\x20\x61\x69\x20\x6F\x20\x7A\x69\x20\x62\x75\x6E\xC4\x83\x21", "Romanian"}, + {"\xD0\xAD\xD1\x85\x2C\x20\xD1\x87\xD1\x83\xD0\xB6\xD0\xB0\xD0\xBA\x2C\x20\xD0\xBE\xD0\xB1\xD1\x89\xD0\xB8\xD0\xB9\x20\xD1\x81\xD1\x8A\xD1\x91\xD0\xBC\x20" + "\xD1\x86\xD0\xB5\xD0\xBD\x20\xD1\x88\xD0\xBB\xD1\x8F\xD0\xBF\x20\x28\xD1\x8E\xD1\x84\xD1\x82\xD1\x8C\x29\x20\xD0\xB2\xD0\xB4\xD1\x80\xD1\x8B\xD0\xB7\xD0\xB3\x21", "Russian"}, + {"\xD0\xAF\x20\xD0\xBB\xD1\x8E\xD0\xB1\xD0\xBB\xD1\x8E\x20\x72\x61\x79\x6C\x69\x62\x21", "Russian"}, + {"\xD0\x9C\xD0\xBE\xD0\xBB\xD1\x87\xD0\xB8\x2C\x20\xD1\x81\xD0\xBA\xD1\x80\xD1\x8B\xD0\xB2\xD0\xB0\xD0\xB9\xD1\x81\xD1\x8F\x20\xD0\xB8\x20\xD1\x82\xD0\xB0\xD0\xB8" + "\x0A\xD0\x98\x20\xD1\x87\xD1\x83\xD0\xB2\xD1\x81\xD1\x82\xD0\xB2\xD0\xB0\x20\xD0\xB8\x20\xD0\xBC\xD0\xB5\xD1\x87\xD1\x82\xD1\x8B\x20\xD1\x81\xD0\xB2\xD0\xBE\xD0\xB8\x20" + "\xE2\x80\x93\x0A\xD0\x9F\xD1\x83\xD1\x81\xD0\xBA\xD0\xB0\xD0\xB9\x20\xD0\xB2\x20\xD0\xB4\xD1\x83\xD1\x88\xD0\xB5\xD0\xB2\xD0\xBD\xD0\xBE\xD0\xB9\x20\xD0\xB3\xD0\xBB\xD1" + "\x83\xD0\xB1\xD0\xB8\xD0\xBD\xD0\xB5\x0A\xD0\x98\x20\xD0\xB2\xD1\x81\xD1\x85\xD0\xBE\xD0\xB4\xD1\x8F\xD1\x82\x20\xD0\xB8\x20\xD0\xB7\xD0\xB0\xD0\xB9\xD0\xB4\xD1\x83\xD1" + "\x82\x20\xD0\xBE\xD0\xBD\xD0\xB5\x0A\xD0\x9A\xD0\xB0\xD0\xBA\x20\xD0\xB7\xD0\xB2\xD0\xB5\xD0\xB7\xD0\xB4\xD1\x8B\x20\xD1\x8F\xD1\x81\xD0\xBD\xD1\x8B\xD0\xB5\x20\xD0\xB2" + "\x20\xD0\xBD\xD0\xBE\xD1\x87\xD0\xB8\x2D\x0A\xD0\x9B\xD1\x8E\xD0\xB1\xD1\x83\xD0\xB9\xD1\x81\xD1\x8F\x20\xD0\xB8\xD0\xBC\xD0\xB8\x20\xE2\x80\x93\x20\xD0\xB8\x20\xD0\xBC" + "\xD0\xBE\xD0\xBB\xD1\x87\xD0\xB8\x2E", "Russian"}, + {"\x56\x6F\x69\x78\x20\x61\x6D\x62\x69\x67\x75\xC3\xAB\x20\x64\xE2\x80\x99\x75\x6E\x20\x63\xC5\x93\x75\x72\x20\x71\x75\x69\x20\x61\x75\x20\x7A\xC3\xA9\x70" + "\x68\x79\x72\x20\x70\x72\xC3\xA9\x66\xC3\xA8\x72\x65\x20\x6C\x65\x73\x20\x6A\x61\x74\x74\x65\x73\x20\x64\x65\x20\x6B\x69\x77\x69", "French"}, + {"\x42\x65\x6E\x6A\x61\x6D\xC3\xAD\x6E\x20\x70\x69\x64\x69\xC3\xB3\x20\x75\x6E\x61\x20\x62\x65\x62\x69\x64\x61\x20\x64\x65\x20\x6B\x69\x77\x69\x20\x79\x20" + "\x66\x72\x65\x73\x61\x3B\x20\x4E\x6F\xC3\xA9\x2C\x20\x73\x69\x6E\x20\x76\x65\x72\x67\xC3\xBC\x65\x6E\x7A\x61\x2C\x20\x6C\x61\x20\x6D\xC3\xA1\x73\x20\x65\x78" + "\x71\x75\x69\x73\x69\x74\x61\x20\x63\x68\x61\x6D\x70\x61\xC3\xB1\x61\x20\x64\x65\x6C\x20\x6D\x65\x6E\xC3\xBA\x2E", "Spanish"}, + {"\xCE\xA4\xCE\xB1\xCF\x87\xCE\xAF\xCF\x83\xCF\x84\xCE\xB7\x20\xCE\xB1\xCE\xBB\xCF\x8E\xCF\x80\xCE\xB7\xCE\xBE\x20\xCE\xB2\xCE\xB1\xCF\x86\xCE\xAE\xCF\x82\x20" + "\xCF\x88\xCE\xB7\xCE\xBC\xCE\xAD\xCE\xBD\xCE\xB7\x20\xCE\xB3\xCE\xB7\x2C\x20\xCE\xB4\xCF\x81\xCE\xB1\xCF\x83\xCE\xBA\xCE\xB5\xCE\xBB\xCE\xAF\xCE\xB6\xCE\xB5\xCE" + "\xB9\x20\xCF\x85\xCF\x80\xCE\xAD\xCF\x81\x20\xCE\xBD\xCF\x89\xCE\xB8\xCF\x81\xCE\xBF\xCF\x8D\x20\xCE\xBA\xCF\x85\xCE\xBD\xCF\x8C\xCF\x82", "Greek"}, + {"\xCE\x97\x20\xCE\xBA\xCE\xB1\xCE\xBB\xCF\x8D\xCF\x84\xCE\xB5\xCF\x81\xCE\xB7\x20\xCE\xAC\xCE\xBC\xCF\x85\xCE\xBD\xCE\xB1\x20\xCE\xB5\xCE\xAF\xCE\xBD" + "\xCE\xB1\xCE\xB9\x20\xCE\xB7\x20\xCE\xB5\xCF\x80\xCE\xAF\xCE\xB8\xCE\xB5\xCF\x83\xCE\xB7\x2E", "Greek"}, + {"\xCE\xA7\xCF\x81\xCF\x8C\xCE\xBD\xCE\xB9\xCE\xB1\x20\xCE\xBA\xCE\xB1\xCE\xB9\x20\xCE\xB6\xCE\xB1\xCE\xBC\xCE\xAC\xCE\xBD\xCE\xB9\xCE\xB1\x21", "Greek"}, + {"\xCE\xA0\xCF\x8E\xCF\x82\x20\xCF\x84\xCE\xB1\x20\xCF\x80\xCE\xB1\xCF\x82\x20\xCF\x83\xCE\xAE\xCE\xBC\xCE\xB5\xCF\x81\xCE\xB1\x3B", "Greek"}, + + {"\xE6\x88\x91\xE8\x83\xBD\xE5\x90\x9E\xE4\xB8\x8B\xE7\x8E\xBB\xE7\x92\x83\xE8\x80\x8C\xE4\xB8\x8D\xE4\xBC\xA4\xE8\xBA\xAB\xE4\xBD\x93\xE3\x80\x82", "Chinese"}, + {"\xE4\xBD\xA0\xE5\x90\x83\xE4\xBA\x86\xE5\x90\x97\xEF\xBC\x9F", "Chinese"}, + {"\xE4\xB8\x8D\xE4\xBD\x9C\xE4\xB8\x8D\xE6\xAD\xBB\xE3\x80\x82", "Chinese"}, + {"\xE6\x9C\x80\xE8\xBF\x91\xE5\xA5\xBD\xE5\x90\x97\xEF\xBC\x9F", "Chinese"}, + {"\xE5\xA1\x9E\xE7\xBF\x81\xE5\xA4\xB1\xE9\xA9\xAC\xEF\xBC\x8C\xE7\x84\x89\xE7\x9F\xA5\xE9\x9D\x9E\xE7\xA6\x8F\xE3\x80\x82", "Chinese"}, + {"\xE5\x8D\x83\xE5\x86\x9B\xE6\x98\x93\xE5\xBE\x97\x2C\x20\xE4\xB8\x80\xE5\xB0\x86\xE9\x9A\xBE\xE6\xB1\x82", "Chinese"}, + {"\xE4\xB8\x87\xE4\xBA\x8B\xE5\xBC\x80\xE5\xA4\xB4\xE9\x9A\xBE\xE3\x80\x82", "Chinese"}, + {"\xE9\xA3\x8E\xE6\x97\xA0\xE5\xB8\xB8\xE9\xA1\xBA\xEF\xBC\x8C\xE5\x85\xB5\xE6\x97\xA0\xE5\xB8\xB8\xE8\x83\x9C\xE3\x80\x82", "Chinese"}, + {"\xE6\xB4\xBB\xE5\x88\xB0\xE8\x80\x81\xEF\xBC\x8C\xE5\xAD\xA6\xE5\x88\xB0\xE8\x80\x81\xE3\x80\x82", "Chinese"}, + {"\xE4\xB8\x80\xE8\xA8\x80\xE6\x97\xA2\xE5\x87\xBA\xEF\xBC\x8C\xE9\xA9\xB7\xE9\xA9\xAC\xE9\x9A\xBE\xE8\xBF\xBD\xE3\x80\x82", "Chinese"}, + {"\xE8\xB7\xAF\xE9\x81\xA5\xE7\x9F\xA5\xE9\xA9\xAC\xE5\x8A\x9B\xEF\xBC\x8C\xE6\x97\xA5\xE4\xB9\x85\xE8\xA7\x81\xE4\xBA\xBA\xE5\xBF\x83", "Chinese"}, + {"\xE6\x9C\x89\xE7\x90\x86\xE8\xB5\xB0\xE9\x81\x8D\xE5\xA4\xA9\xE4\xB8\x8B\xEF\xBC\x8C\xE6\x97\xA0\xE7\x90\x86\xE5\xAF\xB8\xE6\xAD\xA5\xE9\x9A\xBE\xE8\xA1\x8C\xE3\x80\x82", "Chinese"}, + + {"\xE7\x8C\xBF\xE3\x82\x82\xE6\x9C\xA8\xE3\x81\x8B\xE3\x82\x89\xE8\x90\xBD\xE3\x81\xA1\xE3\x82\x8B", "Japanese"}, + {"\xE4\xBA\x80\xE3\x81\xAE\xE7\x94\xB2\xE3\x82\x88\xE3\x82\x8A\xE5\xB9\xB4\xE3\x81\xAE\xE5\x8A\x9F", "Japanese"}, + {"\xE3\x81\x86\xE3\x82\x89\xE3\x82\x84\xE3\x81\xBE\xE3\x81\x97\x20\x20\xE6\x80\x9D\xE3\x81\xB2\xE5\x88\x87\xE3\x82\x8B\xE6\x99\x82\x20\x20\xE7\x8C\xAB\xE3\x81\xAE\xE6\x81\x8B", "Japanese"}, + {"\xE8\x99\x8E\xE7\xA9\xB4\xE3\x81\xAB\xE5\x85\xA5\xE3\x82\x89\xE3\x81\x9A\xE3\x82\x93\xE3\x81\xB0\xE8\x99\x8E\xE5\xAD\x90\xE3\x82\x92\xE5\xBE\x97\xE3\x81\x9A\xE3\x80\x82", "Japanese"}, + {"\xE4\xBA\x8C\xE5\x85\x8E\xE3\x82\x92\xE8\xBF\xBD\xE3\x81\x86\xE8\x80\x85\xE3\x81\xAF\xE4\xB8\x80\xE5\x85\x8E\xE3\x82\x92\xE3\x82\x82\xE5\xBE\x97\xE3\x81\x9A\xE3\x80\x82", "Japanese"}, + {"\xE9\xA6\xAC\xE9\xB9\xBF\xE3\x81\xAF\xE6\xAD\xBB\xE3\x81\xAA\xE3\x81\xAA\xE3\x81\x8D\xE3\x82\x83\xE6\xB2\xBB\xE3\x82\x89\xE3\x81\xAA\xE3\x81\x84\xE3\x80\x82", "Japanese"}, + {"\xE6\x9E\xAF\xE9\x87\x8E\xE8\xB7\xAF\xE3\x81\xAB\xE3\x80\x80\xE5\xBD\xB1\xE3\x81\x8B\xE3\x81\x95\xE3\x81\xAA\xE3\x82\x8A\xE3\x81\xA6\xE3\x80\x80\xE3\x82\x8F\xE3\x81\x8B\xE3\x82\x8C\xE3\x81\x91\xE3\x82\x8A", "Japanese"}, + {"\xE7\xB9\xB0\xE3\x82\x8A\xE8\xBF\x94\xE3\x81\x97\xE9\xBA\xA6\xE3\x81\xAE\xE7\x95\x9D\xE7\xB8\xAB\xE3\x81\xB5\xE8\x83\xA1\xE8\x9D\xB6\xE5\x93\x89", "Japanese"}, + + {"\xEC\x95\x84\xEB\x93\x9D\xED\x95\x9C\x20\xEB\xB0\x94\xEB\x8B\xA4\x20\xEC\x9C\x84\xEC\x97\x90\x20\xEA\xB0\x88\xEB\xA7\xA4\xEA\xB8\xB0\x20\xEB\x91\x90\xEC\x97\x87\x20" + "\xEB\x82\xA0\xEC\x95\x84\x20\xEB\x8F\x88\xEB\x8B\xA4\x2E\x0A\xEB\x84\x88\xED\x9B\x8C\xEB\x84\x88\xED\x9B\x8C\x20\xEC\x8B\x9C\xEB\xA5\xBC\x20\xEC\x93\xB4\xEB\x8B\xA4\x2E" + "\x20\xEB\xAA\xA8\xEB\xA5\xB4\xEB\x8A\x94\x20\xEB\x82\x98\xEB\x9D\xBC\x20\xEA\xB8\x80\xEC\x9E\x90\xEB\x8B\xA4\x2E\x0A\xEB\x84\x90\xEB\x94\xB0\xEB\x9E\x80\x20\xED\x95\x98" + "\xEB\x8A\x98\x20\xEB\xB3\xB5\xED\x8C\x90\xEC\x97\x90\x20\xEB\x82\x98\xEB\x8F\x84\x20\xEA\xB0\x99\xEC\x9D\xB4\x20\xEC\x8B\x9C\xEB\xA5\xBC\x20\xEC\x93\xB4\xEB\x8B\xA4\x2E", "Korean"}, + {"\xEC\xA0\x9C\x20\xEB\x88\x88\xEC\x97\x90\x20\xEC\x95\x88\xEA\xB2\xBD\xEC\x9D\xB4\xEB\x8B\xA4", "Korean"}, + {"\xEA\xBF\xA9\x20\xEB\xA8\xB9\xEA\xB3\xA0\x20\xEC\x95\x8C\x20\xEB\xA8\xB9\xEB\x8A\x94\xEB\x8B\xA4", "Korean"}, + {"\xEB\xA1\x9C\xEB\xA7\x88\xEB\x8A\x94\x20\xED\x95\x98\xEB\xA3\xA8\xEC\x95\x84\xEC\xB9\xA8\xEC\x97\x90\x20\xEC\x9D\xB4\xEB\xA3\xA8\xEC\x96\xB4\xEC\xA7\x84\x20\xEA\xB2\x83\xEC\x9D\xB4" + "\x20\xEC\x95\x84\xEB\x8B\x88\xEB\x8B\xA4", "Korean"}, + {"\xEA\xB3\xA0\xEC\x83\x9D\x20\xEB\x81\x9D\xEC\x97\x90\x20\xEB\x82\x99\xEC\x9D\xB4\x20\xEC\x98\xA8\xEB\x8B\xA4", "Korean"}, + {"\xEA\xB0\x9C\xEC\xB2\x9C\xEC\x97\x90\xEC\x84\x9C\x20\xEC\x9A\xA9\x20\xEB\x82\x9C\xEB\x8B\xA4", "Korean"}, + {"\xEC\x95\x88\xEB\x85\x95\xED\x95\x98\xEC\x84\xB8\xEC\x9A\x94\x3F", "Korean"}, + {"\xEB\xA7\x8C\xEB\x82\x98\xEC\x84\x9C\x20\xEB\xB0\x98\xEA\xB0\x91\xEC\x8A\xB5\xEB\x8B\x88\xEB\x8B\xA4", "Korean"}, + {"\xED\x95\x9C\xEA\xB5\xAD\xEB\xA7\x90\x20\xED\x95\x98\xEC\x8B\xA4\x20\xEC\xA4\x84\x20\xEC\x95\x84\xEC\x84\xB8\xEC\x9A\x94\x3F", "Korean"}, +}; + +//-------------------------------------------------------------------------------------- +// Module functions declaration +//-------------------------------------------------------------------------------------- +static void RandomizeEmoji(void); // Fills the emoji array with random emojis + +//-------------------------------------------------------------------------------------- +// Global variables +//-------------------------------------------------------------------------------------- +// Arrays that holds the random emojis +struct { + int index; // Index inside `emojiCodepoints` + int message; // Message index + Color color; // Emoji color +} emoji[EMOJI_PER_WIDTH*EMOJI_PER_HEIGHT] = { 0 }; + +static int hovered = -1, selected = -1; + +//-------------------------------------------------------------------------------------- +// Main entry point +//-------------------------------------------------------------------------------------- +int main(int argc, char **argv) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + SetConfigFlags(FLAG_MSAA_4X_HINT | FLAG_VSYNC_HINT); + InitWindow(screenWidth, screenHeight, "raylib - unicode test"); + + // Load the font resources + // NOTE: fontAsian is for asian languages, + // fontEmoji is the emojis and fontDefault is used for everything else + Font fontDefault = LoadFont("resources/dejavu.fnt"); + Font fontAsian = LoadFont("resources/notoCJK.fnt"); + Font fontEmoji = LoadFont("resources/emoji.fnt"); + + Vector2 hoveredPos = { 0.0f, 0.0f }; + Vector2 selectedPos = { 0.0f, 0.0f }; + + // Set a random set of emojis when starting up + RandomizeEmoji(); + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main loop + while (!WindowShouldClose()) + { + // Update + //---------------------------------------------------------------------------------- + // Add a new set of emojis when SPACE is pressed + if (IsKeyPressed(KEY_SPACE)) RandomizeEmoji(); + + // Set the selected emoji and copy its text to clipboard + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && (hovered != -1) && (hovered != selected)) + { + selected = hovered; + selectedPos = hoveredPos; + SetClipboardText(messages[emoji[selected].message].text); + } + + Vector2 mouse = GetMousePosition(); + Vector2 pos = { 28.8f, 10.0f }; + hovered = -1; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + // Draw random emojis in the background + //------------------------------------------------------------------------------ + for (int i = 0; i < SIZEOF(emoji); ++i) + { + const char *txt = &emojiCodepoints[emoji[i].index]; + Rectangle emojiRect = { pos.x, pos.y, fontEmoji.baseSize, fontEmoji.baseSize }; + + if (!CheckCollisionPointRec(mouse, emojiRect)) + { + DrawTextEx(fontEmoji, txt, pos, fontEmoji.baseSize, 1.0, selected == i ? emoji[i].color : Fade(LIGHTGRAY, 0.4f)); + } + else + { + DrawTextEx(fontEmoji, txt, pos, fontEmoji.baseSize, 1.0, emoji[i].color ); + hovered = i; + hoveredPos = pos; + } + + if ((i != 0) && (i%EMOJI_PER_WIDTH == 0)) { pos.y += fontEmoji.baseSize + 24.25f; pos.x = 28.8f; } + else pos.x += fontEmoji.baseSize + 28.8f; + } + //------------------------------------------------------------------------------ + + // Draw the message when a emoji is selected + //------------------------------------------------------------------------------ + if (selected != -1) + { + const int message = emoji[selected].message; + const int horizontalPadding = 20, verticalPadding = 30; + Font *font = &fontDefault; + + // Set correct font for asian languages + if (TextIsEqual(messages[message].language, "Chinese") || + TextIsEqual(messages[message].language, "Korean") || + TextIsEqual(messages[message].language, "Japanese")) font = &fontAsian; + + // Calculate size for the message box (approximate the height and width) + Vector2 sz = MeasureTextEx(*font, messages[message].text, font->baseSize, 1.0f); + if (sz.x > 300) { sz.y *= sz.x/300; sz.x = 300; } + else if (sz.x < 160) sz.x = 160; + + Rectangle msgRect = { selectedPos.x - 38.8f, selectedPos.y, 2 * horizontalPadding + sz.x, 2 * verticalPadding + sz.y }; + msgRect.y -= msgRect.height; + + // Coordinates for the chat bubble triangle + Vector2 a = { selectedPos.x, msgRect.y + msgRect.height }, b = {a.x + 8, a.y + 10}, c= { a.x + 10, a.y }; + + // Don't go outside the screen + if (msgRect.x < 10) msgRect.x += 28; + if (msgRect.y < 10) + { + msgRect.y = selectedPos.y + 84; + a.y = msgRect.y; + c.y = a.y; + b.y = a.y - 10; + + // Swap values so we can actually render the triangle :( + Vector2 tmp = a; + a = b; + b = tmp; + } + if (msgRect.x + msgRect.width > screenWidth) msgRect.x -= (msgRect.x + msgRect.width) - screenWidth + 10; + + // Draw chat bubble + DrawRectangleRec(msgRect, emoji[selected].color); + DrawTriangle(a, b, c, emoji[selected].color); + + // Draw the main text message + Rectangle textRect = { msgRect.x + horizontalPadding/2, msgRect.y + verticalPadding/2, msgRect.width - horizontalPadding, msgRect.height }; + DrawTextRec(*font, messages[message].text, textRect, font->baseSize, 1.0f, true, WHITE); + + // Draw the info text below the main message + int size = strlen(messages[message].text); + unsigned int len = TextCountCodepoints(messages[message].text); + const char *info = TextFormat("%s %u characters %i bytes", messages[message].language, len, size); + sz = MeasureTextEx(GetFontDefault(), info, 10, 1.0f); + Vector2 pos = { textRect.x + textRect.width - sz.x, msgRect.y + msgRect.height - sz.y - 2 }; + DrawText(info, pos.x, pos.y, 10, RAYWHITE); + } + //------------------------------------------------------------------------------ + + // Draw the info text + DrawText("These emojis have something to tell you, click each to find out!", (screenWidth - 650)/2, screenHeight - 40, 20, GRAY); + DrawText("Each emoji is a unicode character from a font, not a texture... Press [SPACEBAR] to refresh", (screenWidth - 484)/2, screenHeight - 16, 10, GRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadFont(fontDefault); // Unload font resource + UnloadFont(fontAsian); // Unload font resource + UnloadFont(fontEmoji); // Unload font resource + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +// Fills the emoji array with random emoji (only those emojis present in fontEmoji) +static void RandomizeEmoji(void) +{ + hovered = selected = -1; + int start = GetRandomValue(45, 360); + + for (int i = 0; i < SIZEOF(emoji); ++i) + { + // 0-179 emoji codepoints (from emoji char array) each 4bytes + null char + emoji[i].index = GetRandomValue(0, 179)*5; + + // Generate a random color for this emoji + Vector3 hsv = {(start*(i + 1))%360, 0.6f, 0.85f}; + emoji[i].color = Fade(ColorFromHSV(hsv), 0.8f); + + // Set a random message for this emoji + emoji[i].message = GetRandomValue(0, SIZEOF(messages) - 1); + } +} diff --git a/examples/src/text/text_writing_anim.c b/examples/src/text/text_writing_anim.c index 5563b56..b2aba69 100644 --- a/examples/src/text/text_writing_anim.c +++ b/examples/src/text/text_writing_anim.c @@ -2,7 +2,7 @@ * * raylib [text] example - Text Writing Animation * -* This example has been created using raylib 1.4 (www.raylib.com) +* This example has been created using raylib 2.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2016 Ramon Santamaria (@raysan5) @@ -44,7 +44,7 @@ int main() ClearBackground(RAYWHITE); - DrawText(SubText(message, 0, framesCounter/10), 210, 160, 20, MAROON); + DrawText(TextSubtext(message, 0, framesCounter/10), 210, 160, 20, MAROON); DrawText("PRESS [ENTER] to RESTART!", 240, 260, 20, LIGHTGRAY); DrawText("PRESS [SPACE] to SPEED UP!", 239, 300, 20, LIGHTGRAY); diff --git a/examples/src/textures/textures_background_scrolling.c b/examples/src/textures/textures_background_scrolling.c new file mode 100644 index 0000000..2be0810 --- /dev/null +++ b/examples/src/textures/textures_background_scrolling.c @@ -0,0 +1,87 @@ +/******************************************************************************************* +* +* raylib [textures] example - Background scrolling +* +* This example has been created using raylib 2.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [textures] example - background scrolling"); + + // NOTE: Be careful, background width must be equal or bigger than screen width + // if not, texture should be draw more than two times for scrolling effect + Texture2D background = LoadTexture("resources/cyberpunk_street_background.png"); + Texture2D midground = LoadTexture("resources/cyberpunk_street_midground.png"); + Texture2D foreground = LoadTexture("resources/cyberpunk_street_foreground.png"); + + float scrollingBack = 0; + float scrollingMid = 0; + float scrollingFore = 0; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + scrollingBack -= 0.1f; + scrollingMid -= 0.5f; + scrollingFore -= 1.0f; + + // NOTE: Texture is scaled twice its size, so it sould be considered on scrolling + if (scrollingBack <= -background.width*2) scrollingBack = 0; + if (scrollingMid <= -midground.width*2) scrollingMid = 0; + if (scrollingFore <= -foreground.width*2) scrollingFore = 0; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(GetColor(0x052c46ff)); + + // Draw background image twice + // NOTE: Texture is scaled twice its size + DrawTextureEx(background, (Vector2){ scrollingBack, 20 }, 0.0f, 2.0f, WHITE); + DrawTextureEx(background, (Vector2){ background.width*2 + scrollingBack, 20 }, 0.0f, 2.0f, WHITE); + + // Draw midground image twice + DrawTextureEx(midground, (Vector2){ scrollingMid, 20 }, 0.0f, 2.0f, WHITE); + DrawTextureEx(midground, (Vector2){ midground.width*2 + scrollingMid, 20 }, 0.0f, 2.0f, WHITE); + + // Draw foreground image twice + DrawTextureEx(foreground, (Vector2){ scrollingFore, 70 }, 0.0f, 2.0f, WHITE); + DrawTextureEx(foreground, (Vector2){ foreground.width*2 + scrollingFore, 70 }, 0.0f, 2.0f, WHITE); + + DrawText("BACKGROUND SCROLLING & PARALLAX", 10, 10, 20, RED); + DrawText("(c) Cyberpunk Street Environment by Luis Zuno (@ansimuz)", screenWidth - 330, screenHeight - 20, 10, RAYWHITE); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(background); // Unload background texture + UnloadTexture(midground); // Unload midground texture + UnloadTexture(foreground); // Unload foreground texture + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/textures/textures_bunnymark.c b/examples/src/textures/textures_bunnymark.c new file mode 100644 index 0000000..7607883 --- /dev/null +++ b/examples/src/textures/textures_bunnymark.c @@ -0,0 +1,116 @@ +/******************************************************************************************* +* +* raylib [textures] example - Bunnymark +* +* This example has been created using raylib 1.6 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014-2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include // Required for: malloc(), free() + +#define MAX_BUNNIES 100000 // 100K bunnies limit + +// This is the maximum amount of elements (quads) per batch +// NOTE: This value is defined in [rlgl] module and can be changed there +#define MAX_BATCH_ELEMENTS 8192 + +typedef struct Bunny { + Vector2 position; + Vector2 speed; + Color color; +} Bunny; + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [textures] example - bunnymark"); + + Texture2D texBunny = LoadTexture("resources/wabbit_alpha.png"); + + Bunny *bunnies = (Bunny *)malloc(MAX_BUNNIES*sizeof(Bunny)); // Bunnies array + + int bunniesCount = 0; // Bunnies counter + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) + { + // Create more bunnies + for (int i = 0; i < 100; i++) + { + bunnies[bunniesCount].position = GetMousePosition(); + bunnies[bunniesCount].speed.x = (float)GetRandomValue(-250, 250)/60.0f; + bunnies[bunniesCount].speed.y = (float)GetRandomValue(-250, 250)/60.0f; + bunnies[bunniesCount].color = (Color){ GetRandomValue(50, 240), + GetRandomValue(80, 240), + GetRandomValue(100, 240), 255 }; + bunniesCount++; + } + } + + // Update bunnies + for (int i = 0; i < bunniesCount; i++) + { + bunnies[i].position.x += bunnies[i].speed.x; + bunnies[i].position.y += bunnies[i].speed.y; + + if (((bunnies[i].position.x + texBunny.width/2) > GetScreenWidth()) || + ((bunnies[i].position.x + texBunny.width/2) < 0)) bunnies[i].speed.x *= -1; + if (((bunnies[i].position.y + texBunny.height/2) > GetScreenHeight()) || + ((bunnies[i].position.y + texBunny.height/2 - 40) < 0)) bunnies[i].speed.y *= -1; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + for (int i = 0; i < bunniesCount; i++) + { + // NOTE: When internal batch buffer limit is reached (MAX_BATCH_ELEMENTS), + // a draw call is launched and buffer starts being filled again; + // before issuing a draw call, updated vertex data from internal CPU buffer is send to GPU... + // Process of sending data is costly and it could happen that GPU data has not been completely + // processed for drawing while new data is tried to be sent (updating current in-use buffers) + // it could generates a stall and consequently a frame drop, limiting the number of drawn bunnies + DrawTexture(texBunny, bunnies[i].position.x, bunnies[i].position.y, bunnies[i].color); + } + + DrawRectangle(0, 0, screenWidth, 40, BLACK); + DrawText(FormatText("bunnies: %i", bunniesCount), 120, 10, 20, GREEN); + DrawText(FormatText("batched draw calls: %i", 1 + bunniesCount/MAX_BATCH_ELEMENTS), 320, 10, 20, MAROON); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + free(bunnies); // Unload bunnies data array + + UnloadTexture(texBunny); // Unload bunny texture + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/src/textures/textures_image_processing.c b/examples/src/textures/textures_image_processing.c index 58b746e..6d33d95 100644 --- a/examples/src/textures/textures_image_processing.c +++ b/examples/src/textures/textures_image_processing.c @@ -51,7 +51,7 @@ int main() // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) Image image = LoadImage("resources/parrots.png"); // Loaded in CPU memory (RAM) - ImageFormat(&image, UNCOMPRESSED_R8G8B8A8); // Format image to RGBA 32bit (required for texture update) + ImageFormat(&image, UNCOMPRESSED_R8G8B8A8); // Format image to RGBA 32bit (required for texture update) <-- ISSUE Texture2D texture = LoadTextureFromImage(image); // Image converted to texture, GPU memory (VRAM) int currentProcess = NONE; @@ -59,7 +59,7 @@ int main() Rectangle selectRecs[NUM_PROCESSES]; - for (int i = 0; i < NUM_PROCESSES; i++) selectRecs[i] = (Rectangle){ 40, 50 + 32*i, 150, 30 }; + for (int i = 0; i < NUM_PROCESSES; i++) selectRecs[i] = (Rectangle){ 40.0f, (float)(50 + 32*i), 150.0f, 30.0f }; SetTargetFPS(60); //--------------------------------------------------------------------------------------- @@ -121,18 +121,9 @@ int main() // Draw rectangles for (int i = 0; i < NUM_PROCESSES; i++) { - if (i == currentProcess) - { - DrawRectangleRec(selectRecs[i], SKYBLUE); - DrawRectangleLines(selectRecs[i].x, selectRecs[i].y, selectRecs[i].width, selectRecs[i].height, BLUE); - DrawText(processText[i], selectRecs[i].x + selectRecs[i].width/2 - MeasureText(processText[i], 10)/2, selectRecs[i].y + 11, 10, DARKBLUE); - } - else - { - DrawRectangleRec(selectRecs[i], LIGHTGRAY); - DrawRectangleLines(selectRecs[i].x, selectRecs[i].y, selectRecs[i].width, selectRecs[i].height, GRAY); - DrawText(processText[i], selectRecs[i].x + selectRecs[i].width/2 - MeasureText(processText[i], 10)/2, selectRecs[i].y + 11, 10, DARKGRAY); - } + DrawRectangleRec(selectRecs[i], (i == currentProcess) ? SKYBLUE : LIGHTGRAY); + DrawRectangleLines((int)selectRecs[i].x, (int) selectRecs[i].y, (int) selectRecs[i].width, (int) selectRecs[i].height, (i == currentProcess) ? BLUE : GRAY); + DrawText( processText[i], (int)( selectRecs[i].x + selectRecs[i].width/2 - MeasureText(processText[i], 10)/2), (int) selectRecs[i].y + 11, 10, (i == currentProcess) ? DARKBLUE : DARKGRAY); } DrawTexture(texture, screenWidth - texture.width - 60, screenHeight/2 - texture.height/2, WHITE); diff --git a/examples/src/textures/textures_image_text.c b/examples/src/textures/textures_image_text.c new file mode 100644 index 0000000..ce91fbf --- /dev/null +++ b/examples/src/textures/textures_image_text.c @@ -0,0 +1,83 @@ +/******************************************************************************************* +* +* raylib [texture] example - Image text drawing using TTF generated spritefont +* +* This example has been created using raylib 1.8 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2017 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [texture] example - image text drawing"); + + // TTF Font loading with custom generation parameters + Font font = LoadFontEx("resources/KAISG.ttf", 64, 0, 0); + + Image parrots = LoadImage("resources/parrots.png"); // Load image in CPU memory (RAM) + + // Draw over image using custom font + ImageDrawTextEx(&parrots, (Vector2){ 20.0f, 20.0f }, font, "[Parrots font drawing]", (float)font.baseSize, 0.0f, RED); + + Texture2D texture = LoadTextureFromImage(parrots); // Image converted to texture, uploaded to GPU memory (VRAM) + UnloadImage(parrots); // Once image has been converted to texture and uploaded to VRAM, it can be unloaded from RAM + + Vector2 position = { (float)(screenWidth/2 - texture.width/2), (float)(screenHeight/2 - texture.height/2 - 20) }; + + bool showFont = false; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + if (IsKeyDown(KEY_SPACE)) showFont = true; + else showFont = false; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + if (!showFont) + { + // Draw texture with text already drawn inside + DrawTextureV(texture, position, WHITE); + + // Draw text directly using sprite font + DrawTextEx(font, "[Parrots font drawing]", (Vector2){ position.x + 20, + position.y + 20 + 280 }, (float)font.baseSize, 0.0f, WHITE); + } + else DrawTexture(font.texture, screenWidth/2 - font.texture.width/2, 50, BLACK); + + DrawText("PRESS SPACE to SEE USED SPRITEFONT ", 290, 420, 10, DARKGRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(texture); // Texture unloading + + UnloadFont(font); // Unload custom spritefont + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/textures/textures_npatch_drawing.c b/examples/src/textures/textures_npatch_drawing.c new file mode 100644 index 0000000..0514efe --- /dev/null +++ b/examples/src/textures/textures_npatch_drawing.c @@ -0,0 +1,109 @@ +/******************************************************************************************* +* +* raylib [textures] example - N-patch drawing +* +* NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM) +* +* This example has been created using raylib 2.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Jorge A. Gomes (@overdev) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2018 Jorge A. Gomes (@overdev) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [textures] example - N-patch drawing"); + + // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) + Texture2D nPatchTexture = LoadTexture("resources/ninepatch_button.png"); + + Vector2 mousePosition = { 0 }; + Vector2 origin = { 0.0f, 0.0f }; + + // Position and size of the n-patches + Rectangle dstRec1 = { 480.0f, 160.0f, 32.0f, 32.0f }; + Rectangle dstRec2 = { 160.0f, 160.0f, 32.0f, 32.0f }; + Rectangle dstRecH = { 160.0f, 93.0f, 32.0f, 32.0f }; + Rectangle dstRecV = { 92.0f, 160.0f, 32.0f, 32.0f }; + + // A 9-patch (NPT_9PATCH) changes its sizes in both axis + NPatchInfo ninePatchInfo1 = { (Rectangle){ 0.0f, 0.0f, 64.0f, 64.0f }, 12, 40, 12, 12, NPT_9PATCH }; + NPatchInfo ninePatchInfo2 = { (Rectangle){ 0.0f, 128.0f, 64.0f, 64.0f }, 16, 16, 16, 16, NPT_9PATCH }; + + // A horizontal 3-patch (NPT_3PATCH_HORIZONTAL) changes its sizes along the x axis only + NPatchInfo h3PatchInfo = { (Rectangle){ 0.0f, 64.0f, 64.0f, 64.0f }, 8, 8, 8, 8, NPT_3PATCH_HORIZONTAL }; + + // A vertical 3-patch (NPT_3PATCH_VERTICAL) changes its sizes along the y axis only + NPatchInfo v3PatchInfo = { (Rectangle){ 0.0f, 192.0f, 64.0f, 64.0f }, 6, 6, 6, 6, NPT_3PATCH_VERTICAL }; + + SetTargetFPS(60); + //--------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + mousePosition = GetMousePosition(); + + // Resize the n-patches based on mouse position + dstRec1.width = mousePosition.x - dstRec1.x; + dstRec1.height = mousePosition.y - dstRec1.y; + dstRec2.width = mousePosition.x - dstRec2.x; + dstRec2.height = mousePosition.y - dstRec2.y; + dstRecH.width = mousePosition.x - dstRecH.x; + dstRecV.height = mousePosition.y - dstRecV.y; + + // Set a minimum width and/or height + if (dstRec1.width < 1.0f) dstRec1.width = 1.0f; + if (dstRec1.width > 300.0f) dstRec1.width = 300.0f; + if (dstRec1.height < 1.0f) dstRec1.height = 1.0f; + if (dstRec2.width < 1.0f) dstRec2.width = 1.0f; + if (dstRec2.width > 300.0f) dstRec2.width = 300.0f; + if (dstRec2.height < 1.0f) dstRec2.height = 1.0f; + if (dstRecH.width < 1.0f) dstRecH.width = 1.0f; + if (dstRecV.height < 1.0f) dstRecV.height = 1.0f; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + // Draw the n-patches + DrawTextureNPatch(nPatchTexture, ninePatchInfo2, dstRec2, origin, 0.0f, WHITE); + DrawTextureNPatch(nPatchTexture, ninePatchInfo1, dstRec1, origin, 0.0f, WHITE); + DrawTextureNPatch(nPatchTexture, h3PatchInfo, dstRecH, origin, 0.0f, WHITE); + DrawTextureNPatch(nPatchTexture, v3PatchInfo, dstRecV, origin, 0.0f, WHITE); + + // Draw the source texture + DrawRectangleLines(5, 88, 74, 266, BLUE); + DrawTexture(nPatchTexture, 10, 93, WHITE); + DrawText("TEXTURE", 15, 360, 10, DARKGRAY); + + DrawText("Move the mouse to stretch or shrink the n-patches", 10, 20, 20, DARKGRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(nPatchTexture); // Texture unloading + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/src/textures/textures_raw_data.c b/examples/src/textures/textures_raw_data.c index b038792..481bd66 100644 --- a/examples/src/textures/textures_raw_data.c +++ b/examples/src/textures/textures_raw_data.c @@ -32,8 +32,8 @@ int main() UnloadImage(fudesumiRaw); // Unload CPU (RAM) image data // Generate a checked texture by code (1024x1024 pixels) - int width = 1024; - int height = 1024; + int width = 960; + int height = 480; // Dynamic memory allocation to store pixels data (Color type) Color *pixels = (Color *)malloc(width*height*sizeof(Color)); @@ -42,8 +42,8 @@ int main() { for (int x = 0; x < width; x++) { - if (((x/32+y/32)/1)%2 == 0) pixels[y*height + x] = ORANGE; - else pixels[y*height + x] = GOLD; + if (((x/32+y/32)/1)%2 == 0) pixels[y*width + x] = ORANGE; + else pixels[y*width + x] = GOLD; } } @@ -73,9 +73,9 @@ int main() DrawTexture(checked, screenWidth/2 - checked.width/2, screenHeight/2 - checked.height/2, Fade(WHITE, 0.5f)); DrawTexture(fudesumi, 430, -30, WHITE); - DrawText("CHECKED TEXTURE ", 84, 100, 30, BROWN); - DrawText("GENERATED by CODE", 72, 164, 30, BROWN); - DrawText("and RAW IMAGE LOADING", 46, 226, 30, BROWN); + DrawText("CHECKED TEXTURE ", 84, 85, 30, BROWN); + DrawText("GENERATED by CODE", 72, 148, 30, BROWN); + DrawText("and RAW IMAGE LOADING", 46, 210, 30, BROWN); DrawText("(c) Fudesumi sprite by Eiden Marsal", 310, screenHeight - 20, 10, BROWN); diff --git a/examples/src/textures/textures_sprite_button.c b/examples/src/textures/textures_sprite_button.c new file mode 100644 index 0000000..bbd5732 --- /dev/null +++ b/examples/src/textures/textures_sprite_button.c @@ -0,0 +1,97 @@ +/******************************************************************************************* +* +* raylib [textures] example - sprite button +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#define NUM_FRAMES 3 // Number of frames (rectangles) for the button sprite texture + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [textures] example - sprite button"); + + InitAudioDevice(); // Initialize audio device + + Sound fxButton = LoadSound("resources/buttonfx.wav"); // Load button sound + Texture2D button = LoadTexture("resources/button.png"); // Load button texture + + // Define frame rectangle for drawing + int frameHeight = button.height/NUM_FRAMES; + Rectangle sourceRec = { 0, 0, button.width, frameHeight }; + + // Define button bounds on screen + Rectangle btnBounds = { screenWidth/2 - button.width/2, screenHeight/2 - button.height/NUM_FRAMES/2, button.width, frameHeight }; + + int btnState = 0; // Button state: 0-NORMAL, 1-MOUSE_HOVER, 2-PRESSED + bool btnAction = false; // Button action should be activated + + Vector2 mousePoint = { 0.0f, 0.0f }; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + mousePoint = GetMousePosition(); + btnAction = false; + + // Check button state + if (CheckCollisionPointRec(mousePoint, btnBounds)) + { + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) btnState = 2; + else btnState = 1; + + if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) btnAction = true; + } + else btnState = 0; + + if (btnAction) + { + PlaySound(fxButton); + + // TODO: Any desired action + } + + // Calculate button frame rectangle to draw depending on button state + sourceRec.y = btnState*frameHeight; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawTextureRec(button, sourceRec, (Vector2){ btnBounds.x, btnBounds.y }, WHITE); // Draw button frame + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(button); // Unload button texture + UnloadSound(fxButton); // Unload sound + + CloseAudioDevice(); // Close audio device + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/textures/textures_sprite_explosion.c b/examples/src/textures/textures_sprite_explosion.c new file mode 100644 index 0000000..aa10a76 --- /dev/null +++ b/examples/src/textures/textures_sprite_explosion.c @@ -0,0 +1,120 @@ +/******************************************************************************************* +* +* raylib [textures] example - sprite explosion +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2019 Anata and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#define NUM_FRAMES 8 +#define NUM_LINES 6 + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [textures] example - sprite explosion"); + + InitAudioDevice(); + + // Load explosion sound + Sound fxBoom = LoadSound("resources/boom.wav"); + + // Load explosion texture + Texture2D explosion = LoadTexture("resources/explosion2.png"); + + // Init variables for animation + int frameWidth = explosion.width/NUM_FRAMES; // Sprite one frame rectangle width + int frameHeight = explosion.height/NUM_LINES; // Sprite one frame rectangle height + int currentFrame = 0; + int currentLine = 0; + + Rectangle frameRec = { 0, 0, frameWidth, frameHeight }; + Vector2 position = { 0, 0 }; + + bool active = false; + int framesCounter = 0; + + SetTargetFPS(120); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + + // Check for mouse button pressed and activate explosion (if not active) + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && !active) + { + position = GetMousePosition(); + active = true; + + position.x -= frameWidth/2; + position.y -= frameHeight/2; + + PlaySound(fxBoom); + } + + // Compute explosion animation frames + if (active) + { + framesCounter++; + + if (framesCounter > 2) + { + currentFrame++; + + if (currentFrame >= NUM_FRAMES) + { + currentFrame = 0; + currentLine++; + + if (currentLine >= NUM_LINES) + { + currentLine = 0; + active = false; + } + } + + framesCounter = 0; + } + } + + frameRec.x = frameWidth*currentFrame; + frameRec.y = frameHeight*currentLine; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + // Draw explosion required frame rectangle + if (active) DrawTextureRec(explosion, frameRec, position, WHITE); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(explosion); // Unload texture + UnloadSound(fxBoom); // Unload sound + + CloseAudioDevice(); + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/src/textures/textures_srcrec_dstrec.c b/examples/src/textures/textures_srcrec_dstrec.c index cc08eb5..298a0c6 100644 --- a/examples/src/textures/textures_srcrec_dstrec.c +++ b/examples/src/textures/textures_srcrec_dstrec.c @@ -27,13 +27,13 @@ int main() int frameHeight = scarfy.height; // NOTE: Source rectangle (part of the texture to use for drawing) - Rectangle sourceRec = { 0.0f, 0.0f, (float)frameWidth, (float)frameHeight }; + Rectangle sourceRec = { 0.0f, 0.0f, frameWidth, frameHeight }; // NOTE: Destination rectangle (screen rectangle where drawing part of texture) - Rectangle destRec = { (float)screenWidth/2, (float)screenHeight/2, (float)frameWidth*2, (float)frameHeight*2 }; + Rectangle destRec = { screenWidth/2, screenHeight/2, frameWidth*2, frameHeight*2 }; // NOTE: Origin of the texture (rotation/scale point), it's relative to destination rectangle size - Vector2 origin = { (float)frameWidth, (float)frameHeight }; + Vector2 origin = { frameWidth, frameHeight }; int rotation = 0; @@ -61,7 +61,7 @@ int main() // rotation defines the texture rotation (using origin as rotation point) DrawTexturePro(scarfy, sourceRec, destRec, origin, (float)rotation, WHITE); - DrawLine((int) destRec.x, 0, (int) destRec.x, screenHeight, GRAY); + DrawLine((int)destRec.x, 0, (int)destRec.x, screenHeight, GRAY); DrawLine(0, (int)destRec.y, screenWidth, (int)destRec.y, GRAY); DrawText("(c) Scarfy sprite by Eiden Marsal", screenWidth - 200, screenHeight - 20, 10, GRAY); diff --git a/examples/web/core/core_3d_camera_mode.png b/examples/web/core/core_3d_camera_mode.png new file mode 100644 index 0000000..de65dae Binary files /dev/null and b/examples/web/core/core_3d_camera_mode.png differ diff --git a/examples/web/core/core_3d_mode.c b/examples/web/core/core_3d_mode.c deleted file mode 100644 index 38e9272..0000000 --- a/examples/web/core/core_3d_mode.c +++ /dev/null @@ -1,112 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Initialize 3d mode (adapted for HTML5 platform) -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#if defined(PLATFORM_WEB) - #include -#endif - -#if defined(PLATFORM_ANDROID) - #include "android_native_app_glue.h" -#endif - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -int screenWidth = 800; -int screenHeight = 450; - -// Define the camera to look into our 3d world -Camera camera; -Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; - -//---------------------------------------------------------------------------------- -// Module Functions Declaration -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void); // Update and Draw one frame - -//---------------------------------------------------------------------------------- -// Main Enry Point -//---------------------------------------------------------------------------------- -#if defined(PLATFORM_ANDROID) -void android_main(struct android_app *app) -#else -int main(void) -#endif -{ - // Initialization - //-------------------------------------------------------------------------------------- -#if defined(PLATFORM_ANDROID) - InitWindow(screenWidth, screenHeight, app); -#else - InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d mode"); -#endif - - camera.position = (Vector3){ 0.0f, 10.0f, 10.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 45.0f; // Camera field-of-view Y - -#if defined(PLATFORM_WEB) - emscripten_set_main_loop(UpdateDrawFrame, 0, 1); -#else - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - UpdateDrawFrame(); - } -#endif - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- -#if !defined(PLATFORM_ANDROID) - return 0; -#endif -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void) -{ - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - Begin3dMode(camera); - - DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); - DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); - - DrawGrid(10, 1.0f); - - End3dMode(); - - DrawText("Welcome to the third dimension!", 10, 40, 20, DARKGRAY); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- -} \ No newline at end of file diff --git a/examples/web/core/core_3d_mode.html b/examples/web/core/core_3d_mode.html deleted file mode 100644 index f3744be..0000000 --- a/examples/web/core/core_3d_mode.html +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - - raylib HTML5 GAME - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
Downloading...
- - - - - -
- -
-
- -
- -
- - - - - - - \ No newline at end of file diff --git a/examples/web/core/core_3d_mode.js b/examples/web/core/core_3d_mode.js deleted file mode 100644 index e78ab72..0000000 --- a/examples/web/core/core_3d_mode.js +++ /dev/null @@ -1,25055 +0,0 @@ -// The Module object: Our interface to the outside world. We import -// and export values on it, and do the work to get that through -// closure compiler if necessary. There are various ways Module can be used: -// 1. Not defined. We create it here -// 2. A function parameter, function(Module) { ..generated code.. } -// 3. pre-run appended it, var Module = {}; ..generated code.. -// 4. External script tag defines var Module. -// We need to do an eval in order to handle the closure compiler -// case, where this code here is minified but Module was defined -// elsewhere (e.g. case 4 above). We also need to check if Module -// already exists (e.g. case 3 above). -// Note that if you want to run closure, and also to use Module -// after the generated code, you will need to define var Module = {}; -// before the code. Then that object will be used in the code, and you -// can continue to use Module afterwards as well. -var Module; -if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {}; - -// Sometimes an existing Module object exists with properties -// meant to overwrite the default module functionality. Here -// we collect those properties and reapply _after_ we configure -// the current environment's defaults to avoid having to be so -// defensive during initialization. -var moduleOverrides = {}; -for (var key in Module) { - if (Module.hasOwnProperty(key)) { - moduleOverrides[key] = Module[key]; - } -} - -// The environment setup code below is customized to use Module. -// *** Environment setup code *** -var ENVIRONMENT_IS_WEB = false; -var ENVIRONMENT_IS_WORKER = false; -var ENVIRONMENT_IS_NODE = false; -var ENVIRONMENT_IS_SHELL = false; - -// Three configurations we can be running in: -// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) -// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) -// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) - -if (Module['ENVIRONMENT']) { - if (Module['ENVIRONMENT'] === 'WEB') { - ENVIRONMENT_IS_WEB = true; - } else if (Module['ENVIRONMENT'] === 'WORKER') { - ENVIRONMENT_IS_WORKER = true; - } else if (Module['ENVIRONMENT'] === 'NODE') { - ENVIRONMENT_IS_NODE = true; - } else if (Module['ENVIRONMENT'] === 'SHELL') { - ENVIRONMENT_IS_SHELL = true; - } else { - throw new Error('The provided Module[\'ENVIRONMENT\'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.'); - } -} else { - ENVIRONMENT_IS_WEB = typeof window === 'object'; - ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; - ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; - ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; -} - - -if (ENVIRONMENT_IS_NODE) { - // Expose functionality in the same simple way that the shells work - // Note that we pollute the global namespace here, otherwise we break in node - if (!Module['print']) Module['print'] = console.log; - if (!Module['printErr']) Module['printErr'] = console.warn; - - var nodeFS; - var nodePath; - - Module['read'] = function shell_read(filename, binary) { - if (!nodeFS) nodeFS = require('fs'); - if (!nodePath) nodePath = require('path'); - filename = nodePath['normalize'](filename); - var ret = nodeFS['readFileSync'](filename); - return binary ? ret : ret.toString(); - }; - - Module['readBinary'] = function readBinary(filename) { - var ret = Module['read'](filename, true); - if (!ret.buffer) { - ret = new Uint8Array(ret); - } - assert(ret.buffer); - return ret; - }; - - Module['load'] = function load(f) { - globalEval(read(f)); - }; - - if (!Module['thisProgram']) { - if (process['argv'].length > 1) { - Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); - } else { - Module['thisProgram'] = 'unknown-program'; - } - } - - Module['arguments'] = process['argv'].slice(2); - - if (typeof module !== 'undefined') { - module['exports'] = Module; - } - - process['on']('uncaughtException', function(ex) { - // suppress ExitStatus exceptions from showing an error - if (!(ex instanceof ExitStatus)) { - throw ex; - } - }); - - Module['inspect'] = function () { return '[Emscripten Module object]'; }; -} -else if (ENVIRONMENT_IS_SHELL) { - if (!Module['print']) Module['print'] = print; - if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm - - if (typeof read != 'undefined') { - Module['read'] = read; - } else { - Module['read'] = function shell_read() { throw 'no read() available' }; - } - - Module['readBinary'] = function readBinary(f) { - if (typeof readbuffer === 'function') { - return new Uint8Array(readbuffer(f)); - } - var data = read(f, 'binary'); - assert(typeof data === 'object'); - return data; - }; - - if (typeof scriptArgs != 'undefined') { - Module['arguments'] = scriptArgs; - } else if (typeof arguments != 'undefined') { - Module['arguments'] = arguments; - } - - if (typeof quit === 'function') { - Module['quit'] = function(status, toThrow) { - quit(status); - } - } - -} -else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { - Module['read'] = function shell_read(url) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.send(null); - return xhr.responseText; - }; - - if (ENVIRONMENT_IS_WORKER) { - Module['readBinary'] = function readBinary(url) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.responseType = 'arraybuffer'; - xhr.send(null); - return new Uint8Array(xhr.response); - }; - } - - Module['readAsync'] = function readAsync(url, onload, onerror) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.onload = function xhr_onload() { - if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 - onload(xhr.response); - } else { - onerror(); - } - }; - xhr.onerror = onerror; - xhr.send(null); - }; - - if (typeof arguments != 'undefined') { - Module['arguments'] = arguments; - } - - if (typeof console !== 'undefined') { - if (!Module['print']) Module['print'] = function shell_print(x) { - console.log(x); - }; - if (!Module['printErr']) Module['printErr'] = function shell_printErr(x) { - console.warn(x); - }; - } else { - // Probably a worker, and without console.log. We can do very little here... - var TRY_USE_DUMP = false; - if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) { - dump(x); - }) : (function(x) { - // self.postMessage(x); // enable this if you want stdout to be sent as messages - })); - } - - if (ENVIRONMENT_IS_WORKER) { - Module['load'] = importScripts; - } - - if (typeof Module['setWindowTitle'] === 'undefined') { - Module['setWindowTitle'] = function(title) { document.title = title }; - } -} -else { - // Unreachable because SHELL is dependant on the others - throw 'Unknown runtime environment. Where are we?'; -} - -function globalEval(x) { - eval.call(null, x); -} -if (!Module['load'] && Module['read']) { - Module['load'] = function load(f) { - globalEval(Module['read'](f)); - }; -} -if (!Module['print']) { - Module['print'] = function(){}; -} -if (!Module['printErr']) { - Module['printErr'] = Module['print']; -} -if (!Module['arguments']) { - Module['arguments'] = []; -} -if (!Module['thisProgram']) { - Module['thisProgram'] = './this.program'; -} -if (!Module['quit']) { - Module['quit'] = function(status, toThrow) { - throw toThrow; - } -} - -// *** Environment setup code *** - -// Closure helpers -Module.print = Module['print']; -Module.printErr = Module['printErr']; - -// Callbacks -Module['preRun'] = []; -Module['postRun'] = []; - -// Merge back in the overrides -for (var key in moduleOverrides) { - if (moduleOverrides.hasOwnProperty(key)) { - Module[key] = moduleOverrides[key]; - } -} -// Free the object hierarchy contained in the overrides, this lets the GC -// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. -moduleOverrides = undefined; - - - -// {{PREAMBLE_ADDITIONS}} - -// === Preamble library stuff === - -// Documentation for the public APIs defined in this file must be updated in: -// site/source/docs/api_reference/preamble.js.rst -// A prebuilt local version of the documentation is available at: -// site/build/text/docs/api_reference/preamble.js.txt -// You can also build docs locally as HTML or other formats in site/ -// An online HTML version (which may be of a different version of Emscripten) -// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html - -//======================================== -// Runtime code shared with compiler -//======================================== - -var Runtime = { - setTempRet0: function (value) { - tempRet0 = value; - return value; - }, - getTempRet0: function () { - return tempRet0; - }, - stackSave: function () { - return STACKTOP; - }, - stackRestore: function (stackTop) { - STACKTOP = stackTop; - }, - getNativeTypeSize: function (type) { - switch (type) { - case 'i1': case 'i8': return 1; - case 'i16': return 2; - case 'i32': return 4; - case 'i64': return 8; - case 'float': return 4; - case 'double': return 8; - default: { - if (type[type.length-1] === '*') { - return Runtime.QUANTUM_SIZE; // A pointer - } else if (type[0] === 'i') { - var bits = parseInt(type.substr(1)); - assert(bits % 8 === 0); - return bits/8; - } else { - return 0; - } - } - } - }, - getNativeFieldSize: function (type) { - return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE); - }, - STACK_ALIGN: 16, - prepVararg: function (ptr, type) { - if (type === 'double' || type === 'i64') { - // move so the load is aligned - if (ptr & 7) { - assert((ptr & 7) === 4); - ptr += 4; - } - } else { - assert((ptr & 3) === 0); - } - return ptr; - }, - getAlignSize: function (type, size, vararg) { - // we align i64s and doubles on 64-bit boundaries, unlike x86 - if (!vararg && (type == 'i64' || type == 'double')) return 8; - if (!type) return Math.min(size, 8); // align structures internally to 64 bits - return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE); - }, - dynCall: function (sig, ptr, args) { - if (args && args.length) { - assert(args.length == sig.length-1); - assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); - return Module['dynCall_' + sig].apply(null, [ptr].concat(args)); - } else { - assert(sig.length == 1); - assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); - return Module['dynCall_' + sig].call(null, ptr); - } - }, - functionPointers: [], - addFunction: function (func) { - for (var i = 0; i < Runtime.functionPointers.length; i++) { - if (!Runtime.functionPointers[i]) { - Runtime.functionPointers[i] = func; - return 2*(1 + i); - } - } - throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; - }, - removeFunction: function (index) { - Runtime.functionPointers[(index-2)/2] = null; - }, - warnOnce: function (text) { - if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; - if (!Runtime.warnOnce.shown[text]) { - Runtime.warnOnce.shown[text] = 1; - Module.printErr(text); - } - }, - funcWrappers: {}, - getFuncWrapper: function (func, sig) { - assert(sig); - if (!Runtime.funcWrappers[sig]) { - Runtime.funcWrappers[sig] = {}; - } - var sigCache = Runtime.funcWrappers[sig]; - if (!sigCache[func]) { - // optimize away arguments usage in common cases - if (sig.length === 1) { - sigCache[func] = function dynCall_wrapper() { - return Runtime.dynCall(sig, func); - }; - } else if (sig.length === 2) { - sigCache[func] = function dynCall_wrapper(arg) { - return Runtime.dynCall(sig, func, [arg]); - }; - } else { - // general case - sigCache[func] = function dynCall_wrapper() { - return Runtime.dynCall(sig, func, Array.prototype.slice.call(arguments)); - }; - } - } - return sigCache[func]; - }, - getCompilerSetting: function (name) { - throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work'; - }, - stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+15)&-16);(assert((((STACKTOP|0) < (STACK_MAX|0))|0))|0); return ret; }, - staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + (assert(!staticSealed),size))|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; }, - dynamicAlloc: function (size) { assert(DYNAMICTOP_PTR);var ret = HEAP32[DYNAMICTOP_PTR>>2];var end = (((ret + size + 15)|0) & -16);HEAP32[DYNAMICTOP_PTR>>2] = end;if (end >= TOTAL_MEMORY) {var success = enlargeMemory();if (!success) {HEAP32[DYNAMICTOP_PTR>>2] = ret;return 0;}}return ret;}, - alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 16))*(quantum ? quantum : 16); return ret; }, - makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0))); return ret; }, - GLOBAL_BASE: 8, - QUANTUM_SIZE: 4, - __dummy__: 0 -} - - - -Module["Runtime"] = Runtime; - - - -//======================================== -// Runtime essentials -//======================================== - -var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort() -var EXITSTATUS = 0; - -/** @type {function(*, string=)} */ -function assert(condition, text) { - if (!condition) { - abort('Assertion failed: ' + text); - } -} - -var globalScope = this; - -// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) -function getCFunc(ident) { - var func = Module['_' + ident]; // closure exported function - if (!func) { - try { func = eval('_' + ident); } catch(e) {} - } - assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)'); - return func; -} - -var cwrap, ccall; -(function(){ - var JSfuncs = { - // Helpers for cwrap -- it can't refer to Runtime directly because it might - // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find - // out what the minified function name is. - 'stackSave': function() { - Runtime.stackSave() - }, - 'stackRestore': function() { - Runtime.stackRestore() - }, - // type conversion from js to c - 'arrayToC' : function(arr) { - var ret = Runtime.stackAlloc(arr.length); - writeArrayToMemory(arr, ret); - return ret; - }, - 'stringToC' : function(str) { - var ret = 0; - if (str !== null && str !== undefined && str !== 0) { // null string - // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' - var len = (str.length << 2) + 1; - ret = Runtime.stackAlloc(len); - stringToUTF8(str, ret, len); - } - return ret; - } - }; - // For fast lookup of conversion functions - var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']}; - - // C calling interface. - ccall = function ccallFunc(ident, returnType, argTypes, args, opts) { - var func = getCFunc(ident); - var cArgs = []; - var stack = 0; - assert(returnType !== 'array', 'Return type should not be "array".'); - if (args) { - for (var i = 0; i < args.length; i++) { - var converter = toC[argTypes[i]]; - if (converter) { - if (stack === 0) stack = Runtime.stackSave(); - cArgs[i] = converter(args[i]); - } else { - cArgs[i] = args[i]; - } - } - } - var ret = func.apply(null, cArgs); - if ((!opts || !opts.async) && typeof EmterpreterAsync === 'object') { - assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling ccall'); - } - if (opts && opts.async) assert(!returnType, 'async ccalls cannot return values'); - if (returnType === 'string') ret = Pointer_stringify(ret); - if (stack !== 0) { - if (opts && opts.async) { - EmterpreterAsync.asyncFinalizers.push(function() { - Runtime.stackRestore(stack); - }); - return; - } - Runtime.stackRestore(stack); - } - return ret; - } - - var sourceRegex = /^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; - function parseJSFunc(jsfunc) { - // Match the body and the return value of a javascript function source - var parsed = jsfunc.toString().match(sourceRegex).slice(1); - return {arguments : parsed[0], body : parsed[1], returnValue: parsed[2]} - } - - // sources of useful functions. we create this lazily as it can trigger a source decompression on this entire file - var JSsource = null; - function ensureJSsource() { - if (!JSsource) { - JSsource = {}; - for (var fun in JSfuncs) { - if (JSfuncs.hasOwnProperty(fun)) { - // Elements of toCsource are arrays of three items: - // the code, and the return value - JSsource[fun] = parseJSFunc(JSfuncs[fun]); - } - } - } - } - - cwrap = function cwrap(ident, returnType, argTypes) { - argTypes = argTypes || []; - var cfunc = getCFunc(ident); - // When the function takes numbers and returns a number, we can just return - // the original function - var numericArgs = argTypes.every(function(type){ return type === 'number'}); - var numericRet = (returnType !== 'string'); - if ( numericRet && numericArgs) { - return cfunc; - } - // Creation of the arguments list (["$1","$2",...,"$nargs"]) - var argNames = argTypes.map(function(x,i){return '$'+i}); - var funcstr = "(function(" + argNames.join(',') + ") {"; - var nargs = argTypes.length; - if (!numericArgs) { - // Generate the code needed to convert the arguments from javascript - // values to pointers - ensureJSsource(); - funcstr += 'var stack = ' + JSsource['stackSave'].body + ';'; - for (var i = 0; i < nargs; i++) { - var arg = argNames[i], type = argTypes[i]; - if (type === 'number') continue; - var convertCode = JSsource[type + 'ToC']; // [code, return] - funcstr += 'var ' + convertCode.arguments + ' = ' + arg + ';'; - funcstr += convertCode.body + ';'; - funcstr += arg + '=(' + convertCode.returnValue + ');'; - } - } - - // When the code is compressed, the name of cfunc is not literally 'cfunc' anymore - var cfuncname = parseJSFunc(function(){return cfunc}).returnValue; - // Call the function - funcstr += 'var ret = ' + cfuncname + '(' + argNames.join(',') + ');'; - if (!numericRet) { // Return type can only by 'string' or 'number' - // Convert the result to a string - var strgfy = parseJSFunc(function(){return Pointer_stringify}).returnValue; - funcstr += 'ret = ' + strgfy + '(ret);'; - } - funcstr += "if (typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling cwrap') }"; - if (!numericArgs) { - // If we had a stack, restore it - ensureJSsource(); - funcstr += JSsource['stackRestore'].body.replace('()', '(stack)') + ';'; - } - funcstr += 'return ret})'; - return eval(funcstr); - }; -})(); -Module["ccall"] = ccall; -Module["cwrap"] = cwrap; - -/** @type {function(number, number, string, boolean=)} */ -function setValue(ptr, value, type, noSafe) { - type = type || 'i8'; - if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit - switch(type) { - case 'i1': HEAP8[((ptr)>>0)]=value; break; - case 'i8': HEAP8[((ptr)>>0)]=value; break; - case 'i16': HEAP16[((ptr)>>1)]=value; break; - case 'i32': HEAP32[((ptr)>>2)]=value; break; - case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; - case 'float': HEAPF32[((ptr)>>2)]=value; break; - case 'double': HEAPF64[((ptr)>>3)]=value; break; - default: abort('invalid type for setValue: ' + type); - } -} -Module["setValue"] = setValue; - -/** @type {function(number, string, boolean=)} */ -function getValue(ptr, type, noSafe) { - type = type || 'i8'; - if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit - switch(type) { - case 'i1': return HEAP8[((ptr)>>0)]; - case 'i8': return HEAP8[((ptr)>>0)]; - case 'i16': return HEAP16[((ptr)>>1)]; - case 'i32': return HEAP32[((ptr)>>2)]; - case 'i64': return HEAP32[((ptr)>>2)]; - case 'float': return HEAPF32[((ptr)>>2)]; - case 'double': return HEAPF64[((ptr)>>3)]; - default: abort('invalid type for setValue: ' + type); - } - return null; -} -Module["getValue"] = getValue; - -var ALLOC_NORMAL = 0; // Tries to use _malloc() -var ALLOC_STACK = 1; // Lives for the duration of the current function call -var ALLOC_STATIC = 2; // Cannot be freed -var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk -var ALLOC_NONE = 4; // Do not allocate -Module["ALLOC_NORMAL"] = ALLOC_NORMAL; -Module["ALLOC_STACK"] = ALLOC_STACK; -Module["ALLOC_STATIC"] = ALLOC_STATIC; -Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC; -Module["ALLOC_NONE"] = ALLOC_NONE; - -// allocate(): This is for internal use. You can use it yourself as well, but the interface -// is a little tricky (see docs right below). The reason is that it is optimized -// for multiple syntaxes to save space in generated code. So you should -// normally not use allocate(), and instead allocate memory using _malloc(), -// initialize it with setValue(), and so forth. -// @slab: An array of data, or a number. If a number, then the size of the block to allocate, -// in *bytes* (note that this is sometimes confusing: the next parameter does not -// affect this!) -// @types: Either an array of types, one for each byte (or 0 if no type at that position), -// or a single type which is used for the entire block. This only matters if there -// is initial data - if @slab is a number, then this does not matter at all and is -// ignored. -// @allocator: How to allocate memory, see ALLOC_* -/** @type {function((TypedArray|Array|number), string, number, number=)} */ -function allocate(slab, types, allocator, ptr) { - var zeroinit, size; - if (typeof slab === 'number') { - zeroinit = true; - size = slab; - } else { - zeroinit = false; - size = slab.length; - } - - var singleType = typeof types === 'string' ? types : null; - - var ret; - if (allocator == ALLOC_NONE) { - ret = ptr; - } else { - ret = [typeof _malloc === 'function' ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); - } - - if (zeroinit) { - var ptr = ret, stop; - assert((ret & 3) == 0); - stop = ret + (size & ~3); - for (; ptr < stop; ptr += 4) { - HEAP32[((ptr)>>2)]=0; - } - stop = ret + size; - while (ptr < stop) { - HEAP8[((ptr++)>>0)]=0; - } - return ret; - } - - if (singleType === 'i8') { - if (slab.subarray || slab.slice) { - HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret); - } else { - HEAPU8.set(new Uint8Array(slab), ret); - } - return ret; - } - - var i = 0, type, typeSize, previousType; - while (i < size) { - var curr = slab[i]; - - if (typeof curr === 'function') { - curr = Runtime.getFunctionIndex(curr); - } - - type = singleType || types[i]; - if (type === 0) { - i++; - continue; - } - assert(type, 'Must know what type to store in allocate!'); - - if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later - - setValue(ret+i, curr, type); - - // no need to look up size unless type changes, so cache it - if (previousType !== type) { - typeSize = Runtime.getNativeTypeSize(type); - previousType = type; - } - i += typeSize; - } - - return ret; -} -Module["allocate"] = allocate; - -// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready -function getMemory(size) { - if (!staticSealed) return Runtime.staticAlloc(size); - if (!runtimeInitialized) return Runtime.dynamicAlloc(size); - return _malloc(size); -} -Module["getMemory"] = getMemory; - -/** @type {function(number, number=)} */ -function Pointer_stringify(ptr, length) { - if (length === 0 || !ptr) return ''; - // TODO: use TextDecoder - // Find the length, and check for UTF while doing so - var hasUtf = 0; - var t; - var i = 0; - while (1) { - assert(ptr + i < TOTAL_MEMORY); - t = HEAPU8[(((ptr)+(i))>>0)]; - hasUtf |= t; - if (t == 0 && !length) break; - i++; - if (length && i == length) break; - } - if (!length) length = i; - - var ret = ''; - - if (hasUtf < 128) { - var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack - var curr; - while (length > 0) { - curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); - ret = ret ? ret + curr : curr; - ptr += MAX_CHUNK; - length -= MAX_CHUNK; - } - return ret; - } - return Module['UTF8ToString'](ptr); -} -Module["Pointer_stringify"] = Pointer_stringify; - -// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -function AsciiToString(ptr) { - var str = ''; - while (1) { - var ch = HEAP8[((ptr++)>>0)]; - if (!ch) return str; - str += String.fromCharCode(ch); - } -} -Module["AsciiToString"] = AsciiToString; - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. - -function stringToAscii(str, outPtr) { - return writeAsciiToMemory(str, outPtr, false); -} -Module["stringToAscii"] = stringToAscii; - -// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns -// a copy of that string as a Javascript String object. - -var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; -function UTF8ArrayToString(u8Array, idx) { - var endPtr = idx; - // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. - // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. - while (u8Array[endPtr]) ++endPtr; - - if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { - return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); - } else { - var u0, u1, u2, u3, u4, u5; - - var str = ''; - while (1) { - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 - u0 = u8Array[idx++]; - if (!u0) return str; - if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } - u1 = u8Array[idx++] & 63; - if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } - u2 = u8Array[idx++] & 63; - if ((u0 & 0xF0) == 0xE0) { - u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; - } else { - u3 = u8Array[idx++] & 63; - if ((u0 & 0xF8) == 0xF0) { - u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; - } else { - u4 = u8Array[idx++] & 63; - if ((u0 & 0xFC) == 0xF8) { - u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; - } else { - u5 = u8Array[idx++] & 63; - u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; - } - } - } - if (u0 < 0x10000) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } - } - } -} -Module["UTF8ArrayToString"] = UTF8ArrayToString; - -// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -function UTF8ToString(ptr) { - return UTF8ArrayToString(HEAPU8,ptr); -} -Module["UTF8ToString"] = UTF8ToString; - -// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', -// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. -// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element. -// outIdx: The starting offset in the array to begin the copying. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. -// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { - if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. - return 0; - - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); - if (u <= 0x7F) { - if (outIdx >= endIdx) break; - outU8Array[outIdx++] = u; - } else if (u <= 0x7FF) { - if (outIdx + 1 >= endIdx) break; - outU8Array[outIdx++] = 0xC0 | (u >> 6); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0xFFFF) { - if (outIdx + 2 >= endIdx) break; - outU8Array[outIdx++] = 0xE0 | (u >> 12); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0x1FFFFF) { - if (outIdx + 3 >= endIdx) break; - outU8Array[outIdx++] = 0xF0 | (u >> 18); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0x3FFFFFF) { - if (outIdx + 4 >= endIdx) break; - outU8Array[outIdx++] = 0xF8 | (u >> 24); - outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else { - if (outIdx + 5 >= endIdx) break; - outU8Array[outIdx++] = 0xFC | (u >> 30); - outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } - } - // Null-terminate the pointer to the buffer. - outU8Array[outIdx] = 0; - return outIdx - startIdx; -} -Module["stringToUTF8Array"] = stringToUTF8Array; - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. -// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF8(str, outPtr, maxBytesToWrite) { - assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); -} -Module["stringToUTF8"] = stringToUTF8; - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); - if (u <= 0x7F) { - ++len; - } else if (u <= 0x7FF) { - len += 2; - } else if (u <= 0xFFFF) { - len += 3; - } else if (u <= 0x1FFFFF) { - len += 4; - } else if (u <= 0x3FFFFFF) { - len += 5; - } else { - len += 6; - } - } - return len; -} -Module["lengthBytesUTF8"] = lengthBytesUTF8; - -// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; -function UTF16ToString(ptr) { - assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); - var endPtr = ptr; - // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. - // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. - var idx = endPtr >> 1; - while (HEAP16[idx]) ++idx; - endPtr = idx << 1; - - if (endPtr - ptr > 32 && UTF16Decoder) { - return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); - } else { - var i = 0; - - var str = ''; - while (1) { - var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; - if (codeUnit == 0) return str; - ++i; - // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. - str += String.fromCharCode(codeUnit); - } - } -} - - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. -// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outPtr: Byte address in Emscripten HEAP where to write the string to. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. -// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF16(str, outPtr, maxBytesToWrite) { - assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); - assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. - if (maxBytesToWrite === undefined) { - maxBytesToWrite = 0x7FFFFFFF; - } - if (maxBytesToWrite < 2) return 0; - maxBytesToWrite -= 2; // Null terminator. - var startPtr = outPtr; - var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; - for (var i = 0; i < numCharsToWrite; ++i) { - // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. - var codeUnit = str.charCodeAt(i); // possibly a lead surrogate - HEAP16[((outPtr)>>1)]=codeUnit; - outPtr += 2; - } - // Null-terminate the pointer to the HEAP. - HEAP16[((outPtr)>>1)]=0; - return outPtr - startPtr; -} - - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF16(str) { - return str.length*2; -} - - -function UTF32ToString(ptr) { - assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); - var i = 0; - - var str = ''; - while (1) { - var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; - if (utf32 == 0) - return str; - ++i; - // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - if (utf32 >= 0x10000) { - var ch = utf32 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } else { - str += String.fromCharCode(utf32); - } - } -} - - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. -// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outPtr: Byte address in Emscripten HEAP where to write the string to. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. -// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF32(str, outPtr, maxBytesToWrite) { - assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); - assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. - if (maxBytesToWrite === undefined) { - maxBytesToWrite = 0x7FFFFFFF; - } - if (maxBytesToWrite < 4) return 0; - var startPtr = outPtr; - var endPtr = startPtr + maxBytesToWrite - 4; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var codeUnit = str.charCodeAt(i); // possibly a lead surrogate - if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { - var trailSurrogate = str.charCodeAt(++i); - codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); - } - HEAP32[((outPtr)>>2)]=codeUnit; - outPtr += 4; - if (outPtr + 4 > endPtr) break; - } - // Null-terminate the pointer to the HEAP. - HEAP32[((outPtr)>>2)]=0; - return outPtr - startPtr; -} - - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF32(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var codeUnit = str.charCodeAt(i); - if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. - len += 4; - } - - return len; -} - - -function demangle(func) { - var __cxa_demangle_func = Module['___cxa_demangle'] || Module['__cxa_demangle']; - if (__cxa_demangle_func) { - try { - var s = - func.substr(1); - var len = lengthBytesUTF8(s)+1; - var buf = _malloc(len); - stringToUTF8(s, buf, len); - var status = _malloc(4); - var ret = __cxa_demangle_func(buf, 0, 0, status); - if (getValue(status, 'i32') === 0 && ret) { - return Pointer_stringify(ret); - } - // otherwise, libcxxabi failed - } catch(e) { - // ignore problems here - } finally { - if (buf) _free(buf); - if (status) _free(status); - if (ret) _free(ret); - } - // failure when using libcxxabi, don't demangle - return func; - } - Runtime.warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); - return func; -} - -function demangleAll(text) { - var regex = - /__Z[\w\d_]+/g; - return text.replace(regex, - function(x) { - var y = demangle(x); - return x === y ? x : (x + ' [' + y + ']'); - }); -} - -function jsStackTrace() { - var err = new Error(); - if (!err.stack) { - // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, - // so try that as a special-case. - try { - throw new Error(0); - } catch(e) { - err = e; - } - if (!err.stack) { - return '(no stack trace available)'; - } - } - return err.stack.toString(); -} - -function stackTrace() { - var js = jsStackTrace(); - if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace'](); - return demangleAll(js); -} -Module["stackTrace"] = stackTrace; - -// Memory management - -var PAGE_SIZE = 16384; -var WASM_PAGE_SIZE = 65536; -var ASMJS_PAGE_SIZE = 16777216; -var MIN_TOTAL_MEMORY = 16777216; - -function alignUp(x, multiple) { - if (x % multiple > 0) { - x += multiple - (x % multiple); - } - return x; -} - -var HEAP, -/** @type {ArrayBuffer} */ - buffer, -/** @type {Int8Array} */ - HEAP8, -/** @type {Uint8Array} */ - HEAPU8, -/** @type {Int16Array} */ - HEAP16, -/** @type {Uint16Array} */ - HEAPU16, -/** @type {Int32Array} */ - HEAP32, -/** @type {Uint32Array} */ - HEAPU32, -/** @type {Float32Array} */ - HEAPF32, -/** @type {Float64Array} */ - HEAPF64; - -function updateGlobalBuffer(buf) { - Module['buffer'] = buffer = buf; -} - -function updateGlobalBufferViews() { - Module['HEAP8'] = HEAP8 = new Int8Array(buffer); - Module['HEAP16'] = HEAP16 = new Int16Array(buffer); - Module['HEAP32'] = HEAP32 = new Int32Array(buffer); - Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer); - Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer); - Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer); - Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer); - Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer); -} - -var STATIC_BASE, STATICTOP, staticSealed; // static area -var STACK_BASE, STACKTOP, STACK_MAX; // stack area -var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk - - STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; - staticSealed = false; - - -// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. -function writeStackCookie() { - assert((STACK_MAX & 3) == 0); - HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467; - HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE; -} - -function checkStackCookie() { - if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) { - abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16)); - } - // Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own. - if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!'; -} - -function abortStackOverflow(allocSize) { - abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - Module['asm'].stackSave() + allocSize) + ' bytes available!'); -} - -function abortOnCannotGrowMemory() { - abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); -} - - -function enlargeMemory() { - abortOnCannotGrowMemory(); -} - - -var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; -var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216; -if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); - -// Initialize the runtime's memory -// check for full engine support (use string 'subarray' to avoid closure compiler confusion) -assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined, - 'JS engine does not provide full typed array support'); - - - -// Use a provided buffer, if there is one, or else allocate a new one -if (Module['buffer']) { - buffer = Module['buffer']; - assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength); -} else { - // Use a WebAssembly memory where available - { - buffer = new ArrayBuffer(TOTAL_MEMORY); - } - assert(buffer.byteLength === TOTAL_MEMORY); -} -updateGlobalBufferViews(); - - -function getTotalMemory() { - return TOTAL_MEMORY; -} - -// Endianness check (note: assumes compiler arch was little-endian) - HEAP32[0] = 0x63736d65; /* 'emsc' */ -HEAP16[1] = 0x6373; -if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!'; - -Module['HEAP'] = HEAP; -Module['buffer'] = buffer; -Module['HEAP8'] = HEAP8; -Module['HEAP16'] = HEAP16; -Module['HEAP32'] = HEAP32; -Module['HEAPU8'] = HEAPU8; -Module['HEAPU16'] = HEAPU16; -Module['HEAPU32'] = HEAPU32; -Module['HEAPF32'] = HEAPF32; -Module['HEAPF64'] = HEAPF64; - -function callRuntimeCallbacks(callbacks) { - while(callbacks.length > 0) { - var callback = callbacks.shift(); - if (typeof callback == 'function') { - callback(); - continue; - } - var func = callback.func; - if (typeof func === 'number') { - if (callback.arg === undefined) { - Module['dynCall_v'](func); - } else { - Module['dynCall_vi'](func, callback.arg); - } - } else { - func(callback.arg === undefined ? null : callback.arg); - } - } -} - -var __ATPRERUN__ = []; // functions called before the runtime is initialized -var __ATINIT__ = []; // functions called during startup -var __ATMAIN__ = []; // functions called when main() is to be run -var __ATEXIT__ = []; // functions called during shutdown -var __ATPOSTRUN__ = []; // functions called after the runtime has exited - -var runtimeInitialized = false; -var runtimeExited = false; - - -function preRun() { - // compatibility - merge in anything from Module['preRun'] at this time - if (Module['preRun']) { - if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; - while (Module['preRun'].length) { - addOnPreRun(Module['preRun'].shift()); - } - } - callRuntimeCallbacks(__ATPRERUN__); -} - -function ensureInitRuntime() { - checkStackCookie(); - if (runtimeInitialized) return; - runtimeInitialized = true; - callRuntimeCallbacks(__ATINIT__); -} - -function preMain() { - checkStackCookie(); - callRuntimeCallbacks(__ATMAIN__); -} - -function exitRuntime() { - checkStackCookie(); - callRuntimeCallbacks(__ATEXIT__); - runtimeExited = true; -} - -function postRun() { - checkStackCookie(); - // compatibility - merge in anything from Module['postRun'] at this time - if (Module['postRun']) { - if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; - while (Module['postRun'].length) { - addOnPostRun(Module['postRun'].shift()); - } - } - callRuntimeCallbacks(__ATPOSTRUN__); -} - -function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); -} -Module["addOnPreRun"] = addOnPreRun; - -function addOnInit(cb) { - __ATINIT__.unshift(cb); -} -Module["addOnInit"] = addOnInit; - -function addOnPreMain(cb) { - __ATMAIN__.unshift(cb); -} -Module["addOnPreMain"] = addOnPreMain; - -function addOnExit(cb) { - __ATEXIT__.unshift(cb); -} -Module["addOnExit"] = addOnExit; - -function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); -} -Module["addOnPostRun"] = addOnPostRun; - -// Tools - -/** @type {function(string, boolean=, number=)} */ -function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) u8array.length = numBytesWritten; - return u8array; -} -Module["intArrayFromString"] = intArrayFromString; - -function intArrayToString(array) { - var ret = []; - for (var i = 0; i < array.length; i++) { - var chr = array[i]; - if (chr > 0xFF) { - assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); - chr &= 0xFF; - } - ret.push(String.fromCharCode(chr)); - } - return ret.join(''); -} -Module["intArrayToString"] = intArrayToString; - -// Deprecated: This function should not be called because it is unsafe and does not provide -// a maximum length limit of how many bytes it is allowed to write. Prefer calling the -// function stringToUTF8Array() instead, which takes in a maximum length that can be used -// to be secure from out of bounds writes. -/** @deprecated */ -function writeStringToMemory(string, buffer, dontAddNull) { - Runtime.warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); - - var /** @type {number} */ lastChar, /** @type {number} */ end; - if (dontAddNull) { - // stringToUTF8Array always appends null. If we don't want to do that, remember the - // character that existed at the location where the null will be placed, and restore - // that after the write (below). - end = buffer + lengthBytesUTF8(string); - lastChar = HEAP8[end]; - } - stringToUTF8(string, buffer, Infinity); - if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. -} -Module["writeStringToMemory"] = writeStringToMemory; - -function writeArrayToMemory(array, buffer) { - assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') - HEAP8.set(array, buffer); -} -Module["writeArrayToMemory"] = writeArrayToMemory; - -function writeAsciiToMemory(str, buffer, dontAddNull) { - for (var i = 0; i < str.length; ++i) { - assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); - HEAP8[((buffer++)>>0)]=str.charCodeAt(i); - } - // Null-terminate the pointer to the HEAP. - if (!dontAddNull) HEAP8[((buffer)>>0)]=0; -} -Module["writeAsciiToMemory"] = writeAsciiToMemory; - -function unSign(value, bits, ignore) { - if (value >= 0) { - return value; - } - return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts - : Math.pow(2, bits) + value; -} -function reSign(value, bits, ignore) { - if (value <= 0) { - return value; - } - var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 - : Math.pow(2, bits-1); - if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that - // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors - // TODO: In i64 mode 1, resign the two parts separately and safely - value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts - } - return value; -} - -// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 ) -if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) { - var ah = a >>> 16; - var al = a & 0xffff; - var bh = b >>> 16; - var bl = b & 0xffff; - return (al*bl + ((ah*bl + al*bh) << 16))|0; -}; -Math.imul = Math['imul']; - - -if (!Math['clz32']) Math['clz32'] = function(x) { - x = x >>> 0; - for (var i = 0; i < 32; i++) { - if (x & (1 << (31 - i))) return i; - } - return 32; -}; -Math.clz32 = Math['clz32'] - -if (!Math['trunc']) Math['trunc'] = function(x) { - return x < 0 ? Math.ceil(x) : Math.floor(x); -}; -Math.trunc = Math['trunc']; - -var Math_abs = Math.abs; -var Math_cos = Math.cos; -var Math_sin = Math.sin; -var Math_tan = Math.tan; -var Math_acos = Math.acos; -var Math_asin = Math.asin; -var Math_atan = Math.atan; -var Math_atan2 = Math.atan2; -var Math_exp = Math.exp; -var Math_log = Math.log; -var Math_sqrt = Math.sqrt; -var Math_ceil = Math.ceil; -var Math_floor = Math.floor; -var Math_pow = Math.pow; -var Math_imul = Math.imul; -var Math_fround = Math.fround; -var Math_round = Math.round; -var Math_min = Math.min; -var Math_clz32 = Math.clz32; -var Math_trunc = Math.trunc; - -// A counter of dependencies for calling run(). If we need to -// do asynchronous work before running, increment this and -// decrement it. Incrementing must happen in a place like -// PRE_RUN_ADDITIONS (used by emcc to add file preloading). -// Note that you can add dependencies in preRun, even though -// it happens right before run - run will be postponed until -// the dependencies are met. -var runDependencies = 0; -var runDependencyWatcher = null; -var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled -var runDependencyTracking = {}; - -function getUniqueRunDependency(id) { - var orig = id; - while (1) { - if (!runDependencyTracking[id]) return id; - id = orig + Math.random(); - } - return id; -} - -function addRunDependency(id) { - runDependencies++; - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - if (id) { - assert(!runDependencyTracking[id]); - runDependencyTracking[id] = 1; - if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { - // Check for missing dependencies every few seconds - runDependencyWatcher = setInterval(function() { - if (ABORT) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - return; - } - var shown = false; - for (var dep in runDependencyTracking) { - if (!shown) { - shown = true; - Module.printErr('still waiting on run dependencies:'); - } - Module.printErr('dependency: ' + dep); - } - if (shown) { - Module.printErr('(end of list)'); - } - }, 10000); - } - } else { - Module.printErr('warning: run dependency added without ID'); - } -} -Module["addRunDependency"] = addRunDependency; - -function removeRunDependency(id) { - runDependencies--; - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - if (id) { - assert(runDependencyTracking[id]); - delete runDependencyTracking[id]; - } else { - Module.printErr('warning: run dependency removed without ID'); - } - if (runDependencies == 0) { - if (runDependencyWatcher !== null) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - } - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); // can add another dependenciesFulfilled - } - } -} -Module["removeRunDependency"] = removeRunDependency; - -Module["preloadedImages"] = {}; // maps url to image data -Module["preloadedAudios"] = {}; // maps url to audio data - - - -var memoryInitializer = null; - - - -var /* show errors on likely calls to FS when it was not included */ FS = { - error: function() { - abort('Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -s FORCE_FILESYSTEM=1'); - }, - init: function() { FS.error() }, - createDataFile: function() { FS.error() }, - createPreloadedFile: function() { FS.error() }, - createLazyFile: function() { FS.error() }, - open: function() { FS.error() }, - mkdev: function() { FS.error() }, - registerDevice: function() { FS.error() }, - analyzePath: function() { FS.error() }, - loadFilesFromDB: function() { FS.error() }, - - ErrnoError: function ErrnoError() { FS.error() }, -}; -Module['FS_createDataFile'] = FS.createDataFile; -Module['FS_createPreloadedFile'] = FS.createPreloadedFile; - - - -// === Body === - -var ASM_CONSTS = [function($0, $1) { Module.printErr('bad name in getProcAddress: ' + [Pointer_stringify($0), Pointer_stringify($1)]) }]; - -function _emscripten_asm_const_iii(code, a0, a1) { - return ASM_CONSTS[code](a0, a1); -} - - - -STATIC_BASE = Runtime.GLOBAL_BASE; - -STATICTOP = STATIC_BASE + 19584; -/* global initializers */ __ATINIT__.push(); - - -/* memory initializer */ allocate([32,3,0,0,194,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,176,1,0,0,0,0,0,0,0,0,0,32,37,249,142,0,10,2,0,0,128,190,125,95,244,125,31,160,242,43,74,30,9,82,8,0,64,34,65,80,20,4,16,32,32,41,46,18,8,34,8,0,32,34,65,80,20,4,16,32,32,249,16,76,8,250,62,60,16,34,125,222,247,125,16,32,32,161,232,50,8,34,8,0,8,34,5,16,4,69,16,0,240,163,164,50,8,82,8,0,4,34,5,16,4,69,16,32,32,249,226,94,8,2,0,129,2,62,125,31,244,125,16,0,0,32,0,0,176,1,128,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,0,0,0,0,190,15,0,192,15,224,247,251,125,126,191,95,232,190,80,0,162,8,8,68,232,47,20,10,133,2,129,80,72,160,80,0,162,40,228,73,40,40,20,10,132,2,129,64,72,160,72,0,190,15,2,16,175,235,247,9,132,62,159,216,79,160,71,0,34,136,228,9,161,42,20,10,132,2,129,80,72,160,72,0,34,40,8,4,160,47,20,10,133,2,129,80,72,162,80,0,190,143,0,0,33,32,244,251,125,126,129,95,232,156,208,7,0,128,0,0,224,15,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,0,0,128,1,12,0,130,66,191,223,239,247,251,11,5,5,133,66,191,4,72,0,198,66,161,80,40,20,64,8,5,37,133,66,160,8,168,0,170,70,161,80,40,20,64,8,5,37,133,66,144,16,8,0,146,74,161,95,232,247,67,8,5,37,121,126,136,32,8,0,130,82,161,64,40,1,66,8,137,36,133,64,132,64,8,0,130,98,161,64,42,2,66,8,81,36,133,64,130,128,8,0,130,66,191,192,47,244,67,248,33,252,133,126,191,0,9,62,0,0,0,0,4,0,0,0,0,0,0,0,128,1,12,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,2,4,0,4,0,32,72,65,0,0,0,0,0,8,0,0,4,4,0,4,60,32,0,65,0,0,0,0,0,8,0,0,240,125,223,247,133,239,75,81,190,239,251,190,239,59,81,4,0,69,65,20,133,40,74,73,170,40,138,162,32,8,81,4,240,69,65,244,157,40,74,71,170,40,138,162,224,11,81,4,16,69,65,20,132,40,74,73,170,40,138,162,0,10,145,2,240,125,223,247,133,47,74,209,170,232,251,190,224,123,31,1,0,0,0,0,4,8,64,0,0,0,8,32,0,0,0,0,0,0,0,0,132,15,96,0,0,0,8,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,1,15,0,0,0,0,0,0,0,0,0,0,0,0,0,36,1,15,0,0,0,0,0,0,0,0,0,6,0,0,0,36,1,15,0,0,0,0,0,0,0,128,16,9,162,40,250,36,1,15,0,0,0,0,0,0,0,0,62,1,42,37,66,34,82,15,0,0,0,0,0,0,0,128,138,3,42,34,34,36,41,15,0,0,0,0,0,0,0,128,10,1,42,37,18,36,1,15,0,0,0,0,0,0,0,128,10,1,190,232,251,36,1,15,0,0,0,0,0,0,0,128,190,14,0,0,2,172,1,15,0,0,0,0,0,0,0,128,4,0,0,224,3,0,0,15,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,14,184,67,132,3,58,32,0,128,160,190,2,32,0,0,240,138,32,82,196,2,43,32,4,34,145,2,248,59,0,240,7,142,56,75,228,2,58,32,2,28,138,30,8,42,233,17,4,224,11,66,244,2,130,36,1,20,4,20,232,186,4,209,5,128,184,195,231,10,58,137,0,28,14,60,40,2,9,80,4,128,0,64,196,2,128,68,0,34,132,32,232,2,0,80,4,0,0,64,128,2,0,32,5,0,142,62,8,2,0,16,4,224,3,64,128,66,0,0,7,0,132,0,248,3,0,240,7,0,0,64,128,34,0,0,4,0,0,0,0,0,0,0,0,0,0,64,128,2,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,128,0,194,160,72,24,0,0,1,132,33,9,146,2,66,38,4,1,33,81,0,0,127,63,2,66,2,16,41,0,34,20,192,239,247,251,253,126,9,161,223,239,247,187,187,3,18,15,68,40,20,10,133,66,9,129,64,32,16,16,17,1,8,4,68,40,20,10,133,66,127,129,64,32,16,16,17,1,4,130,199,239,247,251,253,126,9,129,207,231,243,17,17,1,50,169,80,40,20,10,133,66,9,161,64,32,16,16,17,1,64,184,80,40,20,10,133,66,121,191,223,239,247,187,187,3,32,160,31,0,0,0,0,0,0,16,0,0,0,0,0,0,112,32,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,40,2,8,131,34,1,0,2,8,67,2,1,0,1,1,124,20,4,132,68,1,0,32,4,132,4,128,8,63,130,0,132,66,191,223,239,247,3,126,161,80,40,20,10,33,0,0,132,70,161,80,40,20,138,82,161,80,40,20,122,161,239,3,158,74,161,80,40,20,82,82,161,80,40,20,74,31,8,2,132,82,161,80,40,20,34,74,161,80,40,244,75,161,239,3,132,98,161,80,40,20,82,74,161,80,40,4,122,161,40,2,124,66,191,223,239,247,139,126,191,223,239,247,11,189,239,3,0,0,0,0,0,0,0,4,0,0,0,0,8,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,8,5,32,0,0,4,132,0,34,129,69,17,16,66,1,0,148,66,81,0,0,8,66,81,148,42,162,32,8,165,80,0,0,0,32,0,0,0,0,0,0,0,5,0,0,0,0,8,190,239,251,254,251,190,239,251,20,145,235,251,190,239,251,0,32,8,130,32,10,162,40,138,20,145,40,138,162,40,138,62,190,239,251,254,11,190,239,251,20,145,40,138,162,40,138,0,162,40,138,34,8,130,32,8,20,145,40,138,162,40,138,8,190,239,251,254,251,190,239,251,20,145,47,250,190,239,251,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,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,1,33,0,4,0,0,0,0,0,0,0,0,0,0,0,0,130,80,20,2,20,0,0,0,0,0,0,0,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,190,40,138,162,40,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,168,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,190,239,251,190,47,62,0,0,0,0,0,0,0,0,0,0,4,0,0,0,40,32,0,0,0,0,0,0,0,0,0,0,0,0,0,128,15,62,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,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,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,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,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,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,3,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,7,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,7,0,0,0,3,0,0,0,5,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,5,0,0,0,0,0,128,191,20,0,0,0,255,255,255,255,255,255,255,255,0,1,0,0,255,255,255,255,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,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,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,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,4,67,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,0,0,160,12,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,123,72,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,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,160,12,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,3,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,255,255,255,255,255,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,114,97,121,108,105,98,32,91,99,111,114,101,93,32,101,120,97,109,112,108,101,32,45,32,51,100,32,109,111,100,101,0,87,101,108,99,111,109,101,32,116,111,32,116,104,101,32,116,104,105,114,100,32,100,105,109,101,110,115,105,111,110,33,0,73,78,70,79,58,32,0,87,65,82,78,73,78,71,58,32,0,91,84,69,88,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,102,111,110,116,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,80,97,114,97,109,101,116,101,114,115,58,32,37,105,120,37,105,44,32,37,105,32,109,105,112,115,44,32,102,111,114,109,97,116,32,37,105,0,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,50,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,84,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,84,101,120,116,117,114,101,32,99,114,101,97,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,84,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,99,114,101,97,116,101,100,0,73,109,97,103,101,32,100,97,116,97,32,102,111,114,109,97,116,32,105,115,32,99,111,109,112,114,101,115,115,101,100,44,32,99,97,110,32,110,111,116,32,98,101,32,99,111,110,118,101,114,116,101,100,0,70,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,112,105,120,101,108,32,100,97,116,97,32,114,101,116,114,105,101,118,97,108,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,77,65,88,95,76,73,78,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,84,82,73,65,78,71,76,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,81,85,65,68,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,83,116,97,99,107,32,66,117,102,102,101,114,32,79,118,101,114,102,108,111,119,32,40,77,65,88,32,37,105,32,77,97,116,114,105,120,41,0,37,50,105,32,70,80,83,0,73,110,105,116,105,97,108,105,122,105,110,103,32,114,97,121,108,105,98,32,40,118,49,46,56,46,48,41,0,35,99,97,110,118,97,115,0,84,97,114,103,101,116,32,116,105,109,101,32,112,101,114,32,102,114,97,109,101,58,32,37,48,50,46,48,51,102,32,109,105,108,108,105,115,101,99,111,110,100,115,0,69,115,99,97,112,101,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,102,117,108,108,115,99,114,101,101,110,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,119,105,110,100,111,119,101,100,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,71,76,70,87,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,77,83,65,65,32,120,52,0,67,108,111,115,101,115,116,32,102,117,108,108,115,99,114,101,101,110,32,118,105,100,101,111,109,111,100,101,58,32,37,105,32,120,32,37,105,0,71,76,70,87,32,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,87,105,110,100,111,119,0,68,105,115,112,108,97,121,32,100,101,118,105,99,101,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,82,101,110,100,101,114,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,83,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,86,105,101,119,112,111,114,116,32,111,102,102,115,101,116,115,58,32,37,105,44,32,37,105,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,86,83,89,78,67,0,71,80,85,58,32,86,101,110,100,111,114,58,32,32,32,37,115,0,71,80,85,58,32,82,101,110,100,101,114,101,114,58,32,37,115,0,71,80,85,58,32,86,101,114,115,105,111,110,58,32,32,37,115,0,71,80,85,58,32,71,76,83,76,58,32,32,32,32,32,37,115,0,32,0,78,117,109,98,101,114,32,111,102,32,115,117,112,112,111,114,116,101,100,32,101,120,116,101,110,115,105,111,110,115,58,32,37,105,0,71,76,95,79,69,83,95,118,101,114,116,101,120,95,97,114,114,97,121,95,111,98,106,101,99,116,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,79,69,83,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,71,76,95,79,69,83,95,116,101,120,116,117,114,101,95,110,112,111,116,0,79,69,83,95,116,101,120,116,117,114,101,95,102,108,111,97,116,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,115,51,116,99,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,87,69,66,75,73,84,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,79,69,83,95,99,111,109,112,114,101,115,115,101,100,95,69,84,67,49,95,82,71,66,56,95,116,101,120,116,117,114,101,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,101,116,99,49,0,71,76,95,65,82,66,95,69,83,51,95,99,111,109,112,97,116,105,98,105,108,105,116,121,0,71,76,95,73,77,71,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,112,118,114,116,99,0,71,76,95,75,72,82,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,97,115,116,99,95,104,100,114,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,102,105,108,116,101,114,95,97,110,105,115,111,116,114,111,112,105,99,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,109,105,114,114,111,114,95,99,108,97,109,112,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,86,65,79,32,102,117,110,99,116,105,111,110,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,86,65,79,32,117,115,97,103,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,102,117,108,108,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,108,105,109,105,116,101,100,32,78,80,79,84,32,115,117,112,112,111,114,116,32,40,110,111,45,109,105,112,109,97,112,115,44,32,110,111,45,114,101,112,101,97,116,41,0,91,69,88,84,69,78,83,73,79,78,93,32,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,50,47,69,65,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,110,105,115,111,116,114,111,112,105,99,32,116,101,120,116,117,114,101,115,32,102,105,108,116,101,114,105,110,103,32,115,117,112,112,111,114,116,101,100,32,40,109,97,120,58,32,37,46,48,102,88,41,0,91,69,88,84,69,78,83,73,79,78,93,32,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,116,101,120,116,117,114,101,32,109,111,100,101,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,79,112,101,110,71,76,32,100,101,102,97,117,108,116,32,115,116,97,116,101,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,67,80,85,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,44,32,116,114,105,97,110,103,108,101,115,44,32,113,117,97,100,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,51,32,118,101,114,116,101,120,80,111,115,105,116,105,111,110,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,50,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,52,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,109,97,116,52,32,109,118,112,59,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,102,114,97,103,84,101,120,67,111,111,114,100,32,61,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,10,32,32,32,32,102,114,97,103,67,111,108,111,114,32,61,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,10,32,32,32,32,103,108,95,80,111,115,105,116,105,111,110,32,61,32,109,118,112,42,118,101,99,52,40,118,101,114,116,101,120,80,111,115,105,116,105,111,110,44,32,49,46,48,41,59,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,112,114,101,99,105,115,105,111,110,32,109,101,100,105,117,109,112,32,102,108,111,97,116,59,32,32,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,116,101,120,116,117,114,101,48,59,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,118,101,99,52,32,99,111,108,68,105,102,102,117,115,101,59,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,118,101,99,52,32,116,101,120,101,108,67,111,108,111,114,32,61,32,116,101,120,116,117,114,101,50,68,40,116,101,120,116,117,114,101,48,44,32,102,114,97,103,84,101,120,67,111,111,114,100,41,59,32,10,32,32,32,32,103,108,95,70,114,97,103,67,111,108,111,114,32,61,32,116,101,120,101,108,67,111,108,111,114,42,99,111,108,68,105,102,102,117,115,101,42,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,118,101,114,116,101,120,80,111,115,105,116,105,111,110,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,0,118,101,114,116,101,120,67,111,108,111,114,0,109,118,112,0,99,111,108,68,105,102,102,117,115,101,0,116,101,120,116,117,114,101,48,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,118,101,114,116,101,120,32,115,104,97,100,101,114,46,46,46,0,37,115,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,86,101,114,116,101,120,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,102,114,97,103,109,101,110,116,32,115,104,97,100,101,114,46,46,46,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,114,97,103,109,101,110,116,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,118,101,114,116,101,120,78,111,114,109,97,108,0,118,101,114,116,101,120,84,97,110,103,101,110,116,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,50,0,91,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,108,105,110,107,32,115,104,97,100,101,114,32,112,114,111,103,114,97,109,46,46,46,0,91,83,72,68,82,32,73,68,32,37,105,93,32,83,104,97,100,101,114,32,112,114,111,103,114,97,109,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,79,87,78,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,32,40,37,105,120,37,105,41,32,105,115,32,98,105,103,103,101,114,32,116,104,97,110,32,100,105,115,112,108,97,121,32,115,105,122,101,32,40,37,105,120,37,105,41,0,68,111,119,110,115,99,97,108,101,32,109,97,116,114,105,120,32,103,101,110,101,114,97,116,101,100,44,32,99,111,110,116,101,110,116,32,119,105,108,108,32,98,101,32,114,101,110,100,101,114,101,100,32,97,116,58,32,37,105,32,120,32,37,105,0,85,80,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,32,45,62,32,68,105,115,112,108,97,121,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,91,71,76,70,87,51,32,69,114,114,111,114,93,32,67,111,100,101,58,32,37,105,32,68,101,99,114,105,112,116,105,111,110,58,32,37,115,0,87,105,110,100,111,119,32,99,108,111,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,40,98,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,41,32,102,114,111,109,32,86,82,65,77,0,69,88,84,0,65,82,66,0,79,69,83,0,65,78,71,76,69,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,0,103,108,85,115,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,85,115,101,80,114,111,103,114,97,109,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,0,103,108,65,116,116,97,99,104,79,98,106,101,99,116,0,103,108,65,116,116,97,99,104,83,104,97,100,101,114,0,103,108,68,101,116,97,99,104,79,98,106,101,99,116,0,103,108,68,101,116,97,99,104,83,104,97,100,101,114,0,103,108,80,105,120,101,108,83,116,111,114,101,105,0,103,108,71,101,116,83,116,114,105,110,103,0,103,108,71,101,116,73,110,116,101,103,101,114,118,0,103,108,71,101,116,70,108,111,97,116,118,0,103,108,71,101,116,66,111,111,108,101,97,110,118,0,103,108,71,101,110,84,101,120,116,117,114,101,115,0,103,108,68,101,108,101,116,101,84,101,120,116,117,114,101,115,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,84,101,120,73,109,97,103,101,50,68,0,103,108,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,82,101,97,100,80,105,120,101,108,115,0,103,108,66,105,110,100,84,101,120,116,117,114,101,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,84,101,120,116,117,114,101,0,103,108,71,101,110,66,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,66,117,102,102,101,114,115,0,103,108,71,101,116,66,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,66,117,102,102,101,114,68,97,116,97,0,103,108,66,117,102,102,101,114,83,117,98,68,97,116,97,0,103,108,73,115,66,117,102,102,101,114,0,103,108,71,101,110,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,66,105,110,100,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,82,101,110,100,101,114,98,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,85,110,105,102,111,114,109,102,118,0,103,108,71,101,116,85,110,105,102,111,114,109,105,118,0,103,108,71,101,116,85,110,105,102,111,114,109,76,111,99,97,116,105,111,110,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,102,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,105,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,118,0,103,108,71,101,116,65,99,116,105,118,101,85,110,105,102,111,114,109,0,103,108,85,110,105,102,111,114,109,49,102,0,103,108,85,110,105,102,111,114,109,50,102,0,103,108,85,110,105,102,111,114,109,51,102,0,103,108,85,110,105,102,111,114,109,52,102,0,103,108,85,110,105,102,111,114,109,49,105,0,103,108,85,110,105,102,111,114,109,50,105,0,103,108,85,110,105,102,111,114,109,51,105,0,103,108,85,110,105,102,111,114,109,52,105,0,103,108,85,110,105,102,111,114,109,49,105,118,0,103,108,85,110,105,102,111,114,109,50,105,118,0,103,108,85,110,105,102,111,114,109,51,105,118,0,103,108,85,110,105,102,111,114,109,52,105,118,0,103,108,85,110,105,102,111,114,109,49,102,118,0,103,108,85,110,105,102,111,114,109,50,102,118,0,103,108,85,110,105,102,111,114,109,51,102,118,0,103,108,85,110,105,102,111,114,109,52,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,50,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,51,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,52,102,118,0,103,108,66,105,110,100,66,117,102,102,101,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,118,0,103,108,71,101,116,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,71,101,116,65,99,116,105,118,101,65,116,116,114,105,98,0,103,108,68,101,108,101,116,101,83,104,97,100,101,114,0,103,108,71,101,116,65,116,116,97,99,104,101,100,83,104,97,100,101,114,115,0,103,108,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,71,101,116,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,67,111,109,112,105,108,101,83,104,97,100,101,114,0,103,108,71,101,116,83,104,97,100,101,114,73,110,102,111,76,111,103,0,103,108,71,101,116,83,104,97,100,101,114,105,118,0,103,108,71,101,116,80,114,111,103,114,97,109,105,118,0,103,108,73,115,83,104,97,100,101,114,0,103,108,68,101,108,101,116,101,80,114,111,103,114,97,109,0,103,108,71,101,116,83,104,97,100,101,114,80,114,101,99,105,115,105,111,110,70,111,114,109,97,116,0,103,108,76,105,110,107,80,114,111,103,114,97,109,0,103,108,71,101,116,80,114,111,103,114,97,109,73,110,102,111,76,111,103,0,103,108,86,97,108,105,100,97,116,101,80,114,111,103,114,97,109,0,103,108,73,115,80,114,111,103,114,97,109,0,103,108,66,105,110,100,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,66,105,110,100,70,114,97,109,101,98,117,102,102,101,114,0,103,108,71,101,110,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,70,114,97,109,101,98,117,102,102,101,114,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,70,114,97,109,101,98,117,102,102,101,114,84,101,120,116,117,114,101,50,68,0,103,108,71,101,116,70,114,97,109,101,98,117,102,102,101,114,65,116,116,97,99,104,109,101,110,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,70,114,97,109,101,98,117,102,102,101,114,0,103,108,68,101,108,101,116,101,79,98,106,101,99,116,0,103,108,71,101,116,79,98,106,101,99,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,71,101,116,73,110,102,111,76,111,103,0,103,108,66,105,110,100,80,114,111,103,114,97,109,0,103,108,71,101,116,80,111,105,110,116,101,114,118,0,103,108,68,114,97,119,82,97,110,103,101,69,108,101,109,101,110,116,115,0,103,108,69,110,97,98,108,101,67,108,105,101,110,116,83,116,97,116,101,0,103,108,86,101,114,116,101,120,80,111,105,110,116,101,114,0,103,108,84,101,120,67,111,111,114,100,80,111,105,110,116,101,114,0,103,108,78,111,114,109,97,108,80,111,105,110,116,101,114,0,103,108,67,111,108,111,114,80,111,105,110,116,101,114,0,103,108,67,108,105,101,110,116,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,0,103], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); -/* memory initializer */ allocate([108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,0,103,108,77,97,116,114,105,120,77,111,100,101,0,103,108,76,111,97,100,73,100,101,110,116,105,116,121,0,103,108,76,111,97,100,77,97,116,114,105,120,102,0,103,108,70,114,117,115,116,117,109,0,103,108,82,111,116,97,116,101,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,0,103,108,69,110,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,105,115,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,114,97,119,65,114,114,97,121,115,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,0,103,108,83,104,97,100,101,114,66,105,110,97,114,121,0,103,108,82,101,108,101,97,115,101,83,104,97,100,101,114,67,111,109,112,105,108,101,114,0,103,108,71,101,116,69,114,114,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,68,105,118,105,115,111,114,0,103,108,68,114,97,119,65,114,114,97,121,115,73,110,115,116,97,110,99,101,100,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,73,110,115,116,97,110,99,101,100,0,103,108,70,105,110,105,115,104,0,103,108,70,108,117,115,104,0,103,108,67,108,101,97,114,68,101,112,116,104,0,103,108,67,108,101,97,114,68,101,112,116,104,102,0,103,108,68,101,112,116,104,70,117,110,99,0,103,108,69,110,97,98,108,101,0,103,108,68,105,115,97,98,108,101,0,103,108,70,114,111,110,116,70,97,99,101,0,103,108,67,117,108,108,70,97,99,101,0,103,108,67,108,101,97,114,0,103,108,76,105,110,101,87,105,100,116,104,0,103,108,67,108,101,97,114,83,116,101,110,99,105,108,0,103,108,68,101,112,116,104,77,97,115,107,0,103,108,83,116,101,110,99,105,108,77,97,115,107,0,103,108,67,104,101,99,107,70,114,97,109,101,98,117,102,102,101,114,83,116,97,116,117,115,0,103,108,71,101,110,101,114,97,116,101,77,105,112,109,97,112,0,103,108,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,0,103,108,73,115,69,110,97,98,108,101,100,0,103,108,66,108,101,110,100,70,117,110,99,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,83,101,112,97,114,97,116,101,0,103,108,68,101,112,116,104,82,97,110,103,101,0,103,108,68,101,112,116,104,82,97,110,103,101,102,0,103,108,83,116,101,110,99,105,108,77,97,115,107,83,101,112,97,114,97,116,101,0,103,108,72,105,110,116,0,103,108,80,111,108,121,103,111,110,79,102,102,115,101,116,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,0,103,108,83,97,109,112,108,101,67,111,118,101,114,97,103,101,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,0,103,108,83,116,101,110,99,105,108,70,117,110,99,0,103,108,83,116,101,110,99,105,108,79,112,0,103,108,86,105,101,119,112,111,114,116,0,103,108,67,108,101,97,114,67,111,108,111,114,0,103,108,83,99,105,115,115,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,0,103,108,67,111,108,111,114,77,97,115,107,0,103,108,82,101,110,100,101,114,98,117,102,102,101,114,83,116,111,114,97,103,101,0,103,108,66,108,101,110,100,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,66,108,101,110,100,67,111,108,111,114,0,103,108,83,116,101,110,99,105,108,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,83,116,101,110,99,105,108,79,112,83,101,112,97,114,97,116,101,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,0,103,108,67,111,112,121,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,112,121,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,68,114,97,119,66,117,102,102,101,114,115,0,77,111,100,117,108,101,46,112,114,105,110,116,69,114,114,40,39,98,97,100,32,110,97,109,101,32,105,110,32,103,101,116,80,114,111,99,65,100,100,114,101,115,115,58,32,39,32,43,32,91,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,48,41,44,32,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,49,41,93,41,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,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,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,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,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,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,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,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,18,0,0,0,18,18,18,0,0,0,0,0,0,9,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,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,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,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240); - - - - - -/* no memory initializer */ -var tempDoublePtr = STATICTOP; STATICTOP += 16; - -assert(tempDoublePtr % 8 == 0); - -function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much - - HEAP8[tempDoublePtr] = HEAP8[ptr]; - - HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; - - HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; - - HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; - -} - -function copyTempDouble(ptr) { - - HEAP8[tempDoublePtr] = HEAP8[ptr]; - - HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; - - HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; - - HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; - - HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; - - HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; - - HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; - - HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; - -} - -// {{PRE_LIBRARY}} - - - - var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},tempFixedLengthArray:[],packAlignment:4,unpackAlignment:4,init:function () { - GL.miniTempBuffer = new Float32Array(GL.MINI_TEMP_BUFFER_SIZE); - for (var i = 0; i < GL.MINI_TEMP_BUFFER_SIZE; i++) { - GL.miniTempBufferViews[i] = GL.miniTempBuffer.subarray(0, i+1); - } - - // For functions such as glDrawBuffers, glInvalidateFramebuffer and glInvalidateSubFramebuffer that need to pass a short array to the WebGL API, - // create a set of short fixed-length arrays to avoid having to generate any garbage when calling those functions. - for (var i = 0; i < 32; i++) { - GL.tempFixedLengthArray.push(new Array(i)); - } - },recordError:function recordError(errorCode) { - if (!GL.lastError) { - GL.lastError = errorCode; - } - },getNewId:function (table) { - var ret = GL.counter++; - for (var i = table.length; i < ret; i++) { - table[i] = null; - } - return ret; - },MINI_TEMP_BUFFER_SIZE:256,miniTempBuffer:null,miniTempBufferViews:[0],getSource:function (shader, count, string, length) { - var source = ''; - for (var i = 0; i < count; ++i) { - var frag; - if (length) { - var len = HEAP32[(((length)+(i*4))>>2)]; - if (len < 0) { - frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); - } else { - frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)], len); - } - } else { - frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); - } - source += frag; - } - return source; - },createContext:function (canvas, webGLContextAttributes) { - if (typeof webGLContextAttributes['majorVersion'] === 'undefined' && typeof webGLContextAttributes['minorVersion'] === 'undefined') { - webGLContextAttributes['majorVersion'] = 1; - webGLContextAttributes['minorVersion'] = 0; - } - - - var ctx; - var errorInfo = '?'; - function onContextCreationError(event) { - errorInfo = event.statusMessage || errorInfo; - } - try { - canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false); - try { - if (webGLContextAttributes['majorVersion'] == 1 && webGLContextAttributes['minorVersion'] == 0) { - ctx = canvas.getContext("webgl", webGLContextAttributes) || canvas.getContext("experimental-webgl", webGLContextAttributes); - } else if (webGLContextAttributes['majorVersion'] == 2 && webGLContextAttributes['minorVersion'] == 0) { - ctx = canvas.getContext("webgl2", webGLContextAttributes); - } else { - throw 'Unsupported WebGL context version ' + majorVersion + '.' + minorVersion + '!' - } - } finally { - canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false); - } - if (!ctx) throw ':('; - } catch (e) { - Module.print('Could not create canvas: ' + [errorInfo, e, JSON.stringify(webGLContextAttributes)]); - return 0; - } - // possible GL_DEBUG entry point: ctx = wrapDebugGL(ctx); - - if (!ctx) return 0; - return GL.registerContext(ctx, webGLContextAttributes); - },registerContext:function (ctx, webGLContextAttributes) { - var handle = GL.getNewId(GL.contexts); - var context = { - handle: handle, - attributes: webGLContextAttributes, - version: webGLContextAttributes['majorVersion'], - GLctx: ctx - }; - - - // Store the created context object so that we can access the context given a canvas without having to pass the parameters again. - if (ctx.canvas) ctx.canvas.GLctxObject = context; - GL.contexts[handle] = context; - if (typeof webGLContextAttributes['enableExtensionsByDefault'] === 'undefined' || webGLContextAttributes['enableExtensionsByDefault']) { - GL.initExtensions(context); - } - return handle; - },makeContextCurrent:function (contextHandle) { - var context = GL.contexts[contextHandle]; - if (!context) return false; - GLctx = Module.ctx = context.GLctx; // Active WebGL context object. - GL.currentContext = context; // Active Emscripten GL layer context object. - return true; - },getContext:function (contextHandle) { - return GL.contexts[contextHandle]; - },deleteContext:function (contextHandle) { - if (GL.currentContext === GL.contexts[contextHandle]) GL.currentContext = null; - if (typeof JSEvents === 'object') JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); // Release all JS event handlers on the DOM element that the GL context is associated with since the context is now deleted. - if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; // Make sure the canvas object no longer refers to the context object so there are no GC surprises. - GL.contexts[contextHandle] = null; - },initExtensions:function (context) { - // If this function is called without a specific context object, init the extensions of the currently active context. - if (!context) context = GL.currentContext; - - if (context.initExtensionsDone) return; - context.initExtensionsDone = true; - - var GLctx = context.GLctx; - - context.maxVertexAttribs = GLctx.getParameter(GLctx.MAX_VERTEX_ATTRIBS); - - // Detect the presence of a few extensions manually, this GL interop layer itself will need to know if they exist. - - if (context.version < 2) { - // Extension available from Firefox 26 and Google Chrome 30 - var instancedArraysExt = GLctx.getExtension('ANGLE_instanced_arrays'); - if (instancedArraysExt) { - GLctx['vertexAttribDivisor'] = function(index, divisor) { instancedArraysExt['vertexAttribDivisorANGLE'](index, divisor); }; - GLctx['drawArraysInstanced'] = function(mode, first, count, primcount) { instancedArraysExt['drawArraysInstancedANGLE'](mode, first, count, primcount); }; - GLctx['drawElementsInstanced'] = function(mode, count, type, indices, primcount) { instancedArraysExt['drawElementsInstancedANGLE'](mode, count, type, indices, primcount); }; - } - - // Extension available from Firefox 25 and WebKit - var vaoExt = GLctx.getExtension('OES_vertex_array_object'); - if (vaoExt) { - GLctx['createVertexArray'] = function() { return vaoExt['createVertexArrayOES'](); }; - GLctx['deleteVertexArray'] = function(vao) { vaoExt['deleteVertexArrayOES'](vao); }; - GLctx['bindVertexArray'] = function(vao) { vaoExt['bindVertexArrayOES'](vao); }; - GLctx['isVertexArray'] = function(vao) { return vaoExt['isVertexArrayOES'](vao); }; - } - - var drawBuffersExt = GLctx.getExtension('WEBGL_draw_buffers'); - if (drawBuffersExt) { - GLctx['drawBuffers'] = function(n, bufs) { drawBuffersExt['drawBuffersWEBGL'](n, bufs); }; - } - } - - GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); - - // These are the 'safe' feature-enabling extensions that don't add any performance impact related to e.g. debugging, and - // should be enabled by default so that client GLES2/GL code will not need to go through extra hoops to get its stuff working. - // As new extensions are ratified at http://www.khronos.org/registry/webgl/extensions/ , feel free to add your new extensions - // here, as long as they don't produce a performance impact for users that might not be using those extensions. - // E.g. debugging-related extensions should probably be off by default. - var automaticallyEnabledExtensions = [ "OES_texture_float", "OES_texture_half_float", "OES_standard_derivatives", - "OES_vertex_array_object", "WEBGL_compressed_texture_s3tc", "WEBGL_depth_texture", - "OES_element_index_uint", "EXT_texture_filter_anisotropic", "ANGLE_instanced_arrays", - "OES_texture_float_linear", "OES_texture_half_float_linear", "WEBGL_compressed_texture_atc", - "WEBGL_compressed_texture_pvrtc", "EXT_color_buffer_half_float", "WEBGL_color_buffer_float", - "EXT_frag_depth", "EXT_sRGB", "WEBGL_draw_buffers", "WEBGL_shared_resources", - "EXT_shader_texture_lod", "EXT_color_buffer_float"]; - - function shouldEnableAutomatically(extension) { - var ret = false; - automaticallyEnabledExtensions.forEach(function(include) { - if (ext.indexOf(include) != -1) { - ret = true; - } - }); - return ret; - } - - var exts = GLctx.getSupportedExtensions(); - if (exts && exts.length > 0) { - GLctx.getSupportedExtensions().forEach(function(ext) { - if (automaticallyEnabledExtensions.indexOf(ext) != -1) { - GLctx.getExtension(ext); // Calling .getExtension enables that extension permanently, no need to store the return value to be enabled. - } - }); - } - },populateUniformTable:function (program) { - var p = GL.programs[program]; - GL.programInfos[program] = { - uniforms: {}, - maxUniformLength: 0, // This is eagerly computed below, since we already enumerate all uniforms anyway. - maxAttributeLength: -1, // This is lazily computed and cached, computed when/if first asked, "-1" meaning not computed yet. - maxUniformBlockNameLength: -1 // Lazily computed as well - }; - - var ptable = GL.programInfos[program]; - var utable = ptable.uniforms; - // A program's uniform table maps the string name of an uniform to an integer location of that uniform. - // The global GL.uniforms map maps integer locations to WebGLUniformLocations. - var numUniforms = GLctx.getProgramParameter(p, GLctx.ACTIVE_UNIFORMS); - for (var i = 0; i < numUniforms; ++i) { - var u = GLctx.getActiveUniform(p, i); - - var name = u.name; - ptable.maxUniformLength = Math.max(ptable.maxUniformLength, name.length+1); - - // Strip off any trailing array specifier we might have got, e.g. "[0]". - if (name.indexOf(']', name.length-1) !== -1) { - var ls = name.lastIndexOf('['); - name = name.slice(0, ls); - } - - // Optimize memory usage slightly: If we have an array of uniforms, e.g. 'vec3 colors[3];', then - // only store the string 'colors' in utable, and 'colors[0]', 'colors[1]' and 'colors[2]' will be parsed as 'colors'+i. - // Note that for the GL.uniforms table, we still need to fetch the all WebGLUniformLocations for all the indices. - var loc = GLctx.getUniformLocation(p, name); - if (loc != null) - { - var id = GL.getNewId(GL.uniforms); - utable[name] = [u.size, id]; - GL.uniforms[id] = loc; - - for (var j = 1; j < u.size; ++j) { - var n = name + '['+j+']'; - loc = GLctx.getUniformLocation(p, n); - id = GL.getNewId(GL.uniforms); - - GL.uniforms[id] = loc; - } - } - } - }};function _emscripten_glIsRenderbuffer(renderbuffer) { - var rb = GL.renderbuffers[renderbuffer]; - if (!rb) return 0; - return GLctx.isRenderbuffer(rb); - } - - function _emscripten_glStencilMaskSeparate(x0, x1) { GLctx['stencilMaskSeparate'](x0, x1) } - - - - function _emscripten_get_now() { abort() } - - - - function _emscripten_set_main_loop_timing(mode, value) { - Browser.mainLoop.timingMode = mode; - Browser.mainLoop.timingValue = value; - - if (!Browser.mainLoop.func) { - console.error('emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.'); - return 1; // Return non-zero on failure, can't set timing mode when there is no main loop. - } - - if (mode == 0 /*EM_TIMING_SETTIMEOUT*/) { - Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { - var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now())|0; - setTimeout(Browser.mainLoop.runner, timeUntilNextTick); // doing this each time means that on exception, we stop - }; - Browser.mainLoop.method = 'timeout'; - } else if (mode == 1 /*EM_TIMING_RAF*/) { - Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { - Browser.requestAnimationFrame(Browser.mainLoop.runner); - }; - Browser.mainLoop.method = 'rAF'; - } else if (mode == 2 /*EM_TIMING_SETIMMEDIATE*/) { - if (!window['setImmediate']) { - // Emulate setImmediate. (note: not a complete polyfill, we don't emulate clearImmediate() to keep code size to minimum, since not needed) - var setImmediates = []; - var emscriptenMainLoopMessageId = 'setimmediate'; - function Browser_setImmediate_messageHandler(event) { - if (event.source === window && event.data === emscriptenMainLoopMessageId) { - event.stopPropagation(); - setImmediates.shift()(); - } - } - window.addEventListener("message", Browser_setImmediate_messageHandler, true); - window['setImmediate'] = function Browser_emulated_setImmediate(func) { - setImmediates.push(func); - if (ENVIRONMENT_IS_WORKER) { - if (Module['setImmediates'] === undefined) Module['setImmediates'] = []; - Module['setImmediates'].push(func); - window.postMessage({target: emscriptenMainLoopMessageId}); // In --proxy-to-worker, route the message via proxyClient.js - } else window.postMessage(emscriptenMainLoopMessageId, "*"); // On the main thread, can just send the message to itself. - } - } - Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { - window['setImmediate'](Browser.mainLoop.runner); - }; - Browser.mainLoop.method = 'immediate'; - } - return 0; - }function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) { - Module['noExitRuntime'] = true; - - assert(!Browser.mainLoop.func, 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.'); - - Browser.mainLoop.func = func; - Browser.mainLoop.arg = arg; - - var browserIterationFunc; - if (typeof arg !== 'undefined') { - browserIterationFunc = function() { - Module['dynCall_vi'](func, arg); - }; - } else { - browserIterationFunc = function() { - Module['dynCall_v'](func); - }; - } - - var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; - - Browser.mainLoop.runner = function Browser_mainLoop_runner() { - if (ABORT) return; - if (Browser.mainLoop.queue.length > 0) { - var start = Date.now(); - var blocker = Browser.mainLoop.queue.shift(); - blocker.func(blocker.arg); - if (Browser.mainLoop.remainingBlockers) { - var remaining = Browser.mainLoop.remainingBlockers; - var next = remaining%1 == 0 ? remaining-1 : Math.floor(remaining); - if (blocker.counted) { - Browser.mainLoop.remainingBlockers = next; - } else { - // not counted, but move the progress along a tiny bit - next = next + 0.5; // do not steal all the next one's progress - Browser.mainLoop.remainingBlockers = (8*remaining + next)/9; - } - } - console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers); - Browser.mainLoop.updateStatus(); - - // catches pause/resume main loop from blocker execution - if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; - - setTimeout(Browser.mainLoop.runner, 0); - return; - } - - // catch pauses from non-main loop sources - if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; - - // Implement very basic swap interval control - Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; - if (Browser.mainLoop.timingMode == 1/*EM_TIMING_RAF*/ && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { - // Not the scheduled time to render this frame - skip. - Browser.mainLoop.scheduler(); - return; - } else if (Browser.mainLoop.timingMode == 0/*EM_TIMING_SETTIMEOUT*/) { - Browser.mainLoop.tickStartTime = _emscripten_get_now(); - } - - // Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize - // VBO double-buffering and reduce GPU stalls. - - - if (Browser.mainLoop.method === 'timeout' && Module.ctx) { - Module.printErr('Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!'); - Browser.mainLoop.method = ''; // just warn once per call to set main loop - } - - Browser.mainLoop.runIter(browserIterationFunc); - - checkStackCookie(); - - // catch pauses from the main loop itself - if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; - - // Queue new audio data. This is important to be right after the main loop invocation, so that we will immediately be able - // to queue the newest produced audio samples. - // TODO: Consider adding pre- and post- rAF callbacks so that GL.newRenderingFrameStarted() and SDL.audio.queueNewAudioData() - // do not need to be hardcoded into this function, but can be more generic. - if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); - - Browser.mainLoop.scheduler(); - } - - if (!noSetTiming) { - if (fps && fps > 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 1000.0 / fps); - else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, 1); // Do rAF by rendering each frame (no decimating) - - Browser.mainLoop.scheduler(); - } - - if (simulateInfiniteLoop) { - throw 'SimulateInfiniteLoop'; - } - }var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function () { - Browser.mainLoop.scheduler = null; - Browser.mainLoop.currentlyRunningMainloop++; // Incrementing this signals the previous main loop that it's now become old, and it must return. - },resume:function () { - Browser.mainLoop.currentlyRunningMainloop++; - var timingMode = Browser.mainLoop.timingMode; - var timingValue = Browser.mainLoop.timingValue; - var func = Browser.mainLoop.func; - Browser.mainLoop.func = null; - _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true /* do not set timing and call scheduler, we will do it on the next lines */); - _emscripten_set_main_loop_timing(timingMode, timingValue); - Browser.mainLoop.scheduler(); - },updateStatus:function () { - if (Module['setStatus']) { - var message = Module['statusMessage'] || 'Please wait...'; - var remaining = Browser.mainLoop.remainingBlockers; - var expected = Browser.mainLoop.expectedBlockers; - if (remaining) { - if (remaining < expected) { - Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')'); - } else { - Module['setStatus'](message); - } - } else { - Module['setStatus'](''); - } - } - },runIter:function (func) { - if (ABORT) return; - if (Module['preMainLoop']) { - var preRet = Module['preMainLoop'](); - if (preRet === false) { - return; // |return false| skips a frame - } - } - try { - func(); - } catch (e) { - if (e instanceof ExitStatus) { - return; - } else { - if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); - throw e; - } - } - if (Module['postMainLoop']) Module['postMainLoop'](); - }},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () { - if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers - - if (Browser.initted) return; - Browser.initted = true; - - try { - new Blob(); - Browser.hasBlobConstructor = true; - } catch(e) { - Browser.hasBlobConstructor = false; - console.log("warning: no blob constructor, cannot create blobs with mimetypes"); - } - Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null)); - Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined; - if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') { - console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); - Module.noImageDecoding = true; - } - - // Support for plugins that can process preloaded files. You can add more of these to - // your app by creating and appending to Module.preloadPlugins. - // - // Each plugin is asked if it can handle a file based on the file's name. If it can, - // it is given the file's raw data. When it is done, it calls a callback with the file's - // (possibly modified) data. For example, a plugin might decompress a file, or it - // might create some side data structure for use later (like an Image element, etc.). - - var imagePlugin = {}; - imagePlugin['canHandle'] = function imagePlugin_canHandle(name) { - return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); - }; - imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) { - var b = null; - if (Browser.hasBlobConstructor) { - try { - b = new Blob([byteArray], { type: Browser.getMimetype(name) }); - if (b.size !== byteArray.length) { // Safari bug #118630 - // Safari's Blob can only take an ArrayBuffer - b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) }); - } - } catch(e) { - Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder'); - } - } - if (!b) { - var bb = new Browser.BlobBuilder(); - bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range - b = bb.getBlob(); - } - var url = Browser.URLObject.createObjectURL(b); - assert(typeof url == 'string', 'createObjectURL must return a url as a string'); - var img = new Image(); - img.onload = function img_onload() { - assert(img.complete, 'Image ' + name + ' could not be decoded'); - var canvas = document.createElement('canvas'); - canvas.width = img.width; - canvas.height = img.height; - var ctx = canvas.getContext('2d'); - ctx.drawImage(img, 0, 0); - Module["preloadedImages"][name] = canvas; - Browser.URLObject.revokeObjectURL(url); - if (onload) onload(byteArray); - }; - img.onerror = function img_onerror(event) { - console.log('Image ' + url + ' could not be decoded'); - if (onerror) onerror(); - }; - img.src = url; - }; - Module['preloadPlugins'].push(imagePlugin); - - var audioPlugin = {}; - audioPlugin['canHandle'] = function audioPlugin_canHandle(name) { - return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 }; - }; - audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) { - var done = false; - function finish(audio) { - if (done) return; - done = true; - Module["preloadedAudios"][name] = audio; - if (onload) onload(byteArray); - } - function fail() { - if (done) return; - done = true; - Module["preloadedAudios"][name] = new Audio(); // empty shim - if (onerror) onerror(); - } - if (Browser.hasBlobConstructor) { - try { - var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); - } catch(e) { - return fail(); - } - var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this! - assert(typeof url == 'string', 'createObjectURL must return a url as a string'); - var audio = new Audio(); - audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926 - audio.onerror = function audio_onerror(event) { - if (done) return; - console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach'); - function encode64(data) { - var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - var PAD = '='; - var ret = ''; - var leftchar = 0; - var leftbits = 0; - for (var i = 0; i < data.length; i++) { - leftchar = (leftchar << 8) | data[i]; - leftbits += 8; - while (leftbits >= 6) { - var curr = (leftchar >> (leftbits-6)) & 0x3f; - leftbits -= 6; - ret += BASE[curr]; - } - } - if (leftbits == 2) { - ret += BASE[(leftchar&3) << 4]; - ret += PAD + PAD; - } else if (leftbits == 4) { - ret += BASE[(leftchar&0xf) << 2]; - ret += PAD; - } - return ret; - } - audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray); - finish(audio); // we don't wait for confirmation this worked - but it's worth trying - }; - audio.src = url; - // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror - Browser.safeSetTimeout(function() { - finish(audio); // try to use it even though it is not necessarily ready to play - }, 10000); - } else { - return fail(); - } - }; - Module['preloadPlugins'].push(audioPlugin); - - // Canvas event setup - - function pointerLockChange() { - Browser.pointerLock = document['pointerLockElement'] === Module['canvas'] || - document['mozPointerLockElement'] === Module['canvas'] || - document['webkitPointerLockElement'] === Module['canvas'] || - document['msPointerLockElement'] === Module['canvas']; - } - var canvas = Module['canvas']; - if (canvas) { - // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module - // Module['forcedAspectRatio'] = 4 / 3; - - canvas.requestPointerLock = canvas['requestPointerLock'] || - canvas['mozRequestPointerLock'] || - canvas['webkitRequestPointerLock'] || - canvas['msRequestPointerLock'] || - function(){}; - canvas.exitPointerLock = document['exitPointerLock'] || - document['mozExitPointerLock'] || - document['webkitExitPointerLock'] || - document['msExitPointerLock'] || - function(){}; // no-op if function does not exist - canvas.exitPointerLock = canvas.exitPointerLock.bind(document); - - document.addEventListener('pointerlockchange', pointerLockChange, false); - document.addEventListener('mozpointerlockchange', pointerLockChange, false); - document.addEventListener('webkitpointerlockchange', pointerLockChange, false); - document.addEventListener('mspointerlockchange', pointerLockChange, false); - - if (Module['elementPointerLock']) { - canvas.addEventListener("click", function(ev) { - if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { - Module['canvas'].requestPointerLock(); - ev.preventDefault(); - } - }, false); - } - } - },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) { - if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; // no need to recreate GL context if it's already been created for this canvas. - - var ctx; - var contextHandle; - if (useWebGL) { - // For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults. - var contextAttributes = { - antialias: false, - alpha: false - }; - - if (webGLContextAttributes) { - for (var attribute in webGLContextAttributes) { - contextAttributes[attribute] = webGLContextAttributes[attribute]; - } - } - - contextHandle = GL.createContext(canvas, contextAttributes); - if (contextHandle) { - ctx = GL.getContext(contextHandle).GLctx; - } - } else { - ctx = canvas.getContext('2d'); - } - - if (!ctx) return null; - - if (setInModule) { - if (!useWebGL) assert(typeof GLctx === 'undefined', 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it'); - - Module.ctx = ctx; - if (useWebGL) GL.makeContextCurrent(contextHandle); - Module.useWebGL = useWebGL; - Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() }); - Browser.init(); - } - return ctx; - },destroyContext:function (canvas, useWebGL, setInModule) {},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function (lockPointer, resizeCanvas, vrDevice) { - Browser.lockPointer = lockPointer; - Browser.resizeCanvas = resizeCanvas; - Browser.vrDevice = vrDevice; - if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true; - if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false; - if (typeof Browser.vrDevice === 'undefined') Browser.vrDevice = null; - - var canvas = Module['canvas']; - function fullscreenChange() { - Browser.isFullscreen = false; - var canvasContainer = canvas.parentNode; - if ((document['fullscreenElement'] || document['mozFullScreenElement'] || - document['msFullscreenElement'] || document['webkitFullscreenElement'] || - document['webkitCurrentFullScreenElement']) === canvasContainer) { - canvas.exitFullscreen = document['exitFullscreen'] || - document['cancelFullScreen'] || - document['mozCancelFullScreen'] || - document['msExitFullscreen'] || - document['webkitCancelFullScreen'] || - function() {}; - canvas.exitFullscreen = canvas.exitFullscreen.bind(document); - if (Browser.lockPointer) canvas.requestPointerLock(); - Browser.isFullscreen = true; - if (Browser.resizeCanvas) Browser.setFullscreenCanvasSize(); - } else { - - // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen - canvasContainer.parentNode.insertBefore(canvas, canvasContainer); - canvasContainer.parentNode.removeChild(canvasContainer); - - if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); - } - if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullscreen); - if (Module['onFullscreen']) Module['onFullscreen'](Browser.isFullscreen); - Browser.updateCanvasDimensions(canvas); - } - - if (!Browser.fullscreenHandlersInstalled) { - Browser.fullscreenHandlersInstalled = true; - document.addEventListener('fullscreenchange', fullscreenChange, false); - document.addEventListener('mozfullscreenchange', fullscreenChange, false); - document.addEventListener('webkitfullscreenchange', fullscreenChange, false); - document.addEventListener('MSFullscreenChange', fullscreenChange, false); - } - - // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root - var canvasContainer = document.createElement("div"); - canvas.parentNode.insertBefore(canvasContainer, canvas); - canvasContainer.appendChild(canvas); - - // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) - canvasContainer.requestFullscreen = canvasContainer['requestFullscreen'] || - canvasContainer['mozRequestFullScreen'] || - canvasContainer['msRequestFullscreen'] || - (canvasContainer['webkitRequestFullscreen'] ? function() { canvasContainer['webkitRequestFullscreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null) || - (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null); - - if (vrDevice) { - canvasContainer.requestFullscreen({ vrDisplay: vrDevice }); - } else { - canvasContainer.requestFullscreen(); - } - },requestFullScreen:function (lockPointer, resizeCanvas, vrDevice) { - Module.printErr('Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.'); - Browser.requestFullScreen = function(lockPointer, resizeCanvas, vrDevice) { - return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); - } - return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); - },nextRAF:0,fakeRequestAnimationFrame:function (func) { - // try to keep 60fps between calls to here - var now = Date.now(); - if (Browser.nextRAF === 0) { - Browser.nextRAF = now + 1000/60; - } else { - while (now + 2 >= Browser.nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0 - Browser.nextRAF += 1000/60; - } - } - var delay = Math.max(Browser.nextRAF - now, 0); - setTimeout(func, delay); - },requestAnimationFrame:function requestAnimationFrame(func) { - if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js) - Browser.fakeRequestAnimationFrame(func); - } else { - if (!window.requestAnimationFrame) { - window.requestAnimationFrame = window['requestAnimationFrame'] || - window['mozRequestAnimationFrame'] || - window['webkitRequestAnimationFrame'] || - window['msRequestAnimationFrame'] || - window['oRequestAnimationFrame'] || - Browser.fakeRequestAnimationFrame; - } - window.requestAnimationFrame(func); - } - },safeCallback:function (func) { - return function() { - if (!ABORT) return func.apply(null, arguments); - }; - },allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function () { - Browser.allowAsyncCallbacks = false; - },resumeAsyncCallbacks:function () { // marks future callbacks as ok to execute, and synchronously runs any remaining ones right now - Browser.allowAsyncCallbacks = true; - if (Browser.queuedAsyncCallbacks.length > 0) { - var callbacks = Browser.queuedAsyncCallbacks; - Browser.queuedAsyncCallbacks = []; - callbacks.forEach(function(func) { - func(); - }); - } - },safeRequestAnimationFrame:function (func) { - return Browser.requestAnimationFrame(function() { - if (ABORT) return; - if (Browser.allowAsyncCallbacks) { - func(); - } else { - Browser.queuedAsyncCallbacks.push(func); - } - }); - },safeSetTimeout:function (func, timeout) { - Module['noExitRuntime'] = true; - return setTimeout(function() { - if (ABORT) return; - if (Browser.allowAsyncCallbacks) { - func(); - } else { - Browser.queuedAsyncCallbacks.push(func); - } - }, timeout); - },safeSetInterval:function (func, timeout) { - Module['noExitRuntime'] = true; - return setInterval(function() { - if (ABORT) return; - if (Browser.allowAsyncCallbacks) { - func(); - } // drop it on the floor otherwise, next interval will kick in - }, timeout); - },getMimetype:function (name) { - return { - 'jpg': 'image/jpeg', - 'jpeg': 'image/jpeg', - 'png': 'image/png', - 'bmp': 'image/bmp', - 'ogg': 'audio/ogg', - 'wav': 'audio/wav', - 'mp3': 'audio/mpeg' - }[name.substr(name.lastIndexOf('.')+1)]; - },getUserMedia:function (func) { - if(!window.getUserMedia) { - window.getUserMedia = navigator['getUserMedia'] || - navigator['mozGetUserMedia']; - } - window.getUserMedia(func); - },getMovementX:function (event) { - return event['movementX'] || - event['mozMovementX'] || - event['webkitMovementX'] || - 0; - },getMovementY:function (event) { - return event['movementY'] || - event['mozMovementY'] || - event['webkitMovementY'] || - 0; - },getMouseWheelDelta:function (event) { - var delta = 0; - switch (event.type) { - case 'DOMMouseScroll': - delta = event.detail; - break; - case 'mousewheel': - delta = event.wheelDelta; - break; - case 'wheel': - delta = event['deltaY']; - break; - default: - throw 'unrecognized mouse wheel event: ' + event.type; - } - return delta; - },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup - if (Browser.pointerLock) { - // When the pointer is locked, calculate the coordinates - // based on the movement of the mouse. - // Workaround for Firefox bug 764498 - if (event.type != 'mousemove' && - ('mozMovementX' in event)) { - Browser.mouseMovementX = Browser.mouseMovementY = 0; - } else { - Browser.mouseMovementX = Browser.getMovementX(event); - Browser.mouseMovementY = Browser.getMovementY(event); - } - - // check if SDL is available - if (typeof SDL != "undefined") { - Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; - Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; - } else { - // just add the mouse delta to the current absolut mouse position - // FIXME: ideally this should be clamped against the canvas size and zero - Browser.mouseX += Browser.mouseMovementX; - Browser.mouseY += Browser.mouseMovementY; - } - } else { - // Otherwise, calculate the movement based on the changes - // in the coordinates. - var rect = Module["canvas"].getBoundingClientRect(); - var cw = Module["canvas"].width; - var ch = Module["canvas"].height; - - // Neither .scrollX or .pageXOffset are defined in a spec, but - // we prefer .scrollX because it is currently in a spec draft. - // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) - var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset); - var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset); - // If this assert lands, it's likely because the browser doesn't support scrollX or pageXOffset - // and we have no viable fallback. - assert((typeof scrollX !== 'undefined') && (typeof scrollY !== 'undefined'), 'Unable to retrieve scroll position, mouse positions likely broken.'); - - if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') { - var touch = event.touch; - if (touch === undefined) { - return; // the "touch" property is only defined in SDL - - } - var adjustedX = touch.pageX - (scrollX + rect.left); - var adjustedY = touch.pageY - (scrollY + rect.top); - - adjustedX = adjustedX * (cw / rect.width); - adjustedY = adjustedY * (ch / rect.height); - - var coords = { x: adjustedX, y: adjustedY }; - - if (event.type === 'touchstart') { - Browser.lastTouches[touch.identifier] = coords; - Browser.touches[touch.identifier] = coords; - } else if (event.type === 'touchend' || event.type === 'touchmove') { - var last = Browser.touches[touch.identifier]; - if (!last) last = coords; - Browser.lastTouches[touch.identifier] = last; - Browser.touches[touch.identifier] = coords; - } - return; - } - - var x = event.pageX - (scrollX + rect.left); - var y = event.pageY - (scrollY + rect.top); - - // the canvas might be CSS-scaled compared to its backbuffer; - // SDL-using content will want mouse coordinates in terms - // of backbuffer units. - x = x * (cw / rect.width); - y = y * (ch / rect.height); - - Browser.mouseMovementX = x - Browser.mouseX; - Browser.mouseMovementY = y - Browser.mouseY; - Browser.mouseX = x; - Browser.mouseY = y; - } - },asyncLoad:function (url, onload, onerror, noRunDep) { - var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; - Module['readAsync'](url, function(arrayBuffer) { - assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); - onload(new Uint8Array(arrayBuffer)); - if (dep) removeRunDependency(dep); - }, function(event) { - if (onerror) { - onerror(); - } else { - throw 'Loading data file "' + url + '" failed.'; - } - }); - if (dep) addRunDependency(dep); - },resizeListeners:[],updateResizeListeners:function () { - var canvas = Module['canvas']; - Browser.resizeListeners.forEach(function(listener) { - listener(canvas.width, canvas.height); - }); - },setCanvasSize:function (width, height, noUpdates) { - var canvas = Module['canvas']; - Browser.updateCanvasDimensions(canvas, width, height); - if (!noUpdates) Browser.updateResizeListeners(); - },windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function () { - // check if SDL is available - if (typeof SDL != "undefined") { - var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; - flags = flags | 0x00800000; // set SDL_FULLSCREEN flag - HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags - } - Browser.updateResizeListeners(); - },setWindowedCanvasSize:function () { - // check if SDL is available - if (typeof SDL != "undefined") { - var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; - flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag - HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags - } - Browser.updateResizeListeners(); - },updateCanvasDimensions:function (canvas, wNative, hNative) { - if (wNative && hNative) { - canvas.widthNative = wNative; - canvas.heightNative = hNative; - } else { - wNative = canvas.widthNative; - hNative = canvas.heightNative; - } - var w = wNative; - var h = hNative; - if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) { - if (w/h < Module['forcedAspectRatio']) { - w = Math.round(h * Module['forcedAspectRatio']); - } else { - h = Math.round(w / Module['forcedAspectRatio']); - } - } - if (((document['fullscreenElement'] || document['mozFullScreenElement'] || - document['msFullscreenElement'] || document['webkitFullscreenElement'] || - document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) { - var factor = Math.min(screen.width / w, screen.height / h); - w = Math.round(w * factor); - h = Math.round(h * factor); - } - if (Browser.resizeCanvas) { - if (canvas.width != w) canvas.width = w; - if (canvas.height != h) canvas.height = h; - if (typeof canvas.style != 'undefined') { - canvas.style.removeProperty( "width"); - canvas.style.removeProperty("height"); - } - } else { - if (canvas.width != wNative) canvas.width = wNative; - if (canvas.height != hNative) canvas.height = hNative; - if (typeof canvas.style != 'undefined') { - if (w != wNative || h != hNative) { - canvas.style.setProperty( "width", w + "px", "important"); - canvas.style.setProperty("height", h + "px", "important"); - } else { - canvas.style.removeProperty( "width"); - canvas.style.removeProperty("height"); - } - } - } - },wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function () { - var handle = Browser.nextWgetRequestHandle; - Browser.nextWgetRequestHandle++; - return handle; - }};var GLFW={Window:function (id, width, height, title, monitor, share) { - this.id = id; - this.x = 0; - this.y = 0; - this.fullscreen = false; // Used to determine if app in fullscreen mode - this.storedX = 0; // Used to store X before fullscreen - this.storedY = 0; // Used to store Y before fullscreen - this.width = width; - this.height = height; - this.storedWidth = width; // Used to store width before fullscreen - this.storedHeight = height; // Used to store height before fullscreen - this.title = title; - this.monitor = monitor; - this.share = share; - this.attributes = GLFW.hints; - this.inputModes = { - 0x00033001:0x00034001, // GLFW_CURSOR (GLFW_CURSOR_NORMAL) - 0x00033002:0, // GLFW_STICKY_KEYS - 0x00033003:0, // GLFW_STICKY_MOUSE_BUTTONS - }; - this.buttons = 0; - this.keys = new Array(); - this.domKeys = new Array(); - this.shouldClose = 0; - this.title = null; - this.windowPosFunc = null; // GLFWwindowposfun - this.windowSizeFunc = null; // GLFWwindowsizefun - this.windowCloseFunc = null; // GLFWwindowclosefun - this.windowRefreshFunc = null; // GLFWwindowrefreshfun - this.windowFocusFunc = null; // GLFWwindowfocusfun - this.windowIconifyFunc = null; // GLFWwindowiconifyfun - this.framebufferSizeFunc = null; // GLFWframebuffersizefun - this.mouseButtonFunc = null; // GLFWmousebuttonfun - this.cursorPosFunc = null; // GLFWcursorposfun - this.cursorEnterFunc = null; // GLFWcursorenterfun - this.scrollFunc = null; // GLFWscrollfun - this.dropFunc = null; // GLFWdropfun - this.keyFunc = null; // GLFWkeyfun - this.charFunc = null; // GLFWcharfun - this.userptr = null; - },WindowFromId:function (id) { - if (id <= 0 || !GLFW.windows) return null; - return GLFW.windows[id - 1]; - },joystickFunc:null,errorFunc:null,monitorFunc:null,active:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0},DOMToGLFWKeyCode:function (keycode) { - switch (keycode) { - // these keycodes are only defined for GLFW3, assume they are the same for GLFW2 - case 0x20:return 32; // DOM_VK_SPACE -> GLFW_KEY_SPACE - case 0xDE:return 39; // DOM_VK_QUOTE -> GLFW_KEY_APOSTROPHE - case 0xBC:return 44; // DOM_VK_COMMA -> GLFW_KEY_COMMA - case 0xAD:return 45; // DOM_VK_HYPHEN_MINUS -> GLFW_KEY_MINUS - case 0xBD:return 45; // DOM_VK_MINUS -> GLFW_KEY_MINUS - case 0xBE:return 46; // DOM_VK_PERIOD -> GLFW_KEY_PERIOD - case 0xBF:return 47; // DOM_VK_SLASH -> GLFW_KEY_SLASH - case 0x30:return 48; // DOM_VK_0 -> GLFW_KEY_0 - case 0x31:return 49; // DOM_VK_1 -> GLFW_KEY_1 - case 0x32:return 50; // DOM_VK_2 -> GLFW_KEY_2 - case 0x33:return 51; // DOM_VK_3 -> GLFW_KEY_3 - case 0x34:return 52; // DOM_VK_4 -> GLFW_KEY_4 - case 0x35:return 53; // DOM_VK_5 -> GLFW_KEY_5 - case 0x36:return 54; // DOM_VK_6 -> GLFW_KEY_6 - case 0x37:return 55; // DOM_VK_7 -> GLFW_KEY_7 - case 0x38:return 56; // DOM_VK_8 -> GLFW_KEY_8 - case 0x39:return 57; // DOM_VK_9 -> GLFW_KEY_9 - case 0x3B:return 59; // DOM_VK_SEMICOLON -> GLFW_KEY_SEMICOLON - case 0x3D:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL - case 0xBB:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL - case 0x41:return 65; // DOM_VK_A -> GLFW_KEY_A - case 0x42:return 66; // DOM_VK_B -> GLFW_KEY_B - case 0x43:return 67; // DOM_VK_C -> GLFW_KEY_C - case 0x44:return 68; // DOM_VK_D -> GLFW_KEY_D - case 0x45:return 69; // DOM_VK_E -> GLFW_KEY_E - case 0x46:return 70; // DOM_VK_F -> GLFW_KEY_F - case 0x47:return 71; // DOM_VK_G -> GLFW_KEY_G - case 0x48:return 72; // DOM_VK_H -> GLFW_KEY_H - case 0x49:return 73; // DOM_VK_I -> GLFW_KEY_I - case 0x4A:return 74; // DOM_VK_J -> GLFW_KEY_J - case 0x4B:return 75; // DOM_VK_K -> GLFW_KEY_K - case 0x4C:return 76; // DOM_VK_L -> GLFW_KEY_L - case 0x4D:return 77; // DOM_VK_M -> GLFW_KEY_M - case 0x4E:return 78; // DOM_VK_N -> GLFW_KEY_N - case 0x4F:return 79; // DOM_VK_O -> GLFW_KEY_O - case 0x50:return 80; // DOM_VK_P -> GLFW_KEY_P - case 0x51:return 81; // DOM_VK_Q -> GLFW_KEY_Q - case 0x52:return 82; // DOM_VK_R -> GLFW_KEY_R - case 0x53:return 83; // DOM_VK_S -> GLFW_KEY_S - case 0x54:return 84; // DOM_VK_T -> GLFW_KEY_T - case 0x55:return 85; // DOM_VK_U -> GLFW_KEY_U - case 0x56:return 86; // DOM_VK_V -> GLFW_KEY_V - case 0x57:return 87; // DOM_VK_W -> GLFW_KEY_W - case 0x58:return 88; // DOM_VK_X -> GLFW_KEY_X - case 0x59:return 89; // DOM_VK_Y -> GLFW_KEY_Y - case 0x5a:return 90; // DOM_VK_Z -> GLFW_KEY_Z - case 0xDB:return 91; // DOM_VK_OPEN_BRACKET -> GLFW_KEY_LEFT_BRACKET - case 0xDC:return 92; // DOM_VK_BACKSLASH -> GLFW_KEY_BACKSLASH - case 0xDD:return 93; // DOM_VK_CLOSE_BRACKET -> GLFW_KEY_RIGHT_BRACKET - case 0xC0:return 94; // DOM_VK_BACK_QUOTE -> GLFW_KEY_GRAVE_ACCENT - - - case 0x1B:return 256; // DOM_VK_ESCAPE -> GLFW_KEY_ESCAPE - case 0x0D:return 257; // DOM_VK_RETURN -> GLFW_KEY_ENTER - case 0x09:return 258; // DOM_VK_TAB -> GLFW_KEY_TAB - case 0x08:return 259; // DOM_VK_BACK -> GLFW_KEY_BACKSPACE - case 0x2D:return 260; // DOM_VK_INSERT -> GLFW_KEY_INSERT - case 0x2E:return 261; // DOM_VK_DELETE -> GLFW_KEY_DELETE - case 0x27:return 262; // DOM_VK_RIGHT -> GLFW_KEY_RIGHT - case 0x25:return 263; // DOM_VK_LEFT -> GLFW_KEY_LEFT - case 0x28:return 264; // DOM_VK_DOWN -> GLFW_KEY_DOWN - case 0x26:return 265; // DOM_VK_UP -> GLFW_KEY_UP - case 0x21:return 266; // DOM_VK_PAGE_UP -> GLFW_KEY_PAGE_UP - case 0x22:return 267; // DOM_VK_PAGE_DOWN -> GLFW_KEY_PAGE_DOWN - case 0x24:return 268; // DOM_VK_HOME -> GLFW_KEY_HOME - case 0x23:return 269; // DOM_VK_END -> GLFW_KEY_END - case 0x14:return 280; // DOM_VK_CAPS_LOCK -> GLFW_KEY_CAPS_LOCK - case 0x91:return 281; // DOM_VK_SCROLL_LOCK -> GLFW_KEY_SCROLL_LOCK - case 0x90:return 282; // DOM_VK_NUM_LOCK -> GLFW_KEY_NUM_LOCK - case 0x2C:return 283; // DOM_VK_SNAPSHOT -> GLFW_KEY_PRINT_SCREEN - case 0x13:return 284; // DOM_VK_PAUSE -> GLFW_KEY_PAUSE - case 0x70:return 290; // DOM_VK_F1 -> GLFW_KEY_F1 - case 0x71:return 291; // DOM_VK_F2 -> GLFW_KEY_F2 - case 0x72:return 292; // DOM_VK_F3 -> GLFW_KEY_F3 - case 0x73:return 293; // DOM_VK_F4 -> GLFW_KEY_F4 - case 0x74:return 294; // DOM_VK_F5 -> GLFW_KEY_F5 - case 0x75:return 295; // DOM_VK_F6 -> GLFW_KEY_F6 - case 0x76:return 296; // DOM_VK_F7 -> GLFW_KEY_F7 - case 0x77:return 297; // DOM_VK_F8 -> GLFW_KEY_F8 - case 0x78:return 298; // DOM_VK_F9 -> GLFW_KEY_F9 - case 0x79:return 299; // DOM_VK_F10 -> GLFW_KEY_F10 - case 0x7A:return 300; // DOM_VK_F11 -> GLFW_KEY_F11 - case 0x7B:return 301; // DOM_VK_F12 -> GLFW_KEY_F12 - case 0x7C:return 302; // DOM_VK_F13 -> GLFW_KEY_F13 - case 0x7D:return 303; // DOM_VK_F14 -> GLFW_KEY_F14 - case 0x7E:return 304; // DOM_VK_F15 -> GLFW_KEY_F15 - case 0x7F:return 305; // DOM_VK_F16 -> GLFW_KEY_F16 - case 0x80:return 306; // DOM_VK_F17 -> GLFW_KEY_F17 - case 0x81:return 307; // DOM_VK_F18 -> GLFW_KEY_F18 - case 0x82:return 308; // DOM_VK_F19 -> GLFW_KEY_F19 - case 0x83:return 309; // DOM_VK_F20 -> GLFW_KEY_F20 - case 0x84:return 310; // DOM_VK_F21 -> GLFW_KEY_F21 - case 0x85:return 311; // DOM_VK_F22 -> GLFW_KEY_F22 - case 0x86:return 312; // DOM_VK_F23 -> GLFW_KEY_F23 - case 0x87:return 313; // DOM_VK_F24 -> GLFW_KEY_F24 - case 0x88:return 314; // 0x88 (not used?) -> GLFW_KEY_F25 - case 0x60:return 320; // DOM_VK_NUMPAD0 -> GLFW_KEY_KP_0 - case 0x61:return 321; // DOM_VK_NUMPAD1 -> GLFW_KEY_KP_1 - case 0x62:return 322; // DOM_VK_NUMPAD2 -> GLFW_KEY_KP_2 - case 0x63:return 323; // DOM_VK_NUMPAD3 -> GLFW_KEY_KP_3 - case 0x64:return 324; // DOM_VK_NUMPAD4 -> GLFW_KEY_KP_4 - case 0x65:return 325; // DOM_VK_NUMPAD5 -> GLFW_KEY_KP_5 - case 0x66:return 326; // DOM_VK_NUMPAD6 -> GLFW_KEY_KP_6 - case 0x67:return 327; // DOM_VK_NUMPAD7 -> GLFW_KEY_KP_7 - case 0x68:return 328; // DOM_VK_NUMPAD8 -> GLFW_KEY_KP_8 - case 0x69:return 329; // DOM_VK_NUMPAD9 -> GLFW_KEY_KP_9 - case 0x6E:return 330; // DOM_VK_DECIMAL -> GLFW_KEY_KP_DECIMAL - case 0x6F:return 331; // DOM_VK_DIVIDE -> GLFW_KEY_KP_DIVIDE - case 0x6A:return 332; // DOM_VK_MULTIPLY -> GLFW_KEY_KP_MULTIPLY - case 0x6D:return 333; // DOM_VK_SUBTRACT -> GLFW_KEY_KP_SUBTRACT - case 0x6B:return 334; // DOM_VK_ADD -> GLFW_KEY_KP_ADD - // case 0x0D:return 335; // DOM_VK_RETURN -> GLFW_KEY_KP_ENTER (DOM_KEY_LOCATION_RIGHT) - // case 0x61:return 336; // DOM_VK_EQUALS -> GLFW_KEY_KP_EQUAL (DOM_KEY_LOCATION_RIGHT) - case 0x10:return 340; // DOM_VK_SHIFT -> GLFW_KEY_LEFT_SHIFT - case 0x11:return 341; // DOM_VK_CONTROL -> GLFW_KEY_LEFT_CONTROL - case 0x12:return 342; // DOM_VK_ALT -> GLFW_KEY_LEFT_ALT - case 0x5B:return 343; // DOM_VK_WIN -> GLFW_KEY_LEFT_SUPER - // case 0x10:return 344; // DOM_VK_SHIFT -> GLFW_KEY_RIGHT_SHIFT (DOM_KEY_LOCATION_RIGHT) - // case 0x11:return 345; // DOM_VK_CONTROL -> GLFW_KEY_RIGHT_CONTROL (DOM_KEY_LOCATION_RIGHT) - // case 0x12:return 346; // DOM_VK_ALT -> GLFW_KEY_RIGHT_ALT (DOM_KEY_LOCATION_RIGHT) - // case 0x5B:return 347; // DOM_VK_WIN -> GLFW_KEY_RIGHT_SUPER (DOM_KEY_LOCATION_RIGHT) - case 0x5D:return 348; // DOM_VK_CONTEXT_MENU -> GLFW_KEY_MENU - // XXX: GLFW_KEY_WORLD_1, GLFW_KEY_WORLD_2 what are these? - default:return -1; // GLFW_KEY_UNKNOWN - }; - },getModBits:function (win) { - var mod = 0; - if (win.keys[340]) mod |= 0x0001; // GLFW_MOD_SHIFT - if (win.keys[341]) mod |= 0x0002; // GLFW_MOD_CONTROL - if (win.keys[342]) mod |= 0x0004; // GLFW_MOD_ALT - if (win.keys[343]) mod |= 0x0008; // GLFW_MOD_SUPER - return mod; - },onKeyPress:function (event) { - if (!GLFW.active || !GLFW.active.charFunc) return; - if (event.ctrlKey || event.metaKey) return; - - // correct unicode charCode is only available with onKeyPress event - var charCode = event.charCode; - if (charCode == 0 || (charCode >= 0x00 && charCode <= 0x1F)) return; - - - Module['dynCall_vii'](GLFW.active.charFunc, GLFW.active.id, charCode); - },onKeyChanged:function (keyCode, status) { - if (!GLFW.active) return; - - var key = GLFW.DOMToGLFWKeyCode(keyCode); - if (key == -1) return; - - var repeat = status && GLFW.active.keys[key]; - GLFW.active.keys[key] = status; - GLFW.active.domKeys[keyCode] = status; - if (!GLFW.active.keyFunc) return; - - - if (repeat) status = 2; // GLFW_REPEAT - Module['dynCall_viiiii'](GLFW.active.keyFunc, GLFW.active.id, key, keyCode, status, GLFW.getModBits(GLFW.active)); - },onGamepadConnected:function (event) { - GLFW.refreshJoysticks(); - },onGamepadDisconnected:function (event) { - GLFW.refreshJoysticks(); - },onKeydown:function (event) { - GLFW.onKeyChanged(event.keyCode, 1); // GLFW_PRESS or GLFW_REPEAT - - // This logic comes directly from the sdl implementation. We cannot - // call preventDefault on all keydown events otherwise onKeyPress will - // not get called - if (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */) { - event.preventDefault(); - } - },onKeyup:function (event) { - GLFW.onKeyChanged(event.keyCode, 0); // GLFW_RELEASE - },onBlur:function (event) { - if (!GLFW.active) return; - - for (var i = 0; i < GLFW.active.domKeys.length; ++i) { - if (GLFW.active.domKeys[i]) { - GLFW.onKeyChanged(i, 0); // GLFW_RELEASE - } - } - },onMousemove:function (event) { - if (!GLFW.active) return; - - Browser.calculateMouseEvent(event); - - if (event.target != Module["canvas"] || !GLFW.active.cursorPosFunc) return; - - - Module['dynCall_vidd'](GLFW.active.cursorPosFunc, GLFW.active.id, Browser.mouseX, Browser.mouseY); - },DOMToGLFWMouseButton:function (event) { - // DOM and glfw have different button codes. - // See http://www.w3schools.com/jsref/event_button.asp. - var eventButton = event['button']; - if (eventButton > 0) { - if (eventButton == 1) { - eventButton = 2; - } else { - eventButton = 1; - } - } - return eventButton; - },onMouseenter:function (event) { - if (!GLFW.active) return; - - if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; - - Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 1); - },onMouseleave:function (event) { - if (!GLFW.active) return; - - if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; - - Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 0); - },onMouseButtonChanged:function (event, status) { - if (!GLFW.active) return; - - Browser.calculateMouseEvent(event); - - if (event.target != Module["canvas"]) return; - - eventButton = GLFW.DOMToGLFWMouseButton(event); - - if (status == 1) { // GLFW_PRESS - GLFW.active.buttons |= (1 << eventButton); - try { - event.target.setCapture(); - } catch (e) {} - } else { // GLFW_RELEASE - GLFW.active.buttons &= ~(1 << eventButton); - } - - if (!GLFW.active.mouseButtonFunc) return; - - - Module['dynCall_viiii'](GLFW.active.mouseButtonFunc, GLFW.active.id, eventButton, status, GLFW.getModBits(GLFW.active)); - },onMouseButtonDown:function (event) { - if (!GLFW.active) return; - GLFW.onMouseButtonChanged(event, 1); // GLFW_PRESS - },onMouseButtonUp:function (event) { - if (!GLFW.active) return; - GLFW.onMouseButtonChanged(event, 0); // GLFW_RELEASE - },onMouseWheel:function (event) { - // Note the minus sign that flips browser wheel direction (positive direction scrolls page down) to native wheel direction (positive direction is mouse wheel up) - var delta = -Browser.getMouseWheelDelta(event); - delta = (delta == 0) ? 0 : (delta > 0 ? Math.max(delta, 1) : Math.min(delta, -1)); // Quantize to integer so that minimum scroll is at least +/- 1. - GLFW.wheelPos += delta; - - if (!GLFW.active || !GLFW.active.scrollFunc || event.target != Module['canvas']) return; - - - var sx = 0; - var sy = 0; - if (event.type == 'mousewheel') { - sx = event.wheelDeltaX; - sy = event.wheelDeltaY; - } else { - sx = event.deltaX; - sy = event.deltaY; - } - - Module['dynCall_vidd'](GLFW.active.scrollFunc, GLFW.active.id, sx, sy); - - event.preventDefault(); - },onCanvasResize:function (width, height) { - if (!GLFW.active) return; - - var resizeNeeded = true; - - // If the client is requestiong fullscreen mode - if (document["fullscreen"] || document["fullScreen"] || document["mozFullScreen"] || document["webkitIsFullScreen"]) { - GLFW.active.storedX = GLFW.active.x; - GLFW.active.storedY = GLFW.active.y; - GLFW.active.storedWidth = GLFW.active.width; - GLFW.active.storedHeight = GLFW.active.height; - GLFW.active.x = GLFW.active.y = 0; - GLFW.active.width = screen.width; - GLFW.active.height = screen.height; - GLFW.active.fullscreen = true; - - // If the client is reverting from fullscreen mode - } else if (GLFW.active.fullscreen == true) { - GLFW.active.x = GLFW.active.storedX; - GLFW.active.y = GLFW.active.storedY; - GLFW.active.width = GLFW.active.storedWidth; - GLFW.active.height = GLFW.active.storedHeight; - GLFW.active.fullscreen = false; - - // If the width/height values do not match current active window sizes - } else if (GLFW.active.width != width || GLFW.active.height != height) { - GLFW.active.width = width; - GLFW.active.height = height; - } else { - resizeNeeded = false; - } - - // If any of the above conditions were true, we need to resize the canvas - if (resizeNeeded) { - // resets the canvas size to counter the aspect preservation of Browser.updateCanvasDimensions - Browser.setCanvasSize(GLFW.active.width, GLFW.active.height, true); - // TODO: Client dimensions (clientWidth/clientHeight) vs pixel dimensions (width/height) of - // the canvas should drive window and framebuffer size respectfully. - GLFW.onWindowSizeChanged(); - GLFW.onFramebufferSizeChanged(); - } - },onWindowSizeChanged:function () { - if (!GLFW.active) return; - - if (!GLFW.active.windowSizeFunc) return; - - - Module['dynCall_viii'](GLFW.active.windowSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); - },onFramebufferSizeChanged:function () { - if (!GLFW.active) return; - - if (!GLFW.active.framebufferSizeFunc) return; - - Module['dynCall_viii'](GLFW.active.framebufferSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); - },requestFullscreen:function () { - var RFS = Module["canvas"]['requestFullscreen'] || - Module["canvas"]['mozRequestFullScreen'] || - Module["canvas"]['webkitRequestFullScreen'] || - (function() {}); - RFS.apply(Module["canvas"], []); - },requestFullScreen:function () { - Module.printErr('GLFW.requestFullScreen() is deprecated. Please call GLFW.requestFullscreen instead.'); - GLFW.requestFullScreen = function() { - return GLFW.requestFullscreen(); - } - return GLFW.requestFullscreen(); - },exitFullscreen:function () { - var CFS = document['exitFullscreen'] || - document['cancelFullScreen'] || - document['mozCancelFullScreen'] || - document['webkitCancelFullScreen'] || - (function() {}); - CFS.apply(document, []); - },cancelFullScreen:function () { - Module.printErr('GLFW.cancelFullScreen() is deprecated. Please call GLFW.exitFullscreen instead.'); - GLFW.cancelFullScreen = function() { - return GLFW.exitFullscreen(); - } - return GLFW.exitFullscreen(); - },getTime:function () { - return _emscripten_get_now() / 1000; - },setWindowTitle:function (winid, title) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - win.title = Pointer_stringify(title); - if (GLFW.active.id == win.id) { - document.title = win.title; - } - },setJoystickCallback:function (cbfun) { - GLFW.joystickFunc = cbfun; - GLFW.refreshJoysticks(); - },joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function () { - // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation. - if (Browser.mainLoop.currentFrameNumber !== GLFW.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) { - GLFW.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null); - GLFW.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber; - - for (var joy = 0; joy < GLFW.lastGamepadState.length; ++joy) { - var gamepad = GLFW.lastGamepadState[joy]; - - if (gamepad) { - if (!GLFW.joys[joy]) { - console.log('glfw joystick connected:',joy); - GLFW.joys[joy] = { - id: allocate(intArrayFromString(gamepad.id), 'i8', ALLOC_NORMAL), - buttonsCount: gamepad.buttons.length, - axesCount: gamepad.axes.length, - buttons: allocate(new Array(gamepad.buttons.length), 'i8', ALLOC_NORMAL), - axes: allocate(new Array(gamepad.axes.length*4), 'float', ALLOC_NORMAL) - }; - - if (GLFW.joystickFunc) { - Module['dynCall_vii'](GLFW.joystickFunc, joy, 0x00040001); // GLFW_CONNECTED - } - } - - var data = GLFW.joys[joy]; - - for (var i = 0; i < gamepad.buttons.length; ++i) { - setValue(data.buttons + i, gamepad.buttons[i].pressed, 'i8'); - } - - for (var i = 0; i < gamepad.axes.length; ++i) { - setValue(data.axes + i*4, gamepad.axes[i], 'float'); - } - } else { - if (GLFW.joys[joy]) { - console.log('glfw joystick disconnected',joy); - - if (GLFW.joystickFunc) { - Module['dynCall_vii'](GLFW.joystickFunc, joy, 0x00040002); // GLFW_DISCONNECTED - } - - _free(GLFW.joys[joy].id); - _free(GLFW.joys[joy].buttons); - _free(GLFW.joys[joy].axes); - - delete GLFW.joys[joy]; - } - } - } - } - },setKeyCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.keyFunc = cbfun; - },setCharCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.charFunc = cbfun; - },setMouseButtonCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.mouseButtonFunc = cbfun; - },setCursorPosCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.cursorPosFunc = cbfun; - },setScrollCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.scrollFunc = cbfun; - },setDropCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.dropFunc = cbfun; - },onDrop:function (event) { - if (!GLFW.active || !GLFW.active.dropFunc) return; - if (!event.dataTransfer || !event.dataTransfer.files || event.dataTransfer.files.length == 0) return; - - event.preventDefault(); - - var filenames = allocate(new Array(event.dataTransfer.files.length*4), 'i8*', ALLOC_NORMAL); - var filenamesArray = []; - var count = event.dataTransfer.files.length; - - // Read and save the files to emscripten's FS - var written = 0; - var drop_dir = '.glfw_dropped_files'; - FS.createPath('/', drop_dir); - - function save(file) { - var path = '/' + drop_dir + '/' + file.name.replace(/\//g, '_'); - var reader = new FileReader(); - reader.onloadend = function(e) { - if (reader.readyState != 2) { // not DONE - ++written; - console.log('failed to read dropped file: '+file.name+': '+reader.error); - return; - } - - var data = e.target.result; - FS.writeFile(path, new Uint8Array(data), { encoding: 'binary' }); - if (++written === count) { - Module['dynCall_viii'](GLFW.active.dropFunc, GLFW.active.id, count, filenames); - - for (var i = 0; i < filenamesArray.length; ++i) { - _free(filenamesArray[i]); - } - _free(filenames); - } - }; - reader.readAsArrayBuffer(file); - - var filename = allocate(intArrayFromString(path), 'i8', ALLOC_NORMAL); - filenamesArray.push(filename); - setValue(filenames + i*4, filename, 'i8*'); - } - - for (var i = 0; i < count; ++i) { - save(event.dataTransfer.files[i]); - } - - return false; - },onDragover:function (event) { - if (!GLFW.active || !GLFW.active.dropFunc) return; - - event.preventDefault(); - return false; - },setWindowSizeCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowSizeFunc = cbfun; - - },setWindowCloseCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowCloseFunc = cbfun; - },setWindowRefreshCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowRefreshFunc = cbfun; - },onClickRequestPointerLock:function (e) { - if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { - Module['canvas'].requestPointerLock(); - e.preventDefault(); - } - },setInputMode:function (winid, mode, value) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - switch(mode) { - case 0x00033001: { // GLFW_CURSOR - switch(value) { - case 0x00034001: { // GLFW_CURSOR_NORMAL - win.inputModes[mode] = value; - Module['canvas'].removeEventListener('click', GLFW.onClickRequestPointerLock, true); - Module['canvas'].exitPointerLock(); - break; - } - case 0x00034002: { // GLFW_CURSOR_HIDDEN - console.log("glfwSetInputMode called with GLFW_CURSOR_HIDDEN value not implemented."); - break; - } - case 0x00034003: { // GLFW_CURSOR_DISABLED - win.inputModes[mode] = value; - Module['canvas'].addEventListener('click', GLFW.onClickRequestPointerLock, true); - Module['canvas'].requestPointerLock(); - break; - } - default: { - console.log("glfwSetInputMode called with unknown value parameter value: " + value + "."); - break; - } - } - break; - } - case 0x00033002: { // GLFW_STICKY_KEYS - console.log("glfwSetInputMode called with GLFW_STICKY_KEYS mode not implemented."); - break; - } - case 0x00033003: { // GLFW_STICKY_MOUSE_BUTTONS - console.log("glfwSetInputMode called with GLFW_STICKY_MOUSE_BUTTONS mode not implemented."); - break; - } - default: { - console.log("glfwSetInputMode called with unknown mode parameter value: " + mode + "."); - break; - } - } - },getKey:function (winid, key) { - var win = GLFW.WindowFromId(winid); - if (!win) return 0; - return win.keys[key]; - },getMouseButton:function (winid, button) { - var win = GLFW.WindowFromId(winid); - if (!win) return 0; - return (win.buttons & (1 << button)) > 0; - },getCursorPos:function (winid, x, y) { - setValue(x, Browser.mouseX, 'double'); - setValue(y, Browser.mouseY, 'double'); - },getMousePos:function (winid, x, y) { - setValue(x, Browser.mouseX, 'i32'); - setValue(y, Browser.mouseY, 'i32'); - },setCursorPos:function (winid, x, y) { - },getWindowPos:function (winid, x, y) { - var wx = 0; - var wy = 0; - - var win = GLFW.WindowFromId(winid); - if (win) { - wx = win.x; - wy = win.y; - } - - setValue(x, wx, 'i32'); - setValue(y, wy, 'i32'); - },setWindowPos:function (winid, x, y) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.x = x; - win.y = y; - },getWindowSize:function (winid, width, height) { - var ww = 0; - var wh = 0; - - var win = GLFW.WindowFromId(winid); - if (win) { - ww = win.width; - wh = win.height; - } - - setValue(width, ww, 'i32'); - setValue(height, wh, 'i32'); - },setWindowSize:function (winid, width, height) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - if (GLFW.active.id == win.id) { - if (width == screen.width && height == screen.height) { - GLFW.requestFullscreen(); - } else { - GLFW.exitFullscreen(); - Browser.setCanvasSize(width, height); - win.width = width; - win.height = height; - } - } - - if (!win.windowSizeFunc) return; - - - Module['dynCall_viii'](win.windowSizeFunc, win.id, width, height); - },createWindow:function (width, height, title, monitor, share) { - var i, id; - for (i = 0; i < GLFW.windows.length && GLFW.windows[i] !== null; i++); - if (i > 0) throw "glfwCreateWindow only supports one window at time currently"; - - // id for window - id = i + 1; - - // not valid - if (width <= 0 || height <= 0) return 0; - - if (monitor) { - GLFW.requestFullscreen(); - } else { - Browser.setCanvasSize(width, height); - } - - // Create context when there are no existing alive windows - for (i = 0; i < GLFW.windows.length && GLFW.windows[i] == null; i++); - if (i == GLFW.windows.length) { - var contextAttributes = { - antialias: (GLFW.hints[0x0002100D] > 1), // GLFW_SAMPLES - depth: (GLFW.hints[0x00021005] > 0), // GLFW_DEPTH_BITS - stencil: (GLFW.hints[0x00021006] > 0), // GLFW_STENCIL_BITS - alpha: (GLFW.hints[0x00021004] > 0) // GLFW_ALPHA_BITS - } - Module.ctx = Browser.createContext(Module['canvas'], true, true, contextAttributes); - } - - // If context creation failed, do not return a valid window - if (!Module.ctx) return 0; - - // Get non alive id - var win = new GLFW.Window(id, width, height, title, monitor, share); - - // Set window to array - if (id - 1 == GLFW.windows.length) { - GLFW.windows.push(win); - } else { - GLFW.windows[id - 1] = win; - } - - GLFW.active = win; - return win.id; - },destroyWindow:function (winid) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - if (win.windowCloseFunc) - Module['dynCall_vi'](win.windowCloseFunc, win.id); - - GLFW.windows[win.id - 1] = null; - if (GLFW.active.id == win.id) - GLFW.active = null; - - // Destroy context when no alive windows - for (var i = 0; i < GLFW.windows.length; i++) - if (GLFW.windows[i] !== null) return; - - Module.ctx = Browser.destroyContext(Module['canvas'], true, true); - },swapBuffers:function (winid) { - },GLFW2ParamToGLFW3Param:function (param) { - table = { - 0x00030001:0, // GLFW_MOUSE_CURSOR - 0x00030002:0, // GLFW_STICKY_KEYS - 0x00030003:0, // GLFW_STICKY_MOUSE_BUTTONS - 0x00030004:0, // GLFW_SYSTEM_KEYS - 0x00030005:0, // GLFW_KEY_REPEAT - 0x00030006:0, // GLFW_AUTO_POLL_EVENTS - 0x00020001:0, // GLFW_OPENED - 0x00020002:0, // GLFW_ACTIVE - 0x00020003:0, // GLFW_ICONIFIED - 0x00020004:0, // GLFW_ACCELERATED - 0x00020005:0x00021001, // GLFW_RED_BITS - 0x00020006:0x00021002, // GLFW_GREEN_BITS - 0x00020007:0x00021003, // GLFW_BLUE_BITS - 0x00020008:0x00021004, // GLFW_ALPHA_BITS - 0x00020009:0x00021005, // GLFW_DEPTH_BITS - 0x0002000A:0x00021006, // GLFW_STENCIL_BITS - 0x0002000B:0x0002100F, // GLFW_REFRESH_RATE - 0x0002000C:0x00021007, // GLFW_ACCUM_RED_BITS - 0x0002000D:0x00021008, // GLFW_ACCUM_GREEN_BITS - 0x0002000E:0x00021009, // GLFW_ACCUM_BLUE_BITS - 0x0002000F:0x0002100A, // GLFW_ACCUM_ALPHA_BITS - 0x00020010:0x0002100B, // GLFW_AUX_BUFFERS - 0x00020011:0x0002100C, // GLFW_STEREO - 0x00020012:0, // GLFW_WINDOW_NO_RESIZE - 0x00020013:0x0002100D, // GLFW_FSAA_SAMPLES - 0x00020014:0x00022002, // GLFW_OPENGL_VERSION_MAJOR - 0x00020015:0x00022003, // GLFW_OPENGL_VERSION_MINOR - 0x00020016:0x00022006, // GLFW_OPENGL_FORWARD_COMPAT - 0x00020017:0x00022007, // GLFW_OPENGL_DEBUG_CONTEXT - 0x00020018:0x00022008, // GLFW_OPENGL_PROFILE - }; - return table[param]; - }};function _glfwGetVideoModes(monitor, count) { - setValue(count, 0, 'i32'); - return 0; - } - - function _glLinkProgram(program) { - GLctx.linkProgram(GL.programs[program]); - GL.programInfos[program] = null; // uniforms no longer keep the same names after linking - GL.populateUniformTable(program); - } - - function _glBindTexture(target, texture) { - GLctx.bindTexture(target, texture ? GL.textures[texture] : null); - } - - function _emscripten_glStencilFunc(x0, x1, x2) { GLctx['stencilFunc'](x0, x1, x2) } - - function _glGetString(name_) { - if (GL.stringCache[name_]) return GL.stringCache[name_]; - var ret; - switch(name_) { - case 0x1F00 /* GL_VENDOR */: - case 0x1F01 /* GL_RENDERER */: - case 0x9245 /* UNMASKED_VENDOR_WEBGL */: - case 0x9246 /* UNMASKED_RENDERER_WEBGL */: - ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); - break; - case 0x1F02 /* GL_VERSION */: - var glVersion = GLctx.getParameter(GLctx.VERSION); - // return GLES version string corresponding to the version of the WebGL context - { - glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; - } - ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); - break; - case 0x1F03 /* GL_EXTENSIONS */: - var exts = GLctx.getSupportedExtensions(); - var gl_exts = []; - for (var i = 0; i < exts.length; ++i) { - gl_exts.push(exts[i]); - gl_exts.push("GL_" + exts[i]); - } - ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); - break; - case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: - var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); - // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' - var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; - var ver_num = glslVersion.match(ver_re); - if (ver_num !== null) { - if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits - glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; - } - ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); - break; - default: - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - return 0; - } - GL.stringCache[name_] = ret; - return ret; - } - - function _emscripten_glUniform3iv(location, count, value) { - - - GLctx.uniform3iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*12)>>2)); - } - - function _emscripten_glShaderSource(shader, count, string, length) { - var source = GL.getSource(shader, count, string, length); - - - GLctx.shaderSource(GL.shaders[shader], source); - } - - function _emscripten_glReleaseShaderCompiler() { - // NOP (as allowed by GLES 2.0 spec) - } - - function _glfwSetScrollCallback(winid, cbfun) { - GLFW.setScrollCallback(winid, cbfun); - } - - function _emscripten_glTexParameterf(x0, x1, x2) { GLctx['texParameterf'](x0, x1, x2) } - - function _emscripten_glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } - - function _glCompileShader(shader) { - GLctx.compileShader(GL.shaders[shader]); - } - - - var SYSCALLS={varargs:0,get:function (varargs) { - SYSCALLS.varargs += 4; - var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; - return ret; - },getStr:function () { - var ret = Pointer_stringify(SYSCALLS.get()); - return ret; - },get64:function () { - var low = SYSCALLS.get(), high = SYSCALLS.get(); - if (low >= 0) assert(high === 0); - else assert(high === -1); - return low; - },getZero:function () { - assert(SYSCALLS.get() === 0); - }};function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; - try { - // ioctl - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function _emscripten_glSampleCoverage(value, invert) { - GLctx.sampleCoverage(value, !!invert); - } - - function _glDeleteTextures(n, textures) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((textures)+(i*4))>>2)]; - var texture = GL.textures[id]; - if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". - GLctx.deleteTexture(texture); - texture.name = 0; - GL.textures[id] = null; - } - } - - function _emscripten_glFrustum() { - Module['printErr']('missing function: emscripten_glFrustum'); abort(-1); - } - - function _glfwSetWindowSizeCallback(winid, cbfun) { - GLFW.setWindowSizeCallback(winid, cbfun); - } - - function _emscripten_glGetTexParameterfv(target, pname, params) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAPF32[((params)>>2)]=GLctx.getTexParameter(target, pname); - } - - function _emscripten_glUniform4i(location, v0, v1, v2, v3) { - GLctx.uniform4i(GL.uniforms[location], v0, v1, v2, v3); - } - - function _emscripten_glBindRenderbuffer(target, renderbuffer) { - GLctx.bindRenderbuffer(target, renderbuffer ? GL.renderbuffers[renderbuffer] : null); - } - - function _emscripten_glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } - - - - var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,lastGamepadState:null,lastGamepadStateFrame:null,numGamepadsConnected:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,staticInit:function () { - if (typeof window !== 'undefined') { - window.addEventListener("gamepadconnected", function() { ++JSEvents.numGamepadsConnected; }); - window.addEventListener("gamepaddisconnected", function() { --JSEvents.numGamepadsConnected; }); - - // Chromium does not fire the gamepadconnected event on reload, so we need to get the number of gamepads here as a workaround. - // See https://bugs.chromium.org/p/chromium/issues/detail?id=502824 - var firstState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : null); - if (firstState) { - JSEvents.numGamepadsConnected = firstState.length; - } - } - },registerRemoveEventListeners:function () { - if (!JSEvents.removeEventListenersRegistered) { - __ATEXIT__.push(function() { - for(var i = JSEvents.eventHandlers.length-1; i >= 0; --i) { - JSEvents._removeHandler(i); - } - }); - JSEvents.removeEventListenersRegistered = true; - } - },findEventTarget:function (target) { - if (target) { - if (typeof target == "number") { - target = Pointer_stringify(target); - } - if (target == '#window') return window; - else if (target == '#document') return document; - else if (target == '#screen') return window.screen; - else if (target == '#canvas') return Module['canvas']; - - if (typeof target == 'string') return document.getElementById(target); - else return target; - } else { - // The sensible target varies between events, but use window as the default - // since DOM events mostly can default to that. Specific callback registrations - // override their own defaults. - return window; - } - },deferredCalls:[],deferCall:function (targetFunction, precedence, argsList) { - function arraysHaveEqualContent(arrA, arrB) { - if (arrA.length != arrB.length) return false; - - for(var i in arrA) { - if (arrA[i] != arrB[i]) return false; - } - return true; - } - // Test if the given call was already queued, and if so, don't add it again. - for(var i in JSEvents.deferredCalls) { - var call = JSEvents.deferredCalls[i]; - if (call.targetFunction == targetFunction && arraysHaveEqualContent(call.argsList, argsList)) { - return; - } - } - JSEvents.deferredCalls.push({ - targetFunction: targetFunction, - precedence: precedence, - argsList: argsList - }); - - JSEvents.deferredCalls.sort(function(x,y) { return x.precedence < y.precedence; }); - },removeDeferredCalls:function (targetFunction) { - for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { - if (JSEvents.deferredCalls[i].targetFunction == targetFunction) { - JSEvents.deferredCalls.splice(i, 1); - --i; - } - } - },canPerformEventHandlerRequests:function () { - return JSEvents.inEventHandler && JSEvents.currentEventHandler.allowsDeferredCalls; - },runDeferredCalls:function () { - if (!JSEvents.canPerformEventHandlerRequests()) { - return; - } - for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { - var call = JSEvents.deferredCalls[i]; - JSEvents.deferredCalls.splice(i, 1); - --i; - call.targetFunction.apply(this, call.argsList); - } - },inEventHandler:0,currentEventHandler:null,eventHandlers:[],isInternetExplorer:function () { return navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0; },removeAllHandlersOnTarget:function (target, eventTypeString) { - for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { - if (JSEvents.eventHandlers[i].target == target && - (!eventTypeString || eventTypeString == JSEvents.eventHandlers[i].eventTypeString)) { - JSEvents._removeHandler(i--); - } - } - },_removeHandler:function (i) { - var h = JSEvents.eventHandlers[i]; - h.target.removeEventListener(h.eventTypeString, h.eventListenerFunc, h.useCapture); - JSEvents.eventHandlers.splice(i, 1); - },registerOrRemoveHandler:function (eventHandler) { - var jsEventHandler = function jsEventHandler(event) { - // Increment nesting count for the event handler. - ++JSEvents.inEventHandler; - JSEvents.currentEventHandler = eventHandler; - // Process any old deferred calls the user has placed. - JSEvents.runDeferredCalls(); - // Process the actual event, calls back to user C code handler. - eventHandler.handlerFunc(event); - // Process any new deferred calls that were placed right now from this event handler. - JSEvents.runDeferredCalls(); - // Out of event handler - restore nesting count. - --JSEvents.inEventHandler; - } - - if (eventHandler.callbackfunc) { - eventHandler.eventListenerFunc = jsEventHandler; - eventHandler.target.addEventListener(eventHandler.eventTypeString, jsEventHandler, eventHandler.useCapture); - JSEvents.eventHandlers.push(eventHandler); - JSEvents.registerRemoveEventListeners(); - } else { - for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { - if (JSEvents.eventHandlers[i].target == eventHandler.target - && JSEvents.eventHandlers[i].eventTypeString == eventHandler.eventTypeString) { - JSEvents._removeHandler(i--); - } - } - } - },registerKeyEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.keyEvent) { - JSEvents.keyEvent = _malloc( 164 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - stringToUTF8(e.key ? e.key : "", JSEvents.keyEvent + 0, 32); - stringToUTF8(e.code ? e.code : "", JSEvents.keyEvent + 32, 32); - HEAP32[(((JSEvents.keyEvent)+(64))>>2)]=e.location; - HEAP32[(((JSEvents.keyEvent)+(68))>>2)]=e.ctrlKey; - HEAP32[(((JSEvents.keyEvent)+(72))>>2)]=e.shiftKey; - HEAP32[(((JSEvents.keyEvent)+(76))>>2)]=e.altKey; - HEAP32[(((JSEvents.keyEvent)+(80))>>2)]=e.metaKey; - HEAP32[(((JSEvents.keyEvent)+(84))>>2)]=e.repeat; - stringToUTF8(e.locale ? e.locale : "", JSEvents.keyEvent + 88, 32); - stringToUTF8(e.char ? e.char : "", JSEvents.keyEvent + 120, 32); - HEAP32[(((JSEvents.keyEvent)+(152))>>2)]=e.charCode; - HEAP32[(((JSEvents.keyEvent)+(156))>>2)]=e.keyCode; - HEAP32[(((JSEvents.keyEvent)+(160))>>2)]=e.which; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.keyEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: JSEvents.isInternetExplorer() ? false : true, // MSIE doesn't allow fullscreen and pointerlock requests from key handlers, others do. - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },getBoundingClientRectOrZeros:function (target) { - return target.getBoundingClientRect ? target.getBoundingClientRect() : { left: 0, top: 0 }; - },fillMouseEventData:function (eventStruct, e, target) { - HEAPF64[((eventStruct)>>3)]=JSEvents.tick(); - HEAP32[(((eventStruct)+(8))>>2)]=e.screenX; - HEAP32[(((eventStruct)+(12))>>2)]=e.screenY; - HEAP32[(((eventStruct)+(16))>>2)]=e.clientX; - HEAP32[(((eventStruct)+(20))>>2)]=e.clientY; - HEAP32[(((eventStruct)+(24))>>2)]=e.ctrlKey; - HEAP32[(((eventStruct)+(28))>>2)]=e.shiftKey; - HEAP32[(((eventStruct)+(32))>>2)]=e.altKey; - HEAP32[(((eventStruct)+(36))>>2)]=e.metaKey; - HEAP16[(((eventStruct)+(40))>>1)]=e.button; - HEAP16[(((eventStruct)+(42))>>1)]=e.buttons; - HEAP32[(((eventStruct)+(44))>>2)]=e["movementX"] || e["mozMovementX"] || e["webkitMovementX"] || (e.screenX-JSEvents.previousScreenX); - HEAP32[(((eventStruct)+(48))>>2)]=e["movementY"] || e["mozMovementY"] || e["webkitMovementY"] || (e.screenY-JSEvents.previousScreenY); - - if (Module['canvas']) { - var rect = Module['canvas'].getBoundingClientRect(); - HEAP32[(((eventStruct)+(60))>>2)]=e.clientX - rect.left; - HEAP32[(((eventStruct)+(64))>>2)]=e.clientY - rect.top; - } else { // Canvas is not initialized, return 0. - HEAP32[(((eventStruct)+(60))>>2)]=0; - HEAP32[(((eventStruct)+(64))>>2)]=0; - } - if (target) { - var rect = JSEvents.getBoundingClientRectOrZeros(target); - HEAP32[(((eventStruct)+(52))>>2)]=e.clientX - rect.left; - HEAP32[(((eventStruct)+(56))>>2)]=e.clientY - rect.top; - } else { // No specific target passed, return 0. - HEAP32[(((eventStruct)+(52))>>2)]=0; - HEAP32[(((eventStruct)+(56))>>2)]=0; - } - // wheel and mousewheel events contain wrong screenX/screenY on chrome/opera - // https://github.com/kripken/emscripten/pull/4997 - // https://bugs.chromium.org/p/chromium/issues/detail?id=699956 - if (e.type !== 'wheel' && e.type !== 'mousewheel') { - JSEvents.previousScreenX = e.screenX; - JSEvents.previousScreenY = e.screenY; - } - },registerMouseEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.mouseEvent) { - JSEvents.mouseEvent = _malloc( 72 ); - } - target = JSEvents.findEventTarget(target); - var handlerFunc = function(event) { - var e = event || window.event; - JSEvents.fillMouseEventData(JSEvents.mouseEvent, e, target); - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.mouseEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: eventTypeString != 'mousemove' && eventTypeString != 'mouseenter' && eventTypeString != 'mouseleave', // Mouse move events do not allow fullscreen/pointer lock requests to be handled in them! - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - // In IE, mousedown events don't either allow deferred calls to be run! - if (JSEvents.isInternetExplorer() && eventTypeString == 'mousedown') eventHandler.allowsDeferredCalls = false; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerWheelEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.wheelEvent) { - JSEvents.wheelEvent = _malloc( 104 ); - } - target = JSEvents.findEventTarget(target); - // The DOM Level 3 events spec event 'wheel' - var wheelHandlerFunc = function(event) { - var e = event || window.event; - JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); - HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["deltaX"]; - HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=e["deltaY"]; - HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=e["deltaZ"]; - HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=e["deltaMode"]; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - // The 'mousewheel' event as implemented in Safari 6.0.5 - var mouseWheelHandlerFunc = function(event) { - var e = event || window.event; - JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); - HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["wheelDeltaX"] || 0; - HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=-(e["wheelDeltaY"] ? e["wheelDeltaY"] : e["wheelDelta"]) /* 1. Invert to unify direction with the DOM Level 3 wheel event. 2. MSIE does not provide wheelDeltaY, so wheelDelta is used as a fallback. */; - HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=0 /* Not available */; - HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=0 /* DOM_DELTA_PIXEL */; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: true, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: (eventTypeString == 'wheel') ? wheelHandlerFunc : mouseWheelHandlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },pageScrollPos:function () { - if (window.pageXOffset > 0 || window.pageYOffset > 0) { - return [window.pageXOffset, window.pageYOffset]; - } - if (typeof document.documentElement.scrollLeft !== 'undefined' || typeof document.documentElement.scrollTop !== 'undefined') { - return [document.documentElement.scrollLeft, document.documentElement.scrollTop]; - } - return [document.body.scrollLeft|0, document.body.scrollTop|0]; - },registerUiEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.uiEvent) { - JSEvents.uiEvent = _malloc( 36 ); - } - - if (eventTypeString == "scroll" && !target) { - target = document; // By default read scroll events on document rather than window. - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - if (e.target != target) { - // Never take ui events such as scroll via a 'bubbled' route, but always from the direct element that - // was targeted. Otherwise e.g. if app logs a message in response to a page scroll, the Emscripten log - // message box could cause to scroll, generating a new (bubbled) scroll message, causing a new log print, - // causing a new scroll, etc.. - return; - } - var scrollPos = JSEvents.pageScrollPos(); - HEAP32[((JSEvents.uiEvent)>>2)]=e.detail; - HEAP32[(((JSEvents.uiEvent)+(4))>>2)]=document.body.clientWidth; - HEAP32[(((JSEvents.uiEvent)+(8))>>2)]=document.body.clientHeight; - HEAP32[(((JSEvents.uiEvent)+(12))>>2)]=window.innerWidth; - HEAP32[(((JSEvents.uiEvent)+(16))>>2)]=window.innerHeight; - HEAP32[(((JSEvents.uiEvent)+(20))>>2)]=window.outerWidth; - HEAP32[(((JSEvents.uiEvent)+(24))>>2)]=window.outerHeight; - HEAP32[(((JSEvents.uiEvent)+(28))>>2)]=scrollPos[0]; - HEAP32[(((JSEvents.uiEvent)+(32))>>2)]=scrollPos[1]; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.uiEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, // Neither scroll or resize events allow running requests inside them. - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },getNodeNameForTarget:function (target) { - if (!target) return ''; - if (target == window) return '#window'; - if (target == window.screen) return '#screen'; - return (target && target.nodeName) ? target.nodeName : ''; - },registerFocusEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.focusEvent) { - JSEvents.focusEvent = _malloc( 256 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - - var nodeName = JSEvents.getNodeNameForTarget(e.target); - var id = e.target.id ? e.target.id : ''; - stringToUTF8(nodeName, JSEvents.focusEvent + 0, 128); - stringToUTF8(id, JSEvents.focusEvent + 128, 128); - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.focusEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },tick:function () { - if (window['performance'] && window['performance']['now']) return window['performance']['now'](); - else return Date.now(); - },registerDeviceOrientationEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.deviceOrientationEvent) { - JSEvents.deviceOrientationEvent = _malloc( 40 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - - HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); - HEAPF64[(((JSEvents.deviceOrientationEvent)+(8))>>3)]=e.alpha; - HEAPF64[(((JSEvents.deviceOrientationEvent)+(16))>>3)]=e.beta; - HEAPF64[(((JSEvents.deviceOrientationEvent)+(24))>>3)]=e.gamma; - HEAP32[(((JSEvents.deviceOrientationEvent)+(32))>>2)]=e.absolute; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceOrientationEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerDeviceMotionEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.deviceMotionEvent) { - JSEvents.deviceMotionEvent = _malloc( 80 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - - HEAPF64[((JSEvents.deviceMotionEvent)>>3)]=JSEvents.tick(); - HEAPF64[(((JSEvents.deviceMotionEvent)+(8))>>3)]=e.acceleration.x; - HEAPF64[(((JSEvents.deviceMotionEvent)+(16))>>3)]=e.acceleration.y; - HEAPF64[(((JSEvents.deviceMotionEvent)+(24))>>3)]=e.acceleration.z; - HEAPF64[(((JSEvents.deviceMotionEvent)+(32))>>3)]=e.accelerationIncludingGravity.x; - HEAPF64[(((JSEvents.deviceMotionEvent)+(40))>>3)]=e.accelerationIncludingGravity.y; - HEAPF64[(((JSEvents.deviceMotionEvent)+(48))>>3)]=e.accelerationIncludingGravity.z; - HEAPF64[(((JSEvents.deviceMotionEvent)+(56))>>3)]=e.rotationRate.alpha; - HEAPF64[(((JSEvents.deviceMotionEvent)+(64))>>3)]=e.rotationRate.beta; - HEAPF64[(((JSEvents.deviceMotionEvent)+(72))>>3)]=e.rotationRate.gamma; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceMotionEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },screenOrientation:function () { - if (!window.screen) return undefined; - return window.screen.orientation || window.screen.mozOrientation || window.screen.webkitOrientation || window.screen.msOrientation; - },fillOrientationChangeEventData:function (eventStruct, e) { - var orientations = ["portrait-primary", "portrait-secondary", "landscape-primary", "landscape-secondary"]; - var orientations2 = ["portrait", "portrait", "landscape", "landscape"]; - - var orientationString = JSEvents.screenOrientation(); - var orientation = orientations.indexOf(orientationString); - if (orientation == -1) { - orientation = orientations2.indexOf(orientationString); - } - - HEAP32[((eventStruct)>>2)]=1 << orientation; - HEAP32[(((eventStruct)+(4))>>2)]=window.orientation; - },registerOrientationChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.orientationChangeEvent) { - JSEvents.orientationChangeEvent = _malloc( 8 ); - } - - if (!target) { - target = window.screen; // Orientation events need to be captured from 'window.screen' instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillOrientationChangeEventData(JSEvents.orientationChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.orientationChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - if (eventTypeString == "orientationchange" && window.screen.mozOrientation !== undefined) { - eventTypeString = "mozorientationchange"; - } - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },fullscreenEnabled:function () { - return document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled; - },fillFullscreenChangeEventData:function (eventStruct, e) { - var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; - var isFullscreen = !!fullscreenElement; - HEAP32[((eventStruct)>>2)]=isFullscreen; - HEAP32[(((eventStruct)+(4))>>2)]=JSEvents.fullscreenEnabled(); - // If transitioning to fullscreen, report info about the element that is now fullscreen. - // If transitioning to windowed mode, report info about the element that just was fullscreen. - var reportedElement = isFullscreen ? fullscreenElement : JSEvents.previousFullscreenElement; - var nodeName = JSEvents.getNodeNameForTarget(reportedElement); - var id = (reportedElement && reportedElement.id) ? reportedElement.id : ''; - stringToUTF8(nodeName, eventStruct + 8, 128); - stringToUTF8(id, eventStruct + 136, 128); - HEAP32[(((eventStruct)+(264))>>2)]=reportedElement ? reportedElement.clientWidth : 0; - HEAP32[(((eventStruct)+(268))>>2)]=reportedElement ? reportedElement.clientHeight : 0; - HEAP32[(((eventStruct)+(272))>>2)]=screen.width; - HEAP32[(((eventStruct)+(276))>>2)]=screen.height; - if (isFullscreen) { - JSEvents.previousFullscreenElement = fullscreenElement; - } - },registerFullscreenChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.fullscreenChangeEvent) { - JSEvents.fullscreenChangeEvent = _malloc( 280 ); - } - - if (!target) { - target = document; // Fullscreen change events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillFullscreenChangeEventData(JSEvents.fullscreenChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.fullscreenChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },resizeCanvasForFullscreen:function (target, strategy) { - var restoreOldStyle = __registerRestoreOldStyle(target); - var cssWidth = strategy.softFullscreen ? window.innerWidth : screen.width; - var cssHeight = strategy.softFullscreen ? window.innerHeight : screen.height; - var rect = target.getBoundingClientRect(); - var windowedCssWidth = rect.right - rect.left; - var windowedCssHeight = rect.bottom - rect.top; - var windowedRttWidth = target.width; - var windowedRttHeight = target.height; - - if (strategy.scaleMode == 3) { - __setLetterbox(target, (cssHeight - windowedCssHeight) / 2, (cssWidth - windowedCssWidth) / 2); - cssWidth = windowedCssWidth; - cssHeight = windowedCssHeight; - } else if (strategy.scaleMode == 2) { - if (cssWidth*windowedRttHeight < windowedRttWidth*cssHeight) { - var desiredCssHeight = windowedRttHeight * cssWidth / windowedRttWidth; - __setLetterbox(target, (cssHeight - desiredCssHeight) / 2, 0); - cssHeight = desiredCssHeight; - } else { - var desiredCssWidth = windowedRttWidth * cssHeight / windowedRttHeight; - __setLetterbox(target, 0, (cssWidth - desiredCssWidth) / 2); - cssWidth = desiredCssWidth; - } - } - - // If we are adding padding, must choose a background color or otherwise Chrome will give the - // padding a default white color. Do it only if user has not customized their own background color. - if (!target.style.backgroundColor) target.style.backgroundColor = 'black'; - // IE11 does the same, but requires the color to be set in the document body. - if (!document.body.style.backgroundColor) document.body.style.backgroundColor = 'black'; // IE11 - // Firefox always shows black letterboxes independent of style color. - - target.style.width = cssWidth + 'px'; - target.style.height = cssHeight + 'px'; - - if (strategy.filteringMode == 1) { - target.style.imageRendering = 'optimizeSpeed'; - target.style.imageRendering = '-moz-crisp-edges'; - target.style.imageRendering = '-o-crisp-edges'; - target.style.imageRendering = '-webkit-optimize-contrast'; - target.style.imageRendering = 'optimize-contrast'; - target.style.imageRendering = 'crisp-edges'; - target.style.imageRendering = 'pixelated'; - } - - var dpiScale = (strategy.canvasResolutionScaleMode == 2) ? window.devicePixelRatio : 1; - if (strategy.canvasResolutionScaleMode != 0) { - target.width = cssWidth * dpiScale; - target.height = cssHeight * dpiScale; - if (target.GLctxObject) target.GLctxObject.GLctx.viewport(0, 0, target.width, target.height); - } - return restoreOldStyle; - },requestFullscreen:function (target, strategy) { - // EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT + EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE is a mode where no extra logic is performed to the DOM elements. - if (strategy.scaleMode != 0 || strategy.canvasResolutionScaleMode != 0) { - JSEvents.resizeCanvasForFullscreen(target, strategy); - } - - if (target.requestFullscreen) { - target.requestFullscreen(); - } else if (target.msRequestFullscreen) { - target.msRequestFullscreen(); - } else if (target.mozRequestFullScreen) { - target.mozRequestFullScreen(); - } else if (target.mozRequestFullscreen) { - target.mozRequestFullscreen(); - } else if (target.webkitRequestFullscreen) { - target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); - } else { - if (typeof JSEvents.fullscreenEnabled() === 'undefined') { - return -1; - } else { - return -3; - } - } - - if (strategy.canvasResizedCallback) { - Module['dynCall_iiii'](strategy.canvasResizedCallback, 37, 0, strategy.canvasResizedCallbackUserData); - } - - return 0; - },fillPointerlockChangeEventData:function (eventStruct, e) { - var pointerLockElement = document.pointerLockElement || document.mozPointerLockElement || document.webkitPointerLockElement || document.msPointerLockElement; - var isPointerlocked = !!pointerLockElement; - HEAP32[((eventStruct)>>2)]=isPointerlocked; - var nodeName = JSEvents.getNodeNameForTarget(pointerLockElement); - var id = (pointerLockElement && pointerLockElement.id) ? pointerLockElement.id : ''; - stringToUTF8(nodeName, eventStruct + 4, 128); - stringToUTF8(id, eventStruct + 132, 128); - },registerPointerlockChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.pointerlockChangeEvent) { - JSEvents.pointerlockChangeEvent = _malloc( 260 ); - } - - if (!target) { - target = document; // Pointer lock change events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillPointerlockChangeEventData(JSEvents.pointerlockChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.pointerlockChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerPointerlockErrorEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!target) { - target = document; // Pointer lock events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },requestPointerLock:function (target) { - if (target.requestPointerLock) { - target.requestPointerLock(); - } else if (target.mozRequestPointerLock) { - target.mozRequestPointerLock(); - } else if (target.webkitRequestPointerLock) { - target.webkitRequestPointerLock(); - } else if (target.msRequestPointerLock) { - target.msRequestPointerLock(); - } else { - // document.body is known to accept pointer lock, so use that to differentiate if the user passed a bad element, - // or if the whole browser just doesn't support the feature. - if (document.body.requestPointerLock || document.body.mozRequestPointerLock || document.body.webkitRequestPointerLock || document.body.msRequestPointerLock) { - return -3; - } else { - return -1; - } - } - return 0; - },fillVisibilityChangeEventData:function (eventStruct, e) { - var visibilityStates = [ "hidden", "visible", "prerender", "unloaded" ]; - var visibilityState = visibilityStates.indexOf(document.visibilityState); - - HEAP32[((eventStruct)>>2)]=document.hidden; - HEAP32[(((eventStruct)+(4))>>2)]=visibilityState; - },registerVisibilityChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.visibilityChangeEvent) { - JSEvents.visibilityChangeEvent = _malloc( 8 ); - } - - if (!target) { - target = document; // Visibility change events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillVisibilityChangeEventData(JSEvents.visibilityChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.visibilityChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerTouchEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.touchEvent) { - JSEvents.touchEvent = _malloc( 1684 ); - } - - target = JSEvents.findEventTarget(target); - - var handlerFunc = function(event) { - var e = event || window.event; - - var touches = {}; - for(var i = 0; i < e.touches.length; ++i) { - var touch = e.touches[i]; - touches[touch.identifier] = touch; - } - for(var i = 0; i < e.changedTouches.length; ++i) { - var touch = e.changedTouches[i]; - touches[touch.identifier] = touch; - touch.changed = true; - } - for(var i = 0; i < e.targetTouches.length; ++i) { - var touch = e.targetTouches[i]; - touches[touch.identifier].onTarget = true; - } - - var ptr = JSEvents.touchEvent; - HEAP32[(((ptr)+(4))>>2)]=e.ctrlKey; - HEAP32[(((ptr)+(8))>>2)]=e.shiftKey; - HEAP32[(((ptr)+(12))>>2)]=e.altKey; - HEAP32[(((ptr)+(16))>>2)]=e.metaKey; - ptr += 20; // Advance to the start of the touch array. - var canvasRect = Module['canvas'] ? Module['canvas'].getBoundingClientRect() : undefined; - var targetRect = JSEvents.getBoundingClientRectOrZeros(target); - var numTouches = 0; - for(var i in touches) { - var t = touches[i]; - HEAP32[((ptr)>>2)]=t.identifier; - HEAP32[(((ptr)+(4))>>2)]=t.screenX; - HEAP32[(((ptr)+(8))>>2)]=t.screenY; - HEAP32[(((ptr)+(12))>>2)]=t.clientX; - HEAP32[(((ptr)+(16))>>2)]=t.clientY; - HEAP32[(((ptr)+(20))>>2)]=t.pageX; - HEAP32[(((ptr)+(24))>>2)]=t.pageY; - HEAP32[(((ptr)+(28))>>2)]=t.changed; - HEAP32[(((ptr)+(32))>>2)]=t.onTarget; - if (canvasRect) { - HEAP32[(((ptr)+(44))>>2)]=t.clientX - canvasRect.left; - HEAP32[(((ptr)+(48))>>2)]=t.clientY - canvasRect.top; - } else { - HEAP32[(((ptr)+(44))>>2)]=0; - HEAP32[(((ptr)+(48))>>2)]=0; - } - HEAP32[(((ptr)+(36))>>2)]=t.clientX - targetRect.left; - HEAP32[(((ptr)+(40))>>2)]=t.clientY - targetRect.top; - - ptr += 52; - - if (++numTouches >= 32) { - break; - } - } - HEAP32[((JSEvents.touchEvent)>>2)]=numTouches; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.touchEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: eventTypeString == 'touchstart' || eventTypeString == 'touchend', - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },fillGamepadEventData:function (eventStruct, e) { - HEAPF64[((eventStruct)>>3)]=e.timestamp; - for(var i = 0; i < e.axes.length; ++i) { - HEAPF64[(((eventStruct+i*8)+(16))>>3)]=e.axes[i]; - } - for(var i = 0; i < e.buttons.length; ++i) { - if (typeof(e.buttons[i]) === 'object') { - HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i].value; - } else { - HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i]; - } - } - for(var i = 0; i < e.buttons.length; ++i) { - if (typeof(e.buttons[i]) === 'object') { - HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i].pressed; - } else { - HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i] == 1.0; - } - } - HEAP32[(((eventStruct)+(1296))>>2)]=e.connected; - HEAP32[(((eventStruct)+(1300))>>2)]=e.index; - HEAP32[(((eventStruct)+(8))>>2)]=e.axes.length; - HEAP32[(((eventStruct)+(12))>>2)]=e.buttons.length; - stringToUTF8(e.id, eventStruct + 1304, 64); - stringToUTF8(e.mapping, eventStruct + 1368, 64); - },registerGamepadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.gamepadEvent) { - JSEvents.gamepadEvent = _malloc( 1432 ); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillGamepadEventData(JSEvents.gamepadEvent, e.gamepad); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.gamepadEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: true, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerBeforeUnloadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - var handlerFunc = function(event) { - var e = event || window.event; - - var confirmationMessage = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); - - if (confirmationMessage) { - confirmationMessage = Pointer_stringify(confirmationMessage); - } - if (confirmationMessage) { - e.preventDefault(); - e.returnValue = confirmationMessage; - return confirmationMessage; - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },battery:function () { return navigator.battery || navigator.mozBattery || navigator.webkitBattery; },fillBatteryEventData:function (eventStruct, e) { - HEAPF64[((eventStruct)>>3)]=e.chargingTime; - HEAPF64[(((eventStruct)+(8))>>3)]=e.dischargingTime; - HEAPF64[(((eventStruct)+(16))>>3)]=e.level; - HEAP32[(((eventStruct)+(24))>>2)]=e.charging; - },registerBatteryEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.batteryEvent) { - JSEvents.batteryEvent = _malloc( 32 ); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillBatteryEventData(JSEvents.batteryEvent, JSEvents.battery()); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.batteryEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerWebGlEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!target) { - target = Module['canvas']; - } - var handlerFunc = function(event) { - var e = event || window.event; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - }};function __emscripten_sample_gamepad_data() { - // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. - if (!JSEvents.numGamepadsConnected) return; - - // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation. - if (Browser.mainLoop.currentFrameNumber !== JSEvents.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) { - JSEvents.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null); - JSEvents.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber; - } - }function _emscripten_get_gamepad_status(index, gamepadState) { - __emscripten_sample_gamepad_data(); - if (!JSEvents.lastGamepadState) return -1; - - // INVALID_PARAM is returned on a Gamepad index that never was there. - if (index < 0 || index >= JSEvents.lastGamepadState.length) return -5; - - // NO_DATA is returned on a Gamepad index that was removed. - // For previously disconnected gamepads there should be an empty slot (null/undefined/false) at the index. - // This is because gamepads must keep their original position in the array. - // For example, removing the first of two gamepads produces [null/undefined/false, gamepad]. - if (!JSEvents.lastGamepadState[index]) return -7; - - JSEvents.fillGamepadEventData(gamepadState, JSEvents.lastGamepadState[index]); - return 0; - } - - function _emscripten_glCopyTexImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } - - function _emscripten_glTexParameterfv(target, pname, params) { - var param = HEAPF32[((params)>>2)]; - GLctx.texParameterf(target, pname, param); - } - - function _emscripten_glLinkProgram(program) { - GLctx.linkProgram(GL.programs[program]); - GL.programInfos[program] = null; // uniforms no longer keep the same names after linking - GL.populateUniformTable(program); - } - - function _emscripten_glUniform3f(location, v0, v1, v2) { - GLctx.uniform3f(GL.uniforms[location], v0, v1, v2); - } - - function _emscripten_glGetObjectParameterivARB() { - Module['printErr']('missing function: emscripten_glGetObjectParameterivARB'); abort(-1); - } - - function _emscripten_glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } - - function _emscripten_glUniform3i(location, v0, v1, v2) { - GLctx.uniform3i(GL.uniforms[location], v0, v1, v2); - } - - function _emscripten_glStencilOp(x0, x1, x2) { GLctx['stencilOp'](x0, x1, x2) } - - function _glCreateShader(shaderType) { - var id = GL.getNewId(GL.shaders); - GL.shaders[id] = GLctx.createShader(shaderType); - return id; - } - - function _glUniform1i(location, v0) { - GLctx.uniform1i(GL.uniforms[location], v0); - } - - function _emscripten_glBindAttribLocation(program, index, name) { - name = Pointer_stringify(name); - GLctx.bindAttribLocation(GL.programs[program], index, name); - } - - function _glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { - GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); - } - - function _glDisable(x0) { GLctx['disable'](x0) } - - function _emscripten_glEnableVertexAttribArray(index) { - GLctx.enableVertexAttribArray(index); - } - - - - function _glfwMakeContextCurrent(winid) {} - - function _emscripten_set_touchcancel_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 25, "touchcancel"); - return 0; - } - - function ___lock() {} - - function _emscripten_glBlendFuncSeparate(x0, x1, x2, x3) { GLctx['blendFuncSeparate'](x0, x1, x2, x3) } - - function _glCullFace(x0) { GLctx['cullFace'](x0) } - - function _emscripten_glGetVertexAttribPointerv(index, pname, pointer) { - if (!pointer) { - // GLES2 specification does not specify how to behave if pointer is a null pointer. Since calling this function does not make sense - // if pointer == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((pointer)>>2)]=GLctx.getVertexAttribOffset(index, pname); - } - - function _emscripten_glVertexAttrib3f(x0, x1, x2, x3) { GLctx['vertexAttrib3f'](x0, x1, x2, x3) } - - function _emscripten_glEnable(x0) { GLctx['enable'](x0) } - - function _emscripten_glNormalPointer() { - Module['printErr']('missing function: emscripten_glNormalPointer'); abort(-1); - } - - - var EGL={errorCode:12288,defaultDisplayInitialized:false,currentContext:0,currentReadSurface:0,currentDrawSurface:0,stringCache:{},setErrorCode:function (code) { - EGL.errorCode = code; - },chooseConfig:function (display, attribList, config, config_size, numConfigs) { - if (display != 62000 /* Magic ID for Emscripten 'default display' */) { - EGL.setErrorCode(0x3008 /* EGL_BAD_DISPLAY */); - return 0; - } - // TODO: read attribList. - if ((!config || !config_size) && !numConfigs) { - EGL.setErrorCode(0x300C /* EGL_BAD_PARAMETER */); - return 0; - } - if (numConfigs) { - HEAP32[((numConfigs)>>2)]=1; // Total number of supported configs: 1. - } - if (config && config_size > 0) { - HEAP32[((config)>>2)]=62002; - } - - EGL.setErrorCode(0x3000 /* EGL_SUCCESS */); - return 1; - }};function _eglGetProcAddress(name_) { - return _emscripten_GetProcAddress(name_); - } - - function _glDeleteProgram(id) { - if (!id) return; - var program = GL.programs[id]; - if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteProgram(program); - program.name = 0; - GL.programs[id] = null; - GL.programInfos[id] = null; - } - - function _emscripten_get_pointerlock_status(pointerlockStatus) { - if (pointerlockStatus) JSEvents.fillPointerlockChangeEventData(pointerlockStatus); - if (!document.body || (!document.body.requestPointerLock && !document.body.mozRequestPointerLock && !document.body.webkitRequestPointerLock && !document.body.msRequestPointerLock)) { - return -1; - } - return 0; - } - - function _glAttachShader(program, shader) { - GLctx.attachShader(GL.programs[program], - GL.shaders[shader]); - } - - function _glfwGetPrimaryMonitor() { - return 1; - } - - - function emscriptenWebGLGetVertexAttrib(index, pname, params, type) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if params == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - var data = GLctx.getVertexAttrib(index, pname); - if (pname == 0x889F/*VERTEX_ATTRIB_ARRAY_BUFFER_BINDING*/) { - HEAP32[((params)>>2)]=data["name"]; - } else if (typeof data == 'number' || typeof data == 'boolean') { - switch (type) { - case 'Integer': HEAP32[((params)>>2)]=data; break; - case 'Float': HEAPF32[((params)>>2)]=data; break; - case 'FloatToInteger': HEAP32[((params)>>2)]=Math.fround(data); break; - default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; - } - } else { - for (var i = 0; i < data.length; i++) { - switch (type) { - case 'Integer': HEAP32[(((params)+(i*4))>>2)]=data[i]; break; - case 'Float': HEAPF32[(((params)+(i*4))>>2)]=data[i]; break; - case 'FloatToInteger': HEAP32[(((params)+(i*4))>>2)]=Math.fround(data[i]); break; - default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; - } - } - } - }function _emscripten_glGetVertexAttribfv(index, pname, params) { - // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), - // otherwise the results are undefined. (GLES3 spec 6.1.12) - emscriptenWebGLGetVertexAttrib(index, pname, params, 'Float'); - } - - function _emscripten_set_touchstart_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 22, "touchstart"); - return 0; - } - - function _emscripten_glDeleteShader(id) { - if (!id) return; - var shader = GL.shaders[id]; - if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteShader(shader); - GL.shaders[id] = null; - } - - function _emscripten_glVertexPointer(){ throw 'Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } - - function _emscripten_glDeleteBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((buffers)+(i*4))>>2)]; - var buffer = GL.buffers[id]; - - // From spec: "glDeleteBuffers silently ignores 0's and names that do not - // correspond to existing buffer objects." - if (!buffer) continue; - - GLctx.deleteBuffer(buffer); - buffer.name = 0; - GL.buffers[id] = null; - - if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; - if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; - } - } - - function _emscripten_glTexParameteriv(target, pname, params) { - var param = HEAP32[((params)>>2)]; - GLctx.texParameteri(target, pname, param); - } - - function _glDrawElements(mode, count, type, indices) { - - GLctx.drawElements(mode, count, type, indices); - - } - - function _glfwTerminate() { - window.removeEventListener("gamepadconnected", GLFW.onGamepadConnected, true); - window.removeEventListener("gamepaddisconnected", GLFW.onGamepadDisconnected, true); - window.removeEventListener("keydown", GLFW.onKeydown, true); - window.removeEventListener("keypress", GLFW.onKeyPress, true); - window.removeEventListener("keyup", GLFW.onKeyup, true); - window.removeEventListener("blur", GLFW.onBlur, true); - Module["canvas"].removeEventListener("mousemove", GLFW.onMousemove, true); - Module["canvas"].removeEventListener("mousedown", GLFW.onMouseButtonDown, true); - Module["canvas"].removeEventListener("mouseup", GLFW.onMouseButtonUp, true); - Module["canvas"].removeEventListener('wheel', GLFW.onMouseWheel, true); - Module["canvas"].removeEventListener('mousewheel', GLFW.onMouseWheel, true); - Module["canvas"].removeEventListener('mouseenter', GLFW.onMouseenter, true); - Module["canvas"].removeEventListener('mouseleave', GLFW.onMouseleave, true); - Module["canvas"].removeEventListener('drop', GLFW.onDrop, true); - Module["canvas"].removeEventListener('dragover', GLFW.onDragover, true); - - - Module["canvas"].width = Module["canvas"].height = 1; - GLFW.windows = null; - GLFW.active = null; - } - - function _emscripten_glUniformMatrix2fv(location, count, transpose, value) { - - - var view; - if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[4*count-1]; - for (var i = 0; i < 4*count; i += 4) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); - } - GLctx.uniformMatrix2fv(GL.uniforms[location], !!transpose, view); - } - - function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; - try { - // close - var stream = SYSCALLS.getStreamFromFD(); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function _llvm_stacksave() { - var self = _llvm_stacksave; - if (!self.LLVM_SAVEDSTACKS) { - self.LLVM_SAVEDSTACKS = []; - } - self.LLVM_SAVEDSTACKS.push(Runtime.stackSave()); - return self.LLVM_SAVEDSTACKS.length-1; - } - - function _emscripten_glGetVertexAttribiv(index, pname, params) { - // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), - // otherwise the results are undefined. (GLES3 spec 6.1.12) - emscriptenWebGLGetVertexAttrib(index, pname, params, 'FloatToInteger'); - } - - function _emscripten_glUniformMatrix4fv(location, count, transpose, value) { - - - var view; - if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[16*count-1]; - for (var i = 0; i < 16*count; i += 16) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; - view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; - view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; - view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; - view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; - view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; - view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; - view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; - view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; - view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; - view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; - view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); - } - GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); - } - - function _emscripten_glDrawArraysInstanced(mode, first, count, primcount) { - GLctx['drawArraysInstanced'](mode, first, count, primcount); - } - - function _emscripten_glEnableClientState() { - Module['printErr']('missing function: emscripten_glEnableClientState'); abort(-1); - } - - function _emscripten_glGetPointerv() { - Module['printErr']('missing function: emscripten_glGetPointerv'); abort(-1); - } - - function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; - try { - // llseek - var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); - // NOTE: offset_high is unused - Emscripten's off_t is 32-bit - var offset = offset_low; - FS.llseek(stream, offset, whence); - HEAP32[((result)>>2)]=stream.position; - if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; - try { - // writev - // hack to support printf in NO_FILESYSTEM - var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); - var ret = 0; - if (!___syscall146.buffer) { - ___syscall146.buffers = [null, [], []]; // 1 => stdout, 2 => stderr - ___syscall146.printChar = function(stream, curr) { - var buffer = ___syscall146.buffers[stream]; - assert(buffer); - if (curr === 0 || curr === 10) { - (stream === 1 ? Module['print'] : Module['printErr'])(UTF8ArrayToString(buffer, 0)); - buffer.length = 0; - } else { - buffer.push(curr); - } - }; - } - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAP32[(((iov)+(i*8))>>2)]; - var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; - for (var j = 0; j < len; j++) { - ___syscall146.printChar(stream, HEAPU8[ptr+j]); - } - ret += len; - } - return ret; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function _emscripten_glUniform1i(location, v0) { - GLctx.uniform1i(GL.uniforms[location], v0); - } - - function _emscripten_glStencilMask(x0) { GLctx['stencilMask'](x0) } - - function _emscripten_glStencilFuncSeparate(x0, x1, x2, x3) { GLctx['stencilFuncSeparate'](x0, x1, x2, x3) } - - - - - - function _emscripten_set_touchend_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 23, "touchend"); - return 0; - } - - function _glUseProgram(program) { - GLctx.useProgram(program ? GL.programs[program] : null); - } - - function _emscripten_glDisableVertexAttribArray(index) { - GLctx.disableVertexAttribArray(index); - } - - function _emscripten_glVertexAttrib1f(x0, x1) { GLctx['vertexAttrib1f'](x0, x1) } - - function _emscripten_glFinish() { GLctx['finish']() } - - function _glDrawArrays(mode, first, count) { - - GLctx.drawArrays(mode, first, count); - - } - - function _emscripten_glDepthFunc(x0) { GLctx['depthFunc'](x0) } - - function _emscripten_get_num_gamepads() { - // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. - if (!JSEvents.numGamepadsConnected) return 0; - - __emscripten_sample_gamepad_data(); - if (!JSEvents.lastGamepadState) return -1; - return JSEvents.lastGamepadState.length; - } - - function _emscripten_glUniform4iv(location, count, value) { - - - GLctx.uniform4iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*16)>>2)); - } - - function _glClear(x0) { GLctx['clear'](x0) } - - function _emscripten_glLoadIdentity(){ throw 'Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } - - function _emscripten_glUniform3fv(location, count, value) { - - - var view; - if (3*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[3*count-1]; - for (var i = 0; i < 3*count; i += 3) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*12)>>2); - } - GLctx.uniform3fv(GL.uniforms[location], view); - } - - function _emscripten_glIsTexture(texture) { - var texture = GL.textures[texture]; - if (!texture) return 0; - return GLctx.isTexture(texture); - } - - function _glEnableVertexAttribArray(index) { - GLctx.enableVertexAttribArray(index); - } - - function _emscripten_glAttachShader(program, shader) { - GLctx.attachShader(GL.programs[program], - GL.shaders[shader]); - } - - function _glUniform4f(location, v0, v1, v2, v3) { - GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); - } - - function _emscripten_request_pointerlock(target, deferUntilInEventHandler) { - if (!target) target = '#canvas'; - target = JSEvents.findEventTarget(target); - if (!target) return -4; - if (!target.requestPointerLock && !target.mozRequestPointerLock && !target.webkitRequestPointerLock && !target.msRequestPointerLock) { - return -1; - } - - var canPerformRequests = JSEvents.canPerformEventHandlerRequests(); - - // Queue this function call if we're not currently in an event handler and the user saw it appropriate to do so. - if (!canPerformRequests) { - if (deferUntilInEventHandler) { - JSEvents.deferCall(JSEvents.requestPointerLock, 2 /* priority below fullscreen */, [target]); - return 1; - } else { - return -2; - } - } - - return JSEvents.requestPointerLock(target); - } - - - - var cttz_i8 = allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0], "i8", ALLOC_STATIC); - - function _glfwCreateWindow(width, height, title, monitor, share) { - return GLFW.createWindow(width, height, title, monitor, share); - } - - function _glfwDefaultWindowHints() { - GLFW.hints = GLFW.defaultHints; - } - - function _emscripten_glClearStencil(x0) { GLctx['clearStencil'](x0) } - - function _emscripten_glDetachShader(program, shader) { - GLctx.detachShader(GL.programs[program], - GL.shaders[shader]); - } - - function _emscripten_glDeleteVertexArrays(n, vaos) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((vaos)+(i*4))>>2)]; - GLctx['deleteVertexArray'](GL.vaos[id]); - GL.vaos[id] = null; - } - } - - function _glfwInit() { - if (GLFW.windows) return 1; // GL_TRUE - - GLFW.initialTime = GLFW.getTime(); - GLFW.hints = GLFW.defaultHints; - GLFW.windows = new Array() - GLFW.active = null; - - window.addEventListener("gamepadconnected", GLFW.onGamepadConnected, true); - window.addEventListener("gamepaddisconnected", GLFW.onGamepadDisconnected, true); - window.addEventListener("keydown", GLFW.onKeydown, true); - window.addEventListener("keypress", GLFW.onKeyPress, true); - window.addEventListener("keyup", GLFW.onKeyup, true); - window.addEventListener("blur", GLFW.onBlur, true); - Module["canvas"].addEventListener("mousemove", GLFW.onMousemove, true); - Module["canvas"].addEventListener("mousedown", GLFW.onMouseButtonDown, true); - Module["canvas"].addEventListener("mouseup", GLFW.onMouseButtonUp, true); - Module["canvas"].addEventListener('wheel', GLFW.onMouseWheel, true); - Module["canvas"].addEventListener('mousewheel', GLFW.onMouseWheel, true); - Module["canvas"].addEventListener('mouseenter', GLFW.onMouseenter, true); - Module["canvas"].addEventListener('mouseleave', GLFW.onMouseleave, true); - Module["canvas"].addEventListener('drop', GLFW.onDrop, true); - Module["canvas"].addEventListener('dragover', GLFW.onDragover, true); - - Browser.resizeListeners.push(function(width, height) { - GLFW.onCanvasResize(width, height); - }); - return 1; // GL_TRUE - } - - function _emscripten_glGetTexParameteriv(target, pname, params) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((params)>>2)]=GLctx.getTexParameter(target, pname); - } - - function _glfwSwapBuffers(winid) { - GLFW.swapBuffers(winid); - } - - function _emscripten_glGenerateMipmap(x0) { GLctx['generateMipmap'](x0) } - - function _emscripten_glCullFace(x0) { GLctx['cullFace'](x0) } - - function _emscripten_glUniform4f(location, v0, v1, v2, v3) { - GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); - } - - function _glDisableVertexAttribArray(index) { - GLctx.disableVertexAttribArray(index); - } - - function _emscripten_glUseProgram(program) { - GLctx.useProgram(program ? GL.programs[program] : null); - } - - function _emscripten_glHint(x0, x1) { GLctx['hint'](x0, x1) } - - function _emscripten_glUniform2fv(location, count, value) { - - - var view; - if (2*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[2*count-1]; - for (var i = 0; i < 2*count; i += 2) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*8)>>2); - } - GLctx.uniform2fv(GL.uniforms[location], view); - } - - function _glfwSwapInterval(interval) { - interval = Math.abs(interval); // GLFW uses negative values to enable GLX_EXT_swap_control_tear, which we don't have, so just treat negative and positive the same. - if (interval == 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 0); - else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, interval); - } - - function _glGetShaderInfoLog(shader, maxLength, length, infoLog) { - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _emscripten_glMatrixMode(){ throw 'Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } - - function _abort() { - Module['abort'](); - } - - function _emscripten_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) { - GLctx.framebufferRenderbuffer(target, attachment, renderbuffertarget, - GL.renderbuffers[renderbuffer]); - } - - function _emscripten_glDeleteFramebuffers(n, framebuffers) { - for (var i = 0; i < n; ++i) { - var id = HEAP32[(((framebuffers)+(i*4))>>2)]; - var framebuffer = GL.framebuffers[id]; - if (!framebuffer) continue; // GL spec: "glDeleteFramebuffers silently ignores 0s and names that do not correspond to existing framebuffer objects". - GLctx.deleteFramebuffer(framebuffer); - framebuffer.name = 0; - GL.framebuffers[id] = null; - } - } - - function _emscripten_glIsBuffer(buffer) { - var b = GL.buffers[buffer]; - if (!b) return 0; - return GLctx.isBuffer(b); - } - - function _emscripten_glUniform2iv(location, count, value) { - - - GLctx.uniform2iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*8)>>2)); - } - - function _emscripten_glVertexAttrib1fv(index, v) { - - GLctx.vertexAttrib1f(index, HEAPF32[v>>2]); - } - - function _glEnable(x0) { GLctx['enable'](x0) } - - - - function emscriptenWebGLComputeImageSize(width, height, sizePerPixel, alignment) { - function roundedToNextMultipleOf(x, y) { - return Math.floor((x + y - 1) / y) * y - } - var plainRowSize = width * sizePerPixel; - var alignedRowSize = roundedToNextMultipleOf(plainRowSize, alignment); - return (height <= 0) ? 0 : - ((height - 1) * alignedRowSize + plainRowSize); - }function emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) { - var sizePerPixel; - var numChannels; - switch(format) { - case 0x1906 /* GL_ALPHA */: - case 0x1909 /* GL_LUMINANCE */: - case 0x1902 /* GL_DEPTH_COMPONENT */: - numChannels = 1; - break; - case 0x190A /* GL_LUMINANCE_ALPHA */: - numChannels = 2; - break; - case 0x1907 /* GL_RGB */: - case 0x8C40 /* GL_SRGB_EXT */: - numChannels = 3; - break; - case 0x1908 /* GL_RGBA */: - case 0x8C42 /* GL_SRGB_ALPHA_EXT */: - numChannels = 4; - break; - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return null; - } - switch (type) { - case 0x1401 /* GL_UNSIGNED_BYTE */: - sizePerPixel = numChannels*1; - break; - case 0x1403 /* GL_UNSIGNED_SHORT */: - case 0x8D61 /* GL_HALF_FLOAT_OES */: - sizePerPixel = numChannels*2; - break; - case 0x1405 /* GL_UNSIGNED_INT */: - case 0x1406 /* GL_FLOAT */: - sizePerPixel = numChannels*4; - break; - case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: - sizePerPixel = 4; - break; - case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: - case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: - case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: - sizePerPixel = 2; - break; - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return null; - } - var bytes = emscriptenWebGLComputeImageSize(width, height, sizePerPixel, GL.unpackAlignment); - switch(type) { - case 0x1401 /* GL_UNSIGNED_BYTE */: - return HEAPU8.subarray((pixels),(pixels+bytes)); - case 0x1406 /* GL_FLOAT */: - return HEAPF32.subarray((pixels)>>2,(pixels+bytes)>>2); - case 0x1405 /* GL_UNSIGNED_INT */: - case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: - return HEAPU32.subarray((pixels)>>2,(pixels+bytes)>>2); - case 0x1403 /* GL_UNSIGNED_SHORT */: - case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: - case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: - case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: - case 0x8D61 /* GL_HALF_FLOAT_OES */: - return HEAPU16.subarray((pixels)>>1,(pixels+bytes)>>1); - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return null; - } - }function _emscripten_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) { - var pixelData = null; - if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, 0); - GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData); - } - - function _emscripten_glPolygonOffset(x0, x1) { GLctx['polygonOffset'](x0, x1) } - - var _emscripten_asm_const_int=true; - - function _emscripten_glUniform2f(location, v0, v1) { - GLctx.uniform2f(GL.uniforms[location], v0, v1); - } - - function _glGetAttribLocation(program, name) { - program = GL.programs[program]; - name = Pointer_stringify(name); - return GLctx.getAttribLocation(program, name); - } - - function _glfwWindowHint(target, hint) { - GLFW.hints[target] = hint; - } - - function _emscripten_glUniform2i(location, v0, v1) { - GLctx.uniform2i(GL.uniforms[location], v0, v1); - } - - function _glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } - - function _glCreateProgram() { - var id = GL.getNewId(GL.programs); - var program = GLctx.createProgram(); - program.name = id; - GL.programs[id] = program; - return id; - } - - function _emscripten_glDeleteRenderbuffers(n, renderbuffers) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((renderbuffers)+(i*4))>>2)]; - var renderbuffer = GL.renderbuffers[id]; - if (!renderbuffer) continue; // GL spec: "glDeleteRenderbuffers silently ignores 0s and names that do not correspond to existing renderbuffer objects". - GLctx.deleteRenderbuffer(renderbuffer); - renderbuffer.name = 0; - GL.renderbuffers[id] = null; - } - } - - function _emscripten_glGetBufferParameteriv(target, value, data) { - if (!data) { - // GLES2 specification does not specify how to behave if data is a null pointer. Since calling this function does not make sense - // if data == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((data)>>2)]=GLctx.getBufferParameter(target, value); - } - - - function emscriptenWebGLGetUniform(program, location, params, type) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if params == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - var data = GLctx.getUniform(GL.programs[program], GL.uniforms[location]); - if (typeof data == 'number' || typeof data == 'boolean') { - switch (type) { - case 'Integer': HEAP32[((params)>>2)]=data; break; - case 'Float': HEAPF32[((params)>>2)]=data; break; - default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; - } - } else { - for (var i = 0; i < data.length; i++) { - switch (type) { - case 'Integer': HEAP32[(((params)+(i*4))>>2)]=data[i]; break; - case 'Float': HEAPF32[(((params)+(i*4))>>2)]=data[i]; break; - default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; - } - } - } - }function _emscripten_glGetUniformiv(program, location, params) { - emscriptenWebGLGetUniform(program, location, params, 'Integer'); - } - - function _emscripten_glDepthMask(flag) { - GLctx.depthMask(!!flag); - } - - - function _emscripten_glDepthRangef(x0, x1) { GLctx['depthRange'](x0, x1) } - - function _emscripten_glDepthRange(x0, x1) { GLctx['depthRange'](x0, x1) } - - function _emscripten_set_fullscreenchange_callback(target, userData, useCapture, callbackfunc) { - if (typeof JSEvents.fullscreenEnabled() === 'undefined') return -1; - if (!target) target = document; - else { - target = JSEvents.findEventTarget(target); - if (!target) return -4; - } - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "fullscreenchange"); - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "mozfullscreenchange"); - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "webkitfullscreenchange"); - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "msfullscreenchange"); - return 0; - } - - function _emscripten_glGetShaderPrecisionFormat(shaderType, precisionType, range, precision) { - var result = GLctx.getShaderPrecisionFormat(shaderType, precisionType); - HEAP32[((range)>>2)]=result.rangeMin; - HEAP32[(((range)+(4))>>2)]=result.rangeMax; - HEAP32[((precision)>>2)]=result.precision; - } - - function _emscripten_glUniform1fv(location, count, value) { - - - var view; - if (count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[count-1]; - for (var i = 0; i < count; ++i) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*4)>>2); - } - GLctx.uniform1fv(GL.uniforms[location], view); - } - - function _glfwSetMouseButtonCallback(winid, cbfun) { - GLFW.setMouseButtonCallback(winid, cbfun); - } - - function _emscripten_set_gamepaddisconnected_callback(userData, useCapture, callbackfunc) { - if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; - JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 27, "gamepaddisconnected"); - return 0; - } - - function _emscripten_glBindProgramARB() { - Module['printErr']('missing function: emscripten_glBindProgramARB'); abort(-1); - } - - function _emscripten_glBindTexture(target, texture) { - GLctx.bindTexture(target, texture ? GL.textures[texture] : null); - } - - function _emscripten_glCheckFramebufferStatus(x0) { return GLctx['checkFramebufferStatus'](x0) } - - function _emscripten_glDeleteProgram(id) { - if (!id) return; - var program = GL.programs[id]; - if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteProgram(program); - program.name = 0; - GL.programs[id] = null; - GL.programInfos[id] = null; - } - - function _emscripten_glDisable(x0) { GLctx['disable'](x0) } - - function _emscripten_glVertexAttrib3fv(index, v) { - - GLctx.vertexAttrib3f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2]); - } - - function _glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } - - function _emscripten_glGetActiveAttrib(program, index, bufSize, length, size, type, name) { - program = GL.programs[program]; - var info = GLctx.getActiveAttrib(program, index); - if (!info) return; // If an error occurs, nothing will be written to length, size and type and name. - - if (bufSize > 0 && name) { - var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - - if (size) HEAP32[((size)>>2)]=info.size; - if (type) HEAP32[((type)>>2)]=info.type; - } - - function _emscripten_glIsFramebuffer(framebuffer) { - var fb = GL.framebuffers[framebuffer]; - if (!fb) return 0; - return GLctx.isFramebuffer(fb); - } - - function _emscripten_glLineWidth(x0) { GLctx['lineWidth'](x0) } - - function _glfwGetCursorPos(winid, x, y) { - GLFW.getCursorPos(winid, x, y); - } - - function _emscripten_glGetString(name_) { - if (GL.stringCache[name_]) return GL.stringCache[name_]; - var ret; - switch(name_) { - case 0x1F00 /* GL_VENDOR */: - case 0x1F01 /* GL_RENDERER */: - case 0x9245 /* UNMASKED_VENDOR_WEBGL */: - case 0x9246 /* UNMASKED_RENDERER_WEBGL */: - ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); - break; - case 0x1F02 /* GL_VERSION */: - var glVersion = GLctx.getParameter(GLctx.VERSION); - // return GLES version string corresponding to the version of the WebGL context - { - glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; - } - ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); - break; - case 0x1F03 /* GL_EXTENSIONS */: - var exts = GLctx.getSupportedExtensions(); - var gl_exts = []; - for (var i = 0; i < exts.length; ++i) { - gl_exts.push(exts[i]); - gl_exts.push("GL_" + exts[i]); - } - ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); - break; - case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: - var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); - // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' - var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; - var ver_num = glslVersion.match(ver_re); - if (ver_num !== null) { - if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits - glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; - } - ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); - break; - default: - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - return 0; - } - GL.stringCache[name_] = ret; - return ret; - } - - function _emscripten_glGetAttribLocation(program, name) { - program = GL.programs[program]; - name = Pointer_stringify(name); - return GLctx.getAttribLocation(program, name); - } - - function _emscripten_glRotatef() { - Module['printErr']('missing function: emscripten_glRotatef'); abort(-1); - } - - - function emscriptenWebGLGet(name_, p, type) { - // Guard against user passing a null pointer. - // Note that GLES2 spec does not say anything about how passing a null pointer should be treated. - // Testing on desktop core GL 3, the application crashes on glGetIntegerv to a null pointer, but - // better to report an error instead of doing anything random. - if (!p) { - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - var ret = undefined; - switch(name_) { // Handle a few trivial GLES values - case 0x8DFA: // GL_SHADER_COMPILER - ret = 1; - break; - case 0x8DF8: // GL_SHADER_BINARY_FORMATS - if (type !== 'Integer' && type !== 'Integer64') { - GL.recordError(0x0500); // GL_INVALID_ENUM - } - return; // Do not write anything to the out pointer, since no binary formats are supported. - case 0x8DF9: // GL_NUM_SHADER_BINARY_FORMATS - ret = 0; - break; - case 0x86A2: // GL_NUM_COMPRESSED_TEXTURE_FORMATS - // WebGL doesn't have GL_NUM_COMPRESSED_TEXTURE_FORMATS (it's obsolete since GL_COMPRESSED_TEXTURE_FORMATS returns a JS array that can be queried for length), - // so implement it ourselves to allow C++ GLES2 code get the length. - var formats = GLctx.getParameter(0x86A3 /*GL_COMPRESSED_TEXTURE_FORMATS*/); - ret = formats.length; - break; - } - - if (ret === undefined) { - var result = GLctx.getParameter(name_); - switch (typeof(result)) { - case "number": - ret = result; - break; - case "boolean": - ret = result ? 1 : 0; - break; - case "string": - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - case "object": - if (result === null) { - // null is a valid result for some (e.g., which buffer is bound - perhaps nothing is bound), but otherwise - // can mean an invalid name_, which we need to report as an error - switch(name_) { - case 0x8894: // ARRAY_BUFFER_BINDING - case 0x8B8D: // CURRENT_PROGRAM - case 0x8895: // ELEMENT_ARRAY_BUFFER_BINDING - case 0x8CA6: // FRAMEBUFFER_BINDING - case 0x8CA7: // RENDERBUFFER_BINDING - case 0x8069: // TEXTURE_BINDING_2D - case 0x8514: { // TEXTURE_BINDING_CUBE_MAP - ret = 0; - break; - } - default: { - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - } - } - } else if (result instanceof Float32Array || - result instanceof Uint32Array || - result instanceof Int32Array || - result instanceof Array) { - for (var i = 0; i < result.length; ++i) { - switch (type) { - case 'Integer': HEAP32[(((p)+(i*4))>>2)]=result[i]; break; - case 'Float': HEAPF32[(((p)+(i*4))>>2)]=result[i]; break; - case 'Boolean': HEAP8[(((p)+(i))>>0)]=result[i] ? 1 : 0; break; - default: throw 'internal glGet error, bad type: ' + type; - } - } - return; - } else if (result instanceof WebGLBuffer || - result instanceof WebGLProgram || - result instanceof WebGLFramebuffer || - result instanceof WebGLRenderbuffer || - result instanceof WebGLTexture) { - ret = result.name | 0; - } else { - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - } - break; - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - } - } - - switch (type) { - case 'Integer64': (tempI64 = [ret>>>0,(tempDouble=ret,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((p)>>2)]=tempI64[0],HEAP32[(((p)+(4))>>2)]=tempI64[1]); break; - case 'Integer': HEAP32[((p)>>2)]=ret; break; - case 'Float': HEAPF32[((p)>>2)]=ret; break; - case 'Boolean': HEAP8[((p)>>0)]=ret ? 1 : 0; break; - default: throw 'internal glGet error, bad type: ' + type; - } - }function _emscripten_glGetIntegerv(name_, p) { - emscriptenWebGLGet(name_, p, 'Integer'); - } - - function _emscripten_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) { - var result = GLctx.getFramebufferAttachmentParameter(target, attachment, pname); - HEAP32[((params)>>2)]=result; - } - - function _llvm_stackrestore(p) { - var self = _llvm_stacksave; - var ret = self.LLVM_SAVEDSTACKS[p]; - self.LLVM_SAVEDSTACKS.splice(p, 1); - Runtime.stackRestore(ret); - } - - function _glfwSetWindowShouldClose(winid, value) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.shouldClose = value; - } - - function _emscripten_glClientActiveTexture() { - Module['printErr']('missing function: emscripten_glClientActiveTexture'); abort(-1); - } - - function _glGenBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var buffer = GLctx.createBuffer(); - if (!buffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.buffers); - buffer.name = id; - GL.buffers[id] = buffer; - HEAP32[(((buffers)+(i*4))>>2)]=id; - } - } - - - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.set(HEAPU8.subarray(src, src+num), dest); - return dest; - } - - function _emscripten_glGetShaderInfoLog(shader, maxLength, length, infoLog) { - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _glfwGetTime() { - return GLFW.getTime() - GLFW.initialTime; - } - - function _emscripten_glGetRenderbufferParameteriv(target, pname, params) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if params == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((params)>>2)]=GLctx.getRenderbufferParameter(target, pname); - } - - function _emscripten_glStencilOpSeparate(x0, x1, x2, x3) { GLctx['stencilOpSeparate'](x0, x1, x2, x3) } - - function _emscripten_glReadPixels(x, y, width, height, format, type, pixels) { - var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, format); - if (!pixelData) { - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - return; - } - GLctx.readPixels(x, y, width, height, format, type, pixelData); - } - - function _emscripten_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) { - GLctx['compressedTexSubImage2D'](target, level, xoffset, yoffset, width, height, format, data ? HEAPU8.subarray((data),(data+imageSize)) : null); - } - - function _emscripten_glGetError() { - // First return any GL error generated by the emscripten library_gl.js interop layer. - if (GL.lastError) { - var error = GL.lastError; - GL.lastError = 0/*GL_NO_ERROR*/; - return error; - } else { // If there were none, return the GL error from the browser GL context. - return GLctx.getError(); - } - } - - function _emscripten_glFramebufferTexture2D(target, attachment, textarget, texture, level) { - GLctx.framebufferTexture2D(target, attachment, textarget, - GL.textures[texture], level); - } - - function _emscripten_glIsEnabled(x0) { return GLctx['isEnabled'](x0) } - - function _glClearDepthf(x0) { GLctx['clearDepth'](x0) } - - - - function _glGenTextures(n, textures) { - for (var i = 0; i < n; i++) { - var texture = GLctx.createTexture(); - if (!texture) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. - while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.textures); - texture.name = id; - GL.textures[id] = texture; - HEAP32[(((textures)+(i*4))>>2)]=id; - } - } - - function _emscripten_glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) } - - function _glDepthFunc(x0) { GLctx['depthFunc'](x0) } - - - - function _emscripten_glClearDepthf(x0) { GLctx['clearDepth'](x0) } - - function _emscripten_glClear(x0) { GLctx['clear'](x0) } - - function _emscripten_glBindBuffer(target, buffer) { - var bufferObj = buffer ? GL.buffers[buffer] : null; - - - GLctx.bindBuffer(target, bufferObj); - } - - function _emscripten_glGetUniformfv(program, location, params) { - emscriptenWebGLGetUniform(program, location, params, 'Float'); - } - - function _glGetProgramiv(program, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - if (program >= GL.counter) { - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - return; - } - - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { - HEAP32[((p)>>2)]=ptable.maxUniformLength; - } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { - if (ptable.maxAttributeLength == -1) { - var program = GL.programs[program]; - var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); - ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. - for (var i = 0; i < numAttribs; ++i) { - var activeAttrib = GLctx.getActiveAttrib(program, i); - ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxAttributeLength; - } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { - if (ptable.maxUniformBlockNameLength == -1) { - var program = GL.programs[program]; - var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); - ptable.maxUniformBlockNameLength = 0; - for (var i = 0; i < numBlocks; ++i) { - var activeBlockName = GLctx.getActiveUniformBlockName(program, i); - ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; - } else { - HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); - } - } - - function _glVertexAttribPointer(index, size, type, normalized, stride, ptr) { - GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); - } - - function _emscripten_exit_pointerlock() { - // Make sure no queued up calls will fire after this. - JSEvents.removeDeferredCalls(JSEvents.requestPointerLock); - - if (document.exitPointerLock) { - document.exitPointerLock(); - } else if (document.msExitPointerLock) { - document.msExitPointerLock(); - } else if (document.mozExitPointerLock) { - document.mozExitPointerLock(); - } else if (document.webkitExitPointerLock) { - document.webkitExitPointerLock(); - } else { - return -1; - } - return 0; - } - - function _glGetUniformLocation(program, name) { - name = Pointer_stringify(name); - - var arrayOffset = 0; - // If user passed an array accessor "[index]", parse the array index off the accessor. - if (name.indexOf(']', name.length-1) !== -1) { - var ls = name.lastIndexOf('['); - var arrayIndex = name.slice(ls+1, -1); - if (arrayIndex.length > 0) { - arrayOffset = parseInt(arrayIndex); - if (arrayOffset < 0) { - return -1; - } - } - name = name.slice(0, ls); - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - return -1; - } - var utable = ptable.uniforms; - var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] - if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. - return uniformInfo[1]+arrayOffset; - } else { - return -1; - } - } - - function _emscripten_glGetAttachedShaders(program, maxCount, count, shaders) { - var result = GLctx.getAttachedShaders(GL.programs[program]); - var len = result.length; - if (len > maxCount) { - len = maxCount; - } - HEAP32[((count)>>2)]=len; - for (var i = 0; i < len; ++i) { - var id = GL.shaders.indexOf(result[i]); - assert(id !== -1, 'shader not bound to local id'); - HEAP32[(((shaders)+(i*4))>>2)]=id; - } - } - - function _emscripten_glGenRenderbuffers(n, renderbuffers) { - for (var i = 0; i < n; i++) { - var renderbuffer = GLctx.createRenderbuffer(); - if (!renderbuffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((renderbuffers)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.renderbuffers); - renderbuffer.name = id; - GL.renderbuffers[id] = renderbuffer; - HEAP32[(((renderbuffers)+(i*4))>>2)]=id; - } - } - - function _emscripten_glFrontFace(x0) { GLctx['frontFace'](x0) } - - function _emscripten_glActiveTexture(x0) { GLctx['activeTexture'](x0) } - - function _emscripten_glUniform1iv(location, count, value) { - - - GLctx.uniform1iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*4)>>2)); - } - - function _emscripten_glTexCoordPointer() { - Module['printErr']('missing function: emscripten_glTexCoordPointer'); abort(-1); - } - - function _emscripten_glGetInfoLogARB() { - Module['printErr']('missing function: emscripten_glGetInfoLogARB'); abort(-1); - } - - - function __exit(status) { - // void _exit(int status); - // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html - Module['exit'](status); - }function _exit(status) { - __exit(status); - } - - function _emscripten_glRenderbufferStorage(x0, x1, x2, x3) { GLctx['renderbufferStorage'](x0, x1, x2, x3) } - - function _emscripten_glCopyTexSubImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexSubImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } - - function _glfwSetCursorPosCallback(winid, cbfun) { - GLFW.setCursorPosCallback(winid, cbfun); - } - - function _glBindAttribLocation(program, index, name) { - name = Pointer_stringify(name); - GLctx.bindAttribLocation(GL.programs[program], index, name); - } - - function _emscripten_glShaderBinary() { - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - } - - function _emscripten_glIsProgram(program) { - var program = GL.programs[program]; - if (!program) return 0; - return GLctx.isProgram(program); - } - - function _emscripten_glBlendColor(x0, x1, x2, x3) { GLctx['blendColor'](x0, x1, x2, x3) } - - function _emscripten_glGetShaderiv(shader, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B88) { // GL_SHADER_SOURCE_LENGTH - var source = GLctx.getShaderSource(GL.shaders[shader]); - var sourceLength = (source === null || source.length == 0) ? 0 : source.length + 1; - HEAP32[((p)>>2)]=sourceLength; - } else { - HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); - } - } - - function _emscripten_glUniformMatrix3fv(location, count, transpose, value) { - - - var view; - if (9*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[9*count-1]; - for (var i = 0; i < 9*count; i += 9) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; - view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; - view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; - view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; - view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*36)>>2); - } - GLctx.uniformMatrix3fv(GL.uniforms[location], !!transpose, view); - } - - function _emscripten_glVertexAttrib2f(x0, x1, x2) { GLctx['vertexAttrib2f'](x0, x1, x2) } - - function _emscripten_glUniform4fv(location, count, value) { - - - var view; - if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[4*count-1]; - for (var i = 0; i < 4*count; i += 4) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); - } - GLctx.uniform4fv(GL.uniforms[location], view); - } - - function _glBufferSubData(target, offset, size, data) { - GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); - } - - function _emscripten_glGenFramebuffers(n, ids) { - for (var i = 0; i < n; ++i) { - var framebuffer = GLctx.createFramebuffer(); - if (!framebuffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((ids)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.framebuffers); - framebuffer.name = id; - GL.framebuffers[id] = framebuffer; - HEAP32[(((ids)+(i*4))>>2)]=id; - } - } - - function _glGetShaderiv(shader, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B88) { // GL_SHADER_SOURCE_LENGTH - var source = GLctx.getShaderSource(GL.shaders[shader]); - var sourceLength = (source === null || source.length == 0) ? 0 : source.length + 1; - HEAP32[((p)>>2)]=sourceLength; - } else { - HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); - } - } - - function _emscripten_glBlendEquationSeparate(x0, x1) { GLctx['blendEquationSeparate'](x0, x1) } - - function _glfwSetWindowIconifyCallback(winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowIconifyFunc = cbfun; - } - - function _emscripten_glDrawRangeElements() { - Module['printErr']('missing function: emscripten_glDrawRangeElements'); abort(-1); - } - - function _emscripten_glGenTextures(n, textures) { - for (var i = 0; i < n; i++) { - var texture = GLctx.createTexture(); - if (!texture) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. - while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.textures); - texture.name = id; - GL.textures[id] = texture; - HEAP32[(((textures)+(i*4))>>2)]=id; - } - } - - function _emscripten_glVertexAttrib2fv(index, v) { - - GLctx.vertexAttrib2f(index, HEAPF32[v>>2], HEAPF32[v+4>>2]); - } - - function _emscripten_glGetActiveUniform(program, index, bufSize, length, size, type, name) { - program = GL.programs[program]; - var info = GLctx.getActiveUniform(program, index); - if (!info) return; // If an error occurs, nothing will be written to length, size, type and name. - - if (bufSize > 0 && name) { - var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - - if (size) HEAP32[((size)>>2)]=info.size; - if (type) HEAP32[((type)>>2)]=info.type; - } - - - - function _emscripten_glDeleteObjectARB() { - Module['printErr']('missing function: emscripten_glDeleteObjectARB'); abort(-1); - } - - function _emscripten_set_touchmove_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 24, "touchmove"); - return 0; - } - - function _emscripten_glUniform1f(location, v0) { - GLctx.uniform1f(GL.uniforms[location], v0); - } - - function _emscripten_glVertexAttribPointer(index, size, type, normalized, stride, ptr) { - GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); - } - - function _glShaderSource(shader, count, string, length) { - var source = GL.getSource(shader, count, string, length); - - - GLctx.shaderSource(GL.shaders[shader], source); - } - - function _emscripten_glDrawArrays(mode, first, count) { - - GLctx.drawArrays(mode, first, count); - - } - - function _emscripten_glGenBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var buffer = GLctx.createBuffer(); - if (!buffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.buffers); - buffer.name = id; - GL.buffers[id] = buffer; - HEAP32[(((buffers)+(i*4))>>2)]=id; - } - } - - function _emscripten_glClearDepth(x0) { GLctx['clearDepth'](x0) } - - function _emscripten_set_keypress_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerKeyEventCallback(target, userData, useCapture, callbackfunc, 1, "keypress"); - return 0; - } - - function _glfwSetCharCallback(winid, cbfun) { - GLFW.setCharCallback(winid, cbfun); - } - - function _emscripten_glGetUniformLocation(program, name) { - name = Pointer_stringify(name); - - var arrayOffset = 0; - // If user passed an array accessor "[index]", parse the array index off the accessor. - if (name.indexOf(']', name.length-1) !== -1) { - var ls = name.lastIndexOf('['); - var arrayIndex = name.slice(ls+1, -1); - if (arrayIndex.length > 0) { - arrayOffset = parseInt(arrayIndex); - if (arrayOffset < 0) { - return -1; - } - } - name = name.slice(0, ls); - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - return -1; - } - var utable = ptable.uniforms; - var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] - if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. - return uniformInfo[1]+arrayOffset; - } else { - return -1; - } - } - - function _glActiveTexture(x0) { GLctx['activeTexture'](x0) } - - function _glBindBuffer(target, buffer) { - var bufferObj = buffer ? GL.buffers[buffer] : null; - - - GLctx.bindBuffer(target, bufferObj); - } - - function _emscripten_glVertexAttrib4fv(index, v) { - - GLctx.vertexAttrib4f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2], HEAPF32[v+12>>2]); - } - - function _emscripten_glScissor(x0, x1, x2, x3) { GLctx['scissor'](x0, x1, x2, x3) } - - function _glfwSetCursorEnterCallback(winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.cursorEnterFunc = cbfun; - } - - - - function _glBufferData(target, size, data, usage) { - if (!data) { - GLctx.bufferData(target, size, usage); - } else { - GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); - } - } - - function _emscripten_glIsShader(shader) { - var s = GL.shaders[shader]; - if (!s) return 0; - return GLctx.isShader(s); - } - - function _emscripten_glDrawBuffers(n, bufs) { - - var bufArray = GL.tempFixedLengthArray[n]; - for (var i = 0; i < n; i++) { - bufArray[i] = HEAP32[(((bufs)+(i*4))>>2)]; - } - - GLctx['drawBuffers'](bufArray); - } - - function _glGetFloatv(name_, p) { - emscriptenWebGLGet(name_, p, 'Float'); - } - - function _emscripten_glBindFramebuffer(target, framebuffer) { - GLctx.bindFramebuffer(target, framebuffer ? GL.framebuffers[framebuffer] : null); - } - - function _emscripten_glBlendEquation(x0) { GLctx['blendEquation'](x0) } - - function _emscripten_glBufferSubData(target, offset, size, data) { - GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); - } - - function _emscripten_glBufferData(target, size, data, usage) { - if (!data) { - GLctx.bufferData(target, size, usage); - } else { - GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); - } - } - - - function ___setErrNo(value) { - if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; - else Module.printErr('failed to set errno from JS'); - return value; - } - - - - function _emscripten_glGetShaderSource(shader, bufSize, length, source) { - var result = GLctx.getShaderSource(GL.shaders[shader]); - if (!result) return; // If an error occurs, nothing will be written to length or source. - if (bufSize > 0 && source) { - var numBytesWrittenExclNull = stringToUTF8(result, source, bufSize); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - - - function _glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } - - function _glfwSetKeyCallback(winid, cbfun) { - GLFW.setKeyCallback(winid, cbfun); - } - - function _emscripten_set_gamepadconnected_callback(userData, useCapture, callbackfunc) { - if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; - JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 26, "gamepadconnected"); - return 0; - } - - function _emscripten_glGetFloatv(name_, p) { - emscriptenWebGLGet(name_, p, 'Float'); - } - - function _glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { - - var pixelData = null; - if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); - GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); - } - - function _glGetProgramInfoLog(program, maxLength, length, infoLog) { - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _emscripten_glVertexAttribDivisor(index, divisor) { - GLctx['vertexAttribDivisor'](index, divisor); - } - - function _emscripten_glDrawElementsInstanced(mode, count, type, indices, primcount) { - GLctx['drawElementsInstanced'](mode, count, type, indices, primcount); - } - - function _emscripten_glDrawElements(mode, count, type, indices) { - - GLctx.drawElements(mode, count, type, indices); - - } - - function _glDeleteBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((buffers)+(i*4))>>2)]; - var buffer = GL.buffers[id]; - - // From spec: "glDeleteBuffers silently ignores 0's and names that do not - // correspond to existing buffer objects." - if (!buffer) continue; - - GLctx.deleteBuffer(buffer); - buffer.name = 0; - GL.buffers[id] = null; - - if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; - if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; - } - } - - function _emscripten_glCreateProgram() { - var id = GL.getNewId(GL.programs); - var program = GLctx.createProgram(); - program.name = id; - GL.programs[id] = program; - return id; - } - - function _emscripten_glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { - GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); - } - - function _emscripten_glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } - - function _emscripten_glBindVertexArray(vao) { - GLctx['bindVertexArray'](GL.vaos[vao]); - } - - function _emscripten_glLoadMatrixf() { - Module['printErr']('missing function: emscripten_glLoadMatrixf'); abort(-1); - } - - function _glDeleteShader(id) { - if (!id) return; - var shader = GL.shaders[id]; - if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteShader(shader); - GL.shaders[id] = null; - } - - function _emscripten_glGetProgramiv(program, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - if (program >= GL.counter) { - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - return; - } - - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { - HEAP32[((p)>>2)]=ptable.maxUniformLength; - } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { - if (ptable.maxAttributeLength == -1) { - var program = GL.programs[program]; - var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); - ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. - for (var i = 0; i < numAttribs; ++i) { - var activeAttrib = GLctx.getActiveAttrib(program, i); - ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxAttributeLength; - } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { - if (ptable.maxUniformBlockNameLength == -1) { - var program = GL.programs[program]; - var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); - ptable.maxUniformBlockNameLength = 0; - for (var i = 0; i < numBlocks; ++i) { - var activeBlockName = GLctx.getActiveUniformBlockName(program, i); - ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; - } else { - HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); - } - } - - function _emscripten_glGetProgramInfoLog(program, maxLength, length, infoLog) { - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _emscripten_glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { - - var pixelData = null; - if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); - GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); - } - - function _glPixelStorei(pname, param) { - if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { - GL.packAlignment = param; - } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { - GL.unpackAlignment = param; - } - GLctx.pixelStorei(pname, param); - } - - function ___unlock() {} - - function _emscripten_glColorPointer() { - Module['printErr']('missing function: emscripten_glColorPointer'); abort(-1); - } - - function _glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } - - function _glfwDestroyWindow(winid) { - return GLFW.destroyWindow(winid); - } - - function _emscripten_glFlush() { GLctx['flush']() } - - function _glfwSetErrorCallback(cbfun) { - GLFW.errorFunc = cbfun; - } - - function _emscripten_glCreateShader(shaderType) { - var id = GL.getNewId(GL.shaders); - GL.shaders[id] = GLctx.createShader(shaderType); - return id; - } - - function _glUniformMatrix4fv(location, count, transpose, value) { - - - var view; - if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[16*count-1]; - for (var i = 0; i < 16*count; i += 16) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; - view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; - view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; - view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; - view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; - view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; - view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; - view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; - view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; - view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; - view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; - view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); - } - GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); - } - - function _emscripten_glValidateProgram(program) { - GLctx.validateProgram(GL.programs[program]); - } - - function _emscripten_set_click_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerMouseEventCallback(target, userData, useCapture, callbackfunc, 4, "click"); - return 0; - } - - function _glFrontFace(x0) { GLctx['frontFace'](x0) } - - function _emscripten_glColorMask(red, green, blue, alpha) { - GLctx.colorMask(!!red, !!green, !!blue, !!alpha); - } - - function _emscripten_glPixelStorei(pname, param) { - if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { - GL.packAlignment = param; - } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { - GL.unpackAlignment = param; - } - GLctx.pixelStorei(pname, param); - } - - function _emscripten_glDeleteTextures(n, textures) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((textures)+(i*4))>>2)]; - var texture = GL.textures[id]; - if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". - GLctx.deleteTexture(texture); - texture.name = 0; - GL.textures[id] = null; - } - } - - function _emscripten_glGenVertexArrays(n, arrays) { - - for (var i = 0; i < n; i++) { - var vao = GLctx['createVertexArray'](); - if (!vao) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((arrays)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.vaos); - vao.name = id; - GL.vaos[id] = vao; - HEAP32[(((arrays)+(i*4))>>2)]=id; - } - } - - function _time(ptr) { - var ret = (Date.now()/1000)|0; - if (ptr) { - HEAP32[((ptr)>>2)]=ret; - } - return ret; - } - - function _emscripten_glGetBooleanv(name_, p) { - emscriptenWebGLGet(name_, p, 'Boolean'); - } - - function _emscripten_glCompileShader(shader) { - GLctx.compileShader(GL.shaders[shader]); - } -var GLctx; GL.init(); -if (ENVIRONMENT_IS_NODE) { - _emscripten_get_now = function _emscripten_get_now_actual() { - var t = process['hrtime'](); - return t[0] * 1e3 + t[1] / 1e6; - }; - } else if (typeof dateNow !== 'undefined') { - _emscripten_get_now = dateNow; - } else if (typeof self === 'object' && self['performance'] && typeof self['performance']['now'] === 'function') { - _emscripten_get_now = function() { return self['performance']['now'](); }; - } else if (typeof performance === 'object' && typeof performance['now'] === 'function') { - _emscripten_get_now = function() { return performance['now'](); }; - } else { - _emscripten_get_now = Date.now; - }; -Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."); Module["requestFullScreen"] = Module["requestFullscreen"]; Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice) }; - Module["requestFullscreen"] = function Module_requestFullscreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice) }; - Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) }; - Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) }; - Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() }; - Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() }; - Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() } - Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) }; -JSEvents.staticInit();; -/* flush anything remaining in the buffer during shutdown */ __ATEXIT__.push(function() { var fflush = Module["_fflush"]; if (fflush) fflush(0); var printChar = ___syscall146.printChar; if (!printChar) return; var buffers = ___syscall146.buffers; if (buffers[1].length) printChar(1, 10); if (buffers[2].length) printChar(2, 10); });; -DYNAMICTOP_PTR = allocate(1, "i32", ALLOC_STATIC); - -STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); - -STACK_MAX = STACK_BASE + TOTAL_STACK; - -DYNAMIC_BASE = Runtime.alignMemory(STACK_MAX); - -HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; - -staticSealed = true; // seal the static portion of memory - -assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); - - -function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vd(x) { Module["printErr"]("Invalid function pointer called with signature 'vd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vid(x) { Module["printErr"]("Invalid function pointer called with signature 'vid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viddd(x) { Module["printErr"]("Invalid function pointer called with signature 'viddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vidd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vidddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdi(x) { Module["printErr"]("Invalid function pointer called with signature 'vdi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdddddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viid(x) { Module["printErr"]("Invalid function pointer called with signature 'viid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function invoke_viiiii(index,a1,a2,a3,a4,a5) { - try { - Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vd(index,a1) { - try { - Module["dynCall_vd"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vid(index,a1,a2) { - try { - Module["dynCall_vid"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vi(index,a1) { - try { - Module["dynCall_vi"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vii(index,a1,a2) { - try { - Module["dynCall_vii"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_ii(index,a1) { - try { - return Module["dynCall_ii"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viddd(index,a1,a2,a3,a4) { - try { - Module["dynCall_viddd"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vidd(index,a1,a2,a3) { - try { - Module["dynCall_vidd"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_iiii(index,a1,a2,a3) { - try { - return Module["dynCall_iiii"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { - try { - Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { - try { - Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viii(index,a1,a2,a3) { - try { - Module["dynCall_viii"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vidddd(index,a1,a2,a3,a4,a5) { - try { - Module["dynCall_vidddd"](index,a1,a2,a3,a4,a5); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdi(index,a1,a2) { - try { - Module["dynCall_vdi"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { - try { - Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { - try { - Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_iii(index,a1,a2) { - try { - return Module["dynCall_iii"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_i(index) { - try { - return Module["dynCall_i"](index); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdddddd(index,a1,a2,a3,a4,a5,a6) { - try { - Module["dynCall_vdddddd"](index,a1,a2,a3,a4,a5,a6); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdddd(index,a1,a2,a3,a4) { - try { - Module["dynCall_vdddd"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdd(index,a1,a2) { - try { - Module["dynCall_vdd"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_v(index) { - try { - Module["dynCall_v"](index); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viid(index,a1,a2,a3) { - try { - Module["dynCall_viid"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiii(index,a1,a2,a3,a4) { - try { - Module["dynCall_viiii"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; - -Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vd": nullFunc_vd, "nullFunc_vid": nullFunc_vid, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viddd": nullFunc_viddd, "nullFunc_vidd": nullFunc_vidd, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiiiiii": nullFunc_viiiiiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_viii": nullFunc_viii, "nullFunc_vidddd": nullFunc_vidddd, "nullFunc_vdi": nullFunc_vdi, "nullFunc_viiiiiii": nullFunc_viiiiiii, "nullFunc_viiiiiiiii": nullFunc_viiiiiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_i": nullFunc_i, "nullFunc_vdddddd": nullFunc_vdddddd, "nullFunc_vdddd": nullFunc_vdddd, "nullFunc_vdd": nullFunc_vdd, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_viiii": nullFunc_viiii, "invoke_viiiii": invoke_viiiii, "invoke_vd": invoke_vd, "invoke_vid": invoke_vid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viddd": invoke_viddd, "invoke_vidd": invoke_vidd, "invoke_iiii": invoke_iiii, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viii": invoke_viii, "invoke_vidddd": invoke_vidddd, "invoke_vdi": invoke_vdi, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiii": invoke_viiiiiiiii, "invoke_iii": invoke_iii, "invoke_i": invoke_i, "invoke_vdddddd": invoke_vdddddd, "invoke_vdddd": invoke_vdddd, "invoke_vdd": invoke_vdd, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_viiii": invoke_viiii, "_emscripten_glGetTexParameterfv": _emscripten_glGetTexParameterfv, "_glUseProgram": _glUseProgram, "_emscripten_glShaderSource": _emscripten_glShaderSource, "_glfwCreateWindow": _glfwCreateWindow, "_emscripten_glReleaseShaderCompiler": _emscripten_glReleaseShaderCompiler, "_emscripten_glBlendFuncSeparate": _emscripten_glBlendFuncSeparate, "_emscripten_glVertexAttribPointer": _emscripten_glVertexAttribPointer, "_emscripten_glGetIntegerv": _emscripten_glGetIntegerv, "_emscripten_glCullFace": _emscripten_glCullFace, "_emscripten_glIsProgram": _emscripten_glIsProgram, "_emscripten_glStencilMaskSeparate": _emscripten_glStencilMaskSeparate, "_emscripten_glViewport": _emscripten_glViewport, "_emscripten_glFrontFace": _emscripten_glFrontFace, "_glDeleteProgram": _glDeleteProgram, "_emscripten_glUniform3fv": _emscripten_glUniform3fv, "_emscripten_glPolygonOffset": _emscripten_glPolygonOffset, "_emscripten_glUseProgram": _emscripten_glUseProgram, "_emscripten_glBlendColor": _emscripten_glBlendColor, "_glBindBuffer": _glBindBuffer, "_emscripten_glDepthFunc": _emscripten_glDepthFunc, "_glGetShaderInfoLog": _glGetShaderInfoLog, "_emscripten_set_fullscreenchange_callback": _emscripten_set_fullscreenchange_callback, "_emscripten_set_touchmove_callback": _emscripten_set_touchmove_callback, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_glDisable": _glDisable, "_glBlendFunc": _glBlendFunc, "_emscripten_glDisableVertexAttribArray": _emscripten_glDisableVertexAttribArray, "_glGetAttribLocation": _glGetAttribLocation, "_glDisableVertexAttribArray": _glDisableVertexAttribArray, "_glCreateShader": _glCreateShader, "_emscripten_glReadPixels": _emscripten_glReadPixels, "_emscripten_glSampleCoverage": _emscripten_glSampleCoverage, "_emscripten_glVertexPointer": _emscripten_glVertexPointer, "_emscripten_set_touchstart_callback": _emscripten_set_touchstart_callback, "emscriptenWebGLComputeImageSize": emscriptenWebGLComputeImageSize, "_emscripten_glGetBooleanv": _emscripten_glGetBooleanv, "_emscripten_glGetShaderSource": _emscripten_glGetShaderSource, "_glUniform4f": _glUniform4f, "_llvm_stacksave": _llvm_stacksave, "_emscripten_glUniform1i": _emscripten_glUniform1i, "_emscripten_glStencilFuncSeparate": _emscripten_glStencilFuncSeparate, "_emscripten_glLoadMatrixf": _emscripten_glLoadMatrixf, "_emscripten_glGenBuffers": _emscripten_glGenBuffers, "_emscripten_glDeleteObjectARB": _emscripten_glDeleteObjectARB, "_glfwSetWindowSizeCallback": _glfwSetWindowSizeCallback, "_emscripten_glGetShaderPrecisionFormat": _emscripten_glGetShaderPrecisionFormat, "_glfwInit": _glfwInit, "_glGenBuffers": _glGenBuffers, "_glShaderSource": _glShaderSource, "_emscripten_glGetString": _emscripten_glGetString, "_emscripten_glIsFramebuffer": _emscripten_glIsFramebuffer, "_emscripten_glIsEnabled": _emscripten_glIsEnabled, "_emscripten_glScissor": _emscripten_glScissor, "_emscripten_glVertexAttrib4fv": _emscripten_glVertexAttrib4fv, "_emscripten_glFramebufferTexture2D": _emscripten_glFramebufferTexture2D, "_emscripten_glTexParameteriv": _emscripten_glTexParameteriv, "_emscripten_glBindProgramARB": _emscripten_glBindProgramARB, "_emscripten_glStencilOpSeparate": _emscripten_glStencilOpSeparate, "_emscripten_glFramebufferRenderbuffer": _emscripten_glFramebufferRenderbuffer, "___syscall140": ___syscall140, "_glfwSetErrorCallback": _glfwSetErrorCallback, "_glfwDefaultWindowHints": _glfwDefaultWindowHints, "_glfwDestroyWindow": _glfwDestroyWindow, "_emscripten_glVertexAttrib1f": _emscripten_glVertexAttrib1f, "_emscripten_glGetActiveAttrib": _emscripten_glGetActiveAttrib, "_emscripten_glAttachShader": _emscripten_glAttachShader, "_glVertexAttribPointer": _glVertexAttribPointer, "_emscripten_glUniform2i": _emscripten_glUniform2i, "_emscripten_glUniform2f": _emscripten_glUniform2f, "_emscripten_glTexParameterfv": _emscripten_glTexParameterfv, "_emscripten_glUniformMatrix2fv": _emscripten_glUniformMatrix2fv, "_glGetProgramInfoLog": _glGetProgramInfoLog, "_glfwSetScrollCallback": _glfwSetScrollCallback, "_emscripten_glTexParameterf": _emscripten_glTexParameterf, "_emscripten_glGetAttachedShaders": _emscripten_glGetAttachedShaders, "_emscripten_glGenTextures": _emscripten_glGenTextures, "_emscripten_glTexParameteri": _emscripten_glTexParameteri, "_llvm_stackrestore": _llvm_stackrestore, "_glfwMakeContextCurrent": _glfwMakeContextCurrent, "_emscripten_glClear": _emscripten_glClear, "_glDrawElements": _glDrawElements, "_glBufferSubData": _glBufferSubData, "_emscripten_glValidateProgram": _emscripten_glValidateProgram, "_emscripten_glVertexAttrib2fv": _emscripten_glVertexAttrib2fv, "_glViewport": _glViewport, "_emscripten_glUniform4iv": _emscripten_glUniform4iv, "_emscripten_glGetTexParameteriv": _emscripten_glGetTexParameteriv, "___setErrNo": ___setErrNo, "_eglGetProcAddress": _eglGetProcAddress, "_emscripten_glBindAttribLocation": _emscripten_glBindAttribLocation, "_glDeleteTextures": _glDeleteTextures, "_glDepthFunc": _glDepthFunc, "_emscripten_glClientActiveTexture": _emscripten_glClientActiveTexture, "_emscripten_glVertexAttrib2f": _emscripten_glVertexAttrib2f, "_emscripten_glFlush": _emscripten_glFlush, "_emscripten_glCheckFramebufferStatus": _emscripten_glCheckFramebufferStatus, "_emscripten_glGenerateMipmap": _emscripten_glGenerateMipmap, "_emscripten_glGetError": _emscripten_glGetError, "_emscripten_glClearDepthf": _emscripten_glClearDepthf, "_emscripten_glBufferData": _emscripten_glBufferData, "_emscripten_glUniform3i": _emscripten_glUniform3i, "_emscripten_glRotatef": _emscripten_glRotatef, "_emscripten_glDeleteShader": _emscripten_glDeleteShader, "_glEnable": _glEnable, "_glGenTextures": _glGenTextures, "_emscripten_glMatrixMode": _emscripten_glMatrixMode, "_glGetString": _glGetString, "_emscripten_glClearStencil": _emscripten_glClearStencil, "_emscripten_glGetUniformLocation": _emscripten_glGetUniformLocation, "emscriptenWebGLGet": emscriptenWebGLGet, "_emscripten_glEnableVertexAttribArray": _emscripten_glEnableVertexAttribArray, "_emscripten_glGetAttribLocation": _emscripten_glGetAttribLocation, "_emscripten_get_now": _emscripten_get_now, "_emscripten_glNormalPointer": _emscripten_glNormalPointer, "_glAttachShader": _glAttachShader, "_emscripten_glTexCoordPointer": _emscripten_glTexCoordPointer, "_emscripten_glEnable": _emscripten_glEnable, "_glCreateProgram": _glCreateProgram, "_glUniformMatrix4fv": _glUniformMatrix4fv, "_emscripten_glClearDepth": _emscripten_glClearDepth, "___lock": ___lock, "emscriptenWebGLGetTexPixelData": emscriptenWebGLGetTexPixelData, "___syscall6": ___syscall6, "_emscripten_glIsBuffer": _emscripten_glIsBuffer, "_emscripten_glVertexAttrib3f": _emscripten_glVertexAttrib3f, "_time": _time, "___syscall146": ___syscall146, "_glfwSetMouseButtonCallback": _glfwSetMouseButtonCallback, "_emscripten_glBlendEquationSeparate": _emscripten_glBlendEquationSeparate, "_exit": _exit, "_emscripten_glEnableClientState": _emscripten_glEnableClientState, "_emscripten_glUniform4i": _emscripten_glUniform4i, "_emscripten_glDrawRangeElements": _emscripten_glDrawRangeElements, "_glCullFace": _glCullFace, "_emscripten_glGetPointerv": _emscripten_glGetPointerv, "_emscripten_set_keypress_callback": _emscripten_set_keypress_callback, "__emscripten_sample_gamepad_data": __emscripten_sample_gamepad_data, "_emscripten_get_gamepad_status": _emscripten_get_gamepad_status, "_emscripten_glUniform4f": _emscripten_glUniform4f, "_emscripten_glUniform2fv": _emscripten_glUniform2fv, "_glfwGetVideoModes": _glfwGetVideoModes, "_emscripten_set_click_callback": _emscripten_set_click_callback, "_emscripten_glFinish": _emscripten_glFinish, "_emscripten_glShaderBinary": _emscripten_glShaderBinary, "_emscripten_glDrawElements": _emscripten_glDrawElements, "_emscripten_glBlendFunc": _emscripten_glBlendFunc, "_emscripten_get_num_gamepads": _emscripten_get_num_gamepads, "_glCompressedTexImage2D": _glCompressedTexImage2D, "_emscripten_glUniform1iv": _emscripten_glUniform1iv, "_emscripten_glGetVertexAttribPointerv": _emscripten_glGetVertexAttribPointerv, "_glClearDepthf": _glClearDepthf, "_emscripten_glCompressedTexSubImage2D": _emscripten_glCompressedTexSubImage2D, "emscriptenWebGLGetUniform": emscriptenWebGLGetUniform, "_emscripten_glGenRenderbuffers": _emscripten_glGenRenderbuffers, "_emscripten_glDeleteVertexArrays": _emscripten_glDeleteVertexArrays, "_glfwSetWindowShouldClose": _glfwSetWindowShouldClose, "_emscripten_glUniform1fv": _emscripten_glUniform1fv, "_emscripten_glGetActiveUniform": _emscripten_glGetActiveUniform, "_glBindTexture": _glBindTexture, "_emscripten_glUniform3iv": _emscripten_glUniform3iv, "_emscripten_glUniform2iv": _emscripten_glUniform2iv, "_emscripten_glHint": _emscripten_glHint, "_glfwSetCharCallback": _glfwSetCharCallback, "emscriptenWebGLGetVertexAttrib": emscriptenWebGLGetVertexAttrib, "_glGetFloatv": _glGetFloatv, "_emscripten_glDeleteProgram": _emscripten_glDeleteProgram, "_emscripten_glDeleteRenderbuffers": _emscripten_glDeleteRenderbuffers, "_emscripten_glDrawElementsInstanced": _emscripten_glDrawElementsInstanced, "_emscripten_glVertexAttrib4f": _emscripten_glVertexAttrib4f, "_glDrawArrays": _glDrawArrays, "_emscripten_glTexSubImage2D": _emscripten_glTexSubImage2D, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_glPixelStorei": _emscripten_glPixelStorei, "_glCompileShader": _glCompileShader, "_emscripten_get_pointerlock_status": _emscripten_get_pointerlock_status, "_emscripten_glUniformMatrix3fv": _emscripten_glUniformMatrix3fv, "_emscripten_glColorPointer": _emscripten_glColorPointer, "_emscripten_glGetBufferParameteriv": _emscripten_glGetBufferParameteriv, "_glActiveTexture": _glActiveTexture, "_emscripten_request_pointerlock": _emscripten_request_pointerlock, "_emscripten_set_gamepaddisconnected_callback": _emscripten_set_gamepaddisconnected_callback, "_emscripten_asm_const_iii": _emscripten_asm_const_iii, "_emscripten_glDepthMask": _emscripten_glDepthMask, "_glfwSetWindowIconifyCallback": _glfwSetWindowIconifyCallback, "_emscripten_glDrawBuffers": _emscripten_glDrawBuffers, "_glfwTerminate": _glfwTerminate, "_glFrontFace": _glFrontFace, "_emscripten_glGetObjectParameterivARB": _emscripten_glGetObjectParameterivARB, "_emscripten_exit_pointerlock": _emscripten_exit_pointerlock, "_glfwSwapInterval": _glfwSwapInterval, "_glUniform1i": _glUniform1i, "_glEnableVertexAttribArray": _glEnableVertexAttribArray, "_emscripten_glStencilFunc": _emscripten_glStencilFunc, "_abort": _abort, "_emscripten_glGetUniformiv": _emscripten_glGetUniformiv, "_glDeleteBuffers": _glDeleteBuffers, "_glBufferData": _glBufferData, "_glTexImage2D": _glTexImage2D, "_emscripten_glGetShaderiv": _emscripten_glGetShaderiv, "_glfwSetKeyCallback": _glfwSetKeyCallback, "_emscripten_glGenFramebuffers": _emscripten_glGenFramebuffers, "_emscripten_glUniformMatrix4fv": _emscripten_glUniformMatrix4fv, "_emscripten_glLoadIdentity": _emscripten_glLoadIdentity, "_glDeleteShader": _glDeleteShader, "_emscripten_glUniform1f": _emscripten_glUniform1f, "_glGetProgramiv": _glGetProgramiv, "_emscripten_glBindFramebuffer": _emscripten_glBindFramebuffer, "_emscripten_glIsRenderbuffer": _emscripten_glIsRenderbuffer, "_glfwGetTime": _glfwGetTime, "_emscripten_glRenderbufferStorage": _emscripten_glRenderbufferStorage, "_emscripten_set_gamepadconnected_callback": _emscripten_set_gamepadconnected_callback, "_emscripten_glGetVertexAttribiv": _emscripten_glGetVertexAttribiv, "_emscripten_glBindVertexArray": _emscripten_glBindVertexArray, "_emscripten_glDrawArraysInstanced": _emscripten_glDrawArraysInstanced, "_emscripten_set_touchcancel_callback": _emscripten_set_touchcancel_callback, "_emscripten_glCreateShader": _emscripten_glCreateShader, "_emscripten_glStencilMask": _emscripten_glStencilMask, "_emscripten_glDeleteTextures": _emscripten_glDeleteTextures, "_emscripten_glBindRenderbuffer": _emscripten_glBindRenderbuffer, "_glfwGetPrimaryMonitor": _glfwGetPrimaryMonitor, "_glLinkProgram": _glLinkProgram, "_emscripten_glVertexAttribDivisor": _emscripten_glVertexAttribDivisor, "_emscripten_set_touchend_callback": _emscripten_set_touchend_callback, "_emscripten_glGetUniformfv": _emscripten_glGetUniformfv, "_emscripten_glGetVertexAttribfv": _emscripten_glGetVertexAttribfv, "_emscripten_glGetRenderbufferParameteriv": _emscripten_glGetRenderbufferParameteriv, "_emscripten_glDeleteFramebuffers": _emscripten_glDeleteFramebuffers, "_glGetShaderiv": _glGetShaderiv, "_emscripten_glVertexAttrib3fv": _emscripten_glVertexAttrib3fv, "_glGetUniformLocation": _glGetUniformLocation, "_emscripten_glGetInfoLogARB": _emscripten_glGetInfoLogARB, "_emscripten_glCompileShader": _emscripten_glCompileShader, "_glClear": _glClear, "_emscripten_glFrustum": _emscripten_glFrustum, "_emscripten_glDisable": _emscripten_glDisable, "_emscripten_glDepthRangef": _emscripten_glDepthRangef, "__exit": __exit, "_emscripten_glLineWidth": _emscripten_glLineWidth, "_emscripten_glUniform3f": _emscripten_glUniform3f, "_emscripten_glGetShaderInfoLog": _emscripten_glGetShaderInfoLog, "_emscripten_glStencilOp": _emscripten_glStencilOp, "_glBindAttribLocation": _glBindAttribLocation, "_glPixelStorei": _glPixelStorei, "_emscripten_glColorMask": _emscripten_glColorMask, "_emscripten_glLinkProgram": _emscripten_glLinkProgram, "_emscripten_glBlendEquation": _emscripten_glBlendEquation, "_emscripten_glIsTexture": _emscripten_glIsTexture, "_emscripten_glGetProgramiv": _emscripten_glGetProgramiv, "_emscripten_glVertexAttrib1fv": _emscripten_glVertexAttrib1fv, "_emscripten_glBindTexture": _emscripten_glBindTexture, "_emscripten_glGetFramebufferAttachmentParameteriv": _emscripten_glGetFramebufferAttachmentParameteriv, "_glfwGetCursorPos": _glfwGetCursorPos, "_emscripten_glActiveTexture": _emscripten_glActiveTexture, "_emscripten_glDeleteBuffers": _emscripten_glDeleteBuffers, "___syscall54": ___syscall54, "___unlock": ___unlock, "_emscripten_glBufferSubData": _emscripten_glBufferSubData, "_glfwSwapBuffers": _glfwSwapBuffers, "_emscripten_glDepthRange": _emscripten_glDepthRange, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_emscripten_glGetProgramInfoLog": _emscripten_glGetProgramInfoLog, "_glfwWindowHint": _glfwWindowHint, "_emscripten_glIsShader": _emscripten_glIsShader, "_emscripten_glUniform4fv": _emscripten_glUniform4fv, "_emscripten_glGenVertexArrays": _emscripten_glGenVertexArrays, "_emscripten_glDrawArrays": _emscripten_glDrawArrays, "_emscripten_glCompressedTexImage2D": _emscripten_glCompressedTexImage2D, "_emscripten_glClearColor": _emscripten_glClearColor, "_emscripten_glCreateProgram": _emscripten_glCreateProgram, "_emscripten_glCopyTexSubImage2D": _emscripten_glCopyTexSubImage2D, "_glTexParameteri": _glTexParameteri, "_emscripten_glBindBuffer": _emscripten_glBindBuffer, "_emscripten_glGetFloatv": _emscripten_glGetFloatv, "_emscripten_glDetachShader": _emscripten_glDetachShader, "_glClearColor": _glClearColor, "_glfwSetCursorPosCallback": _glfwSetCursorPosCallback, "_glfwSetCursorEnterCallback": _glfwSetCursorEnterCallback, "_emscripten_glCopyTexImage2D": _emscripten_glCopyTexImage2D, "_emscripten_glTexImage2D": _emscripten_glTexImage2D, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "cttz_i8": cttz_i8 }; -// EMSCRIPTEN_START_ASM -var asm = (function(global, env, buffer) { -'use asm'; - - - var HEAP8 = new global.Int8Array(buffer); - var HEAP16 = new global.Int16Array(buffer); - var HEAP32 = new global.Int32Array(buffer); - var HEAPU8 = new global.Uint8Array(buffer); - var HEAPU16 = new global.Uint16Array(buffer); - var HEAPU32 = new global.Uint32Array(buffer); - var HEAPF32 = new global.Float32Array(buffer); - var HEAPF64 = new global.Float64Array(buffer); - - var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0; - var tempDoublePtr=env.tempDoublePtr|0; - var ABORT=env.ABORT|0; - var STACKTOP=env.STACKTOP|0; - var STACK_MAX=env.STACK_MAX|0; - var cttz_i8=env.cttz_i8|0; - - var __THREW__ = 0; - var threwValue = 0; - var setjmpId = 0; - var undef = 0; - var nan = global.NaN, inf = global.Infinity; - var tempInt = 0, tempBigInt = 0, tempBigIntS = 0, tempValue = 0, tempDouble = 0.0; - var tempRet0 = 0; - - var Math_floor=global.Math.floor; - var Math_abs=global.Math.abs; - var Math_sqrt=global.Math.sqrt; - var Math_pow=global.Math.pow; - var Math_cos=global.Math.cos; - var Math_sin=global.Math.sin; - var Math_tan=global.Math.tan; - var Math_acos=global.Math.acos; - var Math_asin=global.Math.asin; - var Math_atan=global.Math.atan; - var Math_atan2=global.Math.atan2; - var Math_exp=global.Math.exp; - var Math_log=global.Math.log; - var Math_ceil=global.Math.ceil; - var Math_imul=global.Math.imul; - var Math_min=global.Math.min; - var Math_max=global.Math.max; - var Math_clz32=global.Math.clz32; - var abort=env.abort; - var assert=env.assert; - var enlargeMemory=env.enlargeMemory; - var getTotalMemory=env.getTotalMemory; - var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory; - var abortStackOverflow=env.abortStackOverflow; - var nullFunc_viiiii=env.nullFunc_viiiii; - var nullFunc_vd=env.nullFunc_vd; - var nullFunc_vid=env.nullFunc_vid; - var nullFunc_vi=env.nullFunc_vi; - var nullFunc_vii=env.nullFunc_vii; - var nullFunc_ii=env.nullFunc_ii; - var nullFunc_viddd=env.nullFunc_viddd; - var nullFunc_vidd=env.nullFunc_vidd; - var nullFunc_iiii=env.nullFunc_iiii; - var nullFunc_viiiiiiii=env.nullFunc_viiiiiiii; - var nullFunc_viiiiii=env.nullFunc_viiiiii; - var nullFunc_viii=env.nullFunc_viii; - var nullFunc_vidddd=env.nullFunc_vidddd; - var nullFunc_vdi=env.nullFunc_vdi; - var nullFunc_viiiiiii=env.nullFunc_viiiiiii; - var nullFunc_viiiiiiiii=env.nullFunc_viiiiiiiii; - var nullFunc_iii=env.nullFunc_iii; - var nullFunc_i=env.nullFunc_i; - var nullFunc_vdddddd=env.nullFunc_vdddddd; - var nullFunc_vdddd=env.nullFunc_vdddd; - var nullFunc_vdd=env.nullFunc_vdd; - var nullFunc_v=env.nullFunc_v; - var nullFunc_viid=env.nullFunc_viid; - var nullFunc_viiii=env.nullFunc_viiii; - var invoke_viiiii=env.invoke_viiiii; - var invoke_vd=env.invoke_vd; - var invoke_vid=env.invoke_vid; - var invoke_vi=env.invoke_vi; - var invoke_vii=env.invoke_vii; - var invoke_ii=env.invoke_ii; - var invoke_viddd=env.invoke_viddd; - var invoke_vidd=env.invoke_vidd; - var invoke_iiii=env.invoke_iiii; - var invoke_viiiiiiii=env.invoke_viiiiiiii; - var invoke_viiiiii=env.invoke_viiiiii; - var invoke_viii=env.invoke_viii; - var invoke_vidddd=env.invoke_vidddd; - var invoke_vdi=env.invoke_vdi; - var invoke_viiiiiii=env.invoke_viiiiiii; - var invoke_viiiiiiiii=env.invoke_viiiiiiiii; - var invoke_iii=env.invoke_iii; - var invoke_i=env.invoke_i; - var invoke_vdddddd=env.invoke_vdddddd; - var invoke_vdddd=env.invoke_vdddd; - var invoke_vdd=env.invoke_vdd; - var invoke_v=env.invoke_v; - var invoke_viid=env.invoke_viid; - var invoke_viiii=env.invoke_viiii; - var _emscripten_glGetTexParameterfv=env._emscripten_glGetTexParameterfv; - var _glUseProgram=env._glUseProgram; - var _emscripten_glShaderSource=env._emscripten_glShaderSource; - var _glfwCreateWindow=env._glfwCreateWindow; - var _emscripten_glReleaseShaderCompiler=env._emscripten_glReleaseShaderCompiler; - var _emscripten_glBlendFuncSeparate=env._emscripten_glBlendFuncSeparate; - var _emscripten_glVertexAttribPointer=env._emscripten_glVertexAttribPointer; - var _emscripten_glGetIntegerv=env._emscripten_glGetIntegerv; - var _emscripten_glCullFace=env._emscripten_glCullFace; - var _emscripten_glIsProgram=env._emscripten_glIsProgram; - var _emscripten_glStencilMaskSeparate=env._emscripten_glStencilMaskSeparate; - var _emscripten_glViewport=env._emscripten_glViewport; - var _emscripten_glFrontFace=env._emscripten_glFrontFace; - var _glDeleteProgram=env._glDeleteProgram; - var _emscripten_glUniform3fv=env._emscripten_glUniform3fv; - var _emscripten_glPolygonOffset=env._emscripten_glPolygonOffset; - var _emscripten_glUseProgram=env._emscripten_glUseProgram; - var _emscripten_glBlendColor=env._emscripten_glBlendColor; - var _glBindBuffer=env._glBindBuffer; - var _emscripten_glDepthFunc=env._emscripten_glDepthFunc; - var _glGetShaderInfoLog=env._glGetShaderInfoLog; - var _emscripten_set_fullscreenchange_callback=env._emscripten_set_fullscreenchange_callback; - var _emscripten_set_touchmove_callback=env._emscripten_set_touchmove_callback; - var _emscripten_set_main_loop_timing=env._emscripten_set_main_loop_timing; - var _glDisable=env._glDisable; - var _glBlendFunc=env._glBlendFunc; - var _emscripten_glDisableVertexAttribArray=env._emscripten_glDisableVertexAttribArray; - var _glGetAttribLocation=env._glGetAttribLocation; - var _glDisableVertexAttribArray=env._glDisableVertexAttribArray; - var _glCreateShader=env._glCreateShader; - var _emscripten_glReadPixels=env._emscripten_glReadPixels; - var _emscripten_glSampleCoverage=env._emscripten_glSampleCoverage; - var _emscripten_glVertexPointer=env._emscripten_glVertexPointer; - var _emscripten_set_touchstart_callback=env._emscripten_set_touchstart_callback; - var emscriptenWebGLComputeImageSize=env.emscriptenWebGLComputeImageSize; - var _emscripten_glGetBooleanv=env._emscripten_glGetBooleanv; - var _emscripten_glGetShaderSource=env._emscripten_glGetShaderSource; - var _glUniform4f=env._glUniform4f; - var _llvm_stacksave=env._llvm_stacksave; - var _emscripten_glUniform1i=env._emscripten_glUniform1i; - var _emscripten_glStencilFuncSeparate=env._emscripten_glStencilFuncSeparate; - var _emscripten_glLoadMatrixf=env._emscripten_glLoadMatrixf; - var _emscripten_glGenBuffers=env._emscripten_glGenBuffers; - var _emscripten_glDeleteObjectARB=env._emscripten_glDeleteObjectARB; - var _glfwSetWindowSizeCallback=env._glfwSetWindowSizeCallback; - var _emscripten_glGetShaderPrecisionFormat=env._emscripten_glGetShaderPrecisionFormat; - var _glfwInit=env._glfwInit; - var _glGenBuffers=env._glGenBuffers; - var _glShaderSource=env._glShaderSource; - var _emscripten_glGetString=env._emscripten_glGetString; - var _emscripten_glIsFramebuffer=env._emscripten_glIsFramebuffer; - var _emscripten_glIsEnabled=env._emscripten_glIsEnabled; - var _emscripten_glScissor=env._emscripten_glScissor; - var _emscripten_glVertexAttrib4fv=env._emscripten_glVertexAttrib4fv; - var _emscripten_glFramebufferTexture2D=env._emscripten_glFramebufferTexture2D; - var _emscripten_glTexParameteriv=env._emscripten_glTexParameteriv; - var _emscripten_glBindProgramARB=env._emscripten_glBindProgramARB; - var _emscripten_glStencilOpSeparate=env._emscripten_glStencilOpSeparate; - var _emscripten_glFramebufferRenderbuffer=env._emscripten_glFramebufferRenderbuffer; - var ___syscall140=env.___syscall140; - var _glfwSetErrorCallback=env._glfwSetErrorCallback; - var _glfwDefaultWindowHints=env._glfwDefaultWindowHints; - var _glfwDestroyWindow=env._glfwDestroyWindow; - var _emscripten_glVertexAttrib1f=env._emscripten_glVertexAttrib1f; - var _emscripten_glGetActiveAttrib=env._emscripten_glGetActiveAttrib; - var _emscripten_glAttachShader=env._emscripten_glAttachShader; - var _glVertexAttribPointer=env._glVertexAttribPointer; - var _emscripten_glUniform2i=env._emscripten_glUniform2i; - var _emscripten_glUniform2f=env._emscripten_glUniform2f; - var _emscripten_glTexParameterfv=env._emscripten_glTexParameterfv; - var _emscripten_glUniformMatrix2fv=env._emscripten_glUniformMatrix2fv; - var _glGetProgramInfoLog=env._glGetProgramInfoLog; - var _glfwSetScrollCallback=env._glfwSetScrollCallback; - var _emscripten_glTexParameterf=env._emscripten_glTexParameterf; - var _emscripten_glGetAttachedShaders=env._emscripten_glGetAttachedShaders; - var _emscripten_glGenTextures=env._emscripten_glGenTextures; - var _emscripten_glTexParameteri=env._emscripten_glTexParameteri; - var _llvm_stackrestore=env._llvm_stackrestore; - var _glfwMakeContextCurrent=env._glfwMakeContextCurrent; - var _emscripten_glClear=env._emscripten_glClear; - var _glDrawElements=env._glDrawElements; - var _glBufferSubData=env._glBufferSubData; - var _emscripten_glValidateProgram=env._emscripten_glValidateProgram; - var _emscripten_glVertexAttrib2fv=env._emscripten_glVertexAttrib2fv; - var _glViewport=env._glViewport; - var _emscripten_glUniform4iv=env._emscripten_glUniform4iv; - var _emscripten_glGetTexParameteriv=env._emscripten_glGetTexParameteriv; - var ___setErrNo=env.___setErrNo; - var _eglGetProcAddress=env._eglGetProcAddress; - var _emscripten_glBindAttribLocation=env._emscripten_glBindAttribLocation; - var _glDeleteTextures=env._glDeleteTextures; - var _glDepthFunc=env._glDepthFunc; - var _emscripten_glClientActiveTexture=env._emscripten_glClientActiveTexture; - var _emscripten_glVertexAttrib2f=env._emscripten_glVertexAttrib2f; - var _emscripten_glFlush=env._emscripten_glFlush; - var _emscripten_glCheckFramebufferStatus=env._emscripten_glCheckFramebufferStatus; - var _emscripten_glGenerateMipmap=env._emscripten_glGenerateMipmap; - var _emscripten_glGetError=env._emscripten_glGetError; - var _emscripten_glClearDepthf=env._emscripten_glClearDepthf; - var _emscripten_glBufferData=env._emscripten_glBufferData; - var _emscripten_glUniform3i=env._emscripten_glUniform3i; - var _emscripten_glRotatef=env._emscripten_glRotatef; - var _emscripten_glDeleteShader=env._emscripten_glDeleteShader; - var _glEnable=env._glEnable; - var _glGenTextures=env._glGenTextures; - var _emscripten_glMatrixMode=env._emscripten_glMatrixMode; - var _glGetString=env._glGetString; - var _emscripten_glClearStencil=env._emscripten_glClearStencil; - var _emscripten_glGetUniformLocation=env._emscripten_glGetUniformLocation; - var emscriptenWebGLGet=env.emscriptenWebGLGet; - var _emscripten_glEnableVertexAttribArray=env._emscripten_glEnableVertexAttribArray; - var _emscripten_glGetAttribLocation=env._emscripten_glGetAttribLocation; - var _emscripten_get_now=env._emscripten_get_now; - var _emscripten_glNormalPointer=env._emscripten_glNormalPointer; - var _glAttachShader=env._glAttachShader; - var _emscripten_glTexCoordPointer=env._emscripten_glTexCoordPointer; - var _emscripten_glEnable=env._emscripten_glEnable; - var _glCreateProgram=env._glCreateProgram; - var _glUniformMatrix4fv=env._glUniformMatrix4fv; - var _emscripten_glClearDepth=env._emscripten_glClearDepth; - var ___lock=env.___lock; - var emscriptenWebGLGetTexPixelData=env.emscriptenWebGLGetTexPixelData; - var ___syscall6=env.___syscall6; - var _emscripten_glIsBuffer=env._emscripten_glIsBuffer; - var _emscripten_glVertexAttrib3f=env._emscripten_glVertexAttrib3f; - var _time=env._time; - var ___syscall146=env.___syscall146; - var _glfwSetMouseButtonCallback=env._glfwSetMouseButtonCallback; - var _emscripten_glBlendEquationSeparate=env._emscripten_glBlendEquationSeparate; - var _exit=env._exit; - var _emscripten_glEnableClientState=env._emscripten_glEnableClientState; - var _emscripten_glUniform4i=env._emscripten_glUniform4i; - var _emscripten_glDrawRangeElements=env._emscripten_glDrawRangeElements; - var _glCullFace=env._glCullFace; - var _emscripten_glGetPointerv=env._emscripten_glGetPointerv; - var _emscripten_set_keypress_callback=env._emscripten_set_keypress_callback; - var __emscripten_sample_gamepad_data=env.__emscripten_sample_gamepad_data; - var _emscripten_get_gamepad_status=env._emscripten_get_gamepad_status; - var _emscripten_glUniform4f=env._emscripten_glUniform4f; - var _emscripten_glUniform2fv=env._emscripten_glUniform2fv; - var _glfwGetVideoModes=env._glfwGetVideoModes; - var _emscripten_set_click_callback=env._emscripten_set_click_callback; - var _emscripten_glFinish=env._emscripten_glFinish; - var _emscripten_glShaderBinary=env._emscripten_glShaderBinary; - var _emscripten_glDrawElements=env._emscripten_glDrawElements; - var _emscripten_glBlendFunc=env._emscripten_glBlendFunc; - var _emscripten_get_num_gamepads=env._emscripten_get_num_gamepads; - var _glCompressedTexImage2D=env._glCompressedTexImage2D; - var _emscripten_glUniform1iv=env._emscripten_glUniform1iv; - var _emscripten_glGetVertexAttribPointerv=env._emscripten_glGetVertexAttribPointerv; - var _glClearDepthf=env._glClearDepthf; - var _emscripten_glCompressedTexSubImage2D=env._emscripten_glCompressedTexSubImage2D; - var emscriptenWebGLGetUniform=env.emscriptenWebGLGetUniform; - var _emscripten_glGenRenderbuffers=env._emscripten_glGenRenderbuffers; - var _emscripten_glDeleteVertexArrays=env._emscripten_glDeleteVertexArrays; - var _glfwSetWindowShouldClose=env._glfwSetWindowShouldClose; - var _emscripten_glUniform1fv=env._emscripten_glUniform1fv; - var _emscripten_glGetActiveUniform=env._emscripten_glGetActiveUniform; - var _glBindTexture=env._glBindTexture; - var _emscripten_glUniform3iv=env._emscripten_glUniform3iv; - var _emscripten_glUniform2iv=env._emscripten_glUniform2iv; - var _emscripten_glHint=env._emscripten_glHint; - var _glfwSetCharCallback=env._glfwSetCharCallback; - var emscriptenWebGLGetVertexAttrib=env.emscriptenWebGLGetVertexAttrib; - var _glGetFloatv=env._glGetFloatv; - var _emscripten_glDeleteProgram=env._emscripten_glDeleteProgram; - var _emscripten_glDeleteRenderbuffers=env._emscripten_glDeleteRenderbuffers; - var _emscripten_glDrawElementsInstanced=env._emscripten_glDrawElementsInstanced; - var _emscripten_glVertexAttrib4f=env._emscripten_glVertexAttrib4f; - var _glDrawArrays=env._glDrawArrays; - var _emscripten_glTexSubImage2D=env._emscripten_glTexSubImage2D; - var _emscripten_memcpy_big=env._emscripten_memcpy_big; - var _emscripten_glPixelStorei=env._emscripten_glPixelStorei; - var _glCompileShader=env._glCompileShader; - var _emscripten_get_pointerlock_status=env._emscripten_get_pointerlock_status; - var _emscripten_glUniformMatrix3fv=env._emscripten_glUniformMatrix3fv; - var _emscripten_glColorPointer=env._emscripten_glColorPointer; - var _emscripten_glGetBufferParameteriv=env._emscripten_glGetBufferParameteriv; - var _glActiveTexture=env._glActiveTexture; - var _emscripten_request_pointerlock=env._emscripten_request_pointerlock; - var _emscripten_set_gamepaddisconnected_callback=env._emscripten_set_gamepaddisconnected_callback; - var _emscripten_asm_const_iii=env._emscripten_asm_const_iii; - var _emscripten_glDepthMask=env._emscripten_glDepthMask; - var _glfwSetWindowIconifyCallback=env._glfwSetWindowIconifyCallback; - var _emscripten_glDrawBuffers=env._emscripten_glDrawBuffers; - var _glfwTerminate=env._glfwTerminate; - var _glFrontFace=env._glFrontFace; - var _emscripten_glGetObjectParameterivARB=env._emscripten_glGetObjectParameterivARB; - var _emscripten_exit_pointerlock=env._emscripten_exit_pointerlock; - var _glfwSwapInterval=env._glfwSwapInterval; - var _glUniform1i=env._glUniform1i; - var _glEnableVertexAttribArray=env._glEnableVertexAttribArray; - var _emscripten_glStencilFunc=env._emscripten_glStencilFunc; - var _abort=env._abort; - var _emscripten_glGetUniformiv=env._emscripten_glGetUniformiv; - var _glDeleteBuffers=env._glDeleteBuffers; - var _glBufferData=env._glBufferData; - var _glTexImage2D=env._glTexImage2D; - var _emscripten_glGetShaderiv=env._emscripten_glGetShaderiv; - var _glfwSetKeyCallback=env._glfwSetKeyCallback; - var _emscripten_glGenFramebuffers=env._emscripten_glGenFramebuffers; - var _emscripten_glUniformMatrix4fv=env._emscripten_glUniformMatrix4fv; - var _emscripten_glLoadIdentity=env._emscripten_glLoadIdentity; - var _glDeleteShader=env._glDeleteShader; - var _emscripten_glUniform1f=env._emscripten_glUniform1f; - var _glGetProgramiv=env._glGetProgramiv; - var _emscripten_glBindFramebuffer=env._emscripten_glBindFramebuffer; - var _emscripten_glIsRenderbuffer=env._emscripten_glIsRenderbuffer; - var _glfwGetTime=env._glfwGetTime; - var _emscripten_glRenderbufferStorage=env._emscripten_glRenderbufferStorage; - var _emscripten_set_gamepadconnected_callback=env._emscripten_set_gamepadconnected_callback; - var _emscripten_glGetVertexAttribiv=env._emscripten_glGetVertexAttribiv; - var _emscripten_glBindVertexArray=env._emscripten_glBindVertexArray; - var _emscripten_glDrawArraysInstanced=env._emscripten_glDrawArraysInstanced; - var _emscripten_set_touchcancel_callback=env._emscripten_set_touchcancel_callback; - var _emscripten_glCreateShader=env._emscripten_glCreateShader; - var _emscripten_glStencilMask=env._emscripten_glStencilMask; - var _emscripten_glDeleteTextures=env._emscripten_glDeleteTextures; - var _emscripten_glBindRenderbuffer=env._emscripten_glBindRenderbuffer; - var _glfwGetPrimaryMonitor=env._glfwGetPrimaryMonitor; - var _glLinkProgram=env._glLinkProgram; - var _emscripten_glVertexAttribDivisor=env._emscripten_glVertexAttribDivisor; - var _emscripten_set_touchend_callback=env._emscripten_set_touchend_callback; - var _emscripten_glGetUniformfv=env._emscripten_glGetUniformfv; - var _emscripten_glGetVertexAttribfv=env._emscripten_glGetVertexAttribfv; - var _emscripten_glGetRenderbufferParameteriv=env._emscripten_glGetRenderbufferParameteriv; - var _emscripten_glDeleteFramebuffers=env._emscripten_glDeleteFramebuffers; - var _glGetShaderiv=env._glGetShaderiv; - var _emscripten_glVertexAttrib3fv=env._emscripten_glVertexAttrib3fv; - var _glGetUniformLocation=env._glGetUniformLocation; - var _emscripten_glGetInfoLogARB=env._emscripten_glGetInfoLogARB; - var _emscripten_glCompileShader=env._emscripten_glCompileShader; - var _glClear=env._glClear; - var _emscripten_glFrustum=env._emscripten_glFrustum; - var _emscripten_glDisable=env._emscripten_glDisable; - var _emscripten_glDepthRangef=env._emscripten_glDepthRangef; - var __exit=env.__exit; - var _emscripten_glLineWidth=env._emscripten_glLineWidth; - var _emscripten_glUniform3f=env._emscripten_glUniform3f; - var _emscripten_glGetShaderInfoLog=env._emscripten_glGetShaderInfoLog; - var _emscripten_glStencilOp=env._emscripten_glStencilOp; - var _glBindAttribLocation=env._glBindAttribLocation; - var _glPixelStorei=env._glPixelStorei; - var _emscripten_glColorMask=env._emscripten_glColorMask; - var _emscripten_glLinkProgram=env._emscripten_glLinkProgram; - var _emscripten_glBlendEquation=env._emscripten_glBlendEquation; - var _emscripten_glIsTexture=env._emscripten_glIsTexture; - var _emscripten_glGetProgramiv=env._emscripten_glGetProgramiv; - var _emscripten_glVertexAttrib1fv=env._emscripten_glVertexAttrib1fv; - var _emscripten_glBindTexture=env._emscripten_glBindTexture; - var _emscripten_glGetFramebufferAttachmentParameteriv=env._emscripten_glGetFramebufferAttachmentParameteriv; - var _glfwGetCursorPos=env._glfwGetCursorPos; - var _emscripten_glActiveTexture=env._emscripten_glActiveTexture; - var _emscripten_glDeleteBuffers=env._emscripten_glDeleteBuffers; - var ___syscall54=env.___syscall54; - var ___unlock=env.___unlock; - var _emscripten_glBufferSubData=env._emscripten_glBufferSubData; - var _glfwSwapBuffers=env._glfwSwapBuffers; - var _emscripten_glDepthRange=env._emscripten_glDepthRange; - var _emscripten_set_main_loop=env._emscripten_set_main_loop; - var _emscripten_glGetProgramInfoLog=env._emscripten_glGetProgramInfoLog; - var _glfwWindowHint=env._glfwWindowHint; - var _emscripten_glIsShader=env._emscripten_glIsShader; - var _emscripten_glUniform4fv=env._emscripten_glUniform4fv; - var _emscripten_glGenVertexArrays=env._emscripten_glGenVertexArrays; - var _emscripten_glDrawArrays=env._emscripten_glDrawArrays; - var _emscripten_glCompressedTexImage2D=env._emscripten_glCompressedTexImage2D; - var _emscripten_glClearColor=env._emscripten_glClearColor; - var _emscripten_glCreateProgram=env._emscripten_glCreateProgram; - var _emscripten_glCopyTexSubImage2D=env._emscripten_glCopyTexSubImage2D; - var _glTexParameteri=env._glTexParameteri; - var _emscripten_glBindBuffer=env._emscripten_glBindBuffer; - var _emscripten_glGetFloatv=env._emscripten_glGetFloatv; - var _emscripten_glDetachShader=env._emscripten_glDetachShader; - var _glClearColor=env._glClearColor; - var _glfwSetCursorPosCallback=env._glfwSetCursorPosCallback; - var _glfwSetCursorEnterCallback=env._glfwSetCursorEnterCallback; - var _emscripten_glCopyTexImage2D=env._emscripten_glCopyTexImage2D; - var _emscripten_glTexImage2D=env._emscripten_glTexImage2D; - var tempFloat = 0.0; - -// EMSCRIPTEN_START_FUNCS - -function stackAlloc(size) { - size = size|0; - var ret = 0; - ret = STACKTOP; - STACKTOP = (STACKTOP + size)|0; - STACKTOP = (STACKTOP + 15)&-16; - if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0); - - return ret|0; -} -function stackSave() { - return STACKTOP|0; -} -function stackRestore(top) { - top = top|0; - STACKTOP = top; -} -function establishStackSpace(stackBase, stackMax) { - stackBase = stackBase|0; - stackMax = stackMax|0; - STACKTOP = stackBase; - STACK_MAX = stackMax; -} - -function setThrew(threw, value) { - threw = threw|0; - value = value|0; - if ((__THREW__|0) == 0) { - __THREW__ = threw; - threwValue = value; - } -} - -function setTempRet0(value) { - value = value|0; - tempRet0 = value; -} -function getTempRet0() { - return tempRet0|0; -} - -function _main() { - var $0 = 0, $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[2]|0; - $1 = HEAP32[3]|0; - _InitWindow($0,$1,3484); - HEAPF32[3517] = 0.0; - HEAPF32[(14072)>>2] = 10.0; - HEAPF32[(14076)>>2] = 10.0; - ;HEAP32[(14080)>>2]=0|0;HEAP32[(14080)+4>>2]=0|0;HEAP32[(14080)+8>>2]=0|0;HEAP32[(14080)+12>>2]=0|0; - HEAPF32[(14096)>>2] = 1.0; - HEAPF32[(14100)>>2] = 0.0; - HEAPF32[(14104)>>2] = 45.0; - _emscripten_set_main_loop((1|0),0,1); - _CloseWindow(); - return 0; -} -function _UpdateDrawFrame() { - var $$byval_copy4 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cubePosition$byval_copy2 = 0, dest = 0, label = 0; - var sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $$byval_copy4 = sp + 16|0; - $cubePosition$byval_copy2 = sp; - $0 = sp + 68|0; - $1 = sp + 64|0; - $2 = sp + 60|0; - $3 = sp + 56|0; - _BeginDrawing(); - HEAP8[$0>>0] = -11; - $4 = ((($0)) + 1|0); - HEAP8[$4>>0] = -11; - $5 = ((($0)) + 2|0); - HEAP8[$5>>0] = -11; - $6 = ((($0)) + 3|0); - HEAP8[$6>>0] = -1; - ;HEAP8[$$byval_copy4>>0]=HEAP8[$0>>0]|0;HEAP8[$$byval_copy4+1>>0]=HEAP8[$0+1>>0]|0;HEAP8[$$byval_copy4+2>>0]=HEAP8[$0+2>>0]|0;HEAP8[$$byval_copy4+3>>0]=HEAP8[$0+3>>0]|0; - _ClearBackground($$byval_copy4); - dest=$$byval_copy4; src=14068; stop=dest+40|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _Begin3dMode($$byval_copy4); - HEAP8[$1>>0] = -26; - $7 = ((($1)) + 1|0); - HEAP8[$7>>0] = 41; - $8 = ((($1)) + 2|0); - HEAP8[$8>>0] = 55; - $9 = ((($1)) + 3|0); - HEAP8[$9>>0] = -1; - ;HEAP32[$cubePosition$byval_copy2>>2]=HEAP32[14056>>2]|0;HEAP32[$cubePosition$byval_copy2+4>>2]=HEAP32[14056+4>>2]|0;HEAP32[$cubePosition$byval_copy2+8>>2]=HEAP32[14056+8>>2]|0; - ;HEAP8[$$byval_copy4>>0]=HEAP8[$1>>0]|0;HEAP8[$$byval_copy4+1>>0]=HEAP8[$1+1>>0]|0;HEAP8[$$byval_copy4+2>>0]=HEAP8[$1+2>>0]|0;HEAP8[$$byval_copy4+3>>0]=HEAP8[$1+3>>0]|0; - _DrawCube($cubePosition$byval_copy2,2.0,2.0,2.0,$$byval_copy4); - HEAP8[$2>>0] = -66; - $10 = ((($2)) + 1|0); - HEAP8[$10>>0] = 33; - $11 = ((($2)) + 2|0); - HEAP8[$11>>0] = 55; - $12 = ((($2)) + 3|0); - HEAP8[$12>>0] = -1; - ;HEAP32[$cubePosition$byval_copy2>>2]=HEAP32[14056>>2]|0;HEAP32[$cubePosition$byval_copy2+4>>2]=HEAP32[14056+4>>2]|0;HEAP32[$cubePosition$byval_copy2+8>>2]=HEAP32[14056+8>>2]|0; - ;HEAP8[$$byval_copy4>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy4+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy4+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy4+3>>0]=HEAP8[$2+3>>0]|0; - _DrawCubeWires($cubePosition$byval_copy2,2.0,2.0,2.0,$$byval_copy4); - _DrawGrid(10,1.0); - _End3dMode(); - HEAP8[$3>>0] = 80; - $13 = ((($3)) + 1|0); - HEAP8[$13>>0] = 80; - $14 = ((($3)) + 2|0); - HEAP8[$14>>0] = 80; - $15 = ((($3)) + 3|0); - HEAP8[$15>>0] = -1; - ;HEAP8[$$byval_copy4>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy4+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy4+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy4+3>>0]=HEAP8[$3+3>>0]|0; - _DrawText(3516,10,40,20,$$byval_copy4); - _DrawFPS(10,10); - _EndDrawing(); - STACKTOP = sp;return; -} -function _TraceLog($0,$1,$varargs) { - $0 = $0|0; - $1 = $1|0; - $varargs = $varargs|0; - var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $endptr = 0, $strlen = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = sp; - switch ($0|0) { - case 0: { - ;HEAP8[13784>>0]=HEAP8[3548>>0]|0;HEAP8[13784+1>>0]=HEAP8[3548+1>>0]|0;HEAP8[13784+2>>0]=HEAP8[3548+2>>0]|0;HEAP8[13784+3>>0]=HEAP8[3548+3>>0]|0;HEAP8[13784+4>>0]=HEAP8[3548+4>>0]|0;HEAP8[13784+5>>0]=HEAP8[3548+5>>0]|0;HEAP8[13784+6>>0]=HEAP8[3548+6>>0]|0; - break; - } - case 2: { - $3 = 13784; - $4 = $3; - HEAP32[$4>>2] = 1330795077; - $5 = (($3) + 4)|0; - $6 = $5; - HEAP32[$6>>2] = 2112082; - break; - } - case 1: { - dest=13784; src=3555; stop=dest+10|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); - break; - } - case 3: { - $7 = 13784; - $8 = $7; - HEAP32[$8>>2] = 1430406468; - $9 = (($7) + 4)|0; - $10 = $9; - HEAP32[$10>>2] = 2112071; - break; - } - default: { - } - } - (_strcat(13784,$1)|0); - $strlen = (_strlen(13784)|0); - $endptr = (13784 + ($strlen)|0); - HEAP8[$endptr>>0]=10&255;HEAP8[$endptr+1>>0]=10>>8; - HEAP32[$2>>2] = $varargs; - $11 = ($0|0)==(3); - if ($11) { - STACKTOP = sp;return; - } - (_vprintf(13784,$2)|0); - $12 = ($0|0)==(2); - if ($12) { - _exit(1); - // unreachable; - } else { - STACKTOP = sp;return; - } -} -function _LoadDefaultFont() { - var $$ = 0, $$0101 = 0, $$090100 = 0, $$09299 = 0, $$095104 = 0, $$096103 = 0, $$097102 = 0, $$191 = 0, $$193 = 0, $$byval_copy1 = 0, $$lcssa = 0, $$sroa$0$0$$sroa_idx = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; - var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $$byval_copy1 = sp + 44|0; - $vararg_buffer = sp; - $0 = sp + 4|0; - $1 = sp + 24|0; - HEAP32[(14132)>>2] = 224; - $2 = (_malloc(65536)|0); - _memset(($2|0),0,65536)|0; - $$095104 = 0;$$096103 = 0; - while(1) { - $3 = (16 + ($$095104<<2)|0); - $4 = HEAP32[$3>>2]|0; - $$097102 = 31; - while(1) { - $16 = 1 << $$097102; - $17 = $4 & $16; - $18 = ($17|0)==(0); - if (!($18)) { - $19 = (($$097102) + ($$096103))|0; - $$sroa$0$0$$sroa_idx = (($2) + ($19<<2)|0); - HEAP8[$$sroa$0$0$$sroa_idx>>0]=-1&255;HEAP8[$$sroa$0$0$$sroa_idx+1>>0]=(-1>>8)&255;HEAP8[$$sroa$0$0$$sroa_idx+2>>0]=(-1>>16)&255;HEAP8[$$sroa$0$0$$sroa_idx+3>>0]=-1>>24; - } - $20 = (($$097102) + -1)|0; - $21 = ($$097102|0)>(0); - if ($21) { - $$097102 = $20; - } else { - break; - } - } - $12 = (($$095104) + 1)|0; - $13 = ($$095104|0)>(511); - $$ = $13 ? 0 : $12; - $14 = (($$096103) + 32)|0; - $15 = ($14|0)<(16384); - if ($15) { - $$095104 = $$;$$096103 = $14; - } else { - break; - } - } - _LoadImageEx($0,$2,128,128); - _ImageFormat($0,2); - _free($2); - ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; - _LoadTextureFromImage($1,$$byval_copy1); - ;HEAP32[14108>>2]=HEAP32[$1>>2]|0;HEAP32[14108+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[14108+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[14108+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[14108+16>>2]=HEAP32[$1+16>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; - _UnloadImage($$byval_copy1); - $5 = HEAP32[(14132)>>2]|0; - $6 = $5 << 5; - $7 = (_malloc($6)|0); - HEAP32[(14136)>>2] = $7; - $8 = ($5|0)>(0); - if (!($8)) { - $$lcssa = $7; - $22 = ((($$lcssa)) + 16|0); - $23 = HEAP32[$22>>2]|0; - HEAP32[(14128)>>2] = $23; - $24 = HEAP32[3527]|0; - HEAP32[$vararg_buffer>>2] = $24; - _TraceLog(0,3565,$vararg_buffer); - STACKTOP = sp;return; - } - $9 = HEAP32[(14112)>>2]|0; - $10 = HEAP32[(14132)>>2]|0; - $11 = HEAP32[(14136)>>2]|0; - $$0101 = 0;$$090100 = 1;$$09299 = 0;$27 = $7; - while(1) { - $25 = (($$0101) + 32)|0; - $26 = (($27) + ($$0101<<5)|0); - HEAP32[$26>>2] = $25; - $28 = (((($27) + ($$0101<<5)|0)) + 4|0); - HEAP32[$28>>2] = $$090100; - $29 = ($$09299*11)|0; - $30 = (($29) + 1)|0; - $31 = (((($27) + ($$0101<<5)|0)) + 8|0); - HEAP32[$31>>2] = $30; - $32 = (2064 + ($$0101<<2)|0); - $33 = HEAP32[$32>>2]|0; - $34 = (((($27) + ($$0101<<5)|0)) + 12|0); - HEAP32[$34>>2] = $33; - $35 = (((($27) + ($$0101<<5)|0)) + 16|0); - HEAP32[$35>>2] = 10; - $36 = (($$090100) + 1)|0; - $37 = (($36) + ($33))|0; - $38 = ($37|0)<($9|0); - $39 = (($$09299) + 1)|0; - if ($38) { - $$191 = $37;$$193 = $$09299; - } else { - $40 = ($39*11)|0; - $41 = (($40) + 1)|0; - $42 = (($33) + 2)|0; - HEAP32[$28>>2] = 1; - HEAP32[$31>>2] = $41; - $$191 = $42;$$193 = $39; - } - $43 = (((($27) + ($$0101<<5)|0)) + 20|0); - HEAP32[$43>>2] = 0; - $44 = (((($27) + ($$0101<<5)|0)) + 24|0); - HEAP32[$44>>2] = 0; - $45 = (((($27) + ($$0101<<5)|0)) + 28|0); - HEAP32[$45>>2] = 0; - $46 = (($$0101) + 1)|0; - $47 = ($46|0)<($10|0); - if ($47) { - $$0101 = $46;$$090100 = $$191;$$09299 = $$193;$27 = $11; - } else { - $$lcssa = $11; - break; - } - } - $22 = ((($$lcssa)) + 16|0); - $23 = HEAP32[$22>>2]|0; - HEAP32[(14128)>>2] = $23; - $24 = HEAP32[3527]|0; - HEAP32[$vararg_buffer>>2] = $24; - _TraceLog(0,3565,$vararg_buffer); - STACKTOP = sp;return; -} -function _LoadImageEx($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$03334 = 0, $$035 = 0, $$sroa$12$0$$sroa_idx21 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$9$0$$sroa_idx18 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = $2 << 2; - $5 = Math_imul($4, $3)|0; - $6 = (_malloc($5)|0); - $7 = ($5|0)>(0); - if ($7) { - $8 = (($5) + -1)|0; - $9 = $8 >>> 2; - $$03334 = 0;$$035 = 0; - while(1) { - $10 = (($1) + ($$03334<<2)|0); - $11 = HEAP8[$10>>0]|0; - $12 = (($6) + ($$035)|0); - HEAP8[$12>>0] = $11; - $13 = (((($1) + ($$03334<<2)|0)) + 1|0); - $14 = HEAP8[$13>>0]|0; - $15 = $$035 | 1; - $16 = (($6) + ($15)|0); - HEAP8[$16>>0] = $14; - $17 = (((($1) + ($$03334<<2)|0)) + 2|0); - $18 = HEAP8[$17>>0]|0; - $19 = $$035 | 2; - $20 = (($6) + ($19)|0); - HEAP8[$20>>0] = $18; - $21 = (((($1) + ($$03334<<2)|0)) + 3|0); - $22 = HEAP8[$21>>0]|0; - $23 = $$035 | 3; - $24 = (($6) + ($23)|0); - HEAP8[$24>>0] = $22; - $25 = (($$03334) + 1)|0; - $26 = (($$035) + 4)|0; - $exitcond = ($$03334|0)==($9|0); - if ($exitcond) { - break; - } else { - $$03334 = $25;$$035 = $26; - } - } - } - HEAP32[$0>>2] = $6; - $$sroa$9$0$$sroa_idx18 = ((($0)) + 4|0); - HEAP32[$$sroa$9$0$$sroa_idx18>>2] = $2; - $$sroa$12$0$$sroa_idx21 = ((($0)) + 8|0); - HEAP32[$$sroa$12$0$$sroa_idx21>>2] = $3; - $$sroa$15$0$$sroa_idx24 = ((($0)) + 12|0); - HEAP32[$$sroa$15$0$$sroa_idx24>>2] = 1; - $$sroa$16$0$$sroa_idx26 = ((($0)) + 16|0); - HEAP32[$$sroa$16$0$$sroa_idx26>>2] = 7; - return; -} -function _ImageFormat($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0166199 = 0, $$0167197 = 0, $$0168195 = 0, $$0169192 = 0, $$0170190 = 0, $$0171188 = 0, $$0172189 = 0, $$0202 = 0, $$1194 = 0, $$2201 = 0, $$byval_copy = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0, $106 = 0, $107 = 0; - var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0; - var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0; - var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0; - var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $178 = 0, $179 = 0, $18 = 0; - var $180 = 0, $181 = 0.0, $182 = 0.0, $183 = 0.0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0.0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0; - var $199 = 0, $2 = 0, $20 = 0.0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0; - var $216 = 0, $217 = 0, $218 = 0.0, $219 = 0.0, $22 = 0, $220 = 0.0, $221 = 0, $222 = 0, $223 = 0, $224 = 0.0, $225 = 0.0, $226 = 0.0, $227 = 0, $228 = 0, $229 = 0, $23 = 0.0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0; - var $234 = 0, $235 = 0, $236 = 0.0, $237 = 0.0, $238 = 0.0, $239 = 0, $24 = 0.0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0.0, $250 = 0, $251 = 0; - var $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0; - var $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0.0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0; - var $289 = 0, $29 = 0.0, $290 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0; - var $63 = 0.0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0; - var $or$cond = 0, $roundf = 0.0, $roundf173 = 0.0, $roundf174 = 0.0, $roundf175 = 0.0, $roundf176 = 0.0, $roundf177 = 0.0, $roundf178 = 0.0, $roundf179 = 0.0, $roundf180 = 0.0, $roundf181 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $$byval_copy = sp + 4|0; - $vararg_buffer = sp; - $2 = ((($0)) + 16|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)==($1|0); - if ($4) { - STACKTOP = sp;return; - } - $5 = ($3|0)<(9); - $6 = ($1|0)<(9); - $or$cond = $6 & $5; - if (!($or$cond)) { - _TraceLog(1,3991,$vararg_buffer); - STACKTOP = sp;return; - } - ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; - $7 = (_GetImageData($$byval_copy)|0); - $8 = HEAP32[$0>>2]|0; - _free($8); - HEAP32[$2>>2] = $1; - switch ($1|0) { - case 1: { - $9 = ((($0)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($0)) + 8|0); - $12 = HEAP32[$11>>2]|0; - $13 = Math_imul($12, $10)|0; - $14 = (_malloc($13)|0); - HEAP32[$0>>2] = $14; - $15 = Math_imul($12, $10)|0; - $16 = ($15|0)>(0); - if ($16) { - $$0171188 = 0; - while(1) { - $17 = (($7) + ($$0171188<<2)|0); - $18 = HEAP8[$17>>0]|0; - $19 = (+($18&255)); - $20 = $19 * 0.29899999499320984; - $21 = (((($7) + ($$0171188<<2)|0)) + 1|0); - $22 = HEAP8[$21>>0]|0; - $23 = (+($22&255)); - $24 = $23 * 0.58700001239776611; - $25 = $20 + $24; - $26 = (((($7) + ($$0171188<<2)|0)) + 2|0); - $27 = HEAP8[$26>>0]|0; - $28 = (+($27&255)); - $29 = $28 * 0.11400000005960464; - $30 = $25 + $29; - $31 = (~~(($30))&255); - $32 = HEAP32[$0>>2]|0; - $33 = (($32) + ($$0171188)|0); - HEAP8[$33>>0] = $31; - $34 = (($$0171188) + 1)|0; - $35 = HEAP32[$9>>2]|0; - $36 = HEAP32[$11>>2]|0; - $37 = Math_imul($36, $35)|0; - $38 = ($34|0)<($37|0); - if ($38) { - $$0171188 = $34; - } else { - break; - } - } - } - break; - } - case 2: { - $39 = ((($0)) + 4|0); - $40 = HEAP32[$39>>2]|0; - $41 = ((($0)) + 8|0); - $42 = HEAP32[$41>>2]|0; - $43 = $40 << 1; - $44 = Math_imul($43, $42)|0; - $45 = (_malloc($44)|0); - HEAP32[$0>>2] = $45; - $46 = HEAP32[$39>>2]|0; - $47 = $46 << 1; - $48 = Math_imul($47, $42)|0; - $49 = ($48|0)>(0); - if ($49) { - $$0170190 = 0;$$0172189 = 0; - while(1) { - $50 = (($7) + ($$0172189<<2)|0); - $51 = HEAP8[$50>>0]|0; - $52 = (+($51&255)); - $53 = $52 * 0.29899999499320984; - $54 = (((($7) + ($$0172189<<2)|0)) + 1|0); - $55 = HEAP8[$54>>0]|0; - $56 = (+($55&255)); - $57 = $56 * 0.58700001239776611; - $58 = $53 + $57; - $59 = (((($7) + ($$0172189<<2)|0)) + 2|0); - $60 = HEAP8[$59>>0]|0; - $61 = (+($60&255)); - $62 = $61 * 0.11400000005960464; - $63 = $58 + $62; - $64 = (~~(($63))&255); - $65 = HEAP32[$0>>2]|0; - $66 = (($65) + ($$0170190)|0); - HEAP8[$66>>0] = $64; - $67 = (((($7) + ($$0172189<<2)|0)) + 3|0); - $68 = HEAP8[$67>>0]|0; - $69 = HEAP32[$0>>2]|0; - $70 = $$0170190 | 1; - $71 = (($69) + ($70)|0); - HEAP8[$71>>0] = $68; - $72 = (($$0172189) + 1)|0; - $73 = (($$0170190) + 2)|0; - $74 = HEAP32[$39>>2]|0; - $75 = HEAP32[$41>>2]|0; - $76 = $74 << 1; - $77 = Math_imul($76, $75)|0; - $78 = ($73|0)<($77|0); - if ($78) { - $$0170190 = $73;$$0172189 = $72; - } else { - break; - } - } - } - break; - } - case 3: { - $79 = ((($0)) + 4|0); - $80 = HEAP32[$79>>2]|0; - $81 = ((($0)) + 8|0); - $82 = HEAP32[$81>>2]|0; - $83 = $80 << 1; - $84 = Math_imul($83, $82)|0; - $85 = (_malloc($84)|0); - HEAP32[$0>>2] = $85; - $86 = HEAP32[$79>>2]|0; - $87 = Math_imul($82, $86)|0; - $88 = ($87|0)>(0); - if ($88) { - $89 = HEAP8[$7>>0]|0; - $90 = (+($89&255)); - $91 = $90 * 31.0; - $92 = $91 / 255.0; - $roundf179 = (+_roundf((+$92))); - $93 = (~~(($roundf179))&255); - $94 = ((($7)) + 1|0); - $95 = HEAP8[$94>>0]|0; - $96 = (+($95&255)); - $97 = $96 * 63.0; - $98 = $97 / 255.0; - $roundf180 = (+_roundf((+$98))); - $99 = (~~(($roundf180))&255); - $100 = ((($7)) + 2|0); - $101 = HEAP8[$100>>0]|0; - $102 = (+($101&255)); - $103 = $102 * 31.0; - $104 = $103 / 255.0; - $roundf181 = (+_roundf((+$104))); - $105 = (~~(($roundf181))&255); - $106 = $93&255; - $107 = $106 << 11; - $108 = $99&255; - $109 = $108 << 5; - $110 = $109 | $107; - $111 = $105&255; - $112 = $110 | $111; - $113 = $112&65535; - $114 = HEAP32[$0>>2]|0; - $115 = HEAP32[$79>>2]|0; - $116 = HEAP32[$81>>2]|0; - $117 = Math_imul($116, $115)|0; - $$0169192 = 0; - while(1) { - $118 = (($114) + ($$0169192<<1)|0); - HEAP16[$118>>1] = $113; - $119 = (($$0169192) + 1)|0; - $120 = ($119|0)<($117|0); - if ($120) { - $$0169192 = $119; - } else { - break; - } - } - } - break; - } - case 4: { - $121 = ((($0)) + 4|0); - $122 = HEAP32[$121>>2]|0; - $123 = ((($0)) + 8|0); - $124 = HEAP32[$123>>2]|0; - $125 = ($122*3)|0; - $126 = Math_imul($125, $124)|0; - $127 = (_malloc($126)|0); - HEAP32[$0>>2] = $127; - $128 = HEAP32[$121>>2]|0; - $129 = ($128*3)|0; - $130 = Math_imul($129, $124)|0; - $131 = ($130|0)>(0); - if ($131) { - $$0168195 = 0;$$1194 = 0; - while(1) { - $132 = (($7) + ($$1194<<2)|0); - $133 = HEAP8[$132>>0]|0; - $134 = HEAP32[$0>>2]|0; - $135 = (($134) + ($$0168195)|0); - HEAP8[$135>>0] = $133; - $136 = (((($7) + ($$1194<<2)|0)) + 1|0); - $137 = HEAP8[$136>>0]|0; - $138 = HEAP32[$0>>2]|0; - $139 = (($$0168195) + 1)|0; - $140 = (($138) + ($139)|0); - HEAP8[$140>>0] = $137; - $141 = (((($7) + ($$1194<<2)|0)) + 2|0); - $142 = HEAP8[$141>>0]|0; - $143 = HEAP32[$0>>2]|0; - $144 = (($$0168195) + 2)|0; - $145 = (($143) + ($144)|0); - HEAP8[$145>>0] = $142; - $146 = (($$1194) + 1)|0; - $147 = (($$0168195) + 3)|0; - $148 = HEAP32[$121>>2]|0; - $149 = HEAP32[$123>>2]|0; - $150 = ($148*3)|0; - $151 = Math_imul($150, $149)|0; - $152 = ($147|0)<($151|0); - if ($152) { - $$0168195 = $147;$$1194 = $146; - } else { - break; - } - } - } - break; - } - case 5: { - $153 = ((($0)) + 4|0); - $154 = HEAP32[$153>>2]|0; - $155 = ((($0)) + 8|0); - $156 = HEAP32[$155>>2]|0; - $157 = $154 << 1; - $158 = Math_imul($157, $156)|0; - $159 = (_malloc($158)|0); - HEAP32[$0>>2] = $159; - $160 = HEAP32[$153>>2]|0; - $161 = Math_imul($156, $160)|0; - $162 = ($161|0)>(0); - if ($162) { - $163 = HEAP32[$0>>2]|0; - $164 = HEAP32[$153>>2]|0; - $165 = HEAP32[$155>>2]|0; - $166 = Math_imul($165, $164)|0; - $$0167197 = 0; - while(1) { - $167 = (($7) + ($$0167197<<2)|0); - $168 = HEAP8[$167>>0]|0; - $169 = (+($168&255)); - $170 = $169 * 31.0; - $171 = $170 / 255.0; - $roundf176 = (+_roundf((+$171))); - $172 = (~~(($roundf176))&255); - $173 = (((($7) + ($$0167197<<2)|0)) + 1|0); - $174 = HEAP8[$173>>0]|0; - $175 = (+($174&255)); - $176 = $175 * 31.0; - $177 = $176 / 255.0; - $roundf177 = (+_roundf((+$177))); - $178 = (~~(($roundf177))&255); - $179 = (((($7) + ($$0167197<<2)|0)) + 2|0); - $180 = HEAP8[$179>>0]|0; - $181 = (+($180&255)); - $182 = $181 * 31.0; - $183 = $182 / 255.0; - $roundf178 = (+_roundf((+$183))); - $184 = (~~(($roundf178))&255); - $185 = (((($7) + ($$0167197<<2)|0)) + 3|0); - $186 = HEAP8[$185>>0]|0; - $187 = ($186&255)>(50); - $188 = $172&255; - $189 = $188 << 11; - $190 = $178&255; - $191 = $190 << 6; - $192 = $191 | $189; - $193 = $184&255; - $194 = $193 << 1; - $195 = $192 | $194; - $196 = $187&1; - $197 = $195 | $196; - $198 = $197&65535; - $199 = (($163) + ($$0167197<<1)|0); - HEAP16[$199>>1] = $198; - $200 = (($$0167197) + 1)|0; - $201 = ($200|0)<($166|0); - if ($201) { - $$0167197 = $200; - } else { - break; - } - } - } - break; - } - case 6: { - $202 = ((($0)) + 4|0); - $203 = HEAP32[$202>>2]|0; - $204 = ((($0)) + 8|0); - $205 = HEAP32[$204>>2]|0; - $206 = $203 << 1; - $207 = Math_imul($206, $205)|0; - $208 = (_malloc($207)|0); - HEAP32[$0>>2] = $208; - $209 = HEAP32[$202>>2]|0; - $210 = Math_imul($205, $209)|0; - $211 = ($210|0)>(0); - if ($211) { - $212 = HEAP32[$0>>2]|0; - $213 = HEAP32[$202>>2]|0; - $214 = HEAP32[$204>>2]|0; - $215 = Math_imul($214, $213)|0; - $$0166199 = 0; - while(1) { - $216 = (($7) + ($$0166199<<2)|0); - $217 = HEAP8[$216>>0]|0; - $218 = (+($217&255)); - $219 = $218 * 15.0; - $220 = $219 / 255.0; - $roundf = (+_roundf((+$220))); - $221 = (~~(($roundf))&255); - $222 = (((($7) + ($$0166199<<2)|0)) + 1|0); - $223 = HEAP8[$222>>0]|0; - $224 = (+($223&255)); - $225 = $224 * 15.0; - $226 = $225 / 255.0; - $roundf173 = (+_roundf((+$226))); - $227 = (~~(($roundf173))&255); - $228 = (((($7) + ($$0166199<<2)|0)) + 2|0); - $229 = HEAP8[$228>>0]|0; - $230 = (+($229&255)); - $231 = $230 * 15.0; - $232 = $231 / 255.0; - $roundf174 = (+_roundf((+$232))); - $233 = (~~(($roundf174))&255); - $234 = (((($7) + ($$0166199<<2)|0)) + 3|0); - $235 = HEAP8[$234>>0]|0; - $236 = (+($235&255)); - $237 = $236 * 15.0; - $238 = $237 / 255.0; - $roundf175 = (+_roundf((+$238))); - $239 = (~~(($roundf175))&255); - $240 = $221&255; - $241 = $240 << 12; - $242 = $227&255; - $243 = $242 << 8; - $244 = $243 | $241; - $245 = $233&255; - $246 = $245 << 4; - $247 = $244 | $246; - $248 = $239&255; - $249 = $247 | $248; - $250 = $249&65535; - $251 = (($212) + ($$0166199<<1)|0); - HEAP16[$251>>1] = $250; - $252 = (($$0166199) + 1)|0; - $253 = ($252|0)<($215|0); - if ($253) { - $$0166199 = $252; - } else { - break; - } - } - } - break; - } - case 7: { - $254 = ((($0)) + 4|0); - $255 = HEAP32[$254>>2]|0; - $256 = ((($0)) + 8|0); - $257 = HEAP32[$256>>2]|0; - $258 = $255 << 2; - $259 = Math_imul($258, $257)|0; - $260 = (_malloc($259)|0); - HEAP32[$0>>2] = $260; - $261 = HEAP32[$254>>2]|0; - $262 = $261 << 2; - $263 = Math_imul($262, $257)|0; - $264 = ($263|0)>(0); - if ($264) { - $$0202 = 0;$$2201 = 0; - while(1) { - $265 = (($7) + ($$2201<<2)|0); - $266 = HEAP8[$265>>0]|0; - $267 = HEAP32[$0>>2]|0; - $268 = (($267) + ($$0202)|0); - HEAP8[$268>>0] = $266; - $269 = (((($7) + ($$2201<<2)|0)) + 1|0); - $270 = HEAP8[$269>>0]|0; - $271 = HEAP32[$0>>2]|0; - $272 = $$0202 | 1; - $273 = (($271) + ($272)|0); - HEAP8[$273>>0] = $270; - $274 = (((($7) + ($$2201<<2)|0)) + 2|0); - $275 = HEAP8[$274>>0]|0; - $276 = HEAP32[$0>>2]|0; - $277 = $$0202 | 2; - $278 = (($276) + ($277)|0); - HEAP8[$278>>0] = $275; - $279 = (((($7) + ($$2201<<2)|0)) + 3|0); - $280 = HEAP8[$279>>0]|0; - $281 = HEAP32[$0>>2]|0; - $282 = $$0202 | 3; - $283 = (($281) + ($282)|0); - HEAP8[$283>>0] = $280; - $284 = (($$2201) + 1)|0; - $285 = (($$0202) + 4)|0; - $286 = HEAP32[$254>>2]|0; - $287 = HEAP32[$256>>2]|0; - $288 = $286 << 2; - $289 = Math_imul($288, $287)|0; - $290 = ($285|0)<($289|0); - if ($290) { - $$0202 = $285;$$2201 = $284; - } else { - break; - } - } - } - break; - } - default: { - } - } - _free($7); - STACKTOP = sp;return; -} -function _LoadTextureFromImage($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$sroa$10$0$$sroa_idx6 = 0, $$sroa$12$0$$sroa_idx8 = 0, $$sroa$6$0$$sroa_idx2 = 0, $$sroa$8$0$$sroa_idx4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0; - var $vararg_ptr4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $2 = HEAP32[$1>>2]|0; - $3 = ((($1)) + 4|0); - $4 = HEAP32[$3>>2]|0; - $5 = ((($1)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = ((($1)) + 16|0); - $8 = HEAP32[$7>>2]|0; - $9 = ((($1)) + 12|0); - $10 = HEAP32[$9>>2]|0; - $11 = (_rlLoadTexture($2,$4,$6,$8,$10)|0); - $12 = HEAP32[$3>>2]|0; - $13 = HEAP32[$5>>2]|0; - HEAP32[$vararg_buffer>>2] = $11; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $12; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $13; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $10; - $vararg_ptr4 = ((($vararg_buffer)) + 16|0); - HEAP32[$vararg_ptr4>>2] = $8; - _TraceLog(3,3610,$vararg_buffer); - HEAP32[$0>>2] = $11; - $$sroa$6$0$$sroa_idx2 = ((($0)) + 4|0); - HEAP32[$$sroa$6$0$$sroa_idx2>>2] = $12; - $$sroa$8$0$$sroa_idx4 = ((($0)) + 8|0); - HEAP32[$$sroa$8$0$$sroa_idx4>>2] = $13; - $$sroa$10$0$$sroa_idx6 = ((($0)) + 12|0); - HEAP32[$$sroa$10$0$$sroa_idx6>>2] = $10; - $$sroa$12$0$$sroa_idx8 = ((($0)) + 16|0); - HEAP32[$$sroa$12$0$$sroa_idx8>>2] = $8; - STACKTOP = sp;return; -} -function _UnloadImage($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - $2 = ($1|0)==(0|0); - if ($2) { - return; - } - _free($1); - return; -} -function _rlLoadTexture($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0 = 0, $$off = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond101 = 0, $or$cond7 = 0, $or$cond97 = 0, $or$cond99 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer15 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0; - var $vararg_buffer9 = 0, $vararg_ptr13 = 0, $vararg_ptr14 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $vararg_buffer15 = sp + 64|0; - $vararg_buffer11 = sp + 48|0; - $vararg_buffer9 = sp + 40|0; - $vararg_buffer7 = sp + 32|0; - $vararg_buffer5 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $5 = sp + 68|0; - _glBindTexture(3553,0); - HEAP32[$5>>2] = 0; - $6 = HEAP32[3535]|0; - $7 = ($6|0)==(0); - $$off = (($3) + -9)|0; - $8 = ($$off>>>0)<(4); - $or$cond = $8 & $7; - if ($or$cond) { - _TraceLog(1,3660,$vararg_buffer); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $9 = HEAP32[3536]|0; - $10 = ($9|0)==(0); - $11 = ($3|0)==(13); - $or$cond7 = $11 & $10; - if ($or$cond7) { - _TraceLog(1,3704,$vararg_buffer1); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $12 = HEAP32[3537]|0; - $13 = ($12|0)==(0); - $14 = $3 | 1; - $15 = ($14|0)==(15); - $or$cond97 = $15 & $13; - if ($or$cond97) { - _TraceLog(1,3749,$vararg_buffer3); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $16 = HEAP32[3538]|0; - $17 = ($16|0)==(0); - $18 = ($14|0)==(17); - $or$cond99 = $18 & $17; - if ($or$cond99) { - _TraceLog(1,3794,$vararg_buffer5); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $19 = HEAP32[3539]|0; - $20 = ($19|0)==(0); - $21 = ($14|0)==(19); - $or$cond101 = $21 & $20; - if ($or$cond101) { - _TraceLog(1,3839,$vararg_buffer7); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - _glGenTextures(1,($5|0)); - $22 = HEAP32[$5>>2]|0; - _glBindTexture(3553,($22|0)); - do { - switch ($3|0) { - case 1: { - _glTexImage2D(3553,0,6409,($1|0),($2|0),0,6409,5121,($0|0)); - break; - } - case 2: { - _glTexImage2D(3553,0,6410,($1|0),($2|0),0,6410,5121,($0|0)); - break; - } - case 3: { - _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,33635,($0|0)); - break; - } - case 4: { - _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,5121,($0|0)); - break; - } - case 5: { - _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32820,($0|0)); - break; - } - case 6: { - _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32819,($0|0)); - break; - } - case 7: { - _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,5121,($0|0)); - break; - } - case 8: { - $23 = HEAP32[3540]|0; - $24 = ($23|0)==(0); - if (!($24)) { - _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,5126,($0|0)); - } - break; - } - case 9: { - $25 = HEAP32[3535]|0; - $26 = ($25|0)==(0); - if (!($26)) { - _LoadTextureCompressed($0,$1,$2,33776,$4); - } - break; - } - case 10: { - $27 = HEAP32[3535]|0; - $28 = ($27|0)==(0); - if (!($28)) { - _LoadTextureCompressed($0,$1,$2,33777,$4); - } - break; - } - case 11: { - $29 = HEAP32[3535]|0; - $30 = ($29|0)==(0); - if (!($30)) { - _LoadTextureCompressed($0,$1,$2,33778,$4); - } - break; - } - case 12: { - $31 = HEAP32[3535]|0; - $32 = ($31|0)==(0); - if (!($32)) { - _LoadTextureCompressed($0,$1,$2,33779,$4); - } - break; - } - case 13: { - $33 = HEAP32[3536]|0; - $34 = ($33|0)==(0); - if (!($34)) { - _LoadTextureCompressed($0,$1,$2,36196,$4); - } - break; - } - case 14: { - $35 = HEAP32[3537]|0; - $36 = ($35|0)==(0); - if (!($36)) { - _LoadTextureCompressed($0,$1,$2,37492,$4); - } - break; - } - case 15: { - $37 = HEAP32[3537]|0; - $38 = ($37|0)==(0); - if (!($38)) { - _LoadTextureCompressed($0,$1,$2,37496,$4); - } - break; - } - case 16: { - $39 = HEAP32[3538]|0; - $40 = ($39|0)==(0); - if (!($40)) { - _LoadTextureCompressed($0,$1,$2,35840,$4); - } - break; - } - case 17: { - $41 = HEAP32[3538]|0; - $42 = ($41|0)==(0); - if (!($42)) { - _LoadTextureCompressed($0,$1,$2,35842,$4); - } - break; - } - case 18: { - $43 = HEAP32[3539]|0; - $44 = ($43|0)==(0); - if (!($44)) { - _LoadTextureCompressed($0,$1,$2,37808,$4); - } - break; - } - case 19: { - $45 = HEAP32[3539]|0; - $46 = ($45|0)==(0); - if (!($46)) { - _LoadTextureCompressed($0,$1,$2,37815,$4); - } - break; - } - default: { - _TraceLog(1,3884,$vararg_buffer9); - } - } - } while(0); - $47 = HEAP32[3541]|0; - $48 = ($47|0)==(0); - if ($48) { - _glTexParameteri(3553,10242,33071); - _glTexParameteri(3553,10243,33071); - } else { - _glTexParameteri(3553,10242,10497); - _glTexParameteri(3553,10243,10497); - } - _glTexParameteri(3553,10240,9728); - _glTexParameteri(3553,10241,9728); - _glBindTexture(3553,0); - $49 = HEAP32[$5>>2]|0; - $50 = ($49|0)==(0); - if ($50) { - _TraceLog(1,3962,$vararg_buffer15); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } else { - HEAP32[$vararg_buffer11>>2] = $49; - $vararg_ptr13 = ((($vararg_buffer11)) + 4|0); - HEAP32[$vararg_ptr13>>2] = $1; - $vararg_ptr14 = ((($vararg_buffer11)) + 8|0); - HEAP32[$vararg_ptr14>>2] = $2; - _TraceLog(0,3913,$vararg_buffer11); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - return (0)|0; -} -function _LoadTextureCompressed($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$ = 0, $$03645 = 0, $$03744 = 0, $$038 = 0, $$03943 = 0, $$046 = 0, $$140 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond42 = 0, label = 0, sp = 0; - sp = STACKTOP; - _glPixelStorei(3317,1); - switch ($3|0) { - case 33776: case 33777: case 36196: case 37492: { - $$038 = 8; - break; - } - default: { - $$038 = 16; - } - } - $5 = ($4|0)<(1); - $6 = $1 | $2; - $7 = ($6|0)==(0); - $or$cond42 = $5 | $7; - if ($or$cond42) { - return; - } else { - $$03645 = 0;$$03744 = 0;$$03943 = $2;$$046 = $1; - } - while(1) { - $8 = (($$046) + 3)|0; - $9 = (($8|0) / 4)&-1; - $10 = (($$03943) + 3)|0; - $11 = (($10|0) / 4)&-1; - $12 = Math_imul($11, $$038)|0; - $13 = Math_imul($12, $9)|0; - $14 = (($0) + ($$03744)|0); - _glCompressedTexImage2D(3553,($$03645|0),($3|0),($$046|0),($$03943|0),0,($13|0),($14|0)); - $15 = (($13) + ($$03744))|0; - $16 = (($$046|0) / 2)&-1; - $17 = (($$03943|0) / 2)&-1; - $18 = ($$046|0)<(2); - $$ = $18 ? 1 : $16; - $19 = ($$03943|0)<(2); - $$140 = $19 ? 1 : $17; - $20 = (($$03645) + 1)|0; - $21 = ($20|0)>=($4|0); - $22 = $$ | $$140; - $23 = ($22|0)==(0); - $or$cond = $21 | $23; - if ($or$cond) { - break; - } else { - $$03645 = $20;$$03744 = $15;$$03943 = $$140;$$046 = $$; - } - } - return; -} -function _GetImageData($0) { - $0 = $0|0; - var $$0104105 = 0, $$0106 = 0, $$1 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; - var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; - var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0.0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0.0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; - var $97 = 0.0, $98 = 0.0, $99 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = ((($0)) + 4|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 8|0); - $4 = HEAP32[$3>>2]|0; - $5 = $2 << 2; - $6 = Math_imul($5, $4)|0; - $7 = (_malloc($6)|0); - $8 = HEAP32[$1>>2]|0; - $9 = Math_imul($4, $8)|0; - $10 = ($9|0)>(0); - if (!($10)) { - STACKTOP = sp;return ($7|0); - } - $11 = ((($0)) + 16|0); - $12 = HEAP32[$11>>2]|0; - $13 = HEAP32[$0>>2]|0; - $$0104105 = 0;$$0106 = 0; - while(1) { - switch ($12|0) { - case 1: { - $14 = (($13) + ($$0106)|0); - $15 = HEAP8[$14>>0]|0; - $16 = (($7) + ($$0104105<<2)|0); - HEAP8[$16>>0] = $15; - $17 = HEAP8[$14>>0]|0; - $18 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$18>>0] = $17; - $19 = HEAP8[$14>>0]|0; - $20 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$20>>0] = $19; - $21 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$21>>0] = -1; - $22 = (($$0106) + 1)|0; - $$1 = $22; - break; - } - case 2: { - $23 = (($13) + ($$0106)|0); - $24 = HEAP8[$23>>0]|0; - $25 = (($7) + ($$0104105<<2)|0); - HEAP8[$25>>0] = $24; - $26 = HEAP8[$23>>0]|0; - $27 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$27>>0] = $26; - $28 = HEAP8[$23>>0]|0; - $29 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$29>>0] = $28; - $30 = (($$0106) + 1)|0; - $31 = (($13) + ($30)|0); - $32 = HEAP8[$31>>0]|0; - $33 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$33>>0] = $32; - $34 = (($$0106) + 2)|0; - $$1 = $34; - break; - } - case 5: { - $35 = (($13) + ($$0106<<1)|0); - $36 = HEAP16[$35>>1]|0; - $37 = $36&65535; - $38 = $37 >>> 11; - $39 = (+($38|0)); - $40 = $39 * 8.0; - $41 = (~~(($40))&255); - $42 = (($7) + ($$0104105<<2)|0); - HEAP8[$42>>0] = $41; - $43 = $37 >>> 6; - $44 = $43 & 31; - $45 = (+($44|0)); - $46 = $45 * 8.0; - $47 = (~~(($46))&255); - $48 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$48>>0] = $47; - $49 = $37 >>> 1; - $50 = $49 & 31; - $51 = (+($50|0)); - $52 = $51 * 8.0; - $53 = (~~(($52))&255); - $54 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$54>>0] = $53; - $55 = $37 & 1; - $56 = (0 - ($55))|0; - $57 = $56&255; - $58 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$58>>0] = $57; - $59 = (($$0106) + 1)|0; - $$1 = $59; - break; - } - case 3: { - $60 = (($13) + ($$0106<<1)|0); - $61 = HEAP16[$60>>1]|0; - $62 = $61&65535; - $63 = $62 >>> 11; - $64 = (+($63|0)); - $65 = $64 * 8.0; - $66 = (~~(($65))&255); - $67 = (($7) + ($$0104105<<2)|0); - HEAP8[$67>>0] = $66; - $68 = $62 >>> 5; - $69 = $68 & 63; - $70 = (+($69|0)); - $71 = $70 * 4.0; - $72 = (~~(($71))&255); - $73 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$73>>0] = $72; - $74 = $62 & 31; - $75 = (+($74|0)); - $76 = $75 * 8.0; - $77 = (~~(($76))&255); - $78 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$78>>0] = $77; - $79 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$79>>0] = -1; - $80 = (($$0106) + 1)|0; - $$1 = $80; - break; - } - case 6: { - $81 = (($13) + ($$0106<<1)|0); - $82 = HEAP16[$81>>1]|0; - $83 = $82&65535; - $84 = $83 >>> 12; - $85 = (+($84|0)); - $86 = $85 * 17.0; - $87 = (~~(($86))&255); - $88 = (($7) + ($$0104105<<2)|0); - HEAP8[$88>>0] = $87; - $89 = $83 >>> 8; - $90 = $89 & 15; - $91 = (+($90|0)); - $92 = $91 * 17.0; - $93 = (~~(($92))&255); - $94 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$94>>0] = $93; - $95 = $83 >>> 4; - $96 = $95 & 15; - $97 = (+($96|0)); - $98 = $97 * 17.0; - $99 = (~~(($98))&255); - $100 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$100>>0] = $99; - $101 = $83 & 15; - $102 = (+($101|0)); - $103 = $102 * 17.0; - $104 = (~~(($103))&255); - $105 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$105>>0] = $104; - $106 = (($$0106) + 1)|0; - $$1 = $106; - break; - } - case 7: { - $107 = (($13) + ($$0106)|0); - $108 = HEAP8[$107>>0]|0; - $109 = (($7) + ($$0104105<<2)|0); - HEAP8[$109>>0] = $108; - $110 = (($$0106) + 1)|0; - $111 = (($13) + ($110)|0); - $112 = HEAP8[$111>>0]|0; - $113 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$113>>0] = $112; - $114 = (($$0106) + 2)|0; - $115 = (($13) + ($114)|0); - $116 = HEAP8[$115>>0]|0; - $117 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$117>>0] = $116; - $118 = (($$0106) + 3)|0; - $119 = (($13) + ($118)|0); - $120 = HEAP8[$119>>0]|0; - $121 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$121>>0] = $120; - $122 = (($$0106) + 4)|0; - $$1 = $122; - break; - } - case 4: { - $123 = (($13) + ($$0106)|0); - $124 = HEAP8[$123>>0]|0; - $125 = (($7) + ($$0104105<<2)|0); - HEAP8[$125>>0] = $124; - $126 = (($$0106) + 1)|0; - $127 = (($13) + ($126)|0); - $128 = HEAP8[$127>>0]|0; - $129 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$129>>0] = $128; - $130 = (($$0106) + 2)|0; - $131 = (($13) + ($130)|0); - $132 = HEAP8[$131>>0]|0; - $133 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$133>>0] = $132; - $134 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$134>>0] = -1; - $135 = (($$0106) + 3)|0; - $$1 = $135; - break; - } - default: { - _TraceLog(1,4045,$vararg_buffer); - $$1 = $$0106; - } - } - $136 = (($$0104105) + 1)|0; - $137 = HEAP32[$1>>2]|0; - $138 = HEAP32[$3>>2]|0; - $139 = Math_imul($138, $137)|0; - $140 = ($136|0)<($139|0); - if ($140) { - $$0104105 = $136;$$0106 = $$1; - } else { - break; - } - } - STACKTOP = sp;return ($7|0); -} -function _UnloadDefaultFont() { - var $$byval_copy = 0, $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $$byval_copy = sp; - ;HEAP32[$$byval_copy>>2]=HEAP32[14108>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[14108+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[14108+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[14108+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[14108+16>>2]|0; - _UnloadTexture($$byval_copy); - $0 = HEAP32[(14136)>>2]|0; - _free($0); - STACKTOP = sp;return; -} -function _UnloadTexture($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = HEAP32[$0>>2]|0; - $2 = ($1|0)==(0); - if ($2) { - STACKTOP = sp;return; - } - _rlDeleteTextures($1); - $3 = HEAP32[$0>>2]|0; - HEAP32[$vararg_buffer>>2] = $3; - _TraceLog(0,4091,$vararg_buffer); - STACKTOP = sp;return; -} -function _rlDeleteTextures($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - HEAP32[$1>>2] = $0; - $2 = ($0|0)==(0); - if (!($2)) { - _glDeleteTextures(1,($1|0)); - } - STACKTOP = sp;return; -} -function _GetDefaultFont($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - ;HEAP32[$0>>2]=HEAP32[14108>>2]|0;HEAP32[$0+4>>2]=HEAP32[14108+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[14108+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[14108+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[14108+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[14108+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[14108+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[14108+28>>2]|0; - return; -} -function _DrawText($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$ = 0, $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $$byval_copy2 = sp + 112|0; - $$byval_copy1 = sp + 104|0; - $$byval_copy = sp + 72|0; - $5 = sp + 32|0; - $6 = sp + 64|0; - $7 = sp; - _GetDefaultFont($5); - $8 = HEAP32[$5>>2]|0; - $9 = ($8|0)==(0); - if ($9) { - STACKTOP = sp;return; - } - $10 = (+($1|0)); - HEAPF32[$6>>2] = $10; - $11 = ((($6)) + 4|0); - $12 = (+($2|0)); - HEAPF32[$11>>2] = $12; - $13 = ($3|0)>(10); - $$ = $13 ? $3 : 10; - $14 = (($$>>>0) / 10)&-1; - _GetDefaultFont($7); - $15 = (+($$|0)); - ;HEAP32[$$byval_copy>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$7+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$7+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$7+16>>2]|0;HEAP32[$$byval_copy+20>>2]=HEAP32[$7+20>>2]|0;HEAP32[$$byval_copy+24>>2]=HEAP32[$7+24>>2]|0;HEAP32[$$byval_copy+28>>2]=HEAP32[$7+28>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$6+4>>2]|0; - ;HEAP8[$$byval_copy2>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$4+3>>0]|0; - _DrawTextEx($$byval_copy,$0,$$byval_copy1,$15,$14,$$byval_copy2); - STACKTOP = sp;return; -} -function _DrawTextEx($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = +$3; - $4 = $4|0; - $5 = $5|0; - var $$04954 = 0, $$05153 = 0, $$055 = 0, $$1 = 0, $$150 = 0, $$152 = 0, $$2 = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $$byval_copy5 = 0, $$sink = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0; - var $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0.0, $29 = 0.0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $50 = 0.0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0; - var $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; - var $75 = 0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $$byval_copy5 = sp + 88|0; - $$byval_copy4 = sp + 80|0; - $$byval_copy3 = sp + 64|0; - $$byval_copy2 = sp + 48|0; - $$byval_copy1 = sp + 24|0; - $6 = sp + 8|0; - $7 = sp; - $8 = (_strlen($1)|0); - $9 = ((($0)) + 20|0); - $10 = HEAP32[$9>>2]|0; - $11 = (+($10|0)); - $12 = $3 / $11; - $13 = ($8|0)>(0); - if (!($13)) { - STACKTOP = sp;return; - } - $14 = ((($0)) + 28|0); - $15 = +HEAPF32[$2>>2]; - $16 = ((($6)) + 4|0); - $17 = ((($2)) + 4|0); - $18 = ((($6)) + 8|0); - $19 = ((($6)) + 12|0); - $20 = ((($7)) + 4|0); - $21 = (+($4|0)); - $$04954 = 0;$$05153 = 0;$$055 = 0; - while(1) { - $22 = (($1) + ($$055)|0); - $23 = HEAP8[$22>>0]|0; - $24 = $23&255; - switch ($23<<24>>24) { - case 10: { - $25 = HEAP32[$9>>2]|0; - $26 = (($25|0) / 2)&-1; - $27 = (($26) + ($25))|0; - $28 = (+($27|0)); - $29 = $12 * $28; - $30 = (~~(($29))); - $31 = (($30) + ($$05153))|0; - $$150 = 0;$$152 = $31;$$2 = $$055; - break; - } - case -62: { - $32 = (($$055) + 1)|0; - $33 = (($1) + ($32)|0); - $34 = HEAP8[$33>>0]|0; - $35 = $34&255; - $$1 = $32;$$sink = $35; - label = 8; - break; - } - case -61: { - $36 = (($$055) + 1)|0; - $37 = (($1) + ($36)|0); - $38 = HEAP8[$37>>0]|0; - $39 = $38&255; - $40 = (($39) + 64)|0; - $$1 = $36;$$sink = $40; - label = 8; - break; - } - default: { - $$1 = $$055;$$sink = $24; - label = 8; - } - } - do { - if ((label|0) == 8) { - label = 0; - ;HEAP32[$$byval_copy5>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy5+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy5+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$$byval_copy5+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$$byval_copy5+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[$$byval_copy5+28>>2]=HEAP32[$0+28>>2]|0; - $41 = (_GetCharIndex($$byval_copy5,$$sink)|0); - $42 = HEAP32[$14>>2]|0; - $43 = (((($42) + ($41<<5)|0)) + 4|0); - $44 = (+($$04954|0)); - $45 = $44 + $15; - $46 = (((($42) + ($41<<5)|0)) + 20|0); - $47 = HEAP32[$46>>2]|0; - $48 = (+($47|0)); - $49 = $12 * $48; - $50 = $45 + $49; - $51 = (~~(($50))); - HEAP32[$6>>2] = $51; - $52 = +HEAPF32[$17>>2]; - $53 = (+($$05153|0)); - $54 = $53 + $52; - $55 = (((($42) + ($41<<5)|0)) + 24|0); - $56 = HEAP32[$55>>2]|0; - $57 = (+($56|0)); - $58 = $12 * $57; - $59 = $54 + $58; - $60 = (~~(($59))); - HEAP32[$16>>2] = $60; - $61 = (((($42) + ($41<<5)|0)) + 12|0); - $62 = HEAP32[$61>>2]|0; - $63 = (+($62|0)); - $64 = $12 * $63; - $65 = (~~(($64))); - HEAP32[$18>>2] = $65; - $66 = (((($42) + ($41<<5)|0)) + 16|0); - $67 = HEAP32[$66>>2]|0; - $68 = (+($67|0)); - $69 = $12 * $68; - $70 = (~~(($69))); - HEAP32[$19>>2] = $70; - HEAPF32[$7>>2] = 0.0; - HEAPF32[$20>>2] = 0.0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; - ;HEAP32[$$byval_copy2>>2]=HEAP32[$43>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$43+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$43+8>>2]|0;HEAP32[$$byval_copy2+12>>2]=HEAP32[$43+12>>2]|0; - ;HEAP32[$$byval_copy3>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$byval_copy3+12>>2]=HEAP32[$6+12>>2]|0; - ;HEAP32[$$byval_copy4>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$7+4>>2]|0; - ;HEAP8[$$byval_copy5>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy5+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy5+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy5+3>>0]=HEAP8[$5+3>>0]|0; - _DrawTexturePro($$byval_copy1,$$byval_copy2,$$byval_copy3,$$byval_copy4,0.0,$$byval_copy5); - $71 = HEAP32[$14>>2]|0; - $72 = (((($71) + ($41<<5)|0)) + 28|0); - $73 = HEAP32[$72>>2]|0; - $74 = ($73|0)==(0); - if ($74) { - $75 = (((($71) + ($41<<5)|0)) + 12|0); - $76 = HEAP32[$75>>2]|0; - $77 = (+($76|0)); - $78 = $12 * $77; - $79 = $21 + $78; - $80 = (~~(($79))); - $81 = (($80) + ($$04954))|0; - $$150 = $81;$$152 = $$05153;$$2 = $$1; - break; - } else { - $82 = (+($73|0)); - $83 = $12 * $82; - $84 = $21 + $83; - $85 = (~~(($84))); - $86 = (($85) + ($$04954))|0; - $$150 = $86;$$152 = $$05153;$$2 = $$1; - break; - } - } - } while(0); - $87 = (($$2) + 1)|0; - $88 = ($87|0)<($8|0); - if ($88) { - $$04954 = $$150;$$05153 = $$152;$$055 = $87; - } else { - break; - } - } - STACKTOP = sp;return; -} -function _GetCharIndex($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$08 = 0, $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 24|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)>(0); - if (!($4)) { - $$08 = 0; - return ($$08|0); - } - $5 = ((($0)) + 28|0); - $6 = HEAP32[$5>>2]|0; - $$09 = 0; - while(1) { - $7 = (($6) + ($$09<<5)|0); - $8 = HEAP32[$7>>2]|0; - $9 = ($8|0)==($1|0); - if ($9) { - $$08 = $$09; - label = 5; - break; - } - $10 = (($$09) + 1)|0; - $11 = HEAP32[$2>>2]|0; - $12 = ($10|0)<($11|0); - if ($12) { - $$09 = $10; - } else { - $$08 = 0; - label = 5; - break; - } - } - if ((label|0) == 5) { - return ($$08|0); - } - return (0)|0; -} -function _DrawTexturePro($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = +$4; - $5 = $5|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0; - var $50 = 0, $51 = 0.0, $52 = 0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0; - var $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0, $83 = 0.0, $84 = 0, $85 = 0, $86 = 0; - var $87 = 0.0, $88 = 0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0, $92 = 0.0, $93 = 0, $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $6 = HEAP32[$0>>2]|0; - $7 = ($6|0)==(0); - if ($7) { - return; - } - $8 = ((($1)) + 8|0); - $9 = HEAP32[$8>>2]|0; - $10 = ($9|0)<(0); - if ($10) { - $11 = HEAP32[$1>>2]|0; - $12 = (($11) - ($9))|0; - HEAP32[$1>>2] = $12; - } - $13 = ((($1)) + 12|0); - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)<(0); - if ($15) { - $16 = ((($1)) + 4|0); - $17 = HEAP32[$16>>2]|0; - $18 = (($17) - ($14))|0; - HEAP32[$16>>2] = $18; - } - $19 = HEAP32[$0>>2]|0; - _rlEnableTexture($19); - _rlPushMatrix(); - $20 = HEAP32[$2>>2]|0; - $21 = (+($20|0)); - $22 = ((($2)) + 4|0); - $23 = HEAP32[$22>>2]|0; - $24 = (+($23|0)); - _rlTranslatef($21,$24,0.0); - _rlRotatef($4,0.0,0.0,1.0); - $25 = +HEAPF32[$3>>2]; - $26 = -$25; - $27 = ((($3)) + 4|0); - $28 = +HEAPF32[$27>>2]; - $29 = -$28; - _rlTranslatef($26,$29,0.0); - _rlBegin(7); - $30 = HEAP8[$5>>0]|0; - $31 = ((($5)) + 1|0); - $32 = HEAP8[$31>>0]|0; - $33 = ((($5)) + 2|0); - $34 = HEAP8[$33>>0]|0; - $35 = ((($5)) + 3|0); - $36 = HEAP8[$35>>0]|0; - _rlColor4ub($30,$32,$34,$36); - $37 = HEAP32[$1>>2]|0; - $38 = (+($37|0)); - $39 = ((($0)) + 4|0); - $40 = HEAP32[$39>>2]|0; - $41 = (+($40|0)); - $42 = $38 / $41; - $43 = ((($1)) + 4|0); - $44 = HEAP32[$43>>2]|0; - $45 = (+($44|0)); - $46 = ((($0)) + 8|0); - $47 = HEAP32[$46>>2]|0; - $48 = (+($47|0)); - $49 = $45 / $48; - _rlTexCoord2f($42,$49); - _rlVertex2f(0.0,0.0); - $50 = HEAP32[$1>>2]|0; - $51 = (+($50|0)); - $52 = HEAP32[$39>>2]|0; - $53 = (+($52|0)); - $54 = $51 / $53; - $55 = HEAP32[$43>>2]|0; - $56 = HEAP32[$13>>2]|0; - $57 = (($56) + ($55))|0; - $58 = (+($57|0)); - $59 = HEAP32[$46>>2]|0; - $60 = (+($59|0)); - $61 = $58 / $60; - _rlTexCoord2f($54,$61); - $62 = ((($2)) + 12|0); - $63 = HEAP32[$62>>2]|0; - $64 = (+($63|0)); - _rlVertex2f(0.0,$64); - $65 = HEAP32[$1>>2]|0; - $66 = HEAP32[$8>>2]|0; - $67 = (($66) + ($65))|0; - $68 = (+($67|0)); - $69 = HEAP32[$39>>2]|0; - $70 = (+($69|0)); - $71 = $68 / $70; - $72 = HEAP32[$43>>2]|0; - $73 = HEAP32[$13>>2]|0; - $74 = (($73) + ($72))|0; - $75 = (+($74|0)); - $76 = HEAP32[$46>>2]|0; - $77 = (+($76|0)); - $78 = $75 / $77; - _rlTexCoord2f($71,$78); - $79 = ((($2)) + 8|0); - $80 = HEAP32[$79>>2]|0; - $81 = (+($80|0)); - $82 = HEAP32[$62>>2]|0; - $83 = (+($82|0)); - _rlVertex2f($81,$83); - $84 = HEAP32[$1>>2]|0; - $85 = HEAP32[$8>>2]|0; - $86 = (($85) + ($84))|0; - $87 = (+($86|0)); - $88 = HEAP32[$39>>2]|0; - $89 = (+($88|0)); - $90 = $87 / $89; - $91 = HEAP32[$43>>2]|0; - $92 = (+($91|0)); - $93 = HEAP32[$46>>2]|0; - $94 = (+($93|0)); - $95 = $92 / $94; - _rlTexCoord2f($90,$95); - $96 = HEAP32[$79>>2]|0; - $97 = (+($96|0)); - _rlVertex2f($97,0.0); - _rlEnd(); - _rlPopMatrix(); - _rlDisableTexture(); - return; -} -function _rlEnableTexture($0) { - $0 = $0|0; - var $$pr = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[3591]|0; - $2 = HEAP32[3589]|0; - $3 = (($2) + -1)|0; - $4 = (((($1) + (($3*144)|0)|0)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = ($5|0)==($0|0); - if ($6) { - return; - } - $7 = (($1) + (($3*144)|0)|0); - $8 = HEAP32[$7>>2]|0; - $9 = ($8|0)>(0); - $10 = (($2) + 1)|0; - if ($9) { - HEAP32[3589] = $10; - $12 = $10; - } else { - $$pr = HEAP32[3589]|0; - $12 = $$pr; - } - $11 = ($12|0)>(255); - if ($11) { - _rlglDraw(); - HEAP32[3589] = 1; - } - $13 = HEAP32[3591]|0; - $14 = HEAP32[3589]|0; - $15 = (($14) + -1)|0; - $16 = (((($13) + (($15*144)|0)|0)) + 8|0); - HEAP32[$16>>2] = $0; - $17 = (($13) + (($15*144)|0)|0); - HEAP32[$17>>2] = 0; - return; -} -function _rlPushMatrix() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $0 = HEAP32[3777]|0; - $1 = ($0|0)==(15); - if ($1) { - HEAP32[$vararg_buffer>>2] = 16; - _TraceLog(2,4220,$vararg_buffer); - } - $2 = HEAP32[3777]|0; - $3 = (15112 + ($2<<6)|0); - $4 = HEAP32[4034]|0; - dest=$3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _rlLoadIdentity(); - $5 = HEAP32[3777]|0; - $6 = (($5) + 1)|0; - HEAP32[3777] = $6; - $7 = HEAP32[4039]|0; - $8 = ($7|0)==(5888); - if (!($8)) { - STACKTOP = sp;return; - } - HEAP32[4035] = 1; - STACKTOP = sp;return; -} -function _rlTranslatef($0,$1,$2) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy1 = sp + 192|0; - $$byval_copy = sp + 128|0; - $3 = sp + 64|0; - $4 = sp; - _MatrixTranslate($3,$0,$1,$2); - $5 = HEAP32[4034]|0; - dest=$$byval_copy; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy1; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($4,$$byval_copy,$$byval_copy1); - dest=$5; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _rlRotatef($0,$1,$2,$3) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - var $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); - $$byval_copy2 = sp + 272|0; - $$byval_copy1 = sp + 208|0; - $4 = sp + 144|0; - $5 = sp + 64|0; - $6 = sp + 80|0; - $7 = sp; - _MatrixIdentity($4); - HEAPF32[$5>>2] = $1; - $8 = ((($5)) + 4|0); - HEAPF32[$8>>2] = $2; - $9 = ((($5)) + 8|0); - HEAPF32[$9>>2] = $3; - _Vector3Normalize($5); - $10 = $0 * 0.01745329238474369; - ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0; - _MatrixRotate($6,$$byval_copy2,$10); - dest=$4; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $11 = HEAP32[4034]|0; - dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy2; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($7,$$byval_copy1,$$byval_copy2); - dest=$11; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _rlBegin($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - HEAP32[4038] = $0; - return; -} -function _rlColor4ub($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$sink37 = 0, $$sink38 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = HEAP32[4038]|0; - switch ($4|0) { - case 1: { - $$sink37 = (14376);$$sink38 = (14388); - break; - } - case 4: { - $$sink37 = (14424);$$sink38 = (14436); - break; - } - case 7: { - $$sink37 = (14184);$$sink38 = (14196); - break; - } - default: { - return; - } - } - $5 = HEAP32[$$sink38>>2]|0; - $6 = HEAP32[$$sink37>>2]|0; - $7 = $6 << 2; - $8 = (($5) + ($7)|0); - HEAP8[$8>>0] = $0; - $9 = HEAP32[$$sink38>>2]|0; - $10 = HEAP32[$$sink37>>2]|0; - $11 = $10 << 2; - $12 = $11 | 1; - $13 = (($9) + ($12)|0); - HEAP8[$13>>0] = $1; - $14 = HEAP32[$$sink38>>2]|0; - $15 = HEAP32[$$sink37>>2]|0; - $16 = $15 << 2; - $17 = $16 | 2; - $18 = (($14) + ($17)|0); - HEAP8[$18>>0] = $2; - $19 = HEAP32[$$sink38>>2]|0; - $20 = HEAP32[$$sink37>>2]|0; - $21 = $20 << 2; - $22 = $21 | 3; - $23 = (($19) + ($22)|0); - HEAP8[$23>>0] = $3; - $24 = HEAP32[$$sink37>>2]|0; - $25 = (($24) + 1)|0; - HEAP32[$$sink37>>2] = $25; - return; -} -function _rlNormal3f($0,$1,$2) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function _rlTexCoord2f($0,$1) { - $0 = +$0; - $1 = +$1; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP32[4038]|0; - $3 = ($2|0)==(7); - if (!($3)) { - return; - } - $4 = HEAP32[(14192)>>2]|0; - $5 = HEAP32[(14180)>>2]|0; - $6 = $5 << 1; - $7 = (($4) + ($6<<2)|0); - HEAPF32[$7>>2] = $0; - $8 = $6 | 1; - $9 = (($4) + ($8<<2)|0); - HEAPF32[$9>>2] = $1; - $10 = (($5) + 1)|0; - HEAP32[(14180)>>2] = $10; - return; -} -function _rlVertex2f($0,$1) { - $0 = +$0; - $1 = +$1; - var $2 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = +HEAPF32[740]; - _rlVertex3f($0,$1,$2); - return; -} -function _rlEnd() { - var $$03956 = 0, $$04052 = 0, $$04154 = 0, $$04248 = 0, $$04347 = 0, $$byval_copy = 0, $$promoted = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0; - var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0; - var $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0; - var $146 = 0, $147 = 0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond60 = 0, $exitcond63 = 0; - var $scevgep = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $$byval_copy = sp; - $0 = HEAP32[4035]|0; - $1 = ($0|0)==(0); - if (!($1)) { - $2 = HEAP32[4036]|0; - $3 = ($2|0)>(0); - if ($3) { - $$03956 = 0; - while(1) { - $6 = HEAP32[4037]|0; - $7 = (($6) + (($$03956*12)|0)|0); - $8 = HEAP32[4034]|0; - dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _Vector3Transform($7,$$byval_copy); - $9 = (($$03956) + 1)|0; - $5 = HEAP32[4036]|0; - $10 = ($9|0)<($5|0); - if ($10) { - $$03956 = $9; - } else { - break; - } - } - HEAP32[4035] = 0; - $4 = ($5|0)>(0); - if ($4) { - $$04154 = 0; - while(1) { - $11 = HEAP32[4037]|0; - $12 = (($11) + (($$04154*12)|0)|0); - $13 = +HEAPF32[$12>>2]; - $14 = (((($11) + (($$04154*12)|0)|0)) + 4|0); - $15 = +HEAPF32[$14>>2]; - $16 = (((($11) + (($$04154*12)|0)|0)) + 8|0); - $17 = +HEAPF32[$16>>2]; - _rlVertex3f($13,$15,$17); - $18 = (($$04154) + 1)|0; - $19 = HEAP32[4036]|0; - $20 = ($18|0)<($19|0); - if ($20) { - $$04154 = $18; - } else { - break; - } - } - } - } else { - HEAP32[4035] = 0; - } - HEAP32[4036] = 0; - } - $21 = HEAP32[4038]|0; - switch ($21|0) { - case 1: { - $22 = HEAP32[3592]|0; - $23 = HEAP32[(14376)>>2]|0; - $24 = ($22|0)==($23|0); - if ($24) { - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - } - $25 = (($22) - ($23))|0; - $26 = ($25|0)>(0); - if ($26) { - $$04347 = 0; - } else { - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - } - while(1) { - $27 = HEAP32[(14388)>>2]|0; - $28 = HEAP32[(14376)>>2]|0; - $29 = $28 << 2; - $30 = (($29) + -4)|0; - $31 = (($27) + ($30)|0); - $32 = HEAP8[$31>>0]|0; - $33 = (($27) + ($29)|0); - HEAP8[$33>>0] = $32; - $34 = HEAP32[(14388)>>2]|0; - $35 = HEAP32[(14376)>>2]|0; - $36 = $35 << 2; - $37 = (($36) + -3)|0; - $38 = (($34) + ($37)|0); - $39 = HEAP8[$38>>0]|0; - $40 = $36 | 1; - $41 = (($34) + ($40)|0); - HEAP8[$41>>0] = $39; - $42 = HEAP32[(14388)>>2]|0; - $43 = HEAP32[(14376)>>2]|0; - $44 = $43 << 2; - $45 = (($44) + -2)|0; - $46 = (($42) + ($45)|0); - $47 = HEAP8[$46>>0]|0; - $48 = $44 | 2; - $49 = (($42) + ($48)|0); - HEAP8[$49>>0] = $47; - $50 = HEAP32[(14388)>>2]|0; - $51 = HEAP32[(14376)>>2]|0; - $52 = $51 << 2; - $53 = (($52) + -1)|0; - $54 = (($50) + ($53)|0); - $55 = HEAP8[$54>>0]|0; - $56 = $52 | 3; - $57 = (($50) + ($56)|0); - HEAP8[$57>>0] = $55; - $58 = HEAP32[(14376)>>2]|0; - $59 = (($58) + 1)|0; - HEAP32[(14376)>>2] = $59; - $60 = (($$04347) + 1)|0; - $exitcond = ($60|0)==($25|0); - if ($exitcond) { - break; - } else { - $$04347 = $60; - } - } - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - break; - } - case 4: { - $61 = HEAP32[3604]|0; - $62 = HEAP32[(14424)>>2]|0; - $63 = ($61|0)==($62|0); - if ($63) { - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - } - $64 = (($61) - ($62))|0; - $65 = ($64|0)>(0); - if ($65) { - $$04248 = 0; - } else { - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - } - while(1) { - $66 = HEAP32[(14436)>>2]|0; - $67 = HEAP32[(14424)>>2]|0; - $68 = $67 << 2; - $69 = (($68) + -4)|0; - $70 = (($66) + ($69)|0); - $71 = HEAP8[$70>>0]|0; - $72 = (($66) + ($68)|0); - HEAP8[$72>>0] = $71; - $73 = HEAP32[(14436)>>2]|0; - $74 = HEAP32[(14424)>>2]|0; - $75 = $74 << 2; - $76 = (($75) + -3)|0; - $77 = (($73) + ($76)|0); - $78 = HEAP8[$77>>0]|0; - $79 = $75 | 1; - $80 = (($73) + ($79)|0); - HEAP8[$80>>0] = $78; - $81 = HEAP32[(14436)>>2]|0; - $82 = HEAP32[(14424)>>2]|0; - $83 = $82 << 2; - $84 = (($83) + -2)|0; - $85 = (($81) + ($84)|0); - $86 = HEAP8[$85>>0]|0; - $87 = $83 | 2; - $88 = (($81) + ($87)|0); - HEAP8[$88>>0] = $86; - $89 = HEAP32[(14436)>>2]|0; - $90 = HEAP32[(14424)>>2]|0; - $91 = $90 << 2; - $92 = (($91) + -1)|0; - $93 = (($89) + ($92)|0); - $94 = HEAP8[$93>>0]|0; - $95 = $91 | 3; - $96 = (($89) + ($95)|0); - HEAP8[$96>>0] = $94; - $97 = HEAP32[(14424)>>2]|0; - $98 = (($97) + 1)|0; - HEAP32[(14424)>>2] = $98; - $99 = (($$04248) + 1)|0; - $exitcond60 = ($99|0)==($64|0); - if ($exitcond60) { - break; - } else { - $$04248 = $99; - } - } - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - break; - } - case 7: { - $100 = HEAP32[3544]|0; - $101 = HEAP32[(14184)>>2]|0; - $102 = ($100|0)==($101|0); - if (!($102)) { - $103 = (($100) - ($101))|0; - $104 = ($103|0)>(0); - if ($104) { - $$04052 = 0; - while(1) { - $105 = HEAP32[(14196)>>2]|0; - $106 = HEAP32[(14184)>>2]|0; - $107 = $106 << 2; - $108 = (($107) + -4)|0; - $109 = (($105) + ($108)|0); - $110 = HEAP8[$109>>0]|0; - $111 = (($105) + ($107)|0); - HEAP8[$111>>0] = $110; - $112 = HEAP32[(14196)>>2]|0; - $113 = HEAP32[(14184)>>2]|0; - $114 = $113 << 2; - $115 = (($114) + -3)|0; - $116 = (($112) + ($115)|0); - $117 = HEAP8[$116>>0]|0; - $118 = $114 | 1; - $119 = (($112) + ($118)|0); - HEAP8[$119>>0] = $117; - $120 = HEAP32[(14196)>>2]|0; - $121 = HEAP32[(14184)>>2]|0; - $122 = $121 << 2; - $123 = (($122) + -2)|0; - $124 = (($120) + ($123)|0); - $125 = HEAP8[$124>>0]|0; - $126 = $122 | 2; - $127 = (($120) + ($126)|0); - HEAP8[$127>>0] = $125; - $128 = HEAP32[(14196)>>2]|0; - $129 = HEAP32[(14184)>>2]|0; - $130 = $129 << 2; - $131 = (($130) + -1)|0; - $132 = (($128) + ($131)|0); - $133 = HEAP8[$132>>0]|0; - $134 = $130 | 3; - $135 = (($128) + ($134)|0); - HEAP8[$135>>0] = $133; - $136 = HEAP32[(14184)>>2]|0; - $137 = (($136) + 1)|0; - HEAP32[(14184)>>2] = $137; - $138 = (($$04052) + 1)|0; - $exitcond63 = ($138|0)==($103|0); - if ($exitcond63) { - break; - } else { - $$04052 = $138; - } - } - } - } - $139 = HEAP32[3544]|0; - $140 = HEAP32[(14180)>>2]|0; - $141 = ($139|0)>($140|0); - if (!($141)) { - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - } - $142 = HEAP32[(14192)>>2]|0; - $$promoted = HEAP32[(14180)>>2]|0; - $143 = $$promoted << 1; - $scevgep = (($142) + ($143<<2)|0); - $144 = (($139) - ($140))|0; - $145 = $144 << 3; - _memset(($scevgep|0),0,($145|0))|0; - $146 = (($139) + ($$promoted))|0; - $147 = (($146) - ($140))|0; - HEAP32[(14180)>>2] = $147; - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - break; - } - default: { - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - } - } -} -function _rlPopMatrix() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[3777]|0; - $1 = ($0|0)>(0); - if (!($1)) { - return; - } - $2 = HEAP32[3777]|0; - $3 = (($2) + -1)|0; - $4 = (15112 + ($3<<6)|0); - $5 = HEAP32[4034]|0; - _memmove(($5|0),($4|0),64)|0; - $6 = (($2) + -1)|0; - HEAP32[3777] = $6; - return; -} -function _rlDisableTexture() { - var $0 = 0, $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[3544]|0; - $1 = ($0|0)>(4095); - if (!($1)) { - return; - } - _rlglDraw(); - return; -} -function _rlglDraw() { - var label = 0, sp = 0; - sp = STACKTOP; - _UpdateBuffersDefault(); - _DrawBuffersDefault(); - return; -} -function _UpdateBuffersDefault() { - var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[3592]|0; - $1 = ($0|0)>(0); - if ($1) { - $2 = HEAP32[3649]|0; - $3 = ($2|0)==(0); - if (!($3)) { - $4 = HEAP32[3650]|0; - $5 = HEAP32[(14396)>>2]|0; - FUNCTION_TABLE_vi[$4 & 31]($5); - } - $6 = HEAP32[(14400)>>2]|0; - _glBindBuffer(34962,($6|0)); - $7 = HEAP32[3592]|0; - $8 = ($7*12)|0; - $9 = HEAP32[(14380)>>2]|0; - _glBufferSubData(34962,0,($8|0),($9|0)); - $10 = HEAP32[(14404)>>2]|0; - _glBindBuffer(34962,($10|0)); - $11 = HEAP32[(14376)>>2]|0; - $12 = $11 << 2; - $13 = HEAP32[(14388)>>2]|0; - _glBufferSubData(34962,0,($12|0),($13|0)); - } - $14 = HEAP32[3604]|0; - $15 = ($14|0)>(0); - if ($15) { - $16 = HEAP32[3649]|0; - $17 = ($16|0)==(0); - if (!($17)) { - $18 = HEAP32[3650]|0; - $19 = HEAP32[(14444)>>2]|0; - FUNCTION_TABLE_vi[$18 & 31]($19); - } - $20 = HEAP32[(14448)>>2]|0; - _glBindBuffer(34962,($20|0)); - $21 = HEAP32[3604]|0; - $22 = ($21*12)|0; - $23 = HEAP32[(14428)>>2]|0; - _glBufferSubData(34962,0,($22|0),($23|0)); - $24 = HEAP32[(14452)>>2]|0; - _glBindBuffer(34962,($24|0)); - $25 = HEAP32[(14424)>>2]|0; - $26 = $25 << 2; - $27 = HEAP32[(14436)>>2]|0; - _glBufferSubData(34962,0,($26|0),($27|0)); - } - $28 = HEAP32[3544]|0; - $29 = ($28|0)>(0); - if ($29) { - $30 = HEAP32[3649]|0; - $31 = ($30|0)==(0); - if (!($31)) { - $32 = HEAP32[3650]|0; - $33 = HEAP32[(14204)>>2]|0; - FUNCTION_TABLE_vi[$32 & 31]($33); - } - $34 = HEAP32[(14208)>>2]|0; - _glBindBuffer(34962,($34|0)); - $35 = HEAP32[3544]|0; - $36 = ($35*12)|0; - $37 = HEAP32[(14188)>>2]|0; - _glBufferSubData(34962,0,($36|0),($37|0)); - $38 = HEAP32[(14212)>>2]|0; - _glBindBuffer(34962,($38|0)); - $39 = HEAP32[3544]|0; - $40 = $39 << 3; - $41 = HEAP32[(14192)>>2]|0; - _glBufferSubData(34962,0,($40|0),($41|0)); - $42 = HEAP32[(14216)>>2]|0; - _glBindBuffer(34962,($42|0)); - $43 = HEAP32[3544]|0; - $44 = $43 << 2; - $45 = HEAP32[(14196)>>2]|0; - _glBufferSubData(34962,0,($44|0),($45|0)); - } - $46 = HEAP32[3649]|0; - $47 = ($46|0)==(0); - if ($47) { - return; - } - $48 = HEAP32[3650]|0; - FUNCTION_TABLE_vi[$48 & 31](0); - return; -} -function _DrawBuffersDefault() { - var $$ = 0, $$02830 = 0, $$02932 = 0, $$031 = 0, $$byval_copy2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; - var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; - var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; - var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; - var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0; - var $modelview$byval_copy = 0, $or$cond = 0, $or$cond3 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 320|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(320|0); - $$byval_copy2 = sp + 256|0; - $modelview$byval_copy = sp + 192|0; - $0 = sp + 128|0; - $1 = sp + 64|0; - $2 = sp; - dest=$0; src=14224; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$1; src=14288; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $3 = HEAP32[3588]|0; - $4 = ($3|0)!=(0); - $$ = $4 ? 2 : 1; - $$02932 = 0; - while(1) { - if ($4) { - dest=$modelview$byval_copy; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy2; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _SetStereoView($$02932,$modelview$byval_copy,$$byval_copy2); - } - $8 = HEAP32[3592]|0; - $9 = ($8|0)>(0); - $10 = HEAP32[3604]|0; - $11 = ($10|0)>(0); - $or$cond = $9 | $11; - $12 = HEAP32[3544]|0; - $13 = ($12|0)>(0); - $or$cond3 = $or$cond | $13; - if ($or$cond3) { - $14 = HEAP32[3616]|0; - _glUseProgram(($14|0)); - dest=$modelview$byval_copy; src=14288; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy2; src=14224; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($2,$modelview$byval_copy,$$byval_copy2); - $15 = HEAP32[(14492)>>2]|0; - dest=$$byval_copy2; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $16 = (_MatrixToFloat($$byval_copy2)|0); - _glUniformMatrix4fv(($15|0),1,0,($16|0)); - $17 = HEAP32[(14512)>>2]|0; - _glUniform4f(($17|0),1.0,1.0,1.0,1.0); - $18 = HEAP32[(14524)>>2]|0; - _glUniform1i(($18|0),0); - } - $19 = HEAP32[3592]|0; - $20 = ($19|0)>(0); - if ($20) { - _glActiveTexture(33984); - $21 = HEAP32[3590]|0; - _glBindTexture(3553,($21|0)); - $22 = HEAP32[3649]|0; - $23 = ($22|0)==(0); - if ($23) { - $26 = HEAP32[(14400)>>2]|0; - _glBindBuffer(34962,($26|0)); - $27 = HEAP32[(14468)>>2]|0; - _glVertexAttribPointer(($27|0),3,5126,0,0,(0|0)); - $28 = HEAP32[(14468)>>2]|0; - _glEnableVertexAttribArray(($28|0)); - $29 = HEAP32[(14404)>>2]|0; - _glBindBuffer(34962,($29|0)); - $30 = HEAP32[(14488)>>2]|0; - _glVertexAttribPointer(($30|0),4,5121,1,0,(0|0)); - $31 = HEAP32[(14488)>>2]|0; - _glEnableVertexAttribArray(($31|0)); - } else { - $24 = HEAP32[3650]|0; - $25 = HEAP32[(14396)>>2]|0; - FUNCTION_TABLE_vi[$24 & 31]($25); - } - $32 = HEAP32[3592]|0; - _glDrawArrays(1,0,($32|0)); - $33 = HEAP32[3649]|0; - $34 = ($33|0)==(0); - if ($34) { - _glBindBuffer(34962,0); - } - _glBindTexture(3553,0); - } - $35 = HEAP32[3604]|0; - $36 = ($35|0)>(0); - if ($36) { - _glActiveTexture(33984); - $37 = HEAP32[3590]|0; - _glBindTexture(3553,($37|0)); - $38 = HEAP32[3649]|0; - $39 = ($38|0)==(0); - if ($39) { - $42 = HEAP32[(14448)>>2]|0; - _glBindBuffer(34962,($42|0)); - $43 = HEAP32[(14468)>>2]|0; - _glVertexAttribPointer(($43|0),3,5126,0,0,(0|0)); - $44 = HEAP32[(14468)>>2]|0; - _glEnableVertexAttribArray(($44|0)); - $45 = HEAP32[(14452)>>2]|0; - _glBindBuffer(34962,($45|0)); - $46 = HEAP32[(14488)>>2]|0; - _glVertexAttribPointer(($46|0),4,5121,1,0,(0|0)); - $47 = HEAP32[(14488)>>2]|0; - _glEnableVertexAttribArray(($47|0)); - } else { - $40 = HEAP32[3650]|0; - $41 = HEAP32[(14444)>>2]|0; - FUNCTION_TABLE_vi[$40 & 31]($41); - } - $48 = HEAP32[3604]|0; - _glDrawArrays(4,0,($48|0)); - $49 = HEAP32[3649]|0; - $50 = ($49|0)==(0); - if ($50) { - _glBindBuffer(34962,0); - } - _glBindTexture(3553,0); - } - $51 = HEAP32[3544]|0; - $52 = ($51|0)>(0); - if ($52) { - $53 = HEAP32[3649]|0; - $54 = ($53|0)==(0); - if ($54) { - $57 = HEAP32[(14208)>>2]|0; - _glBindBuffer(34962,($57|0)); - $58 = HEAP32[(14468)>>2]|0; - _glVertexAttribPointer(($58|0),3,5126,0,0,(0|0)); - $59 = HEAP32[(14468)>>2]|0; - _glEnableVertexAttribArray(($59|0)); - $60 = HEAP32[(14212)>>2]|0; - _glBindBuffer(34962,($60|0)); - $61 = HEAP32[(14472)>>2]|0; - _glVertexAttribPointer(($61|0),2,5126,0,0,(0|0)); - $62 = HEAP32[(14472)>>2]|0; - _glEnableVertexAttribArray(($62|0)); - $63 = HEAP32[(14216)>>2]|0; - _glBindBuffer(34962,($63|0)); - $64 = HEAP32[(14488)>>2]|0; - _glVertexAttribPointer(($64|0),4,5121,1,0,(0|0)); - $65 = HEAP32[(14488)>>2]|0; - _glEnableVertexAttribArray(($65|0)); - $66 = HEAP32[(14220)>>2]|0; - _glBindBuffer(34963,($66|0)); - } else { - $55 = HEAP32[3650]|0; - $56 = HEAP32[(14204)>>2]|0; - FUNCTION_TABLE_vi[$55 & 31]($56); - } - $67 = HEAP32[3589]|0; - $68 = ($67|0)>(0); - if ($68) { - $$02830 = 0;$$031 = 0; - while(1) { - $71 = HEAP32[3591]|0; - $72 = (($71) + (($$031*144)|0)|0); - $73 = HEAP32[$72>>2]|0; - $74 = (($73|0) / 4)&-1; - $75 = ($74*6)|0; - _glActiveTexture(33984); - $76 = HEAP32[3591]|0; - $77 = (((($76) + (($$031*144)|0)|0)) + 8|0); - $78 = HEAP32[$77>>2]|0; - _glBindTexture(3553,($78|0)); - $79 = $$02830 << 1; - $80 = $79; - _glDrawElements(4,($75|0),5123,($80|0)); - $81 = HEAP32[3591]|0; - $82 = (($81) + (($$031*144)|0)|0); - $83 = HEAP32[$82>>2]|0; - $84 = (($83|0) / 4)&-1; - $85 = ($84*6)|0; - $86 = (($85) + ($$02830))|0; - $87 = (($$031) + 1)|0; - $88 = HEAP32[3589]|0; - $89 = ($87|0)<($88|0); - if ($89) { - $$02830 = $86;$$031 = $87; - } else { - break; - } - } - } - $69 = HEAP32[3649]|0; - $70 = ($69|0)==(0); - if ($70) { - _glBindBuffer(34962,0); - _glBindBuffer(34963,0); - } - _glBindTexture(3553,0); - } - $90 = HEAP32[3649]|0; - $91 = ($90|0)==(0); - if (!($91)) { - $92 = HEAP32[3650]|0; - FUNCTION_TABLE_vi[$92 & 31](0); - } - _glUseProgram(0); - $93 = (($$02932) + 1)|0; - $94 = ($93|0)<($$|0); - if ($94) { - $$02932 = $93; - } else { - break; - } - } - HEAP32[3589] = 1; - $5 = HEAP32[3590]|0; - $6 = HEAP32[3591]|0; - $7 = ((($6)) + 8|0); - HEAP32[$7>>2] = $5; - HEAP32[$6>>2] = 0; - HEAP32[3592] = 0; - HEAP32[(14376)>>2] = 0; - HEAP32[3604] = 0; - HEAP32[(14424)>>2] = 0; - HEAP32[3544] = 0; - HEAP32[(14180)>>2] = 0; - HEAP32[(14184)>>2] = 0; - HEAPF32[740] = -1.0; - dest=14224; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=14288; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _SetStereoView($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $$byval_copy3 = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy3 = sp + 192|0; - $$byval_copy = sp + 64|0; - $3 = sp; - $4 = sp + 128|0; - dest=$3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $5 = HEAP32[3667]|0; - $6 = Math_imul($5, $0)|0; - $7 = (($6|0) / 2)&-1; - $8 = (($5|0) / 2)&-1; - $9 = HEAP32[3668]|0; - _rlViewport($7,0,$8,$9); - $10 = (14980 + ($0<<6)|0); - dest=$$byval_copy; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy3; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($4,$$byval_copy,$$byval_copy3); - $11 = (14852 + ($0<<6)|0); - dest=$3; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _SetMatrixModelview($$byval_copy3); - dest=$$byval_copy3; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _SetMatrixProjection($$byval_copy3); - STACKTOP = sp;return; -} -function _MatrixMultiply($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0.0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0; - var $104 = 0.0, $105 = 0, $106 = 0.0, $107 = 0.0, $108 = 0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0; - var $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0; - var $140 = 0.0, $141 = 0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0; - var $159 = 0.0, $16 = 0.0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0; - var $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0; - var $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0; - var $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0; - var $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0; - var $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $3 = +HEAPF32[$1>>2]; - $4 = +HEAPF32[$2>>2]; - $5 = $3 * $4; - $6 = ((($1)) + 16|0); - $7 = +HEAPF32[$6>>2]; - $8 = ((($2)) + 4|0); - $9 = +HEAPF32[$8>>2]; - $10 = $7 * $9; - $11 = $5 + $10; - $12 = ((($1)) + 32|0); - $13 = +HEAPF32[$12>>2]; - $14 = ((($2)) + 8|0); - $15 = +HEAPF32[$14>>2]; - $16 = $13 * $15; - $17 = $11 + $16; - $18 = ((($1)) + 48|0); - $19 = +HEAPF32[$18>>2]; - $20 = ((($2)) + 12|0); - $21 = +HEAPF32[$20>>2]; - $22 = $19 * $21; - $23 = $17 + $22; - $24 = ((($2)) + 16|0); - $25 = +HEAPF32[$24>>2]; - $26 = $3 * $25; - $27 = ((($2)) + 20|0); - $28 = +HEAPF32[$27>>2]; - $29 = $7 * $28; - $30 = $26 + $29; - $31 = ((($2)) + 24|0); - $32 = +HEAPF32[$31>>2]; - $33 = $13 * $32; - $34 = $30 + $33; - $35 = ((($2)) + 28|0); - $36 = +HEAPF32[$35>>2]; - $37 = $19 * $36; - $38 = $34 + $37; - $39 = ((($2)) + 32|0); - $40 = +HEAPF32[$39>>2]; - $41 = $3 * $40; - $42 = ((($2)) + 36|0); - $43 = +HEAPF32[$42>>2]; - $44 = $7 * $43; - $45 = $41 + $44; - $46 = ((($2)) + 40|0); - $47 = +HEAPF32[$46>>2]; - $48 = $13 * $47; - $49 = $45 + $48; - $50 = ((($2)) + 44|0); - $51 = +HEAPF32[$50>>2]; - $52 = $19 * $51; - $53 = $49 + $52; - $54 = ((($2)) + 48|0); - $55 = +HEAPF32[$54>>2]; - $56 = $3 * $55; - $57 = ((($2)) + 52|0); - $58 = +HEAPF32[$57>>2]; - $59 = $7 * $58; - $60 = $56 + $59; - $61 = ((($2)) + 56|0); - $62 = +HEAPF32[$61>>2]; - $63 = $13 * $62; - $64 = $60 + $63; - $65 = ((($2)) + 60|0); - $66 = +HEAPF32[$65>>2]; - $67 = $19 * $66; - $68 = $64 + $67; - $69 = ((($1)) + 4|0); - $70 = +HEAPF32[$69>>2]; - $71 = $4 * $70; - $72 = ((($1)) + 20|0); - $73 = +HEAPF32[$72>>2]; - $74 = $9 * $73; - $75 = $71 + $74; - $76 = ((($1)) + 36|0); - $77 = +HEAPF32[$76>>2]; - $78 = $15 * $77; - $79 = $75 + $78; - $80 = ((($1)) + 52|0); - $81 = +HEAPF32[$80>>2]; - $82 = $21 * $81; - $83 = $79 + $82; - $84 = $25 * $70; - $85 = $28 * $73; - $86 = $84 + $85; - $87 = $32 * $77; - $88 = $86 + $87; - $89 = $36 * $81; - $90 = $88 + $89; - $91 = $40 * $70; - $92 = $43 * $73; - $93 = $91 + $92; - $94 = $47 * $77; - $95 = $93 + $94; - $96 = $51 * $81; - $97 = $95 + $96; - $98 = $55 * $70; - $99 = $58 * $73; - $100 = $98 + $99; - $101 = $62 * $77; - $102 = $100 + $101; - $103 = $66 * $81; - $104 = $102 + $103; - $105 = ((($1)) + 8|0); - $106 = +HEAPF32[$105>>2]; - $107 = $4 * $106; - $108 = ((($1)) + 24|0); - $109 = +HEAPF32[$108>>2]; - $110 = $9 * $109; - $111 = $107 + $110; - $112 = ((($1)) + 40|0); - $113 = +HEAPF32[$112>>2]; - $114 = $15 * $113; - $115 = $111 + $114; - $116 = ((($1)) + 56|0); - $117 = +HEAPF32[$116>>2]; - $118 = $21 * $117; - $119 = $115 + $118; - $120 = $25 * $106; - $121 = $28 * $109; - $122 = $120 + $121; - $123 = $32 * $113; - $124 = $122 + $123; - $125 = $36 * $117; - $126 = $124 + $125; - $127 = $40 * $106; - $128 = $43 * $109; - $129 = $127 + $128; - $130 = $47 * $113; - $131 = $129 + $130; - $132 = $51 * $117; - $133 = $131 + $132; - $134 = $55 * $106; - $135 = $58 * $109; - $136 = $134 + $135; - $137 = $62 * $113; - $138 = $136 + $137; - $139 = $66 * $117; - $140 = $138 + $139; - $141 = ((($1)) + 12|0); - $142 = +HEAPF32[$141>>2]; - $143 = $4 * $142; - $144 = ((($1)) + 28|0); - $145 = +HEAPF32[$144>>2]; - $146 = $9 * $145; - $147 = $143 + $146; - $148 = ((($1)) + 44|0); - $149 = +HEAPF32[$148>>2]; - $150 = $15 * $149; - $151 = $147 + $150; - $152 = ((($1)) + 60|0); - $153 = +HEAPF32[$152>>2]; - $154 = $21 * $153; - $155 = $151 + $154; - $156 = $25 * $142; - $157 = $28 * $145; - $158 = $156 + $157; - $159 = $32 * $149; - $160 = $158 + $159; - $161 = $36 * $153; - $162 = $160 + $161; - $163 = $40 * $142; - $164 = $43 * $145; - $165 = $163 + $164; - $166 = $47 * $149; - $167 = $165 + $166; - $168 = $51 * $153; - $169 = $167 + $168; - $170 = $55 * $142; - $171 = $58 * $145; - $172 = $170 + $171; - $173 = $62 * $149; - $174 = $172 + $173; - $175 = $66 * $153; - $176 = $174 + $175; - HEAPF32[$0>>2] = $23; - $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $83; - $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $119; - $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); - HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = $155; - $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); - HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $38; - $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); - HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $90; - $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); - HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $126; - $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); - HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = $162; - $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); - HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $53; - $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); - HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $97; - $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); - HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $133; - $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); - HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = $169; - $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); - HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $68; - $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); - HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $104; - $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); - HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $140; - $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); - HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = $176; - return; -} -function _MatrixToFloat($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - HEAP32[3651] = $1; - $2 = ((($0)) + 16|0); - $3 = HEAP32[$2>>2]|0; - HEAP32[(14608)>>2] = $3; - $4 = ((($0)) + 32|0); - $5 = HEAP32[$4>>2]|0; - HEAP32[(14612)>>2] = $5; - $6 = ((($0)) + 48|0); - $7 = HEAP32[$6>>2]|0; - HEAP32[(14616)>>2] = $7; - $8 = ((($0)) + 4|0); - $9 = HEAP32[$8>>2]|0; - HEAP32[(14620)>>2] = $9; - $10 = ((($0)) + 20|0); - $11 = HEAP32[$10>>2]|0; - HEAP32[(14624)>>2] = $11; - $12 = ((($0)) + 36|0); - $13 = HEAP32[$12>>2]|0; - HEAP32[(14628)>>2] = $13; - $14 = ((($0)) + 52|0); - $15 = HEAP32[$14>>2]|0; - HEAP32[(14632)>>2] = $15; - $16 = ((($0)) + 8|0); - $17 = HEAP32[$16>>2]|0; - HEAP32[(14636)>>2] = $17; - $18 = ((($0)) + 24|0); - $19 = HEAP32[$18>>2]|0; - HEAP32[(14640)>>2] = $19; - $20 = ((($0)) + 40|0); - $21 = HEAP32[$20>>2]|0; - HEAP32[(14644)>>2] = $21; - $22 = ((($0)) + 56|0); - $23 = HEAP32[$22>>2]|0; - HEAP32[(14648)>>2] = $23; - $24 = ((($0)) + 12|0); - $25 = HEAP32[$24>>2]|0; - HEAP32[(14652)>>2] = $25; - $26 = ((($0)) + 28|0); - $27 = HEAP32[$26>>2]|0; - HEAP32[(14656)>>2] = $27; - $28 = ((($0)) + 44|0); - $29 = HEAP32[$28>>2]|0; - HEAP32[(14660)>>2] = $29; - $30 = ((($0)) + 60|0); - $31 = HEAP32[$30>>2]|0; - HEAP32[(14664)>>2] = $31; - return (14604|0); -} -function _rlViewport($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var label = 0, sp = 0; - sp = STACKTOP; - _glViewport(($0|0),($1|0),($2|0),($3|0)); - return; -} -function _SetMatrixModelview($0) { - $0 = $0|0; - var dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - dest=14288; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - return; -} -function _SetMatrixProjection($0) { - $0 = $0|0; - var dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - dest=14224; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - return; -} -function _Vector3Transform($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0; - var $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0.0; - var $47 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = +HEAPF32[$0>>2]; - $3 = ((($0)) + 4|0); - $4 = +HEAPF32[$3>>2]; - $5 = ((($0)) + 8|0); - $6 = +HEAPF32[$5>>2]; - $7 = +HEAPF32[$1>>2]; - $8 = $2 * $7; - $9 = ((($1)) + 4|0); - $10 = +HEAPF32[$9>>2]; - $11 = $4 * $10; - $12 = $8 + $11; - $13 = ((($1)) + 8|0); - $14 = +HEAPF32[$13>>2]; - $15 = $6 * $14; - $16 = $12 + $15; - $17 = ((($1)) + 12|0); - $18 = +HEAPF32[$17>>2]; - $19 = $18 + $16; - HEAPF32[$0>>2] = $19; - $20 = ((($1)) + 16|0); - $21 = +HEAPF32[$20>>2]; - $22 = $2 * $21; - $23 = ((($1)) + 20|0); - $24 = +HEAPF32[$23>>2]; - $25 = $4 * $24; - $26 = $22 + $25; - $27 = ((($1)) + 24|0); - $28 = +HEAPF32[$27>>2]; - $29 = $6 * $28; - $30 = $26 + $29; - $31 = ((($1)) + 28|0); - $32 = +HEAPF32[$31>>2]; - $33 = $32 + $30; - HEAPF32[$3>>2] = $33; - $34 = ((($1)) + 32|0); - $35 = +HEAPF32[$34>>2]; - $36 = $2 * $35; - $37 = ((($1)) + 36|0); - $38 = +HEAPF32[$37>>2]; - $39 = $4 * $38; - $40 = $36 + $39; - $41 = ((($1)) + 40|0); - $42 = +HEAPF32[$41>>2]; - $43 = $6 * $42; - $44 = $40 + $43; - $45 = ((($1)) + 44|0); - $46 = +HEAPF32[$45>>2]; - $47 = $46 + $44; - HEAPF32[$5>>2] = $47; - return; -} -function _rlVertex3f($0,$1,$2) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $3 = HEAP32[4035]|0; - $4 = ($3|0)==(0); - if (!($4)) { - $5 = HEAP32[4037]|0; - $6 = HEAP32[4036]|0; - $7 = (($5) + (($6*12)|0)|0); - HEAPF32[$7>>2] = $0; - $8 = (((($5) + (($6*12)|0)|0)) + 4|0); - HEAPF32[$8>>2] = $1; - $9 = (((($5) + (($6*12)|0)|0)) + 8|0); - HEAPF32[$9>>2] = $2; - $10 = (($6) + 1)|0; - HEAP32[4036] = $10; - STACKTOP = sp;return; - } - $11 = HEAP32[4038]|0; - switch ($11|0) { - case 1: { - $12 = HEAP32[3592]|0; - $13 = ($12|0)<(2048); - if ($13) { - $14 = HEAP32[(14380)>>2]|0; - $15 = ($12*3)|0; - $16 = (($14) + ($15<<2)|0); - HEAPF32[$16>>2] = $0; - $17 = (($15) + 1)|0; - $18 = (($14) + ($17<<2)|0); - HEAPF32[$18>>2] = $1; - $19 = (($15) + 2)|0; - $20 = (($14) + ($19<<2)|0); - HEAPF32[$20>>2] = $2; - $21 = (($12) + 1)|0; - HEAP32[3592] = $21; - STACKTOP = sp;return; - } else { - _TraceLog(2,4141,$vararg_buffer); - STACKTOP = sp;return; - } - break; - } - case 4: { - $22 = HEAP32[3604]|0; - $23 = ($22|0)<(6144); - if ($23) { - $24 = HEAP32[(14428)>>2]|0; - $25 = ($22*3)|0; - $26 = (($24) + ($25<<2)|0); - HEAPF32[$26>>2] = $0; - $27 = (($25) + 1)|0; - $28 = (($24) + ($27<<2)|0); - HEAPF32[$28>>2] = $1; - $29 = (($25) + 2)|0; - $30 = (($24) + ($29<<2)|0); - HEAPF32[$30>>2] = $2; - $31 = (($22) + 1)|0; - HEAP32[3604] = $31; - STACKTOP = sp;return; - } else { - _TraceLog(2,4166,$vararg_buffer1); - STACKTOP = sp;return; - } - break; - } - case 7: { - $32 = HEAP32[3544]|0; - $33 = ($32|0)<(4096); - if ($33) { - $34 = HEAP32[(14188)>>2]|0; - $35 = ($32*3)|0; - $36 = (($34) + ($35<<2)|0); - HEAPF32[$36>>2] = $0; - $37 = (($35) + 1)|0; - $38 = (($34) + ($37<<2)|0); - HEAPF32[$38>>2] = $1; - $39 = (($35) + 2)|0; - $40 = (($34) + ($39<<2)|0); - HEAPF32[$40>>2] = $2; - $41 = (($32) + 1)|0; - HEAP32[3544] = $41; - $42 = HEAP32[3591]|0; - $43 = HEAP32[3589]|0; - $44 = (($43) + -1)|0; - $45 = (($42) + (($44*144)|0)|0); - $46 = HEAP32[$45>>2]|0; - $47 = (($46) + 1)|0; - HEAP32[$45>>2] = $47; - STACKTOP = sp;return; - } else { - _TraceLog(2,4195,$vararg_buffer3); - STACKTOP = sp;return; - } - break; - } - default: { - STACKTOP = sp;return; - } - } -} -function _MatrixIdentity($0) { - $0 = $0|0; - var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF32[$0>>2] = 1.0; - $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); - ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; - $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); - HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = 1.0; - $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); - ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; - $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); - HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = 1.0; - $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); - ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; - $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); - HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; - return; -} -function _Vector3Normalize($0) { - $0 = $0|0; - var $$byval_copy = 0, $$op = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp; - ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; - $1 = (+_Vector3Length($$byval_copy)); - $2 = $1 == 0.0; - $$op = 1.0 / $1; - $3 = $2 ? 1.0 : $$op; - $4 = +HEAPF32[$0>>2]; - $5 = $4 * $3; - HEAPF32[$0>>2] = $5; - $6 = ((($0)) + 4|0); - $7 = +HEAPF32[$6>>2]; - $8 = $3 * $7; - HEAPF32[$6>>2] = $8; - $9 = ((($0)) + 8|0); - $10 = +HEAPF32[$9>>2]; - $11 = $3 * $10; - HEAPF32[$9>>2] = $11; - STACKTOP = sp;return; -} -function _MatrixRotate($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = +$2; - var $$ = 0.0, $$221 = 0.0, $$222 = 0.0, $$sroa$10$0$$sroa_idx199 = 0, $$sroa$11$0$$sroa_idx201 = 0, $$sroa$12$0$$sroa_idx203 = 0, $$sroa$13$0$$sroa_idx205 = 0, $$sroa$14$0$$sroa_idx207 = 0, $$sroa$15$0$$sroa_idx209 = 0, $$sroa$16$0$$sroa_idx211 = 0, $$sroa$17$0$$sroa_idx213 = 0, $$sroa$18$0$$sroa_idx215 = 0, $$sroa$4$0$$sroa_idx187 = 0, $$sroa$5$0$$sroa_idx189 = 0, $$sroa$6$0$$sroa_idx191 = 0, $$sroa$7$0$$sroa_idx193 = 0, $$sroa$8$0$$sroa_idx195 = 0, $$sroa$9$0$$sroa_idx197 = 0, $10 = 0.0, $100 = 0.0; - var $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0; - var $12 = 0.0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0; - var $138 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0; - var $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0; - var $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0; - var $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0.0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0; - var $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $3 = sp; - _MatrixIdentity($3); - $4 = +HEAPF32[$1>>2]; - $5 = ((($1)) + 4|0); - $6 = +HEAPF32[$5>>2]; - $7 = ((($1)) + 8|0); - $8 = +HEAPF32[$7>>2]; - $9 = $4 * $4; - $10 = $6 * $6; - $11 = $9 + $10; - $12 = $8 * $8; - $13 = $11 + $12; - $14 = (+Math_sqrt((+$13))); - $15 = $14 != 1.0; - $16 = $14 != 0.0; - $or$cond = $15 & $16; - $17 = 1.0 / $14; - $18 = $4 * $17; - $19 = $6 * $17; - $20 = $8 * $17; - $$ = $or$cond ? $20 : $8; - $$221 = $or$cond ? $19 : $6; - $$222 = $or$cond ? $18 : $4; - $21 = (+Math_sin((+$2))); - $22 = (+Math_cos((+$2))); - $23 = 1.0 - $22; - $24 = +HEAPF32[$3>>2]; - $25 = ((($3)) + 16|0); - $26 = +HEAPF32[$25>>2]; - $27 = ((($3)) + 32|0); - $28 = +HEAPF32[$27>>2]; - $29 = ((($3)) + 48|0); - $30 = +HEAPF32[$29>>2]; - $31 = ((($3)) + 4|0); - $32 = +HEAPF32[$31>>2]; - $33 = ((($3)) + 20|0); - $34 = +HEAPF32[$33>>2]; - $35 = ((($3)) + 36|0); - $36 = +HEAPF32[$35>>2]; - $37 = ((($3)) + 52|0); - $38 = +HEAPF32[$37>>2]; - $39 = ((($3)) + 8|0); - $40 = +HEAPF32[$39>>2]; - $41 = ((($3)) + 24|0); - $42 = +HEAPF32[$41>>2]; - $43 = ((($3)) + 40|0); - $44 = +HEAPF32[$43>>2]; - $45 = ((($3)) + 56|0); - $46 = +HEAPF32[$45>>2]; - $47 = $$222 * $$222; - $48 = $23 * $47; - $49 = $22 + $48; - $50 = $$221 * $$222; - $51 = $23 * $50; - $52 = $21 * $$; - $53 = $52 + $51; - $54 = $$ * $$222; - $55 = $23 * $54; - $56 = $21 * $$221; - $57 = $55 - $56; - $58 = $51 - $52; - $59 = $$221 * $$221; - $60 = $23 * $59; - $61 = $22 + $60; - $62 = $$ * $$221; - $63 = $23 * $62; - $64 = $21 * $$222; - $65 = $64 + $63; - $66 = $56 + $55; - $67 = $63 - $64; - $68 = $$ * $$; - $69 = $23 * $68; - $70 = $22 + $69; - $71 = $24 * $49; - $72 = $53 * $32; - $73 = $71 + $72; - $74 = $57 * $40; - $75 = $73 + $74; - $76 = $26 * $49; - $77 = $53 * $34; - $78 = $76 + $77; - $79 = $57 * $42; - $80 = $78 + $79; - $81 = $28 * $49; - $82 = $53 * $36; - $83 = $81 + $82; - $84 = $57 * $44; - $85 = $83 + $84; - $86 = $30 * $49; - $87 = $53 * $38; - $88 = $86 + $87; - $89 = $57 * $46; - $90 = $88 + $89; - $91 = $24 * $58; - $92 = $61 * $32; - $93 = $91 + $92; - $94 = $65 * $40; - $95 = $93 + $94; - $96 = $26 * $58; - $97 = $61 * $34; - $98 = $96 + $97; - $99 = $65 * $42; - $100 = $98 + $99; - $101 = $28 * $58; - $102 = $61 * $36; - $103 = $101 + $102; - $104 = $65 * $44; - $105 = $103 + $104; - $106 = $30 * $58; - $107 = $61 * $38; - $108 = $106 + $107; - $109 = $65 * $46; - $110 = $108 + $109; - $111 = $24 * $66; - $112 = $67 * $32; - $113 = $111 + $112; - $114 = $70 * $40; - $115 = $113 + $114; - $116 = $26 * $66; - $117 = $67 * $34; - $118 = $116 + $117; - $119 = $70 * $42; - $120 = $118 + $119; - $121 = $28 * $66; - $122 = $67 * $36; - $123 = $121 + $122; - $124 = $70 * $44; - $125 = $123 + $124; - $126 = $30 * $66; - $127 = $67 * $38; - $128 = $126 + $127; - $129 = $70 * $46; - $130 = $128 + $129; - $131 = ((($3)) + 12|0); - $132 = HEAP32[$131>>2]|0; - $133 = ((($3)) + 28|0); - $134 = HEAP32[$133>>2]|0; - $135 = ((($3)) + 44|0); - $136 = HEAP32[$135>>2]|0; - $137 = ((($3)) + 60|0); - $138 = HEAP32[$137>>2]|0; - HEAPF32[$0>>2] = $75; - $$sroa$4$0$$sroa_idx187 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx187>>2] = $95; - $$sroa$5$0$$sroa_idx189 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx189>>2] = $115; - $$sroa$6$0$$sroa_idx191 = ((($0)) + 12|0); - HEAP32[$$sroa$6$0$$sroa_idx191>>2] = $132; - $$sroa$7$0$$sroa_idx193 = ((($0)) + 16|0); - HEAPF32[$$sroa$7$0$$sroa_idx193>>2] = $80; - $$sroa$8$0$$sroa_idx195 = ((($0)) + 20|0); - HEAPF32[$$sroa$8$0$$sroa_idx195>>2] = $100; - $$sroa$9$0$$sroa_idx197 = ((($0)) + 24|0); - HEAPF32[$$sroa$9$0$$sroa_idx197>>2] = $120; - $$sroa$10$0$$sroa_idx199 = ((($0)) + 28|0); - HEAP32[$$sroa$10$0$$sroa_idx199>>2] = $134; - $$sroa$11$0$$sroa_idx201 = ((($0)) + 32|0); - HEAPF32[$$sroa$11$0$$sroa_idx201>>2] = $85; - $$sroa$12$0$$sroa_idx203 = ((($0)) + 36|0); - HEAPF32[$$sroa$12$0$$sroa_idx203>>2] = $105; - $$sroa$13$0$$sroa_idx205 = ((($0)) + 40|0); - HEAPF32[$$sroa$13$0$$sroa_idx205>>2] = $125; - $$sroa$14$0$$sroa_idx207 = ((($0)) + 44|0); - HEAP32[$$sroa$14$0$$sroa_idx207>>2] = $136; - $$sroa$15$0$$sroa_idx209 = ((($0)) + 48|0); - HEAPF32[$$sroa$15$0$$sroa_idx209>>2] = $90; - $$sroa$16$0$$sroa_idx211 = ((($0)) + 52|0); - HEAPF32[$$sroa$16$0$$sroa_idx211>>2] = $110; - $$sroa$17$0$$sroa_idx213 = ((($0)) + 56|0); - HEAPF32[$$sroa$17$0$$sroa_idx213>>2] = $130; - $$sroa$18$0$$sroa_idx215 = ((($0)) + 60|0); - HEAP32[$$sroa$18$0$$sroa_idx215>>2] = $138; - STACKTOP = sp;return; -} -function _Vector3Length($0) { - $0 = $0|0; - var $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $1 = +HEAPF32[$0>>2]; - $2 = $1 * $1; - $3 = ((($0)) + 4|0); - $4 = +HEAPF32[$3>>2]; - $5 = $4 * $4; - $6 = $2 + $5; - $7 = ((($0)) + 8|0); - $8 = +HEAPF32[$7>>2]; - $9 = $8 * $8; - $10 = $6 + $9; - $11 = (+Math_sqrt((+$10))); - return (+$11); -} -function _MatrixTranslate($0,$1,$2,$3) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - var $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF32[$0>>2] = 1.0; - $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = 0.0; - $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = 0.0; - $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); - HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = $1; - $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); - HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = 0.0; - $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); - HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = 1.0; - $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); - HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = 0.0; - $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); - HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = $2; - $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); - HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = 0.0; - $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); - HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = 0.0; - $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); - HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = 1.0; - $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); - HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = $3; - $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); - HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = 0.0; - $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); - HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = 0.0; - $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); - HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = 0.0; - $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); - HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; - return; -} -function _rlLoadIdentity() { - var $0 = 0, $1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $0 = sp; - $1 = HEAP32[4034]|0; - _MatrixIdentity($0); - dest=$1; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _FormatText($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - HEAP32[$1>>2] = $varargs; - (_vsprintf(17196,$0,$1)|0); - STACKTOP = sp;return (17196|0); -} -function _DrawFPS($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp; - $2 = sp + 4|0; - $3 = HEAP32[4040]|0; - $4 = HEAP32[741]|0; - $5 = ($3|0)<($4|0); - if ($5) { - $6 = (($3) + 1)|0; - $$sink = $6; - } else { - $7 = (_GetFPS()|0); - HEAP32[4041] = $7; - HEAP32[741] = $7; - $$sink = 0; - } - HEAP32[4040] = $$sink; - $8 = HEAP32[4041]|0; - HEAP32[$$byval_copy>>2] = $8; - (_FormatText(4258,$$byval_copy)|0); - HEAP8[$2>>0] = 0; - $9 = ((($2)) + 1|0); - HEAP8[$9>>0] = -98; - $10 = ((($2)) + 2|0); - HEAP8[$10>>0] = 47; - $11 = ((($2)) + 3|0); - HEAP8[$11>>0] = -1; - ;HEAP8[$$byval_copy>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$2+3>>0]|0; - _DrawText(17196,$0,$1,20,$$byval_copy); - STACKTOP = sp;return; -} -function _GetFPS() { - var $0 = 0.0, $1 = 0.0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (+_GetFrameTime()); - $1 = 1.0 / $0; - $2 = (~~(($1))); - return ($2|0); -} -function _GetFrameTime() { - var $0 = 0.0, $1 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $0 = +HEAPF64[1739]; - $1 = $0; - return (+$1); -} -function _rlGetVersion() { - var label = 0, sp = 0; - sp = STACKTOP; - return 4; -} -function _DrawCube($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - $4 = $4|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0; - var $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - _rlPushMatrix(); - $5 = +HEAPF32[$0>>2]; - $6 = ((($0)) + 4|0); - $7 = +HEAPF32[$6>>2]; - $8 = ((($0)) + 8|0); - $9 = +HEAPF32[$8>>2]; - _rlTranslatef($5,$7,$9); - _rlBegin(4); - $10 = HEAP8[$4>>0]|0; - $11 = ((($4)) + 1|0); - $12 = HEAP8[$11>>0]|0; - $13 = ((($4)) + 2|0); - $14 = HEAP8[$13>>0]|0; - $15 = ((($4)) + 3|0); - $16 = HEAP8[$15>>0]|0; - _rlColor4ub($10,$12,$14,$16); - $17 = $1 * 0.5; - $18 = 0.0 - $17; - $19 = $2 * 0.5; - $20 = 0.0 - $19; - $21 = $3 * 0.5; - $22 = $21 + 0.0; - _rlVertex3f($18,$20,$22); - $23 = $17 + 0.0; - _rlVertex3f($23,$20,$22); - $24 = $19 + 0.0; - _rlVertex3f($18,$24,$22); - _rlVertex3f($23,$24,$22); - _rlVertex3f($18,$24,$22); - _rlVertex3f($23,$20,$22); - $25 = 0.0 - $21; - _rlVertex3f($18,$20,$25); - _rlVertex3f($18,$24,$25); - _rlVertex3f($23,$20,$25); - _rlVertex3f($23,$24,$25); - _rlVertex3f($23,$20,$25); - _rlVertex3f($18,$24,$25); - _rlVertex3f($18,$24,$25); - _rlVertex3f($18,$24,$22); - _rlVertex3f($23,$24,$22); - _rlVertex3f($23,$24,$25); - _rlVertex3f($18,$24,$25); - _rlVertex3f($23,$24,$22); - _rlVertex3f($18,$20,$25); - _rlVertex3f($23,$20,$22); - _rlVertex3f($18,$20,$22); - _rlVertex3f($23,$20,$25); - _rlVertex3f($23,$20,$22); - _rlVertex3f($18,$20,$25); - _rlVertex3f($23,$20,$25); - _rlVertex3f($23,$24,$25); - _rlVertex3f($23,$24,$22); - _rlVertex3f($23,$20,$22); - _rlVertex3f($23,$20,$25); - _rlVertex3f($23,$24,$22); - _rlVertex3f($18,$20,$25); - _rlVertex3f($18,$24,$22); - _rlVertex3f($18,$24,$25); - _rlVertex3f($18,$20,$22); - _rlVertex3f($18,$24,$22); - _rlVertex3f($18,$20,$25); - _rlEnd(); - _rlPopMatrix(); - return; -} -function _DrawCubeWires($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - $4 = $4|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0; - var $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - _rlPushMatrix(); - $5 = +HEAPF32[$0>>2]; - $6 = ((($0)) + 4|0); - $7 = +HEAPF32[$6>>2]; - $8 = ((($0)) + 8|0); - $9 = +HEAPF32[$8>>2]; - _rlTranslatef($5,$7,$9); - _rlBegin(1); - $10 = HEAP8[$4>>0]|0; - $11 = ((($4)) + 1|0); - $12 = HEAP8[$11>>0]|0; - $13 = ((($4)) + 2|0); - $14 = HEAP8[$13>>0]|0; - $15 = ((($4)) + 3|0); - $16 = HEAP8[$15>>0]|0; - _rlColor4ub($10,$12,$14,$16); - $17 = $1 * 0.5; - $18 = 0.0 - $17; - $19 = $2 * 0.5; - $20 = 0.0 - $19; - $21 = $3 * 0.5; - $22 = $21 + 0.0; - _rlVertex3f($18,$20,$22); - $23 = $17 + 0.0; - _rlVertex3f($23,$20,$22); - _rlVertex3f($23,$20,$22); - $24 = $19 + 0.0; - _rlVertex3f($23,$24,$22); - _rlVertex3f($23,$24,$22); - _rlVertex3f($18,$24,$22); - _rlVertex3f($18,$24,$22); - _rlVertex3f($18,$20,$22); - $25 = 0.0 - $21; - _rlVertex3f($18,$20,$25); - _rlVertex3f($23,$20,$25); - _rlVertex3f($23,$20,$25); - _rlVertex3f($23,$24,$25); - _rlVertex3f($23,$24,$25); - _rlVertex3f($18,$24,$25); - _rlVertex3f($18,$24,$25); - _rlVertex3f($18,$20,$25); - _rlVertex3f($18,$24,$22); - _rlVertex3f($18,$24,$25); - _rlVertex3f($23,$24,$22); - _rlVertex3f($23,$24,$25); - _rlVertex3f($18,$20,$22); - _rlVertex3f($18,$20,$25); - _rlVertex3f($23,$20,$22); - _rlVertex3f($23,$20,$25); - _rlEnd(); - _rlPopMatrix(); - return; -} -function _MatrixScale($0,$1,$2,$3) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF32[$0>>2] = $1; - $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); - ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; - $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); - HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = $2; - $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); - ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; - $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); - HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = $3; - $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); - ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; - $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); - HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; - return; -} -function _DrawGrid($0,$1) { - $0 = $0|0; - $1 = +$1; - var $$024 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (($0|0) / 2)&-1; - _rlBegin(1); - $3 = (0 - ($2))|0; - $4 = ($2|0)<($3|0); - if ($4) { - _rlEnd(); - return; - } - $5 = (+($3|0)); - $6 = $5 * $1; - $7 = (+($2|0)); - $8 = $7 * $1; - $$024 = $3; - while(1) { - $9 = ($$024|0)==(0); - if ($9) { - _rlColor3f(0.5,0.5,0.5); - _rlColor3f(0.5,0.5,0.5); - _rlColor3f(0.5,0.5,0.5); - _rlColor3f(0.5,0.5,0.5); - } else { - _rlColor3f(0.75,0.75,0.75); - _rlColor3f(0.75,0.75,0.75); - _rlColor3f(0.75,0.75,0.75); - _rlColor3f(0.75,0.75,0.75); - } - $10 = (+($$024|0)); - $11 = $10 * $1; - _rlVertex3f($11,0.0,$6); - _rlVertex3f($11,0.0,$8); - _rlVertex3f($6,0.0,$11); - _rlVertex3f($8,0.0,$11); - $12 = (($$024) + 1)|0; - $13 = ($$024|0)<($2|0); - if ($13) { - $$024 = $12; - } else { - break; - } - } - _rlEnd(); - return; -} -function _rlColor3f($0,$1,$2) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - var $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = $0 * 255.0; - $4 = (~~(($3))&255); - $5 = $1 * 255.0; - $6 = (~~(($5))&255); - $7 = $2 * 255.0; - $8 = (~~(($7))&255); - _rlColor4ub($4,$6,$8,-1); - return; -} -function _Vector3Subtract($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = +HEAPF32[$1>>2]; - $4 = +HEAPF32[$2>>2]; - $5 = $3 - $4; - HEAPF32[$0>>2] = $5; - $6 = ((($0)) + 4|0); - $7 = ((($1)) + 4|0); - $8 = +HEAPF32[$7>>2]; - $9 = ((($2)) + 4|0); - $10 = +HEAPF32[$9>>2]; - $11 = $8 - $10; - HEAPF32[$6>>2] = $11; - $12 = ((($0)) + 8|0); - $13 = ((($1)) + 8|0); - $14 = +HEAPF32[$13>>2]; - $15 = ((($2)) + 8|0); - $16 = +HEAPF32[$15>>2]; - $17 = $14 - $16; - HEAPF32[$12>>2] = $17; - return; -} -function _Vector3CrossProduct($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0; - var $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($1)) + 4|0); - $4 = +HEAPF32[$3>>2]; - $5 = ((($2)) + 8|0); - $6 = +HEAPF32[$5>>2]; - $7 = $4 * $6; - $8 = ((($1)) + 8|0); - $9 = +HEAPF32[$8>>2]; - $10 = ((($2)) + 4|0); - $11 = +HEAPF32[$10>>2]; - $12 = $9 * $11; - $13 = $7 - $12; - $14 = +HEAPF32[$2>>2]; - $15 = $9 * $14; - $16 = +HEAPF32[$1>>2]; - $17 = $6 * $16; - $18 = $15 - $17; - $19 = $11 * $16; - $20 = $4 * $14; - $21 = $19 - $20; - HEAPF32[$0>>2] = $13; - $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $18; - $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $21; - return; -} -function _MatrixLookAt($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$byval_copy4 = 0, $$byval_copy5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $$byval_copy5 = sp + 116|0; - $$byval_copy4 = sp + 104|0; - $4 = sp + 40|0; - $5 = sp + 24|0; - $6 = sp + 12|0; - $7 = sp; - ;HEAP32[$$byval_copy4>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$1+8>>2]|0; - ;HEAP32[$$byval_copy5>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$2+8>>2]|0; - _Vector3Subtract($5,$$byval_copy4,$$byval_copy5); - _Vector3Normalize($5); - ;HEAP32[$$byval_copy4>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$3+8>>2]|0; - ;HEAP32[$$byval_copy5>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$5+8>>2]|0; - _Vector3CrossProduct($6,$$byval_copy4,$$byval_copy5); - _Vector3Normalize($6); - ;HEAP32[$$byval_copy4>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$5+8>>2]|0; - ;HEAP32[$$byval_copy5>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$6+8>>2]|0; - _Vector3CrossProduct($7,$$byval_copy4,$$byval_copy5); - _Vector3Normalize($7); - $8 = HEAP32[$6>>2]|0; - HEAP32[$4>>2] = $8; - $9 = ((($6)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($4)) + 16|0); - HEAP32[$11>>2] = $10; - $12 = ((($6)) + 8|0); - $13 = HEAP32[$12>>2]|0; - $14 = ((($4)) + 32|0); - HEAP32[$14>>2] = $13; - $15 = ((($4)) + 48|0); - HEAPF32[$15>>2] = 0.0; - $16 = HEAP32[$7>>2]|0; - $17 = ((($4)) + 4|0); - HEAP32[$17>>2] = $16; - $18 = ((($7)) + 4|0); - $19 = HEAP32[$18>>2]|0; - $20 = ((($4)) + 20|0); - HEAP32[$20>>2] = $19; - $21 = ((($7)) + 8|0); - $22 = HEAP32[$21>>2]|0; - $23 = ((($4)) + 36|0); - HEAP32[$23>>2] = $22; - $24 = ((($4)) + 52|0); - HEAPF32[$24>>2] = 0.0; - $25 = HEAP32[$5>>2]|0; - $26 = ((($4)) + 8|0); - HEAP32[$26>>2] = $25; - $27 = ((($5)) + 4|0); - $28 = HEAP32[$27>>2]|0; - $29 = ((($4)) + 24|0); - HEAP32[$29>>2] = $28; - $30 = ((($5)) + 8|0); - $31 = HEAP32[$30>>2]|0; - $32 = ((($4)) + 40|0); - HEAP32[$32>>2] = $31; - $33 = ((($4)) + 56|0); - HEAPF32[$33>>2] = 0.0; - $34 = HEAP32[$1>>2]|0; - $35 = ((($4)) + 12|0); - HEAP32[$35>>2] = $34; - $36 = ((($1)) + 4|0); - $37 = HEAP32[$36>>2]|0; - $38 = ((($4)) + 28|0); - HEAP32[$38>>2] = $37; - $39 = ((($1)) + 8|0); - $40 = HEAP32[$39>>2]|0; - $41 = ((($4)) + 44|0); - HEAP32[$41>>2] = $40; - $42 = ((($4)) + 60|0); - HEAPF32[$42>>2] = 1.0; - _MatrixInvert($4); - dest=$0; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _MatrixInvert($0) { - $0 = $0|0; - var $1 = 0.0, $10 = 0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0; - var $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0; - var $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0, $140 = 0.0, $141 = 0.0, $142 = 0.0, $143 = 0.0, $144 = 0.0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0.0; - var $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0; - var $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0, $29 = 0.0; - var $3 = 0.0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0.0; - var $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0; - var $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0; - var $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $1 = +HEAPF32[$0>>2]; - $2 = ((($0)) + 16|0); - $3 = +HEAPF32[$2>>2]; - $4 = ((($0)) + 32|0); - $5 = +HEAPF32[$4>>2]; - $6 = ((($0)) + 48|0); - $7 = +HEAPF32[$6>>2]; - $8 = ((($0)) + 4|0); - $9 = +HEAPF32[$8>>2]; - $10 = ((($0)) + 20|0); - $11 = +HEAPF32[$10>>2]; - $12 = ((($0)) + 36|0); - $13 = +HEAPF32[$12>>2]; - $14 = ((($0)) + 52|0); - $15 = +HEAPF32[$14>>2]; - $16 = ((($0)) + 8|0); - $17 = +HEAPF32[$16>>2]; - $18 = ((($0)) + 24|0); - $19 = +HEAPF32[$18>>2]; - $20 = ((($0)) + 40|0); - $21 = +HEAPF32[$20>>2]; - $22 = ((($0)) + 56|0); - $23 = +HEAPF32[$22>>2]; - $24 = ((($0)) + 12|0); - $25 = +HEAPF32[$24>>2]; - $26 = ((($0)) + 28|0); - $27 = +HEAPF32[$26>>2]; - $28 = ((($0)) + 44|0); - $29 = +HEAPF32[$28>>2]; - $30 = ((($0)) + 60|0); - $31 = +HEAPF32[$30>>2]; - $32 = $1 * $11; - $33 = $3 * $9; - $34 = $32 - $33; - $35 = $1 * $13; - $36 = $5 * $9; - $37 = $35 - $36; - $38 = $1 * $15; - $39 = $7 * $9; - $40 = $38 - $39; - $41 = $3 * $13; - $42 = $5 * $11; - $43 = $41 - $42; - $44 = $3 * $15; - $45 = $7 * $11; - $46 = $44 - $45; - $47 = $5 * $15; - $48 = $7 * $13; - $49 = $47 - $48; - $50 = $17 * $27; - $51 = $19 * $25; - $52 = $50 - $51; - $53 = $17 * $29; - $54 = $21 * $25; - $55 = $53 - $54; - $56 = $17 * $31; - $57 = $23 * $25; - $58 = $56 - $57; - $59 = $19 * $29; - $60 = $21 * $27; - $61 = $59 - $60; - $62 = $19 * $31; - $63 = $23 * $27; - $64 = $62 - $63; - $65 = $21 * $31; - $66 = $23 * $29; - $67 = $65 - $66; - $68 = $34 * $67; - $69 = $37 * $64; - $70 = $68 - $69; - $71 = $40 * $61; - $72 = $71 + $70; - $73 = $43 * $58; - $74 = $73 + $72; - $75 = $46 * $55; - $76 = $74 - $75; - $77 = $49 * $52; - $78 = $77 + $76; - $79 = 1.0 / $78; - $80 = $11 * $67; - $81 = $13 * $64; - $82 = $80 - $81; - $83 = $15 * $61; - $84 = $83 + $82; - $85 = $84 * $79; - $86 = $3 * $67; - $87 = $5 * $64; - $88 = $87 - $86; - $89 = $7 * $61; - $90 = $88 - $89; - $91 = $90 * $79; - $92 = $49 * $27; - $93 = $46 * $29; - $94 = $92 - $93; - $95 = $43 * $31; - $96 = $94 + $95; - $97 = $96 * $79; - $98 = $19 * $49; - $99 = $46 * $21; - $100 = $99 - $98; - $101 = $43 * $23; - $102 = $100 - $101; - $103 = $102 * $79; - $104 = -$9; - $105 = $67 * $104; - $106 = $13 * $58; - $107 = $105 + $106; - $108 = $15 * $55; - $109 = $107 - $108; - $110 = $109 * $79; - $111 = $1 * $67; - $112 = $5 * $58; - $113 = $111 - $112; - $114 = $7 * $55; - $115 = $114 + $113; - $116 = $115 * $79; - $117 = -$25; - $118 = $49 * $117; - $119 = $40 * $29; - $120 = $118 + $119; - $121 = $37 * $31; - $122 = $120 - $121; - $123 = $122 * $79; - $124 = $17 * $49; - $125 = $40 * $21; - $126 = $124 - $125; - $127 = $37 * $23; - $128 = $126 + $127; - $129 = $128 * $79; - $130 = $9 * $64; - $131 = $11 * $58; - $132 = $130 - $131; - $133 = $15 * $52; - $134 = $133 + $132; - $135 = $134 * $79; - $136 = $1 * $64; - $137 = $3 * $58; - $138 = $137 - $136; - $139 = $7 * $52; - $140 = $138 - $139; - $141 = $140 * $79; - $142 = $46 * $25; - $143 = $40 * $27; - $144 = $142 - $143; - $145 = $34 * $31; - $146 = $144 + $145; - $147 = $146 * $79; - $148 = $17 * $46; - $149 = $19 * $40; - $150 = $149 - $148; - $151 = $34 * $23; - $152 = $150 - $151; - $153 = $152 * $79; - $154 = $61 * $104; - $155 = $11 * $55; - $156 = $154 + $155; - $157 = $13 * $52; - $158 = $156 - $157; - $159 = $158 * $79; - $160 = $1 * $61; - $161 = $3 * $55; - $162 = $160 - $161; - $163 = $5 * $52; - $164 = $163 + $162; - $165 = $164 * $79; - $166 = $43 * $117; - $167 = $37 * $27; - $168 = $166 + $167; - $169 = $34 * $29; - $170 = $168 - $169; - $171 = $170 * $79; - $172 = $17 * $43; - $173 = $37 * $19; - $174 = $172 - $173; - $175 = $34 * $21; - $176 = $174 + $175; - $177 = $176 * $79; - HEAPF32[$0>>2] = $85; - HEAPF32[$8>>2] = $110; - HEAPF32[$16>>2] = $135; - HEAPF32[$24>>2] = $159; - HEAPF32[$2>>2] = $91; - HEAPF32[$10>>2] = $116; - HEAPF32[$18>>2] = $141; - HEAPF32[$26>>2] = $165; - HEAPF32[$4>>2] = $97; - HEAPF32[$12>>2] = $123; - HEAPF32[$20>>2] = $147; - HEAPF32[$28>>2] = $171; - HEAPF32[$6>>2] = $103; - HEAPF32[$14>>2] = $129; - HEAPF32[$22>>2] = $153; - HEAPF32[$30>>2] = $177; - return; -} -function _Vector2Distance($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = +HEAPF32[$0>>2]; - $3 = +HEAPF32[$1>>2]; - $4 = $2 - $3; - $5 = $4 * $4; - $6 = ((($0)) + 4|0); - $7 = +HEAPF32[$6>>2]; - $8 = ((($1)) + 4|0); - $9 = +HEAPF32[$8>>2]; - $10 = $7 - $9; - $11 = $10 * $10; - $12 = $5 + $11; - $13 = (+Math_sqrt((+$12))); - return (+$13); -} -function _Vector2Angle($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($1)) + 4|0); - $3 = +HEAPF32[$2>>2]; - $4 = ((($0)) + 4|0); - $5 = +HEAPF32[$4>>2]; - $6 = $3 - $5; - $7 = +HEAPF32[$1>>2]; - $8 = +HEAPF32[$0>>2]; - $9 = $7 - $8; - $10 = (+Math_atan2((+$6),(+$9))); - $11 = $10 * 57.2957763671875; - $12 = $11 < 0.0; - $13 = $11 + 360.0; - $$0 = $12 ? $13 : $11; - return (+$$0); -} -function _Vector3Zero($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF32[$0>>2] = 0.0; - $1 = ((($0)) + 4|0); - HEAPF32[$1>>2] = 0.0; - $2 = ((($0)) + 8|0); - HEAPF32[$2>>2] = 0.0; - return; -} -function _MatrixFrustum($0,$1,$2,$3,$4,$5,$6) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - $4 = +$4; - $5 = +$5; - $6 = +$6; - var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; - var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0; - var $35 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $7 = $2 - $1; - $8 = $7; - $9 = $4 - $3; - $10 = $9; - $11 = $6 - $5; - $12 = $11; - $13 = $5 * 2.0; - $14 = $8; - $15 = $13 / $14; - $16 = $15; - $17 = $10; - $18 = $13 / $17; - $19 = $18; - $20 = $1 + $2; - $21 = $20 / $14; - $22 = $21; - $23 = $3 + $4; - $24 = $23 / $17; - $25 = $24; - $26 = $5 + $6; - $27 = -$26; - $28 = $12; - $29 = $27 / $28; - $30 = $29; - $31 = $5 * $6; - $32 = $31 * 2.0; - $33 = -$32; - $34 = $33 / $28; - $35 = $34; - HEAPF32[$0>>2] = $16; - $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; - $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = $22; - $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); - HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = 0.0; - $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); - HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; - $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); - HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $19; - $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); - HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = $25; - $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); - HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = 0.0; - $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); - HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; - $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); - HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; - $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); - HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $30; - $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); - HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $35; - $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); - HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; - $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); - HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; - $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); - HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = -1.0; - $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); - HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 0.0; - return; -} -function _MatrixOrtho($0,$1,$2,$3,$4,$5,$6) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - $4 = +$4; - $5 = +$5; - $6 = +$6; - var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; - var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0; - var sp = 0; - sp = STACKTOP; - $7 = $2 - $1; - $8 = $7; - $9 = $4 - $3; - $10 = $9; - $11 = $6 - $5; - $12 = $11; - $13 = 2.0 / $8; - $14 = 2.0 / $10; - $15 = -2.0 / $12; - $16 = $1 + $2; - $17 = -$16; - $18 = $8; - $19 = $17 / $18; - $20 = $19; - $21 = $3 + $4; - $22 = -$21; - $23 = $10; - $24 = $22 / $23; - $25 = $24; - $26 = $5 + $6; - $27 = -$26; - $28 = $12; - $29 = $27 / $28; - $30 = $29; - HEAPF32[$0>>2] = $13; - $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; - $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = 0.0; - $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); - HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = $20; - $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); - HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; - $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); - HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $14; - $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); - HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = 0.0; - $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); - HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = $25; - $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); - HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; - $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); - HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; - $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); - HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $15; - $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); - HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $30; - $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); - HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; - $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); - HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; - $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); - HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = 0.0; - $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); - HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 1.0; - return; -} -function _ProcessGestureEvent($0) { - $0 = $0|0; - var $$$sink = 0, $$sink = 0, $$sink10 = 0, $$sink11 = 0, $$sink16 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0.0, $111 = 0.0; - var $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; - var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; - var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0; - var $167 = 0.0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0.0, $174 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0; - var $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $moveDownPosition$byval_copy11 = 0; - var $moveDownPosition2$byval_copy12 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $moveDownPosition2$byval_copy12 = sp + 8|0; - $moveDownPosition$byval_copy11 = sp; - $1 = ((($0)) + 4|0); - $2 = HEAP32[$1>>2]|0; - HEAP32[4078] = $2; - $3 = ($2|0)<(2); - $4 = HEAP32[$0>>2]|0; - $5 = ($4|0)==(1); - if (!($3)) { - if ($5) { - $88 = ((($0)) + 24|0); - $89 = $88; - $90 = $89; - $91 = HEAP32[$90>>2]|0; - $92 = (($89) + 4)|0; - $93 = $92; - $94 = HEAP32[$93>>2]|0; - $95 = 13920; - $96 = $95; - HEAP32[$96>>2] = $91; - $97 = (($95) + 4)|0; - $98 = $97; - HEAP32[$98>>2] = $94; - $99 = ((($0)) + 32|0); - $100 = $99; - $101 = $100; - $102 = HEAP32[$101>>2]|0; - $103 = (($100) + 4)|0; - $104 = $103; - $105 = HEAP32[$104>>2]|0; - $106 = 13960; - $107 = $106; - HEAP32[$107>>2] = $102; - $108 = (($106) + 4)|0; - $109 = $108; - HEAP32[$109>>2] = $105; - $110 = +HEAPF32[3490]; - $111 = +HEAPF32[3480]; - $112 = $110 - $111; - HEAPF32[3492] = $112; - $113 = +HEAPF32[(13964)>>2]; - $114 = +HEAPF32[(13924)>>2]; - $115 = $113 - $114; - HEAPF32[(13972)>>2] = $115; - HEAP32[4077] = 4; - STACKTOP = sp;return; - } - switch ($4|0) { - case 2: { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13952>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13952+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13976>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13976+4>>2]|0; - $116 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - HEAPF32[4083] = $116; - $117 = 13952; - $118 = $117; - $119 = HEAP32[$118>>2]|0; - $120 = (($117) + 4)|0; - $121 = $120; - $122 = HEAP32[$121>>2]|0; - $123 = 13920; - $124 = $123; - HEAP32[$124>>2] = $119; - $125 = (($123) + 4)|0; - $126 = $125; - HEAP32[$126>>2] = $122; - $127 = 13976; - $128 = $127; - $129 = HEAP32[$128>>2]|0; - $130 = (($127) + 4)|0; - $131 = $130; - $132 = HEAP32[$131>>2]|0; - $133 = 13960; - $134 = $133; - HEAP32[$134>>2] = $129; - $135 = (($133) + 4)|0; - $136 = $135; - HEAP32[$136>>2] = $132; - $137 = ((($0)) + 24|0); - $138 = $137; - $139 = $138; - $140 = HEAP32[$139>>2]|0; - $141 = (($138) + 4)|0; - $142 = $141; - $143 = HEAP32[$142>>2]|0; - $144 = 13952; - $145 = $144; - HEAP32[$145>>2] = $140; - $146 = (($144) + 4)|0; - $147 = $146; - HEAP32[$147>>2] = $143; - $148 = ((($0)) + 32|0); - $149 = $148; - $150 = $149; - $151 = HEAP32[$150>>2]|0; - $152 = (($149) + 4)|0; - $153 = $152; - $154 = HEAP32[$153>>2]|0; - $155 = 13976; - $156 = $155; - HEAP32[$156>>2] = $151; - $157 = (($155) + 4)|0; - $158 = $157; - HEAP32[$158>>2] = $154; - $159 = +HEAPF32[3494]; - $160 = +HEAPF32[3488]; - $161 = $159 - $160; - HEAPF32[3492] = $161; - $162 = +HEAPF32[(13980)>>2]; - $163 = +HEAPF32[(13956)>>2]; - $164 = $162 - $163; - HEAPF32[(13972)>>2] = $164; - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13920>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13920+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13952>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13952+4>>2]|0; - $165 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $166 = !($165 >= 0.004999999888241291); - if ($166) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13960>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13960+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13976>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13976+4>>2]|0; - $167 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $168 = !($167 >= 0.004999999888241291); - if ($168) { - $$sink16 = 4; - } else { - label = 29; - } - } else { - label = 29; - } - if ((label|0) == 29) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13952>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13952+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13976>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13976+4>>2]|0; - $169 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $170 = +HEAPF32[4083]; - $171 = $169 - $170; - $172 = $171 < 0.0; - $$sink11 = $172 ? 256 : 512; - $$sink16 = $$sink11; - } - HEAP32[4077] = $$sink16; - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13952>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13952+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13976>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13976+4>>2]|0; - $173 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $174 = 360.0 - $173; - HEAPF32[4084] = $174; - STACKTOP = sp;return; - break; - } - case 0: { - HEAPF32[4083] = 0.0; - HEAPF32[4084] = 0.0; - HEAPF32[3492] = 0.0; - HEAPF32[(13972)>>2] = 0.0; - HEAP32[4078] = 0; - HEAP32[4077] = 0; - STACKTOP = sp;return; - break; - } - default: { - STACKTOP = sp;return; - } - } - } - if ($5) { - $6 = HEAP32[4079]|0; - $7 = (($6) + 1)|0; - HEAP32[4079] = $7; - $8 = HEAP32[4077]|0; - $9 = ($8|0)==(0); - $10 = ($6|0)>(0); - $or$cond = $10 & $9; - if ($or$cond) { - $11 = ((($0)) + 24|0); - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13920>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13920+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[$11>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[$11+4>>2]|0; - $12 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $13 = $12 < 0.029999999329447746; - if ($13) { - HEAP32[4077] = 2; - HEAP32[4079] = 0; - } else { - label = 6; - } - } else { - label = 6; - } - if ((label|0) == 6) { - HEAP32[4079] = 1; - HEAP32[4077] = 1; - } - $14 = ((($0)) + 24|0); - $15 = $14; - $16 = $15; - $17 = HEAP32[$16>>2]|0; - $18 = (($15) + 4)|0; - $19 = $18; - $20 = HEAP32[$19>>2]|0; - $21 = 13920; - $22 = $21; - HEAP32[$22>>2] = $17; - $23 = (($21) + 4)|0; - $24 = $23; - HEAP32[$24>>2] = $20; - $25 = 13928; - $26 = $25; - HEAP32[$26>>2] = $17; - $27 = (($25) + 4)|0; - $28 = $27; - HEAP32[$28>>2] = $20; - $29 = 13936; - $30 = $29; - HEAP32[$30>>2] = $17; - $31 = (($29) + 4)|0; - $32 = $31; - HEAP32[$32>>2] = $20; - $33 = ((($0)) + 8|0); - $34 = HEAP32[$33>>2]|0; - HEAP32[742] = $34; - HEAPF32[3486] = 0.0; - HEAPF32[(13948)>>2] = 0.0; - STACKTOP = sp;return; - } - switch ($4|0) { - case 0: { - $35 = HEAP32[4077]|0; - $36 = ($35|0)==(8); - if ($36) { - $37 = ((($0)) + 24|0); - $38 = $37; - $39 = $38; - $40 = HEAP32[$39>>2]|0; - $41 = (($38) + 4)|0; - $42 = $41; - $43 = HEAP32[$42>>2]|0; - $44 = 13936; - $45 = $44; - HEAP32[$45>>2] = $40; - $46 = (($44) + 4)|0; - $47 = $46; - HEAP32[$47>>2] = $43; - } - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13920>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13920+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13936>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13936+4>>2]|0; - $48 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $49 = $48 / 0.0; - HEAPF32[4080] = $49; - HEAP32[4081] = 0; - $50 = $49 > 5.0000002374872565E-4; - if ($50) { - $51 = HEAP32[742]|0; - $52 = ((($0)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ($51|0)==($53|0); - if ($54) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13920>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13920+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13936>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13936+4>>2]|0; - $55 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $56 = 360.0 - $55; - HEAPF32[4082] = $56; - $57 = $56 < 30.0; - $58 = $56 > 330.0; - $or$cond3 = $57 | $58; - if ($or$cond3) { - $$sink10 = 16; - } else { - $59 = $56 > 30.0; - $60 = $56 < 120.0; - $or$cond5 = $59 & $60; - if ($or$cond5) { - $$sink10 = 64; - } else { - $61 = $56 > 120.0; - $62 = $56 < 210.0; - $or$cond7 = $61 & $62; - $63 = $56 > 210.0; - $64 = $56 < 300.0; - $or$cond9 = $63 & $64; - $$sink = $or$cond9 ? 128 : 0; - $$$sink = $or$cond7 ? 32 : $$sink; - $$sink10 = $$$sink; - } - } - } else { - label = 16; - } - } else { - label = 16; - } - if ((label|0) == 16) { - HEAPF32[4080] = 0.0; - HEAPF32[4082] = 0.0; - $$sink10 = 0; - } - HEAP32[4077] = $$sink10; - HEAPF32[3482] = 0.0; - HEAPF32[(13932)>>2] = 0.0; - HEAP32[4078] = 0; - STACKTOP = sp;return; - break; - } - case 2: { - $65 = HEAP32[4081]|0; - $66 = ($65|0)==(0); - if ($66) { - HEAP32[4081] = 1; - } - $67 = ((($0)) + 24|0); - $68 = $67; - $69 = $68; - $70 = HEAP32[$69>>2]|0; - $71 = (($68) + 4)|0; - $72 = $71; - $73 = HEAP32[$72>>2]|0; - $74 = 13952; - $75 = $74; - HEAP32[$75>>2] = $70; - $76 = (($74) + 4)|0; - $77 = $76; - HEAP32[$77>>2] = $73; - $78 = HEAP32[4077]|0; - $79 = ($78|0)==(4); - if ($79) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13920>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13920+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13952>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13952+4>>2]|0; - $80 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $81 = !($80 >= 0.014999999664723873); - if (!($81)) { - HEAP32[4077] = 8; - } - } - $82 = +HEAPF32[3488]; - $83 = +HEAPF32[3482]; - $84 = $82 - $83; - HEAPF32[3486] = $84; - $85 = +HEAPF32[(13956)>>2]; - $86 = +HEAPF32[(13932)>>2]; - $87 = $85 - $86; - HEAPF32[(13948)>>2] = $87; - STACKTOP = sp;return; - break; - } - default: { - STACKTOP = sp;return; - } - } -} -function _UpdateGestures() { - var $$off = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4077]|0; - $$off = (($0) + -1)|0; - $1 = ($$off>>>0)<(2); - $2 = HEAP32[4078]|0; - $3 = ($2|0)<(2); - $or$cond3 = $1 & $3; - if ($or$cond3) { - HEAP32[4077] = 4; - } - $4 = HEAP32[4077]|0; - $5 = (($4) + -16)|0; - $6 = $5 >>> 4; - $7 = $5 << 28; - $8 = $6 | $7; - switch ($8|0) { - case 0: case 1: case 3: case 7: { - break; - } - default: { - return; - } - } - HEAP32[4077] = 0; - return; -} -function _GetMousePosition($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = 13984; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - $4 = (($1) + 4)|0; - $5 = $4; - $6 = HEAP32[$5>>2]|0; - $7 = $0; - $8 = $7; - HEAP32[$8>>2] = $3; - $9 = (($7) + 4)|0; - $10 = $9; - HEAP32[$10>>2] = $6; - return; -} -function _InitWindow($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - _TraceLog(0,4266,$vararg_buffer); - HEAP32[4088] = $2; - _InitGraphicsDevice($0,$1); - _LoadDefaultFont(); - _InitTimer(); - (_emscripten_set_fullscreenchange_callback((0|0),(0|0),1,(4|0))|0); - (_emscripten_set_keypress_callback((4295|0),(0|0),1,(5|0))|0); - (_emscripten_set_click_callback((4295|0),(0|0),1,(6|0))|0); - (_emscripten_set_touchstart_callback((4295|0),(0|0),1,(7|0))|0); - (_emscripten_set_touchend_callback((4295|0),(0|0),1,(7|0))|0); - (_emscripten_set_touchmove_callback((4295|0),(0|0),1,(7|0))|0); - (_emscripten_set_touchcancel_callback((4295|0),(0|0),1,(7|0))|0); - (_emscripten_set_gamepadconnected_callback((0|0),1,(8|0))|0); - (_emscripten_set_gamepaddisconnected_callback((0|0),1,(8|0))|0); - $3 = HEAP32[4089]|0; - $4 = (+($3|0)); - $5 = $4 * 0.5; - HEAPF32[3496] = $5; - $6 = HEAP32[4090]|0; - $7 = (+($6|0)); - $8 = $7 * 0.5; - HEAPF32[(13988)>>2] = $8; - $9 = HEAP32[4091]|0; - $10 = ($9|0)==(0); - if ($10) { - STACKTOP = sp;return; - } - _SetTargetFPS(60); - _LogoAnimation(); - STACKTOP = sp;return; -} -function _InitGraphicsDevice($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$015 = 0, $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0.0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer18 = 0, $vararg_buffer22 = 0, $vararg_buffer3 = 0, $vararg_buffer6 = 0, $vararg_buffer8 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr21 = 0, $vararg_ptr5 = 0, dest = 0; - var label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $vararg_buffer22 = sp + 64|0; - $vararg_buffer18 = sp + 56|0; - $vararg_buffer14 = sp + 48|0; - $vararg_buffer10 = sp + 40|0; - $vararg_buffer8 = sp + 32|0; - $vararg_buffer6 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 72|0; - $3 = sp + 140|0; - HEAP32[4089] = $0; - HEAP32[4090] = $1; - _MatrixIdentity($2); - dest=16384; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - (_glfwSetErrorCallback((1|0))|0); - $4 = (_glfwInit()|0); - $5 = ($4|0)==(0); - if ($5) { - _TraceLog(2,4490,$vararg_buffer); - } - $6 = HEAP32[4089]|0; - HEAP32[4112] = $6; - $7 = HEAP32[4090]|0; - HEAP32[4113] = $7; - _glfwDefaultWindowHints(); - $8 = HEAP8[17260]|0; - $9 = $8 & 4; - $10 = ($9<<24>>24)==(0); - if ($10) { - _glfwWindowHint(131075,0); - } else { - _glfwWindowHint(131075,1); - } - $11 = HEAP8[17260]|0; - $12 = $11 & 8; - $13 = ($12<<24>>24)==(0); - if (!($13)) { - _glfwWindowHint(131077,1); - } - $14 = HEAP8[17260]|0; - $15 = $14 & 32; - $16 = ($15<<24>>24)==(0); - if (!($16)) { - _glfwWindowHint(135181,4); - _TraceLog(0,4516,$vararg_buffer1); - } - $17 = (_rlGetVersion()|0); - $18 = ($17|0)==(2); - if ($18) { - _glfwWindowHint(139266,2); - _glfwWindowHint(139267,1); - } else { - $19 = (_rlGetVersion()|0); - $20 = ($19|0)==(3); - if ($20) { - _glfwWindowHint(139266,3); - _glfwWindowHint(139267,3); - _glfwWindowHint(139272,204801); - _glfwWindowHint(139270,0); - } - } - $21 = HEAP32[4114]|0; - $22 = ($21|0)==(0); - if ($22) { - $47 = HEAP32[4089]|0; - $48 = HEAP32[4090]|0; - $49 = HEAP32[4088]|0; - $50 = (_glfwCreateWindow(($47|0),($48|0),($49|0),(0|0),(0|0))|0); - HEAP32[4086] = $50; - $51 = HEAP32[4089]|0; - HEAP32[4115] = $51; - $52 = HEAP32[4090]|0; - HEAP32[4116] = $52; - $54 = $50; - } else { - $23 = (_glfwGetPrimaryMonitor()|0); - $24 = (_glfwGetVideoModes(($23|0),($$byval_copy|0))|0); - $25 = HEAP32[$$byval_copy>>2]|0; - $26 = ($25|0)>(0); - L22: do { - if ($26) { - $27 = HEAP32[4089]|0; - $28 = HEAP32[$$byval_copy>>2]|0; - $29 = HEAP32[4090]|0; - $$015 = 0; - while(1) { - $30 = (($24) + (($$015*24)|0)|0); - $31 = HEAP32[$30>>2]|0; - $32 = ($31|0)<($27|0); - if (!($32)) { - $33 = (((($24) + (($$015*24)|0)|0)) + 4|0); - $34 = HEAP32[$33>>2]|0; - $35 = ($34|0)<($29|0); - if (!($35)) { - break; - } - } - $36 = (($$015) + 1)|0; - $37 = ($36|0)<($28|0); - if ($37) { - $$015 = $36; - } else { - break L22; - } - } - HEAP32[4112] = $31; - HEAP32[4113] = $34; - } - } while(0); - $38 = HEAP32[4112]|0; - $39 = HEAP32[4113]|0; - HEAP32[$vararg_buffer3>>2] = $38; - $vararg_ptr5 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr5>>2] = $39; - _TraceLog(1,4541,$vararg_buffer3); - $40 = HEAP32[4112]|0; - $41 = HEAP32[4113]|0; - _SetupFramebufferSize($40,$41); - $42 = HEAP32[4112]|0; - $43 = HEAP32[4113]|0; - $44 = HEAP32[4088]|0; - $45 = (_glfwGetPrimaryMonitor()|0); - $46 = (_glfwCreateWindow(($42|0),($43|0),($44|0),($45|0),(0|0))|0); - HEAP32[4086] = $46; - $54 = $46; - } - $53 = ($54|0)==(0|0); - if ($53) { - _glfwTerminate(); - _TraceLog(2,4579,$vararg_buffer6); - } else { - _TraceLog(0,4612,$vararg_buffer8); - $55 = HEAP32[4115]|0; - $56 = HEAP32[4116]|0; - HEAP32[$vararg_buffer10>>2] = $55; - $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); - HEAP32[$vararg_ptr13>>2] = $56; - _TraceLog(0,4652,$vararg_buffer10); - $57 = HEAP32[4089]|0; - $58 = HEAP32[4090]|0; - HEAP32[$vararg_buffer14>>2] = $57; - $vararg_ptr17 = ((($vararg_buffer14)) + 4|0); - HEAP32[$vararg_ptr17>>2] = $58; - _TraceLog(0,4673,$vararg_buffer14); - $59 = HEAP32[4117]|0; - $60 = HEAP32[4118]|0; - HEAP32[$vararg_buffer18>>2] = $59; - $vararg_ptr21 = ((($vararg_buffer18)) + 4|0); - HEAP32[$vararg_ptr21>>2] = $60; - _TraceLog(0,4694,$vararg_buffer18); - } - $61 = HEAP32[4086]|0; - (_glfwSetWindowSizeCallback(($61|0),(1|0))|0); - $62 = HEAP32[4086]|0; - (_glfwSetCursorEnterCallback(($62|0),(2|0))|0); - $63 = HEAP32[4086]|0; - (_glfwSetKeyCallback(($63|0),(1|0))|0); - $64 = HEAP32[4086]|0; - (_glfwSetMouseButtonCallback(($64|0),(1|0))|0); - $65 = HEAP32[4086]|0; - (_glfwSetCursorPosCallback(($65|0),(1|0))|0); - $66 = HEAP32[4086]|0; - (_glfwSetCharCallback(($66|0),(3|0))|0); - $67 = HEAP32[4086]|0; - (_glfwSetScrollCallback(($67|0),(2|0))|0); - $68 = HEAP32[4086]|0; - (_glfwSetWindowIconifyCallback(($68|0),(4|0))|0); - $69 = HEAP32[4086]|0; - _glfwMakeContextCurrent(($69|0)); - _glfwSwapInterval(0); - $70 = HEAP8[17260]|0; - $71 = $70 & 64; - $72 = ($71<<24>>24)==(0); - if ($72) { - $73 = HEAP32[4089]|0; - $74 = HEAP32[4090]|0; - _rlglInit($73,$74); - _SetupViewport(); - _rlMatrixMode(5889); - _rlLoadIdentity(); - $75 = HEAP32[4115]|0; - $76 = HEAP32[4117]|0; - $77 = (($75) - ($76))|0; - $78 = (+($77|0)); - $79 = HEAP32[4116]|0; - $80 = HEAP32[4118]|0; - $81 = (($79) - ($80))|0; - $82 = (+($81|0)); - _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); - _rlMatrixMode(5888); - _rlLoadIdentity(); - HEAP8[$3>>0] = -11; - $83 = ((($3)) + 1|0); - HEAP8[$83>>0] = -11; - $84 = ((($3)) + 2|0); - HEAP8[$84>>0] = -11; - $85 = ((($3)) + 3|0); - HEAP8[$85>>0] = -1; - ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; - _ClearBackground($$byval_copy); - STACKTOP = sp;return; - } - _glfwSwapInterval(1); - _TraceLog(0,4719,$vararg_buffer22); - $73 = HEAP32[4089]|0; - $74 = HEAP32[4090]|0; - _rlglInit($73,$74); - _SetupViewport(); - _rlMatrixMode(5889); - _rlLoadIdentity(); - $75 = HEAP32[4115]|0; - $76 = HEAP32[4117]|0; - $77 = (($75) - ($76))|0; - $78 = (+($77|0)); - $79 = HEAP32[4116]|0; - $80 = HEAP32[4118]|0; - $81 = (($79) - ($80))|0; - $82 = (+($81|0)); - _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); - _rlMatrixMode(5888); - _rlLoadIdentity(); - HEAP8[$3>>0] = -11; - $83 = ((($3)) + 1|0); - HEAP8[$83>>0] = -11; - $84 = ((($3)) + 2|0); - HEAP8[$84>>0] = -11; - $85 = ((($3)) + 3|0); - HEAP8[$85>>0] = -1; - ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; - _ClearBackground($$byval_copy); - STACKTOP = sp;return; -} -function _InitTimer() { - var $0 = 0, $1 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_time((0|0))|0); - _srand($0); - $1 = (+_GetTime()); - HEAPF64[1752] = $1; - return; -} -function _EmscriptenFullscreenChangeCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer4 = sp + 16|0; - $vararg_buffer = sp; - $3 = HEAP32[$1>>2]|0; - $4 = ($3|0)==(0); - $5 = ((($1)) + 264|0); - $6 = HEAP32[$5>>2]|0; - $7 = ((($1)) + 268|0); - $8 = HEAP32[$7>>2]|0; - $9 = ((($1)) + 272|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($1)) + 276|0); - $12 = HEAP32[$11>>2]|0; - if ($4) { - HEAP32[$vararg_buffer4>>2] = $6; - $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); - HEAP32[$vararg_ptr7>>2] = $8; - $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); - HEAP32[$vararg_ptr8>>2] = $10; - $vararg_ptr9 = ((($vararg_buffer4)) + 12|0); - HEAP32[$vararg_ptr9>>2] = $12; - _TraceLog(0,4423,$vararg_buffer4); - STACKTOP = sp;return 0; - } else { - HEAP32[$vararg_buffer>>2] = $6; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $8; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $10; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $12; - _TraceLog(0,4354,$vararg_buffer); - STACKTOP = sp;return 0; - } - return (0)|0; -} -function _EmscriptenKeyboardCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(1); - if (!($3)) { - return 0; - } - $4 = ((($1)) + 32|0); - $5 = (_strcmp($4,4347)|0); - $6 = ($5|0)==(0); - if (!($6)) { - return 0; - } - (_emscripten_exit_pointerlock()|0); - return 0; -} -function _EmscriptenMouseCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $3 = sp; - $4 = ($0|0)==(4); - $5 = HEAP32[4085]|0; - $6 = ($5|0)!=(0); - $or$cond = $4 & $6; - if (!($or$cond)) { - STACKTOP = sp;return 0; - } - (_emscripten_get_pointerlock_status(($3|0))|0); - $7 = HEAP32[$3>>2]|0; - $8 = ($7|0)==(0); - if ($8) { - (_emscripten_request_pointerlock((0|0),1)|0); - } else { - (_emscripten_exit_pointerlock()|0); - (_emscripten_get_pointerlock_status(($3|0))|0); - } - HEAP32[4085] = 0; - STACKTOP = sp;return 0; -} -function _EmscriptenTouchCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $$sink = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$03$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx2 = 0, $$sroa$24$0$$sroa_idx5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0.0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0.0, $6 = 0; - var $60 = 0.0, $61 = 0.0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $$byval_copy = sp + 56|0; - $3 = sp; - switch ($0|0) { - case 22: { - $$sink = 1; - label = 4; - break; - } - case 23: { - $$sink = 0; - label = 4; - break; - } - case 24: { - $$sink = 2; - label = 4; - break; - } - default: { - } - } - if ((label|0) == 4) { - HEAP32[$3>>2] = $$sink; - } - $4 = HEAP32[$1>>2]|0; - $5 = ((($3)) + 4|0); - HEAP32[$5>>2] = $4; - $6 = ((($1)) + 20|0); - $7 = HEAP32[$6>>2]|0; - $8 = ((($3)) + 8|0); - HEAP32[$8>>2] = $7; - $9 = ((($1)) + 72|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($3)) + 12|0); - HEAP32[$11>>2] = $10; - $12 = ((($1)) + 56|0); - $13 = HEAP32[$12>>2]|0; - $14 = (+($13|0)); - $15 = ((($1)) + 60|0); - $16 = HEAP32[$15>>2]|0; - $17 = (+($16|0)); - $$sroa$03$0$$sroa_idx = ((($3)) + 24|0); - HEAPF32[$$sroa$03$0$$sroa_idx>>2] = $14; - $$sroa$24$0$$sroa_idx5 = ((($3)) + 28|0); - HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $17; - $18 = ((($1)) + 108|0); - $19 = HEAP32[$18>>2]|0; - $20 = (+($19|0)); - $21 = ((($1)) + 112|0); - $22 = HEAP32[$21>>2]|0; - $23 = (+($22|0)); - $$sroa$0$0$$sroa_idx = ((($3)) + 32|0); - HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $20; - $$sroa$2$0$$sroa_idx2 = ((($3)) + 36|0); - HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $23; - $24 = ((($3)) + 24|0); - $25 = $24; - $26 = $25; - $27 = HEAP32[$26>>2]|0; - $28 = (($25) + 4)|0; - $29 = $28; - $30 = HEAP32[$29>>2]|0; - $31 = 14000; - $32 = $31; - HEAP32[$32>>2] = $27; - $33 = (($31) + 4)|0; - $34 = $33; - HEAP32[$34>>2] = $30; - $35 = ((($3)) + 32|0); - $36 = $35; - $37 = $36; - $38 = HEAP32[$37>>2]|0; - $39 = (($36) + 4)|0; - $40 = $39; - $41 = HEAP32[$40>>2]|0; - $42 = (14008); - $43 = $42; - HEAP32[$43>>2] = $38; - $44 = (($42) + 4)|0; - $45 = $44; - HEAP32[$45>>2] = $41; - $46 = (_GetScreenWidth()|0); - $47 = (+($46|0)); - $48 = +HEAPF32[$24>>2]; - $49 = $48 / $47; - HEAPF32[$24>>2] = $49; - $50 = (_GetScreenHeight()|0); - $51 = (+($50|0)); - $52 = +HEAPF32[$$sroa$24$0$$sroa_idx5>>2]; - $53 = $52 / $51; - HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $53; - $54 = (_GetScreenWidth()|0); - $55 = (+($54|0)); - $56 = +HEAPF32[$35>>2]; - $57 = $56 / $55; - HEAPF32[$35>>2] = $57; - $58 = (_GetScreenHeight()|0); - $59 = (+($58|0)); - $60 = +HEAPF32[$$sroa$2$0$$sroa_idx2>>2]; - $61 = $60 / $59; - HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $61; - dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _ProcessGestureEvent($$byval_copy); - STACKTOP = sp;return 1; -} -function _EmscriptenGamepadCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$sink = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($1)) + 1296|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)==(0); - if ($5) { - label = 3; - } else { - $6 = ((($1)) + 1300|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)<(4); - if ($8) { - $$sink = 1; - } else { - label = 3; - } - } - if ((label|0) == 3) { - $$sink = 0; - } - $9 = ((($1)) + 1300|0); - $10 = HEAP32[$9>>2]|0; - $11 = (16368 + ($10<<2)|0); - HEAP32[$11>>2] = $$sink; - return 0; -} -function _SetTargetFPS($0) { - $0 = $0|0; - var $$ = 0.0, $$op = 0.0, $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = ($0|0)<(1); - $2 = (+($0|0)); - $3 = 1.0 / $2; - $$ = $1 ? 0.0 : $3; - HEAPF64[1749] = $$; - $4 = $3; - $$op = $4 * 1000.0; - $5 = $$op; - $6 = $1 ? 0.0 : $5; - HEAPF64[$vararg_buffer>>3] = $6; - _TraceLog(0,4303,$vararg_buffer); - STACKTOP = sp;return; -} -function _LogoAnimation() { - var label = 0, sp = 0; - sp = STACKTOP; - HEAP32[4091] = 0; - return; -} -function _GetScreenWidth() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4089]|0; - return ($0|0); -} -function _GetScreenHeight() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4090]|0; - return ($0|0); -} -function _GetTime() { - var $0 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (+_glfwGetTime()); - return (+$0); -} -function _ErrorCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - HEAP32[$vararg_buffer>>2] = $0; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $1; - _TraceLog(1,8275,$vararg_buffer); - STACKTOP = sp;return; -} -function _SetupFramebufferSize($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$sink = 0, $$sink1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0; - var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0.0; - var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, $or$cond = 0, $roundf = 0.0, $roundf38 = 0.0, $roundf39 = 0.0, $roundf40 = 0.0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr2 = 0; - var $vararg_ptr3 = 0, $vararg_ptr7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $vararg_buffer8 = sp + 24|0; - $vararg_buffer4 = sp + 16|0; - $vararg_buffer = sp; - $2 = sp + 40|0; - $3 = HEAP32[4089]|0; - $4 = ($3|0)>($0|0); - if (!($4)) { - $5 = HEAP32[4090]|0; - $6 = ($5|0)>($1|0); - if (!($6)) { - $30 = ($3|0)<($0|0); - $31 = ($5|0)<($1|0); - $or$cond = $30 | $31; - if (!($or$cond)) { - HEAP32[4115] = $3; - HEAP32[4116] = $5; - HEAP32[4117] = 0; - HEAP32[4118] = 0; - STACKTOP = sp;return; - } - HEAP32[$vararg_buffer8>>2] = $3; - $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); - HEAP32[$vararg_ptr11>>2] = $5; - $vararg_ptr12 = ((($vararg_buffer8)) + 8|0); - HEAP32[$vararg_ptr12>>2] = $0; - $vararg_ptr13 = ((($vararg_buffer8)) + 12|0); - HEAP32[$vararg_ptr13>>2] = $1; - _TraceLog(0,8209,$vararg_buffer8); - $32 = (+($0|0)); - $33 = (+($1|0)); - $34 = $32 / $33; - $35 = HEAP32[4089]|0; - $36 = (+($35|0)); - $37 = HEAP32[4090]|0; - $38 = (+($37|0)); - $39 = $36 / $38; - $40 = !($34 <= $39); - if ($40) { - $44 = $34 * $38; - $roundf = (+_roundf((+$44))); - $45 = (~~(($roundf))); - HEAP32[4115] = $45; - HEAP32[4116] = $37; - $46 = (($45) - ($35))|0; - HEAP32[4117] = $46; - $$sink1 = 0; - } else { - HEAP32[4115] = $35; - $41 = $36 / $34; - $roundf38 = (+_roundf((+$41))); - $42 = (~~(($roundf38))); - HEAP32[4116] = $42; - HEAP32[4117] = 0; - $43 = (($42) - ($37))|0; - $$sink1 = $43; - } - HEAP32[4118] = $$sink1; - STACKTOP = sp;return; - } - } - $7 = HEAP32[4090]|0; - HEAP32[$vararg_buffer>>2] = $3; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $7; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $0; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $1; - _TraceLog(1,8066,$vararg_buffer); - $8 = (+($0|0)); - $9 = HEAP32[4089]|0; - $10 = (+($9|0)); - $11 = $8 / $10; - $12 = (+($1|0)); - $13 = HEAP32[4090]|0; - $14 = (+($13|0)); - $15 = $12 / $14; - $16 = !($11 <= $15); - if ($16) { - $22 = $10 * $15; - $roundf39 = (+_roundf((+$22))); - $23 = (~~(($roundf39))); - HEAP32[4115] = $23; - HEAP32[4116] = $1; - $24 = (($0) - ($23))|0; - HEAP32[4117] = $24; - $$sink = 0; - } else { - HEAP32[4115] = $0; - $17 = HEAP32[4090]|0; - $18 = (+($17|0)); - $19 = $11 * $18; - $roundf40 = (+_roundf((+$19))); - $20 = (~~(($roundf40))); - HEAP32[4116] = $20; - HEAP32[4117] = 0; - $21 = (($1) - ($20))|0; - $$sink = $21; - } - HEAP32[4118] = $$sink; - $25 = HEAP32[4115]|0; - $26 = (+($25|0)); - $27 = HEAP32[4089]|0; - $28 = (+($27|0)); - $29 = $26 / $28; - _MatrixScale($2,$29,$29,$29); - dest=16384; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - HEAP32[4115] = $0; - HEAP32[4116] = $1; - HEAP32[$vararg_buffer4>>2] = $0; - $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); - HEAP32[$vararg_ptr7>>2] = $1; - _TraceLog(1,8144,$vararg_buffer4); - STACKTOP = sp;return; -} -function _WindowSizeCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0.0, $4 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - _rlViewport(0,0,$1,$2); - _rlMatrixMode(5889); - _rlLoadIdentity(); - $3 = (+($1|0)); - $4 = (+($2|0)); - _rlOrtho(0.0,$3,$4,0.0,0.0,1.0); - _rlMatrixMode(5888); - _rlLoadIdentity(); - _rlClearScreenBuffers(); - HEAP32[4089] = $1; - HEAP32[4090] = $2; - HEAP32[4115] = $1; - HEAP32[4116] = $2; - return; -} -function _CursorEnterCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function _KeyCallback($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = HEAP32[744]|0; - $6 = ($5|0)==($1|0); - $7 = ($3|0)==(1); - $or$cond = $7 & $6; - if ($or$cond) { - _glfwSetWindowShouldClose(($0|0),1); - return; - } - $8 = $3&255; - $9 = (17267 + ($1)|0); - HEAP8[$9>>0] = $8; - if (!($7)) { - return; - } - HEAP32[743] = $1; - return; -} -function _MouseButtonCallback($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0; - var $28 = 0.0, $29 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $$byval_copy = sp + 64|0; - $4 = sp + 8|0; - $5 = sp; - $6 = $2&255; - $7 = (17261 + ($1)|0); - HEAP8[$7>>0] = $6; - $8 = (_IsMouseButtonPressed(0)|0); - $9 = ($8|0)==(0); - if ($9) { - $10 = (_IsMouseButtonReleased(0)|0); - $11 = ($10|0)==(0); - if (!($11)) { - $$sink = 0; - label = 3; - } - } else { - $$sink = 1; - label = 3; - } - if ((label|0) == 3) { - HEAP32[$4>>2] = $$sink; - } - $12 = ((($4)) + 8|0); - HEAP32[$12>>2] = 0; - $13 = ((($4)) + 4|0); - HEAP32[$13>>2] = 1; - $14 = ((($4)) + 24|0); - _GetMousePosition($5); - $15 = $5; - $16 = $15; - $17 = HEAP32[$16>>2]|0; - $18 = (($15) + 4)|0; - $19 = $18; - $20 = HEAP32[$19>>2]|0; - $21 = $14; - $22 = $21; - HEAP32[$22>>2] = $17; - $23 = (($21) + 4)|0; - $24 = $23; - HEAP32[$24>>2] = $20; - $25 = (_GetScreenWidth()|0); - $26 = (+($25|0)); - $27 = +HEAPF32[$14>>2]; - $28 = $27 / $26; - HEAPF32[$14>>2] = $28; - $29 = (_GetScreenHeight()|0); - $30 = (+($29|0)); - $31 = ((($4)) + 28|0); - $32 = +HEAPF32[$31>>2]; - $33 = $32 / $30; - HEAPF32[$31>>2] = $33; - dest=$$byval_copy; src=$4; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _ProcessGestureEvent($$byval_copy); - STACKTOP = sp;return; -} -function _MouseCursorPosCallback($0,$1,$2) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - var $$byval_copy = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $$byval_copy = sp + 56|0; - $3 = sp; - HEAP32[$3>>2] = 2; - $4 = ((($3)) + 8|0); - HEAP32[$4>>2] = 0; - $5 = ((($3)) + 4|0); - HEAP32[$5>>2] = 1; - $6 = $1; - $7 = $2; - $$sroa$0$0$$sroa_idx = ((($3)) + 24|0); - HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $6; - $$sroa$2$0$$sroa_idx1 = ((($3)) + 28|0); - HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $7; - $8 = ((($3)) + 24|0); - $9 = $8; - $10 = $9; - $11 = HEAP32[$10>>2]|0; - $12 = (($9) + 4)|0; - $13 = $12; - $14 = HEAP32[$13>>2]|0; - $15 = 14000; - $16 = $15; - HEAP32[$16>>2] = $11; - $17 = (($15) + 4)|0; - $18 = $17; - HEAP32[$18>>2] = $14; - $19 = (_GetScreenWidth()|0); - $20 = (+($19|0)); - $21 = +HEAPF32[$8>>2]; - $22 = $21 / $20; - HEAPF32[$8>>2] = $22; - $23 = (_GetScreenHeight()|0); - $24 = (+($23|0)); - $25 = +HEAPF32[$$sroa$2$0$$sroa_idx1>>2]; - $26 = $25 / $24; - HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $26; - dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _ProcessGestureEvent($$byval_copy); - STACKTOP = sp;return; -} -function _CharCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - HEAP32[743] = $1; - return; -} -function _ScrollCallback($0,$1,$2) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - var $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (~~(($2))); - HEAP32[4121] = $3; - return; -} -function _WindowIconifyCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$sink = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)!=(0); - $$sink = $2&1; - HEAP32[4120] = $$sink; - return; -} -function _rlglInit($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$06066 = 0, $$06167 = 0, $$06268 = 0, $$063 = 0, $$sink64 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0.0, $73 = 0.0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $9 = 0, $exitcond = 0, $exitcond70 = 0, $exitcond71 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0; - var $vararg_buffer19 = 0, $vararg_buffer21 = 0, $vararg_buffer23 = 0, $vararg_buffer25 = 0, $vararg_buffer27 = 0, $vararg_buffer29 = 0, $vararg_buffer31 = 0, $vararg_buffer34 = 0, $vararg_buffer36 = 0, $vararg_buffer39 = 0, $vararg_buffer4 = 0, $vararg_buffer41 = 0, $vararg_buffer7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 2528|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2528|0); - $vararg_buffer41 = sp + 2184|0; - $vararg_buffer39 = sp + 2176|0; - $vararg_buffer36 = sp + 2168|0; - $vararg_buffer34 = sp + 2160|0; - $vararg_buffer31 = sp + 2152|0; - $vararg_buffer29 = sp + 2144|0; - $vararg_buffer27 = sp + 2136|0; - $vararg_buffer25 = sp + 2128|0; - $vararg_buffer23 = sp + 2120|0; - $vararg_buffer21 = sp + 2112|0; - $vararg_buffer19 = sp + 2104|0; - $vararg_buffer17 = sp + 2096|0; - $vararg_buffer15 = sp + 2088|0; - $vararg_buffer13 = sp + 2080|0; - $vararg_buffer10 = sp + 2072|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer4 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 2396|0; - $3 = sp + 2384|0; - $4 = sp + 2320|0; - $5 = sp + 2256|0; - $6 = sp + 2192|0; - $7 = (_glGetString(7936)|0); - HEAP32[$vararg_buffer>>2] = $7; - _TraceLog(0,4742,$vararg_buffer); - $8 = (_glGetString(7937)|0); - HEAP32[$vararg_buffer1>>2] = $8; - _TraceLog(0,4760,$vararg_buffer1); - $9 = (_glGetString(7938)|0); - HEAP32[$vararg_buffer4>>2] = $9; - _TraceLog(0,4778,$vararg_buffer4); - $10 = (_glGetString(35724)|0); - HEAP32[$vararg_buffer7>>2] = $10; - _TraceLog(0,4796,$vararg_buffer7); - $11 = (_glGetString(7939)|0); - $12 = (_strlen($11)|0); - $13 = (($12) + 1)|0; - $14 = (_malloc($13)|0); - _memcpy(($14|0),($11|0),($13|0))|0; - $$063 = 0;$$sink64 = $14; - while(1) { - $15 = (_strtok($$sink64,4814)|0); - $16 = (($vararg_buffer7) + ($$063<<2)|0); - HEAP32[$16>>2] = $15; - $17 = ($15|0)==(0|0); - $18 = (($$063) + 1)|0; - if ($17) { - break; - } else { - $$063 = $18;$$sink64 = 0; - } - } - _free($14); - $19 = (($$063) + -1)|0; - HEAP32[$vararg_buffer10>>2] = $19; - _TraceLog(0,4816,$vararg_buffer10); - $20 = ($$063|0)>(1); - if ($20) { - $$06268 = 0; - while(1) { - $23 = (($vararg_buffer7) + ($$06268<<2)|0); - $24 = HEAP32[$23>>2]|0; - $25 = (_strcmp($24,4851)|0); - $26 = ($25|0)==(0); - if ($26) { - HEAP32[3649] = 1; - $27 = (_eglGetProcAddress((4878|0))|0); - HEAP32[4075] = $27; - $28 = (_eglGetProcAddress((4899|0))|0); - HEAP32[3650] = $28; - $29 = (_eglGetProcAddress((4920|0))|0); - HEAP32[4076] = $29; - } - $30 = (_strcmp($24,4944)|0); - $31 = ($30|0)==(0); - if ($31) { - HEAP32[3541] = 1; - } - $32 = (_strcmp($24,4964)|0); - $33 = ($32|0)==(0); - if ($33) { - HEAP32[3540] = 1; - } - $34 = (_strcmp($24,4982)|0); - $35 = ($34|0)==(0); - if ($35) { - label = 14; - } else { - $36 = HEAP32[$23>>2]|0; - $37 = (_strcmp($36,5014)|0); - $38 = ($37|0)==(0); - if ($38) { - label = 14; - } else { - $39 = (_strcmp($36,5047)|0); - $40 = ($39|0)==(0); - if ($40) { - label = 14; - } - } - } - if ((label|0) == 14) { - label = 0; - HEAP32[3535] = 1; - } - $41 = HEAP32[$23>>2]|0; - $42 = (_strcmp($41,5087)|0); - $43 = ($42|0)==(0); - if ($43) { - label = 17; - } else { - $44 = (_strcmp($41,5123)|0); - $45 = ($44|0)==(0); - if ($45) { - label = 17; - } - } - if ((label|0) == 17) { - label = 0; - HEAP32[3536] = 1; - } - $46 = (_strcmp($41,5156)|0); - $47 = ($46|0)==(0); - if ($47) { - HEAP32[3537] = 1; - } - $48 = HEAP32[$23>>2]|0; - $49 = (_strcmp($48,5181)|0); - $50 = ($49|0)==(0); - if ($50) { - HEAP32[3538] = 1; - } - $51 = (_strcmp($48,5214)|0); - $52 = ($51|0)==(0); - if ($52) { - HEAP32[3539] = 1; - } - $53 = (_strcmp($48,5250)|0); - $54 = ($53|0)==(0); - if ($54) { - HEAP32[4119] = 1; - _glGetFloatv(34047,(14172|0)); - } - $55 = (_strcmp($48,5284)|0); - $56 = ($55|0)==(0); - if ($56) { - HEAP32[3542] = 1; - } - $57 = (($$06268) + 1)|0; - $exitcond71 = ($57|0)==($19|0); - if ($exitcond71) { - break; - } else { - $$06268 = $57; - } - } - } - $21 = HEAP32[3649]|0; - $22 = ($21|0)==(0); - if ($22) { - _TraceLog(1,5387,$vararg_buffer15); - } else { - _TraceLog(0,5312,$vararg_buffer13); - } - $58 = HEAP32[3541]|0; - $59 = ($58|0)==(0); - if ($59) { - _TraceLog(1,5523,$vararg_buffer19); - } else { - _TraceLog(0,5448,$vararg_buffer17); - } - $60 = HEAP32[3535]|0; - $61 = ($60|0)==(0); - if (!($61)) { - _TraceLog(0,5615,$vararg_buffer21); - } - $62 = HEAP32[3536]|0; - $63 = ($62|0)==(0); - if (!($63)) { - _TraceLog(0,5661,$vararg_buffer23); - } - $64 = HEAP32[3537]|0; - $65 = ($64|0)==(0); - if (!($65)) { - _TraceLog(0,5708,$vararg_buffer25); - } - $66 = HEAP32[3538]|0; - $67 = ($66|0)==(0); - if (!($67)) { - _TraceLog(0,5759,$vararg_buffer27); - } - $68 = HEAP32[3539]|0; - $69 = ($68|0)==(0); - if (!($69)) { - _TraceLog(0,5806,$vararg_buffer29); - } - $70 = HEAP32[4119]|0; - $71 = ($70|0)==(0); - if (!($71)) { - $72 = +HEAPF32[3543]; - $73 = $72; - HEAPF64[$vararg_buffer31>>3] = $73; - _TraceLog(0,5853,$vararg_buffer31); - } - $74 = HEAP32[3542]|0; - $75 = ($74|0)==(0); - if (!($75)) { - _TraceLog(0,5919,$vararg_buffer34); - } - HEAP32[$vararg_buffer10>>2] = -1; - $76 = (_rlLoadTexture($vararg_buffer10,1,1,7,1)|0); - HEAP32[3590] = $76; - $77 = ($76|0)==(0); - if ($77) { - _TraceLog(1,6023,$vararg_buffer39); - } else { - HEAP32[$vararg_buffer36>>2] = $76; - _TraceLog(0,5972,$vararg_buffer36); - } - _LoadShaderDefault($2); - _memcpy((16168|0),($2|0),132)|0; - _memcpy((14464|0),($2|0),132)|0; - _LoadBuffersDefault(); - $78 = (_malloc(49152)|0); - HEAP32[4037] = $78; - $$06167 = 0; - while(1) { - $80 = HEAP32[4037]|0; - $81 = (($80) + (($$06167*12)|0)|0); - _Vector3Zero($3); - ;HEAP32[$81>>2]=HEAP32[$3>>2]|0;HEAP32[$81+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$81+8>>2]=HEAP32[$3+8>>2]|0; - $82 = (($$06167) + 1)|0; - $exitcond70 = ($82|0)==(4096); - if ($exitcond70) { - break; - } else { - $$06167 = $82; - } - } - $79 = (_malloc(36864)|0); - HEAP32[3591] = $79; - $$06066 = 0; - while(1) { - $83 = (((($79) + (($$06066*144)|0)|0)) + 8|0); - HEAP32[$83>>2] = 0; - $84 = (($79) + (($$06066*144)|0)|0); - HEAP32[$84>>2] = 0; - $85 = (($$06066) + 1)|0; - $exitcond = ($85|0)==(256); - if ($exitcond) { - break; - } else { - $$06066 = $85; - } - } - HEAP32[3589] = 1; - $86 = HEAP32[3590]|0; - $87 = ((($79)) + 8|0); - HEAP32[$87>>2] = $86; - HEAP32[4038] = 4; - _MatrixIdentity($4); - dest=15112; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15176); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15240); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15304); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15368); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15432); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15496); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15560); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15624); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15688); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15752); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15816); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15880); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15944); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(16008); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(16072); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($5); - dest=14224; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($6); - dest=14288; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - HEAP32[4034] = 14288; - _glDepthFunc(515); - _glDisable(2929); - _glBlendFunc(770,771); - _glEnable(3042); - _glCullFace(1029); - _glFrontFace(2305); - _glEnable(2884); - _glClearColor(0.0,0.0,0.0,1.0); - _glClearDepthf(1.0); - _glClear(16640); - HEAP32[3667] = $0; - HEAP32[3668] = $1; - _TraceLog(0,6062,$vararg_buffer41); - STACKTOP = sp;return; -} -function _SetupViewport() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4117]|0; - $1 = (($0|0) / 2)&-1; - $2 = HEAP32[4118]|0; - $3 = (($2|0) / 2)&-1; - $4 = HEAP32[4115]|0; - $5 = (($4) - ($0))|0; - $6 = HEAP32[4116]|0; - $7 = (($6) - ($2))|0; - _rlViewport($1,$3,$5,$7); - return; -} -function _rlMatrixMode($0) { - $0 = $0|0; - var $modelview$sink = 0, label = 0, sp = 0; - sp = STACKTOP; - switch ($0|0) { - case 5889: { - $modelview$sink = 14224; - label = 3; - break; - } - case 5888: { - $modelview$sink = 14288; - label = 3; - break; - } - default: { - } - } - if ((label|0) == 3) { - HEAP32[4034] = $modelview$sink; - } - HEAP32[4039] = $0; - return; -} -function _rlOrtho($0,$1,$2,$3,$4,$5) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - $4 = +$4; - $5 = +$5; - var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy1 = sp + 192|0; - $$byval_copy = sp + 128|0; - $6 = sp + 64|0; - $7 = sp; - _MatrixOrtho($6,$0,$1,$2,$3,$4,$5); - $8 = HEAP32[4034]|0; - dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($7,$$byval_copy,$$byval_copy1); - dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _ClearBackground($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP8[$0>>0]|0; - $2 = ((($0)) + 1|0); - $3 = HEAP8[$2>>0]|0; - $4 = ((($0)) + 2|0); - $5 = HEAP8[$4>>0]|0; - $6 = ((($0)) + 3|0); - $7 = HEAP8[$6>>0]|0; - _rlClearColor($1,$3,$5,$7); - return; -} -function _rlClearColor($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0.0, $11 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $4 = (+($0&255)); - $5 = $4 / 255.0; - $6 = (+($1&255)); - $7 = $6 / 255.0; - $8 = (+($2&255)); - $9 = $8 / 255.0; - $10 = (+($3&255)); - $11 = $10 / 255.0; - _glClearColor((+$5),(+$7),(+$9),(+$11)); - return; -} -function _LoadShaderDefault($0) { - $0 = $0|0; - var $$sroa$12$0 = 0, $$sroa$12$0$$sroa_idx9 = 0, $$sroa$13$0 = 0, $$sroa$13$0$$sroa_idx11 = 0, $$sroa$14 = 0, $$sroa$14$0$$sroa_idx = 0, $$sroa$1415$0 = 0, $$sroa$1415$0$$sroa_idx16 = 0, $$sroa$15$0 = 0, $$sroa$15$0$$sroa_idx18 = 0, $$sroa$16 = 0, $$sroa$16$0$$sroa_idx = 0, $$sroa$1622$0 = 0, $$sroa$1622$0$$sroa_idx23 = 0, $$sroa$1727$0 = 0, $$sroa$1727$0$$sroa_idx28 = 0, $$sroa$18 = 0, $$sroa$18$0$$sroa_idx = 0, $1 = 0, $10 = 0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1040|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1040|0); - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $$sroa$14 = sp + 96|0; - $$sroa$16 = sp + 80|0; - $$sroa$18 = sp + 12|0; - $1 = sp + 549|0; - $2 = sp + 108|0; - _memcpy(($1|0),(6638|0),483)|0; - _memcpy(($2|0),(7121|0),441)|0; - $3 = (_LoadShaderProgram($1,$2)|0); - $4 = ($3|0)==(0); - if ($4) { - HEAP32[$vararg_buffer1>>2] = $3; - _TraceLog(1,7676,$vararg_buffer1); - $$sroa$12$0 = 0;$$sroa$13$0 = 0;$$sroa$1415$0 = 0;$$sroa$15$0 = 0;$$sroa$1622$0 = 0;$$sroa$1727$0 = 0; - } else { - HEAP32[$vararg_buffer>>2] = $3; - _TraceLog(0,7562,$vararg_buffer); - $5 = (_glGetAttribLocation(($3|0),(7610|0))|0); - $6 = (_glGetAttribLocation(($3|0),(7625|0))|0); - $7 = (_glGetAttribLocation(($3|0),(7640|0))|0); - $8 = (_glGetUniformLocation(($3|0),(7652|0))|0); - $9 = (_glGetUniformLocation(($3|0),(7656|0))|0); - $10 = (_glGetUniformLocation(($3|0),(7667|0))|0); - $$sroa$12$0 = $5;$$sroa$13$0 = $6;$$sroa$1415$0 = $7;$$sroa$15$0 = $8;$$sroa$1622$0 = $9;$$sroa$1727$0 = $10; - } - HEAP32[$0>>2] = $3; - $$sroa$12$0$$sroa_idx9 = ((($0)) + 4|0); - HEAP32[$$sroa$12$0$$sroa_idx9>>2] = $$sroa$12$0; - $$sroa$13$0$$sroa_idx11 = ((($0)) + 8|0); - HEAP32[$$sroa$13$0$$sroa_idx11>>2] = $$sroa$13$0; - $$sroa$14$0$$sroa_idx = ((($0)) + 12|0); - ;HEAP32[$$sroa$14$0$$sroa_idx>>2]=HEAP32[$$sroa$14>>2]|0;HEAP32[$$sroa$14$0$$sroa_idx+4>>2]=HEAP32[$$sroa$14+4>>2]|0;HEAP32[$$sroa$14$0$$sroa_idx+8>>2]=HEAP32[$$sroa$14+8>>2]|0; - $$sroa$1415$0$$sroa_idx16 = ((($0)) + 24|0); - HEAP32[$$sroa$1415$0$$sroa_idx16>>2] = $$sroa$1415$0; - $$sroa$15$0$$sroa_idx18 = ((($0)) + 28|0); - HEAP32[$$sroa$15$0$$sroa_idx18>>2] = $$sroa$15$0; - $$sroa$16$0$$sroa_idx = ((($0)) + 32|0); - ;HEAP32[$$sroa$16$0$$sroa_idx>>2]=HEAP32[$$sroa$16>>2]|0;HEAP32[$$sroa$16$0$$sroa_idx+4>>2]=HEAP32[$$sroa$16+4>>2]|0;HEAP32[$$sroa$16$0$$sroa_idx+8>>2]=HEAP32[$$sroa$16+8>>2]|0;HEAP32[$$sroa$16$0$$sroa_idx+12>>2]=HEAP32[$$sroa$16+12>>2]|0; - $$sroa$1622$0$$sroa_idx23 = ((($0)) + 48|0); - HEAP32[$$sroa$1622$0$$sroa_idx23>>2] = $$sroa$1622$0; - $$sroa$1727$0$$sroa_idx28 = ((($0)) + 60|0); - HEAP32[$$sroa$1727$0$$sroa_idx28>>2] = $$sroa$1727$0; - $$sroa$18$0$$sroa_idx = ((($0)) + 64|0); - dest=$$sroa$18$0$$sroa_idx; src=$$sroa$18; stop=dest+68|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _LoadBuffersDefault() { - var $$05365 = 0, $$05467 = 0, $$05770 = 0, $$05972 = 0, $$066 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; - var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; - var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; - var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; - var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond75 = 0, $exitcond78 = 0, $exitcond80 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer17 = 0; - var $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, $vararg_ptr20 = 0, $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $vararg_buffer17 = sp + 48|0; - $vararg_buffer14 = sp + 40|0; - $vararg_buffer10 = sp + 32|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $0 = (_malloc(24576)|0); - HEAP32[(14380)>>2] = $0; - $1 = (_malloc(8192)|0); - HEAP32[(14388)>>2] = $1; - HEAP32[(14384)>>2] = 0; - HEAP32[(14392)>>2] = 0; - _memset(($0|0),0,24576)|0; - $$05972 = 0; - while(1) { - $2 = HEAP32[(14388)>>2]|0; - $3 = (($2) + ($$05972)|0); - HEAP8[$3>>0] = 0; - $4 = (($$05972) + 1)|0; - $exitcond80 = ($4|0)==(8192); - if ($exitcond80) { - break; - } else { - $$05972 = $4; - } - } - HEAP32[3592] = 0; - HEAP32[(14376)>>2] = 0; - HEAP32[(14372)>>2] = 0; - $5 = (_malloc(73728)|0); - HEAP32[(14428)>>2] = $5; - $6 = (_malloc(24576)|0); - HEAP32[(14436)>>2] = $6; - HEAP32[(14432)>>2] = 0; - HEAP32[(14440)>>2] = 0; - _memset(($5|0),0,73728)|0; - $$05770 = 0; - while(1) { - $7 = HEAP32[(14436)>>2]|0; - $8 = (($7) + ($$05770)|0); - HEAP8[$8>>0] = 0; - $9 = (($$05770) + 1)|0; - $exitcond78 = ($9|0)==(24576); - if ($exitcond78) { - break; - } else { - $$05770 = $9; - } - } - HEAP32[3604] = 0; - HEAP32[(14424)>>2] = 0; - HEAP32[(14420)>>2] = 0; - $10 = (_malloc(49152)|0); - HEAP32[(14188)>>2] = $10; - $11 = (_malloc(32768)|0); - HEAP32[(14192)>>2] = $11; - $12 = (_malloc(16384)|0); - HEAP32[(14196)>>2] = $12; - $13 = (_malloc(12288)|0); - HEAP32[(14200)>>2] = $13; - $14 = HEAP32[(14188)>>2]|0; - _memset(($14|0),0,49152)|0; - $15 = HEAP32[(14192)>>2]|0; - _memset(($15|0),0,32768)|0; - $$05467 = 0; - while(1) { - $17 = HEAP32[(14196)>>2]|0; - $18 = (($17) + ($$05467)|0); - HEAP8[$18>>0] = 0; - $19 = (($$05467) + 1)|0; - $exitcond75 = ($19|0)==(16384); - if ($exitcond75) { - break; - } else { - $$05467 = $19; - } - } - $16 = HEAP32[(14200)>>2]|0; - $$05365 = 0;$$066 = 0; - while(1) { - $22 = $$05365 << 2; - $23 = $22&65535; - $24 = (($16) + ($$066<<1)|0); - HEAP16[$24>>1] = $23; - $25 = $22 | 1; - $26 = $25&65535; - $27 = $$066 | 1; - $28 = (($16) + ($27<<1)|0); - HEAP16[$28>>1] = $26; - $29 = $22 | 2; - $30 = $29&65535; - $31 = (($$066) + 2)|0; - $32 = (($16) + ($31<<1)|0); - HEAP16[$32>>1] = $30; - $33 = (($$066) + 3)|0; - $34 = (($16) + ($33<<1)|0); - HEAP16[$34>>1] = $23; - $35 = (($$066) + 4)|0; - $36 = (($16) + ($35<<1)|0); - HEAP16[$36>>1] = $30; - $37 = $22 | 3; - $38 = $37&65535; - $39 = (($$066) + 5)|0; - $40 = (($16) + ($39<<1)|0); - HEAP16[$40>>1] = $38; - $41 = (($$05365) + 1)|0; - $42 = (($$066) + 6)|0; - $exitcond = ($41|0)==(1024); - if ($exitcond) { - break; - } else { - $$05365 = $41;$$066 = $42; - } - } - HEAP32[3544] = 0; - HEAP32[(14180)>>2] = 0; - HEAP32[(14184)>>2] = 0; - _TraceLog(0,6109,$vararg_buffer); - $20 = HEAP32[3649]|0; - $21 = ($20|0)==(0); - if (!($21)) { - $43 = HEAP32[4075]|0; - FUNCTION_TABLE_vii[$43 & 63](1,(14396)); - $44 = HEAP32[3650]|0; - $45 = HEAP32[(14396)>>2]|0; - FUNCTION_TABLE_vi[$44 & 31]($45); - } - _glGenBuffers(2,((14400)|0)); - $46 = HEAP32[(14400)>>2]|0; - _glBindBuffer(34962,($46|0)); - $47 = HEAP32[(14380)>>2]|0; - _glBufferData(34962,24576,($47|0),35048); - $48 = HEAP32[(14468)>>2]|0; - _glEnableVertexAttribArray(($48|0)); - $49 = HEAP32[(14468)>>2]|0; - _glVertexAttribPointer(($49|0),3,5126,0,0,(0|0)); - _glGenBuffers(2,((14404)|0)); - $50 = HEAP32[(14404)>>2]|0; - _glBindBuffer(34962,($50|0)); - $51 = HEAP32[(14388)>>2]|0; - _glBufferData(34962,8192,($51|0),35048); - $52 = HEAP32[(14488)>>2]|0; - _glEnableVertexAttribArray(($52|0)); - $53 = HEAP32[(14488)>>2]|0; - _glVertexAttribPointer(($53|0),4,5121,1,0,(0|0)); - $54 = HEAP32[3649]|0; - $55 = ($54|0)==(0); - if ($55) { - $57 = HEAP32[(14400)>>2]|0; - $58 = HEAP32[(14404)>>2]|0; - HEAP32[$vararg_buffer3>>2] = $57; - $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr6>>2] = $58; - _TraceLog(0,6247,$vararg_buffer3); - } else { - $56 = HEAP32[(14396)>>2]|0; - HEAP32[$vararg_buffer1>>2] = $56; - _TraceLog(0,6182,$vararg_buffer1); - } - $59 = HEAP32[3649]|0; - $60 = ($59|0)==(0); - if (!($60)) { - $61 = HEAP32[4075]|0; - FUNCTION_TABLE_vii[$61 & 63](1,(14444)); - $62 = HEAP32[3650]|0; - $63 = HEAP32[(14444)>>2]|0; - FUNCTION_TABLE_vi[$62 & 31]($63); - } - _glGenBuffers(1,((14448)|0)); - $64 = HEAP32[(14448)>>2]|0; - _glBindBuffer(34962,($64|0)); - $65 = HEAP32[(14428)>>2]|0; - _glBufferData(34962,73728,($65|0),35048); - $66 = HEAP32[(14468)>>2]|0; - _glEnableVertexAttribArray(($66|0)); - $67 = HEAP32[(14468)>>2]|0; - _glVertexAttribPointer(($67|0),3,5126,0,0,(0|0)); - _glGenBuffers(1,((14452)|0)); - $68 = HEAP32[(14452)>>2]|0; - _glBindBuffer(34962,($68|0)); - $69 = HEAP32[(14436)>>2]|0; - _glBufferData(34962,24576,($69|0),35048); - $70 = HEAP32[(14488)>>2]|0; - _glEnableVertexAttribArray(($70|0)); - $71 = HEAP32[(14488)>>2]|0; - _glVertexAttribPointer(($71|0),4,5121,1,0,(0|0)); - $72 = HEAP32[3649]|0; - $73 = ($72|0)==(0); - if ($73) { - $75 = HEAP32[(14448)>>2]|0; - $76 = HEAP32[(14452)>>2]|0; - HEAP32[$vararg_buffer10>>2] = $75; - $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); - HEAP32[$vararg_ptr13>>2] = $76; - _TraceLog(0,6393,$vararg_buffer10); - } else { - $74 = HEAP32[(14444)>>2]|0; - HEAP32[$vararg_buffer7>>2] = $74; - _TraceLog(0,6324,$vararg_buffer7); - } - $77 = HEAP32[3649]|0; - $78 = ($77|0)==(0); - if (!($78)) { - $79 = HEAP32[4075]|0; - FUNCTION_TABLE_vii[$79 & 63](1,(14204)); - $80 = HEAP32[3650]|0; - $81 = HEAP32[(14204)>>2]|0; - FUNCTION_TABLE_vi[$80 & 31]($81); - } - _glGenBuffers(1,((14208)|0)); - $82 = HEAP32[(14208)>>2]|0; - _glBindBuffer(34962,($82|0)); - $83 = HEAP32[(14188)>>2]|0; - _glBufferData(34962,49152,($83|0),35048); - $84 = HEAP32[(14468)>>2]|0; - _glEnableVertexAttribArray(($84|0)); - $85 = HEAP32[(14468)>>2]|0; - _glVertexAttribPointer(($85|0),3,5126,0,0,(0|0)); - _glGenBuffers(1,((14212)|0)); - $86 = HEAP32[(14212)>>2]|0; - _glBindBuffer(34962,($86|0)); - $87 = HEAP32[(14192)>>2]|0; - _glBufferData(34962,32768,($87|0),35048); - $88 = HEAP32[(14472)>>2]|0; - _glEnableVertexAttribArray(($88|0)); - $89 = HEAP32[(14472)>>2]|0; - _glVertexAttribPointer(($89|0),2,5126,0,0,(0|0)); - _glGenBuffers(1,((14216)|0)); - $90 = HEAP32[(14216)>>2]|0; - _glBindBuffer(34962,($90|0)); - $91 = HEAP32[(14196)>>2]|0; - _glBufferData(34962,16384,($91|0),35048); - $92 = HEAP32[(14488)>>2]|0; - _glEnableVertexAttribArray(($92|0)); - $93 = HEAP32[(14488)>>2]|0; - _glVertexAttribPointer(($93|0),4,5121,1,0,(0|0)); - _glGenBuffers(1,((14220)|0)); - $94 = HEAP32[(14220)>>2]|0; - _glBindBuffer(34963,($94|0)); - $95 = HEAP32[(14200)>>2]|0; - _glBufferData(34963,12288,($95|0),35044); - $96 = HEAP32[3649]|0; - $97 = ($96|0)==(0); - if ($97) { - $99 = HEAP32[(14208)>>2]|0; - $100 = HEAP32[(14212)>>2]|0; - $101 = HEAP32[(14216)>>2]|0; - $102 = HEAP32[(14220)>>2]|0; - HEAP32[$vararg_buffer17>>2] = $99; - $vararg_ptr20 = ((($vararg_buffer17)) + 4|0); - HEAP32[$vararg_ptr20>>2] = $100; - $vararg_ptr21 = ((($vararg_buffer17)) + 8|0); - HEAP32[$vararg_ptr21>>2] = $101; - $vararg_ptr22 = ((($vararg_buffer17)) + 12|0); - HEAP32[$vararg_ptr22>>2] = $102; - _TraceLog(0,6539,$vararg_buffer17); - } else { - $98 = HEAP32[(14204)>>2]|0; - HEAP32[$vararg_buffer14>>2] = $98; - _TraceLog(0,6474,$vararg_buffer14); - } - $103 = HEAP32[3649]|0; - $104 = ($103|0)==(0); - if ($104) { - STACKTOP = sp;return; - } - $105 = HEAP32[3650]|0; - FUNCTION_TABLE_vi[$105 & 31](0); - STACKTOP = sp;return; -} -function _LoadShaderProgram($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$alloca_mul = 0, $$alloca_mul34 = 0, $$alloca_mul36 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer22 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); - $vararg_buffer22 = sp + 64|0; - $vararg_buffer19 = sp + 56|0; - $vararg_buffer16 = sp + 48|0; - $vararg_buffer13 = sp + 40|0; - $vararg_buffer10 = sp + 32|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer4 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 80|0; - $3 = sp + 76|0; - $4 = sp + 72|0; - $5 = sp + 68|0; - $6 = (_glCreateShader(35633)|0); - $7 = (_glCreateShader(35632)|0); - HEAP32[$2>>2] = $0; - HEAP32[$3>>2] = $1; - _glShaderSource(($6|0),1,($2|0),(0|0)); - _glShaderSource(($7|0),1,($3|0),(0|0)); - HEAP32[$4>>2] = 0; - _glCompileShader(($6|0)); - _glGetShaderiv(($6|0),35713,($4|0)); - $8 = HEAP32[$4>>2]|0; - $9 = ($8|0)==(1); - if ($9) { - HEAP32[$vararg_buffer4>>2] = $6; - _TraceLog(0,7776,$vararg_buffer4); - } else { - HEAP32[$vararg_buffer>>2] = $6; - _TraceLog(1,7724,$vararg_buffer); - HEAP32[$vararg_buffer>>2] = 0; - _glGetShaderiv(($6|0),35716,($vararg_buffer|0)); - $10 = HEAP32[$vararg_buffer>>2]|0; - $11 = (_llvm_stacksave()|0); - $$alloca_mul = $10; - $12 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);; - $13 = HEAP32[$vararg_buffer>>2]|0; - _glGetShaderInfoLog(($6|0),($13|0),($5|0),($12|0)); - HEAP32[$vararg_buffer1>>2] = $12; - _TraceLog(0,7773,$vararg_buffer1); - _llvm_stackrestore(($11|0)); - } - _glCompileShader(($7|0)); - _glGetShaderiv(($7|0),35713,($4|0)); - $14 = HEAP32[$4>>2]|0; - $15 = ($14|0)==(1); - if ($15) { - HEAP32[$vararg_buffer13>>2] = $7; - _TraceLog(0,7877,$vararg_buffer13); - } else { - HEAP32[$vararg_buffer7>>2] = $7; - _TraceLog(1,7826,$vararg_buffer7); - HEAP32[$vararg_buffer7>>2] = 0; - _glGetShaderiv(($7|0),35716,($vararg_buffer7|0)); - $16 = HEAP32[$vararg_buffer7>>2]|0; - $17 = (_llvm_stacksave()|0); - $$alloca_mul34 = $16; - $18 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul34)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul34)|0)+15)&-16)|0);; - $19 = HEAP32[$vararg_buffer7>>2]|0; - _glGetShaderInfoLog(($7|0),($19|0),($5|0),($18|0)); - HEAP32[$vararg_buffer10>>2] = $18; - _TraceLog(0,7773,$vararg_buffer10); - _llvm_stackrestore(($17|0)); - } - $20 = (_glCreateProgram()|0); - _glAttachShader(($20|0),($6|0)); - _glAttachShader(($20|0),($7|0)); - _glBindAttribLocation(($20|0),0,(7610|0)); - _glBindAttribLocation(($20|0),1,(7625|0)); - _glBindAttribLocation(($20|0),2,(7929|0)); - _glBindAttribLocation(($20|0),3,(7640|0)); - _glBindAttribLocation(($20|0),4,(7942|0)); - _glBindAttribLocation(($20|0),5,(7956|0)); - _glLinkProgram(($20|0)); - _glGetProgramiv(($20|0),35714,($4|0)); - $21 = HEAP32[$4>>2]|0; - $22 = ($21|0)==(0); - if ($22) { - HEAP32[$vararg_buffer16>>2] = $20; - _TraceLog(1,7972,$vararg_buffer16); - HEAP32[$vararg_buffer16>>2] = 0; - _glGetProgramiv(($20|0),35716,($vararg_buffer16|0)); - $23 = HEAP32[$vararg_buffer16>>2]|0; - $24 = (_llvm_stacksave()|0); - $$alloca_mul36 = $23; - $25 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul36)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul36)|0)+15)&-16)|0);; - $26 = HEAP32[$vararg_buffer16>>2]|0; - _glGetProgramInfoLog(($20|0),($26|0),($5|0),($25|0)); - HEAP32[$vararg_buffer19>>2] = $25; - _TraceLog(0,7773,$vararg_buffer19); - _glDeleteProgram(($20|0)); - _llvm_stackrestore(($24|0)); - $$0 = 0; - _glDeleteShader(($6|0)); - _glDeleteShader(($7|0)); - STACKTOP = sp;return ($$0|0); - } else { - HEAP32[$vararg_buffer22>>2] = $20; - _TraceLog(0,8018,$vararg_buffer22); - $$0 = $20; - _glDeleteShader(($6|0)); - _glDeleteShader(($7|0)); - STACKTOP = sp;return ($$0|0); - } - return (0)|0; -} -function _IsMouseButtonPressed($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (17261 + ($0)|0); - $2 = HEAP8[$1>>0]|0; - $3 = (17264 + ($0)|0); - $4 = HEAP8[$3>>0]|0; - $5 = ($2<<24>>24)!=($4<<24>>24); - $6 = ($2<<24>>24)==(1); - $or$cond = $6 & $5; - $$0 = $or$cond&1; - return ($$0|0); -} -function _IsMouseButtonReleased($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (17261 + ($0)|0); - $2 = HEAP8[$1>>0]|0; - $3 = (17264 + ($0)|0); - $4 = HEAP8[$3>>0]|0; - $5 = ($2<<24>>24)!=($4<<24>>24); - $6 = ($2<<24>>24)==(0); - $or$cond = $6 & $5; - $$0 = $or$cond&1; - return ($$0|0); -} -function _rlClearScreenBuffers() { - var label = 0, sp = 0; - sp = STACKTOP; - _glClear(16640); - return; -} -function _CloseWindow() { - var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - _UnloadDefaultFont(); - _rlglClose(); - $0 = HEAP32[4086]|0; - _glfwDestroyWindow(($0|0)); - _glfwTerminate(); - _TraceLog(0,8313,$vararg_buffer); - STACKTOP = sp;return; -} -function _rlglClose() { - var $0 = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - _UnloadShaderDefault(); - _UnloadBuffersDefault(); - _glDeleteTextures(1,(14360|0)); - $0 = HEAP32[3590]|0; - HEAP32[$vararg_buffer>>2] = $0; - _TraceLog(0,8340,$vararg_buffer); - $1 = HEAP32[3591]|0; - _free($1); - STACKTOP = sp;return; -} -function _UnloadShaderDefault() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - _glUseProgram(0); - $0 = HEAP32[4042]|0; - _glDeleteProgram(($0|0)); - return; -} -function _UnloadBuffersDefault() { - var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[3649]|0; - $1 = ($0|0)==(0); - if (!($1)) { - $2 = HEAP32[3650]|0; - FUNCTION_TABLE_vi[$2 & 31](0); - } - _glDisableVertexAttribArray(0); - _glDisableVertexAttribArray(1); - _glDisableVertexAttribArray(2); - _glDisableVertexAttribArray(3); - _glBindBuffer(34962,0); - _glBindBuffer(34963,0); - _glDeleteBuffers(1,((14400)|0)); - _glDeleteBuffers(1,((14404)|0)); - _glDeleteBuffers(1,((14448)|0)); - _glDeleteBuffers(1,((14452)|0)); - _glDeleteBuffers(1,((14208)|0)); - _glDeleteBuffers(1,((14212)|0)); - _glDeleteBuffers(1,((14216)|0)); - _glDeleteBuffers(1,((14220)|0)); - $3 = HEAP32[3649]|0; - $4 = ($3|0)==(0); - if (!($4)) { - $5 = HEAP32[4076]|0; - FUNCTION_TABLE_vii[$5 & 63](1,(14396)); - $6 = HEAP32[4076]|0; - FUNCTION_TABLE_vii[$6 & 63](1,(14444)); - $7 = HEAP32[4076]|0; - FUNCTION_TABLE_vii[$7 & 63](1,(14204)); - } - $8 = HEAP32[(14380)>>2]|0; - _free($8); - $9 = HEAP32[(14388)>>2]|0; - _free($9); - $10 = HEAP32[(14428)>>2]|0; - _free($10); - $11 = HEAP32[(14436)>>2]|0; - _free($11); - $12 = HEAP32[(14188)>>2]|0; - _free($12); - $13 = HEAP32[(14192)>>2]|0; - _free($13); - $14 = HEAP32[(14196)>>2]|0; - _free($14); - $15 = HEAP32[(14200)>>2]|0; - _free($15); - return; -} -function _BeginDrawing() { - var $0 = 0.0, $1 = 0.0, $2 = 0.0, $downscaleView$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $downscaleView$byval_copy = sp; - $0 = (+_GetTime()); - HEAPF64[1753] = $0; - $1 = +HEAPF64[1752]; - $2 = $0 - $1; - HEAPF64[1754] = $2; - HEAPF64[1752] = $0; - _rlClearScreenBuffers(); - _rlLoadIdentity(); - dest=$downscaleView$byval_copy; src=16384; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - (_MatrixToFloat($downscaleView$byval_copy)|0); - _rlMultMatrixf(14604); - STACKTOP = sp;return; -} -function _rlMultMatrixf($0) { - $0 = $0|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; - var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy1 = sp + 192|0; - $$byval_copy = sp + 128|0; - $1 = sp + 64|0; - $2 = sp; - $3 = HEAP32[$0>>2]|0; - HEAP32[$1>>2] = $3; - $4 = ((($1)) + 4|0); - $5 = ((($0)) + 16|0); - $6 = HEAP32[$5>>2]|0; - HEAP32[$4>>2] = $6; - $7 = ((($1)) + 8|0); - $8 = ((($0)) + 32|0); - $9 = HEAP32[$8>>2]|0; - HEAP32[$7>>2] = $9; - $10 = ((($1)) + 12|0); - $11 = ((($0)) + 48|0); - $12 = HEAP32[$11>>2]|0; - HEAP32[$10>>2] = $12; - $13 = ((($1)) + 16|0); - $14 = ((($0)) + 4|0); - $15 = HEAP32[$14>>2]|0; - HEAP32[$13>>2] = $15; - $16 = ((($1)) + 20|0); - $17 = ((($0)) + 20|0); - $18 = HEAP32[$17>>2]|0; - HEAP32[$16>>2] = $18; - $19 = ((($1)) + 24|0); - $20 = ((($0)) + 36|0); - $21 = HEAP32[$20>>2]|0; - HEAP32[$19>>2] = $21; - $22 = ((($1)) + 28|0); - $23 = ((($0)) + 52|0); - $24 = HEAP32[$23>>2]|0; - HEAP32[$22>>2] = $24; - $25 = ((($1)) + 32|0); - $26 = ((($0)) + 8|0); - $27 = HEAP32[$26>>2]|0; - HEAP32[$25>>2] = $27; - $28 = ((($1)) + 36|0); - $29 = ((($0)) + 24|0); - $30 = HEAP32[$29>>2]|0; - HEAP32[$28>>2] = $30; - $31 = ((($1)) + 40|0); - $32 = ((($0)) + 40|0); - $33 = HEAP32[$32>>2]|0; - HEAP32[$31>>2] = $33; - $34 = ((($1)) + 44|0); - $35 = ((($0)) + 56|0); - $36 = HEAP32[$35>>2]|0; - HEAP32[$34>>2] = $36; - $37 = ((($1)) + 48|0); - $38 = ((($0)) + 12|0); - $39 = HEAP32[$38>>2]|0; - HEAP32[$37>>2] = $39; - $40 = ((($1)) + 52|0); - $41 = ((($0)) + 28|0); - $42 = HEAP32[$41>>2]|0; - HEAP32[$40>>2] = $42; - $43 = ((($1)) + 56|0); - $44 = ((($0)) + 44|0); - $45 = HEAP32[$44>>2]|0; - HEAP32[$43>>2] = $45; - $46 = ((($1)) + 60|0); - $47 = ((($0)) + 60|0); - $48 = HEAP32[$47>>2]|0; - HEAP32[$46>>2] = $48; - $49 = HEAP32[4034]|0; - dest=$$byval_copy; src=$49; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy1; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($2,$$byval_copy,$$byval_copy1); - dest=$49; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _EndDrawing() { - var $0 = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - _rlglDraw(); - _SwapBuffers(); - _PollInputEvents(); - $0 = (+_GetTime()); - HEAPF64[1753] = $0; - $1 = +HEAPF64[1752]; - $2 = $0 - $1; - HEAPF64[1755] = $2; - HEAPF64[1752] = $0; - $3 = +HEAPF64[1754]; - $4 = $2 + $3; - HEAPF64[1739] = $4; - $5 = +HEAPF64[1749]; - $6 = $4 < $5; - if (!($6)) { - return; - } - $7 = $5 - $4; - $8 = $7 * 1000.0; - $9 = $8; - _Wait($9); - $10 = (+_GetTime()); - HEAPF64[1753] = $10; - $11 = +HEAPF64[1752]; - $12 = $10 - $11; - HEAPF64[1752] = $10; - $13 = +HEAPF64[1739]; - $14 = $12 + $13; - HEAPF64[1739] = $14; - return; -} -function _SwapBuffers() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4086]|0; - _glfwSwapBuffers(($0|0)); - return; -} -function _PollInputEvents() { - var $$04857 = 0, $$05160 = 0, $$058 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0.0, $40 = 0; - var $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep67 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1456|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1456|0); - $0 = sp + 1440|0; - $1 = sp + 1432|0; - $2 = sp; - _UpdateGestures(); - HEAP32[743] = -1; - HEAP32[745] = -1; - HEAP32[4122] = 0; - $3 = HEAP32[4086]|0; - _glfwGetCursorPos(($3|0),($0|0),($1|0)); - $4 = +HEAPF64[$0>>3]; - $5 = $4; - HEAPF32[3496] = $5; - $6 = +HEAPF64[$1>>3]; - $7 = $6; - HEAPF32[(13988)>>2] = $7; - _memcpy((17779|0),(17267|0),512)|0; - ;HEAP8[17264>>0]=HEAP8[17261>>0]|0;HEAP8[17264+1>>0]=HEAP8[17261+1>>0]|0;HEAP8[17264+2>>0]=HEAP8[17261+2>>0]|0; - $8 = HEAP32[4121]|0; - HEAP32[4087] = $8; - HEAP32[4121] = 0; - $9 = (_emscripten_get_num_gamepads()|0); - $10 = ($9|0)>(0); - if (!($10)) { - STACKTOP = sp;return; - } - $11 = ((($2)) + 12|0); - $12 = ((($2)) + 8|0); - $$05160 = 0; - while(1) { - $scevgep = (18291 + ($$05160<<5)|0); - $scevgep67 = (18419 + ($$05160<<5)|0); - dest=$scevgep; src=$scevgep67; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); - $13 = (_emscripten_get_gamepad_status(($$05160|0),($2|0))|0); - $14 = ($13|0)==(0); - if ($14) { - $15 = HEAP32[$11>>2]|0; - $16 = ($15|0)>(0); - if ($16) { - $17 = HEAP32[$11>>2]|0; - $$04857 = 0; - while(1) { - $21 = (((($2)) + 1040|0) + ($$04857<<2)|0); - $22 = HEAP32[$21>>2]|0; - $23 = ($22|0)==(1); - $24 = ((18419 + ($$05160<<5)|0) + ($$04857)|0); - if ($23) { - HEAP8[$24>>0] = 1; - HEAP32[745] = $$04857; - } else { - HEAP8[$24>>0] = 0; - } - $25 = (($$04857) + 1)|0; - $26 = ($25|0)<($17|0); - $27 = ($25|0)<(32); - $28 = $27 & $26; - if ($28) { - $$04857 = $25; - } else { - break; - } - } - } - $18 = HEAP32[$12>>2]|0; - $19 = ($18|0)>(0); - if ($19) { - $20 = HEAP32[$12>>2]|0; - $$058 = 0; - while(1) { - $29 = (((($2)) + 16|0) + ($$058<<3)|0); - $30 = +HEAPF64[$29>>3]; - $31 = $30; - $32 = ((16492 + ($$05160<<5)|0) + ($$058<<2)|0); - HEAPF32[$32>>2] = $31; - $33 = (($$058) + 1)|0; - $34 = ($33|0)<($20|0); - $35 = ($33|0)<(8); - $36 = $35 & $34; - if ($36) { - $$058 = $33; - } else { - $$lcssa = $20; - break; - } - } - } else { - $$lcssa = $18; - } - HEAP32[4122] = $$lcssa; - } - $37 = (($$05160) + 1)|0; - $38 = ($37|0)<($9|0); - $39 = ($37|0)<(4); - $40 = $38 & $39; - if ($40) { - $$05160 = $37; - } else { - break; - } - } - STACKTOP = sp;return; -} -function _Wait($0) { - $0 = +$0; - var $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (+_GetTime()); - $2 = 0.0 - $1; - $3 = $0 / 1000.0; - $4 = $3; - $5 = $2 < $4; - if (!($5)) { - return; - } - while(1) { - $6 = (+_GetTime()); - $7 = $6 - $1; - $8 = $7 < $4; - if (!($8)) { - break; - } - } - return; -} -function _Begin3dMode($0) { - $0 = $0|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy3 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0; - var $8 = 0.0, $9 = 0.0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); - $$byval_copy3 = sp + 88|0; - $$byval_copy1 = sp + 76|0; - $$byval_copy = sp + 64|0; - $1 = sp; - _rlglDraw(); - _rlMatrixMode(5889); - _rlPushMatrix(); - _rlLoadIdentity(); - $2 = HEAP32[4089]|0; - $3 = (+($2|0)); - $4 = HEAP32[4090]|0; - $5 = (+($4|0)); - $6 = $3 / $5; - $7 = ((($0)) + 36|0); - $8 = +HEAPF32[$7>>2]; - $9 = $8; - $10 = $9 * 0.5; - $11 = $10 * 0.01745329238474369; - $12 = (+Math_tan((+$11))); - $13 = $12 * 0.01; - $14 = $6; - $15 = $13 * $14; - $16 = -$15; - $17 = -$13; - _rlFrustum($16,$15,$17,$13,0.01,1000.0); - _rlMatrixMode(5888); - _rlLoadIdentity(); - $18 = ((($0)) + 12|0); - $19 = ((($0)) + 24|0); - ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$18>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$18+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$18+8>>2]|0; - ;HEAP32[$$byval_copy3>>2]=HEAP32[$19>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$19+8>>2]|0; - _MatrixLookAt($1,$$byval_copy,$$byval_copy1,$$byval_copy3); - dest=$$byval_copy3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - (_MatrixToFloat($$byval_copy3)|0); - _rlMultMatrixf(14604); - _rlEnableDepthTest(); - STACKTOP = sp;return; -} -function _rlFrustum($0,$1,$2,$3,$4,$5) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - $4 = +$4; - $5 = +$5; - var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy1 = sp + 192|0; - $$byval_copy = sp + 128|0; - $6 = sp + 64|0; - $7 = sp; - _MatrixFrustum($6,$0,$1,$2,$3,$4,$5); - $8 = HEAP32[4034]|0; - dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($7,$$byval_copy,$$byval_copy1); - dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _rlEnableDepthTest() { - var label = 0, sp = 0; - sp = STACKTOP; - _glEnable(2929); - return; -} -function _End3dMode() { - var label = 0, sp = 0; - sp = STACKTOP; - _rlglDraw(); - _rlMatrixMode(5889); - _rlPopMatrix(); - _rlMatrixMode(5888); - _rlLoadIdentity(); - _rlDisableDepthTest(); - return; -} -function _rlDisableDepthTest() { - var label = 0, sp = 0; - sp = STACKTOP; - _glDisable(2929); - return; -} -function _emscripten_GetProcAddress($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; - var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; - var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; - var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; - var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; - var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; - var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0; - var $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0; - var $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0; - var $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0; - var $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0; - var $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0; - var $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0; - var $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0; - var $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0; - var $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0; - var $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0; - var $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0; - var $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0; - var $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0; - var $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0; - var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0; - var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp + 12|0; - $2 = sp + 8|0; - $3 = sp + 4|0; - $4 = sp; - HEAP32[$2>>2] = $0; - $5 = HEAP32[$2>>2]|0; - $6 = (_strlen($5)|0); - $7 = (($6) + 1)|0; - $8 = (_malloc($7)|0); - HEAP32[$3>>2] = $8; - $9 = HEAP32[$3>>2]|0; - $10 = HEAP32[$2>>2]|0; - (_strcpy($9,$10)|0); - $11 = HEAP32[$3>>2]|0; - $12 = (_strstr($11,8405)|0); - HEAP32[$4>>2] = $12; - $13 = HEAP32[$4>>2]|0; - $14 = ($13|0)!=(0|0); - if ($14) { - $15 = HEAP32[$4>>2]|0; - HEAP8[$15>>0] = 0; - } - $16 = HEAP32[$3>>2]|0; - $17 = (_strstr($16,8409)|0); - HEAP32[$4>>2] = $17; - $18 = HEAP32[$4>>2]|0; - $19 = ($18|0)!=(0|0); - if ($19) { - $20 = HEAP32[$4>>2]|0; - HEAP8[$20>>0] = 0; - } - $21 = HEAP32[$3>>2]|0; - $22 = (_strstr($21,8413)|0); - HEAP32[$4>>2] = $22; - $23 = HEAP32[$4>>2]|0; - $24 = ($23|0)!=(0|0); - if ($24) { - $25 = HEAP32[$4>>2]|0; - HEAP8[$25>>0] = 0; - } - $26 = HEAP32[$3>>2]|0; - $27 = (_strstr($26,8417)|0); - HEAP32[$4>>2] = $27; - $28 = HEAP32[$4>>2]|0; - $29 = ($28|0)!=(0|0); - if ($29) { - $30 = HEAP32[$4>>2]|0; - HEAP8[$30>>0] = 0; - } - $31 = HEAP32[$3>>2]|0; - $32 = (_strcmp($31,8423)|0); - $33 = ($32|0)!=(0); - do { - if ($33) { - $34 = HEAP32[$3>>2]|0; - $35 = (_strcmp($34,8461)|0); - $36 = ($35|0)!=(0); - if (!($36)) { - HEAP32[$3>>2] = 8480; - break; - } - $37 = HEAP32[$3>>2]|0; - $38 = (_strcmp($37,8493)|0); - $39 = ($38|0)!=(0); - if (!($39)) { - HEAP32[$3>>2] = 8514; - break; - } - $40 = HEAP32[$3>>2]|0; - $41 = (_strcmp($40,8529)|0); - $42 = ($41|0)!=(0); - if (!($42)) { - HEAP32[$3>>2] = 8544; - break; - } - $43 = HEAP32[$3>>2]|0; - $44 = (_strcmp($43,8559)|0); - $45 = ($44|0)!=(0); - if (!($45)) { - HEAP32[$3>>2] = 8574; - } - } else { - HEAP32[$3>>2] = 8445; - } - } while(0); - $46 = HEAP32[$3>>2]|0; - $47 = (_strcmp($46,8589)|0); - $48 = ($47|0)!=(0); - do { - if ($48) { - $49 = HEAP32[$3>>2]|0; - $50 = (_strcmp($49,8603)|0); - $51 = ($50|0)!=(0); - if (!($51)) { - HEAP32[$1>>2] = 2; - break; - } - $52 = HEAP32[$3>>2]|0; - $53 = (_strcmp($52,8615)|0); - $54 = ($53|0)!=(0); - if (!($54)) { - HEAP32[$1>>2] = 6; - break; - } - $55 = HEAP32[$3>>2]|0; - $56 = (_strcmp($55,8629)|0); - $57 = ($56|0)!=(0); - if (!($57)) { - HEAP32[$1>>2] = 7; - break; - } - $58 = HEAP32[$3>>2]|0; - $59 = (_strcmp($58,8641)|0); - $60 = ($59|0)!=(0); - if (!($60)) { - HEAP32[$1>>2] = 8; - break; - } - $61 = HEAP32[$3>>2]|0; - $62 = (_strcmp($61,8655)|0); - $63 = ($62|0)!=(0); - if (!($63)) { - HEAP32[$1>>2] = 9; - break; - } - $64 = HEAP32[$3>>2]|0; - $65 = (_strcmp($64,8669)|0); - $66 = ($65|0)!=(0); - if (!($66)) { - HEAP32[$1>>2] = 10; - break; - } - $67 = HEAP32[$3>>2]|0; - $68 = (_strcmp($67,8686)|0); - $69 = ($68|0)!=(0); - if (!($69)) { - HEAP32[$1>>2] = 1; - break; - } - $70 = HEAP32[$3>>2]|0; - $71 = (_strcmp($70,8709)|0); - $72 = ($71|0)!=(0); - if (!($72)) { - HEAP32[$1>>2] = 1; - break; - } - $73 = HEAP32[$3>>2]|0; - $74 = (_strcmp($73,8735)|0); - $75 = ($74|0)!=(0); - if (!($75)) { - HEAP32[$1>>2] = 2; - break; - } - $76 = HEAP32[$3>>2]|0; - $77 = (_strcmp($76,8748)|0); - $78 = ($77|0)!=(0); - if (!($78)) { - HEAP32[$1>>2] = 3; - break; - } - $79 = HEAP32[$3>>2]|0; - $80 = (_strcmp($79,8764)|0); - $81 = ($80|0)!=(0); - if (!($81)) { - HEAP32[$1>>2] = 1; - break; - } - $82 = HEAP32[$3>>2]|0; - $83 = (_strcmp($82,8777)|0); - $84 = ($83|0)!=(0); - if (!($84)) { - HEAP32[$1>>2] = 11; - break; - } - $85 = HEAP32[$3>>2]|0; - $86 = (_strcmp($85,8791)|0); - $87 = ($86|0)!=(0); - if (!($87)) { - HEAP32[$1>>2] = 2; - break; - } - $88 = HEAP32[$3>>2]|0; - $89 = (_strcmp($88,8811)|0); - $90 = ($89|0)!=(0); - if (!($90)) { - HEAP32[$1>>2] = 3; - break; - } - $91 = HEAP32[$3>>2]|0; - $92 = (_strcmp($91,8831)|0); - $93 = ($92|0)!=(0); - if (!($93)) { - HEAP32[$1>>2] = 4; - break; - } - $94 = HEAP32[$3>>2]|0; - $95 = (_strcmp($94,8848)|0); - $96 = ($95|0)!=(0); - if (!($96)) { - HEAP32[$1>>2] = 5; - break; - } - $97 = HEAP32[$3>>2]|0; - $98 = (_strcmp($97,8865)|0); - $99 = ($98|0)!=(0); - if (!($99)) { - HEAP32[$1>>2] = 3; - break; - } - $100 = HEAP32[$3>>2]|0; - $101 = (_strcmp($100,8877)|0); - $102 = ($101|0)!=(0); - if (!($102)) { - HEAP32[$1>>2] = 12; - break; - } - $103 = HEAP32[$3>>2]|0; - $104 = (_strcmp($103,8890)|0); - $105 = ($104|0)!=(0); - if (!($105)) { - HEAP32[$1>>2] = 13; - break; - } - $106 = HEAP32[$3>>2]|0; - $107 = (_strcmp($106,8906)|0); - $108 = ($107|0)!=(0); - if (!($108)) { - HEAP32[$1>>2] = 6; - break; - } - $109 = HEAP32[$3>>2]|0; - $110 = (_strcmp($109,8929)|0); - $111 = ($110|0)!=(0); - if (!($111)) { - HEAP32[$1>>2] = 2; - break; - } - $112 = HEAP32[$3>>2]|0; - $113 = (_strcmp($112,8942)|0); - $114 = ($113|0)!=(0); - if (!($114)) { - HEAP32[$1>>2] = 3; - break; - } - $115 = HEAP32[$3>>2]|0; - $116 = (_strcmp($115,8958)|0); - $117 = ($116|0)!=(0); - if (!($117)) { - HEAP32[$1>>2] = 4; - break; - } - $118 = HEAP32[$3>>2]|0; - $119 = (_strcmp($118,8969)|0); - $120 = ($119|0)!=(0); - if (!($120)) { - HEAP32[$1>>2] = 14; - break; - } - $121 = HEAP32[$3>>2]|0; - $122 = (_strcmp($121,8988)|0); - $123 = ($122|0)!=(0); - if (!($123)) { - HEAP32[$1>>2] = 15; - break; - } - $124 = HEAP32[$3>>2]|0; - $125 = (_strcmp($124,9010)|0); - $126 = ($125|0)!=(0); - if (!($126)) { - HEAP32[$1>>2] = 16; - break; - } - $127 = HEAP32[$3>>2]|0; - $128 = (_strcmp($127,9029)|0); - $129 = ($128|0)!=(0); - if (!($129)) { - HEAP32[$1>>2] = 7; - break; - } - $130 = HEAP32[$3>>2]|0; - $131 = (_strcmp($130,9058)|0); - $132 = ($131|0)!=(0); - if (!($132)) { - HEAP32[$1>>2] = 5; - break; - } - $133 = HEAP32[$3>>2]|0; - $134 = (_strcmp($133,9075)|0); - $135 = ($134|0)!=(0); - if (!($135)) { - HEAP32[$1>>2] = 8; - break; - } - $136 = HEAP32[$3>>2]|0; - $137 = (_strcmp($136,9090)|0); - $138 = ($137|0)!=(0); - if (!($138)) { - HEAP32[$1>>2] = 9; - break; - } - $139 = HEAP32[$3>>2]|0; - $140 = (_strcmp($139,9105)|0); - $141 = ($140|0)!=(0); - if (!($141)) { - HEAP32[$1>>2] = 1; - break; - } - $142 = HEAP32[$3>>2]|0; - $143 = (_strcmp($142,9126)|0); - $144 = ($143|0)!=(0); - if (!($144)) { - HEAP32[$1>>2] = 10; - break; - } - $145 = HEAP32[$3>>2]|0; - $146 = (_strcmp($145,9146)|0); - $147 = ($146|0)!=(0); - if (!($147)) { - HEAP32[$1>>2] = 11; - break; - } - $148 = HEAP32[$3>>2]|0; - $149 = (_strcmp($148,9166)|0); - $150 = ($149|0)!=(0); - if (!($150)) { - HEAP32[$1>>2] = 12; - break; - } - $151 = HEAP32[$3>>2]|0; - $152 = (_strcmp($151,9192)|0); - $153 = ($152|0)!=(0); - if (!($153)) { - HEAP32[$1>>2] = 2; - break; - } - $154 = HEAP32[$3>>2]|0; - $155 = (_strcmp($154,9211)|0); - $156 = ($155|0)!=(0); - if (!($156)) { - HEAP32[$1>>2] = 1; - break; - } - $157 = HEAP32[$3>>2]|0; - $158 = (_strcmp($157,9223)|0); - $159 = ($158|0)!=(0); - if (!($159)) { - HEAP32[$1>>2] = 3; - break; - } - $160 = HEAP32[$3>>2]|0; - $161 = (_strcmp($160,9235)|0); - $162 = ($161|0)!=(0); - if (!($162)) { - HEAP32[$1>>2] = 1; - break; - } - $163 = HEAP32[$3>>2]|0; - $164 = (_strcmp($163,9247)|0); - $165 = ($164|0)!=(0); - if (!($165)) { - HEAP32[$1>>2] = 1; - break; - } - $166 = HEAP32[$3>>2]|0; - $167 = (_strcmp($166,9259)|0); - $168 = ($167|0)!=(0); - if (!($168)) { - HEAP32[$1>>2] = 17; - break; - } - $169 = HEAP32[$3>>2]|0; - $170 = (_strcmp($169,9271)|0); - $171 = ($170|0)!=(0); - if (!($171)) { - HEAP32[$1>>2] = 13; - break; - } - $172 = HEAP32[$3>>2]|0; - $173 = (_strcmp($172,9283)|0); - $174 = ($173|0)!=(0); - if (!($174)) { - HEAP32[$1>>2] = 4; - break; - } - $175 = HEAP32[$3>>2]|0; - $176 = (_strcmp($175,9295)|0); - $177 = ($176|0)!=(0); - if (!($177)) { - HEAP32[$1>>2] = 2; - break; - } - $178 = HEAP32[$3>>2]|0; - $179 = (_strcmp($178,9307)|0); - $180 = ($179|0)!=(0); - if (!($180)) { - HEAP32[$1>>2] = 14; - break; - } - $181 = HEAP32[$3>>2]|0; - $182 = (_strcmp($181,9320)|0); - $183 = ($182|0)!=(0); - if (!($183)) { - HEAP32[$1>>2] = 15; - break; - } - $184 = HEAP32[$3>>2]|0; - $185 = (_strcmp($184,9333)|0); - $186 = ($185|0)!=(0); - if (!($186)) { - HEAP32[$1>>2] = 16; - break; - } - $187 = HEAP32[$3>>2]|0; - $188 = (_strcmp($187,9346)|0); - $189 = ($188|0)!=(0); - if (!($189)) { - HEAP32[$1>>2] = 17; - break; - } - $190 = HEAP32[$3>>2]|0; - $191 = (_strcmp($190,9359)|0); - $192 = ($191|0)!=(0); - if (!($192)) { - HEAP32[$1>>2] = 18; - break; - } - $193 = HEAP32[$3>>2]|0; - $194 = (_strcmp($193,9372)|0); - $195 = ($194|0)!=(0); - if (!($195)) { - HEAP32[$1>>2] = 19; - break; - } - $196 = HEAP32[$3>>2]|0; - $197 = (_strcmp($196,9385)|0); - $198 = ($197|0)!=(0); - if (!($198)) { - HEAP32[$1>>2] = 20; - break; - } - $199 = HEAP32[$3>>2]|0; - $200 = (_strcmp($199,9398)|0); - $201 = ($200|0)!=(0); - if (!($201)) { - HEAP32[$1>>2] = 21; - break; - } - $202 = HEAP32[$3>>2]|0; - $203 = (_strcmp($202,9411)|0); - $204 = ($203|0)!=(0); - if (!($204)) { - HEAP32[$1>>2] = 5; - break; - } - $205 = HEAP32[$3>>2]|0; - $206 = (_strcmp($205,9430)|0); - $207 = ($206|0)!=(0); - if (!($207)) { - HEAP32[$1>>2] = 6; - break; - } - $208 = HEAP32[$3>>2]|0; - $209 = (_strcmp($208,9449)|0); - $210 = ($209|0)!=(0); - if (!($210)) { - HEAP32[$1>>2] = 7; - break; - } - $211 = HEAP32[$3>>2]|0; - $212 = (_strcmp($211,9468)|0); - $213 = ($212|0)!=(0); - if (!($213)) { - HEAP32[$1>>2] = 18; - break; - } - $214 = HEAP32[$3>>2]|0; - $215 = (_strcmp($214,9481)|0); - $216 = ($215|0)!=(0); - if (!($216)) { - HEAP32[$1>>2] = 19; - break; - } - $217 = HEAP32[$3>>2]|0; - $218 = (_strcmp($217,9499)|0); - $219 = ($218|0)!=(0); - if (!($219)) { - HEAP32[$1>>2] = 20; - break; - } - $220 = HEAP32[$3>>2]|0; - $221 = (_strcmp($220,9517)|0); - $222 = ($221|0)!=(0); - if (!($222)) { - HEAP32[$1>>2] = 21; - break; - } - $223 = HEAP32[$3>>2]|0; - $224 = (_strcmp($223,9535)|0); - $225 = ($224|0)!=(0); - if (!($225)) { - HEAP32[$1>>2] = 22; - break; - } - $226 = HEAP32[$3>>2]|0; - $227 = (_strcmp($226,9553)|0); - $228 = ($227|0)!=(0); - if (!($228)) { - HEAP32[$1>>2] = 2; - break; - } - $229 = HEAP32[$3>>2]|0; - $230 = (_strcmp($229,9573)|0); - $231 = ($230|0)!=(0); - if (!($231)) { - HEAP32[$1>>2] = 3; - break; - } - $232 = HEAP32[$3>>2]|0; - $233 = (_strcmp($232,8514)|0); - $234 = ($233|0)!=(0); - if (!($234)) { - HEAP32[$1>>2] = 6; - break; - } - $235 = HEAP32[$3>>2]|0; - $236 = (_strcmp($235,9591)|0); - $237 = ($236|0)!=(0); - if (!($237)) { - HEAP32[$1>>2] = 1; - break; - } - $238 = HEAP32[$3>>2]|0; - $239 = (_strcmp($238,9606)|0); - $240 = ($239|0)!=(0); - if (!($240)) { - HEAP32[$1>>2] = 8; - break; - } - $241 = HEAP32[$3>>2]|0; - $242 = (_strcmp($241,9627)|0); - $243 = ($242|0)!=(0); - if (!($243)) { - HEAP32[$1>>2] = 9; - break; - } - $244 = HEAP32[$3>>2]|0; - $245 = (_strcmp($244,9642)|0); - $246 = ($245|0)!=(0); - if (!($246)) { - HEAP32[$1>>2] = 10; - break; - } - $247 = HEAP32[$3>>2]|0; - $248 = (_strcmp($247,9660)|0); - $249 = ($248|0)!=(0); - if (!($249)) { - HEAP32[$1>>2] = 2; - break; - } - $250 = HEAP32[$3>>2]|0; - $251 = (_strcmp($250,9676)|0); - $252 = ($251|0)!=(0); - if (!($252)) { - HEAP32[$1>>2] = 11; - break; - } - $253 = HEAP32[$3>>2]|0; - $254 = (_strcmp($253,9695)|0); - $255 = ($254|0)!=(0); - if (!($255)) { - HEAP32[$1>>2] = 22; - break; - } - $256 = HEAP32[$3>>2]|0; - $257 = (_strcmp($256,9709)|0); - $258 = ($257|0)!=(0); - if (!($258)) { - HEAP32[$1>>2] = 23; - break; - } - $259 = HEAP32[$3>>2]|0; - $260 = (_strcmp($259,9724)|0); - $261 = ($260|0)!=(0); - if (!($261)) { - HEAP32[$1>>2] = 7; - break; - } - $262 = HEAP32[$3>>2]|0; - $263 = (_strcmp($262,8445)|0); - $264 = ($263|0)!=(0); - if (!($264)) { - HEAP32[$1>>2] = 1; - break; - } - $265 = HEAP32[$3>>2]|0; - $266 = (_strcmp($265,9735)|0); - $267 = ($266|0)!=(0); - if (!($267)) { - HEAP32[$1>>2] = 3; - break; - } - $268 = HEAP32[$3>>2]|0; - $269 = (_strcmp($268,8544)|0); - $270 = ($269|0)!=(0); - if (!($270)) { - HEAP32[$1>>2] = 23; - break; - } - $271 = HEAP32[$3>>2]|0; - $272 = (_strcmp($271,8574)|0); - $273 = ($272|0)!=(0); - if (!($273)) { - HEAP32[$1>>2] = 24; - break; - } - $274 = HEAP32[$3>>2]|0; - $275 = (_strcmp($274,9751)|0); - $276 = ($275|0)!=(0); - if (!($276)) { - HEAP32[$1>>2] = 12; - break; - } - $277 = HEAP32[$3>>2]|0; - $278 = (_strcmp($277,9778)|0); - $279 = ($278|0)!=(0); - if (!($279)) { - HEAP32[$1>>2] = 4; - break; - } - $280 = HEAP32[$3>>2]|0; - $281 = (_strcmp($280,9792)|0); - $282 = ($281|0)!=(0); - if (!($282)) { - HEAP32[$1>>2] = 13; - break; - } - $283 = HEAP32[$3>>2]|0; - $284 = (_strcmp($283,8480)|0); - $285 = ($284|0)!=(0); - if (!($285)) { - HEAP32[$1>>2] = 5; - break; - } - $286 = HEAP32[$3>>2]|0; - $287 = (_strcmp($286,9812)|0); - $288 = ($287|0)!=(0); - if (!($288)) { - HEAP32[$1>>2] = 6; - break; - } - $289 = HEAP32[$3>>2]|0; - $290 = (_strcmp($289,9830)|0); - $291 = ($290|0)!=(0); - if (!($291)) { - HEAP32[$1>>2] = 8; - break; - } - $292 = HEAP32[$3>>2]|0; - $293 = (_strcmp($292,9842)|0); - $294 = ($293|0)!=(0); - if (!($294)) { - HEAP32[$1>>2] = 24; - break; - } - $295 = HEAP32[$3>>2]|0; - $296 = (_strcmp($295,9863)|0); - $297 = ($296|0)!=(0); - if (!($297)) { - HEAP32[$1>>2] = 25; - break; - } - $298 = HEAP32[$3>>2]|0; - $299 = (_strcmp($298,9881)|0); - $300 = ($299|0)!=(0); - if (!($300)) { - HEAP32[$1>>2] = 26; - break; - } - $301 = HEAP32[$3>>2]|0; - $302 = (_strcmp($301,9899)|0); - $303 = ($302|0)!=(0); - if (!($303)) { - HEAP32[$1>>2] = 27; - break; - } - $304 = HEAP32[$3>>2]|0; - $305 = (_strcmp($304,9920)|0); - $306 = ($305|0)!=(0); - if (!($306)) { - HEAP32[$1>>2] = 14; - break; - } - $307 = HEAP32[$3>>2]|0; - $308 = (_strcmp($307,9946)|0); - $309 = ($308|0)!=(0); - if (!($309)) { - HEAP32[$1>>2] = 3; - break; - } - $310 = HEAP32[$3>>2]|0; - $311 = (_strcmp($310,9969)|0); - $312 = ($311|0)!=(0); - if (!($312)) { - HEAP32[$1>>2] = 15; - break; - } - $313 = HEAP32[$3>>2]|0; - $314 = (_strcmp($313,10007)|0); - $315 = ($314|0)!=(0); - if (!($315)) { - HEAP32[$1>>2] = 9; - break; - } - $316 = HEAP32[$3>>2]|0; - $317 = (_strcmp($316,10023)|0); - $318 = ($317|0)!=(0); - if (!($318)) { - HEAP32[$1>>2] = 7; - break; - } - $319 = HEAP32[$3>>2]|0; - $320 = (_strcmp($319,10038)|0); - $321 = ($320|0)!=(0); - if (!($321)) { - HEAP32[$1>>2] = 25; - break; - } - $322 = HEAP32[$3>>2]|0; - $323 = (_strcmp($322,10061)|0); - $324 = ($323|0)!=(0); - if (!($324)) { - HEAP32[$1>>2] = 16; - break; - } - $325 = HEAP32[$3>>2]|0; - $326 = (_strcmp($325,10074)|0); - $327 = ($326|0)!=(0); - if (!($327)) { - HEAP32[$1>>2] = 28; - break; - } - $328 = HEAP32[$3>>2]|0; - $329 = (_strcmp($328,10088)|0); - $330 = ($329|0)!=(0); - if (!($330)) { - HEAP32[$1>>2] = 29; - break; - } - $331 = HEAP32[$3>>2]|0; - $332 = (_strcmp($331,10102)|0); - $333 = ($332|0)!=(0); - if (!($333)) { - HEAP32[$1>>2] = 1; - break; - } - $334 = HEAP32[$3>>2]|0; - $335 = (_strcmp($334,10122)|0); - $336 = ($335|0)!=(0); - if (!($336)) { - HEAP32[$1>>2] = 8; - break; - } - $337 = HEAP32[$3>>2]|0; - $338 = (_strcmp($337,10142)|0); - $339 = ($338|0)!=(0); - if (!($339)) { - HEAP32[$1>>2] = 17; - break; - } - $340 = HEAP32[$3>>2]|0; - $341 = (_strcmp($340,10158)|0); - $342 = ($341|0)!=(0); - if (!($342)) { - HEAP32[$1>>2] = 18; - break; - } - $343 = HEAP32[$3>>2]|0; - $344 = (_strcmp($343,10176)|0); - $345 = ($344|0)!=(0); - if (!($345)) { - HEAP32[$1>>2] = 26; - break; - } - $346 = HEAP32[$3>>2]|0; - $347 = (_strcmp($346,10192)|0); - $348 = ($347|0)!=(0); - if (!($348)) { - HEAP32[$1>>2] = 19; - break; - } - $349 = HEAP32[$3>>2]|0; - $350 = (_strcmp($349,10207)|0); - $351 = ($350|0)!=(0); - if (!($351)) { - HEAP32[$1>>2] = 9; - break; - } - $352 = HEAP32[$3>>2]|0; - $353 = (_strcmp($352,10229)|0); - $354 = ($353|0)!=(0); - if (!($354)) { - HEAP32[$1>>2] = 30; - break; - } - $355 = HEAP32[$3>>2]|0; - $356 = (_strcmp($355,10247)|0); - $357 = ($356|0)!=(0); - if (!($357)) { - HEAP32[$1>>2] = 31; - break; - } - $358 = HEAP32[$3>>2]|0; - $359 = (_strcmp($358,10268)|0); - $360 = ($359|0)!=(0); - if (!($360)) { - HEAP32[$1>>2] = 10; - break; - } - $361 = HEAP32[$3>>2]|0; - $362 = (_strcmp($361,10286)|0); - $363 = ($362|0)!=(0); - if (!($363)) { - HEAP32[$1>>2] = 11; - break; - } - $364 = HEAP32[$3>>2]|0; - $365 = (_strcmp($364,10299)|0); - $366 = ($365|0)!=(0); - if (!($366)) { - HEAP32[$1>>2] = 2; - break; - } - $367 = HEAP32[$3>>2]|0; - $368 = (_strcmp($367,10314)|0); - $369 = ($368|0)!=(0); - if (!($369)) { - HEAP32[$1>>2] = 12; - break; - } - $370 = HEAP32[$3>>2]|0; - $371 = (_strcmp($370,10328)|0); - $372 = ($371|0)!=(0); - if (!($372)) { - HEAP32[$1>>2] = 1; - break; - } - $373 = HEAP32[$3>>2]|0; - $374 = (_strcmp($373,10338)|0); - $375 = ($374|0)!=(0); - if (!($375)) { - HEAP32[$1>>2] = 1; - break; - } - $376 = HEAP32[$3>>2]|0; - $377 = (_strcmp($376,10348)|0); - $378 = ($377|0)!=(0); - if (!($378)) { - HEAP32[$1>>2] = 2; - break; - } - $379 = HEAP32[$3>>2]|0; - $380 = (_strcmp($379,10370)|0); - $381 = ($380|0)!=(0); - if (!($381)) { - HEAP32[$1>>2] = 13; - break; - } - $382 = HEAP32[$3>>2]|0; - $383 = (_strcmp($382,10396)|0); - $384 = ($383|0)!=(0); - if (!($384)) { - HEAP32[$1>>2] = 14; - break; - } - $385 = HEAP32[$3>>2]|0; - $386 = (_strcmp($385,10423)|0); - $387 = ($386|0)!=(0); - if (!($387)) { - HEAP32[$1>>2] = 27; - break; - } - $388 = HEAP32[$3>>2]|0; - $389 = (_strcmp($388,10436)|0); - $390 = ($389|0)!=(0); - if (!($390)) { - HEAP32[$1>>2] = 20; - break; - } - $391 = HEAP32[$3>>2]|0; - $392 = (_strcmp($391,10451)|0); - $393 = ($392|0)!=(0); - if (!($393)) { - HEAP32[$1>>2] = 4; - break; - } - $394 = HEAP32[$3>>2]|0; - $395 = (_strcmp($394,10466)|0); - $396 = ($395|0)!=(0); - if (!($396)) { - HEAP32[$1>>2] = 3; - break; - } - $397 = HEAP32[$3>>2]|0; - $398 = (_strcmp($397,10490)|0); - $399 = ($398|0)!=(0); - if (!($399)) { - HEAP32[$1>>2] = 2; - break; - } - $400 = HEAP32[$3>>2]|0; - $401 = (_strcmp($400,10501)|0); - $402 = ($401|0)!=(0); - if (!($402)) { - HEAP32[$1>>2] = 32; - break; - } - $403 = HEAP32[$3>>2]|0; - $404 = (_strcmp($403,10523)|0); - $405 = ($404|0)!=(0); - if (!($405)) { - HEAP32[$1>>2] = 21; - break; - } - $406 = HEAP32[$3>>2]|0; - $407 = (_strcmp($406,10545)|0); - $408 = ($407|0)!=(0); - if (!($408)) { - HEAP32[$1>>2] = 5; - break; - } - $409 = HEAP32[$3>>2]|0; - $410 = (_strcmp($409,10569)|0); - $411 = ($410|0)!=(0); - if (!($411)) { - HEAP32[$1>>2] = 4; - break; - } - $412 = HEAP32[$3>>2]|0; - $413 = (_strcmp($412,10578)|0); - $414 = ($413|0)!=(0); - if (!($414)) { - HEAP32[$1>>2] = 5; - break; - } - $415 = HEAP32[$3>>2]|0; - $416 = (_strcmp($415,10586)|0); - $417 = ($416|0)!=(0); - if (!($417)) { - HEAP32[$1>>2] = 1; - break; - } - $418 = HEAP32[$3>>2]|0; - $419 = (_strcmp($418,10599)|0); - $420 = ($419|0)!=(0); - if (!($420)) { - HEAP32[$1>>2] = 2; - break; - } - $421 = HEAP32[$3>>2]|0; - $422 = (_strcmp($421,10613)|0); - $423 = ($422|0)!=(0); - if (!($423)) { - HEAP32[$1>>2] = 15; - break; - } - $424 = HEAP32[$3>>2]|0; - $425 = (_strcmp($424,10625)|0); - $426 = ($425|0)!=(0); - if (!($426)) { - HEAP32[$1>>2] = 16; - break; - } - $427 = HEAP32[$3>>2]|0; - $428 = (_strcmp($427,10634)|0); - $429 = ($428|0)!=(0); - if (!($429)) { - HEAP32[$1>>2] = 17; - break; - } - $430 = HEAP32[$3>>2]|0; - $431 = (_strcmp($430,10644)|0); - $432 = ($431|0)!=(0); - if (!($432)) { - HEAP32[$1>>2] = 18; - break; - } - $433 = HEAP32[$3>>2]|0; - $434 = (_strcmp($433,10656)|0); - $435 = ($434|0)!=(0); - if (!($435)) { - HEAP32[$1>>2] = 19; - break; - } - $436 = HEAP32[$3>>2]|0; - $437 = (_strcmp($436,10667)|0); - $438 = ($437|0)!=(0); - if (!($438)) { - HEAP32[$1>>2] = 20; - break; - } - $439 = HEAP32[$3>>2]|0; - $440 = (_strcmp($439,10675)|0); - $441 = ($440|0)!=(0); - if (!($441)) { - HEAP32[$1>>2] = 3; - break; - } - $442 = HEAP32[$3>>2]|0; - $443 = (_strcmp($442,10687)|0); - $444 = ($443|0)!=(0); - if (!($444)) { - HEAP32[$1>>2] = 21; - break; - } - $445 = HEAP32[$3>>2]|0; - $446 = (_strcmp($445,10702)|0); - $447 = ($446|0)!=(0); - if (!($447)) { - HEAP32[$1>>2] = 22; - break; - } - $448 = HEAP32[$3>>2]|0; - $449 = (_strcmp($448,10714)|0); - $450 = ($449|0)!=(0); - if (!($450)) { - HEAP32[$1>>2] = 23; - break; - } - $451 = HEAP32[$3>>2]|0; - $452 = (_strcmp($451,10728)|0); - $453 = ($452|0)!=(0); - if (!($453)) { - HEAP32[$1>>2] = 10; - break; - } - $454 = HEAP32[$3>>2]|0; - $455 = (_strcmp($454,10753)|0); - $456 = ($455|0)!=(0); - if (!($456)) { - HEAP32[$1>>2] = 24; - break; - } - $457 = HEAP32[$3>>2]|0; - $458 = (_strcmp($457,10770)|0); - $459 = ($458|0)!=(0); - if (!($459)) { - HEAP32[$1>>2] = 25; - break; - } - $460 = HEAP32[$3>>2]|0; - $461 = (_strcmp($460,10786)|0); - $462 = ($461|0)!=(0); - if (!($462)) { - HEAP32[$1>>2] = 26; - break; - } - $463 = HEAP32[$3>>2]|0; - $464 = (_strcmp($463,10802)|0); - $465 = ($464|0)!=(0); - if (!($465)) { - HEAP32[$1>>2] = 11; - break; - } - $466 = HEAP32[$3>>2]|0; - $467 = (_strcmp($466,10814)|0); - $468 = ($467|0)!=(0); - if (!($468)) { - HEAP32[$1>>2] = 33; - break; - } - $469 = HEAP32[$3>>2]|0; - $470 = (_strcmp($469,10826)|0); - $471 = ($470|0)!=(0); - if (!($471)) { - HEAP32[$1>>2] = 34; - break; - } - $472 = HEAP32[$3>>2]|0; - $473 = (_strcmp($472,10850)|0); - $474 = ($473|0)!=(0); - if (!($474)) { - HEAP32[$1>>2] = 1; - break; - } - $475 = HEAP32[$3>>2]|0; - $476 = (_strcmp($475,10863)|0); - $477 = ($476|0)!=(0); - if (!($477)) { - HEAP32[$1>>2] = 2; - break; - } - $478 = HEAP32[$3>>2]|0; - $479 = (_strcmp($478,10877)|0); - $480 = ($479|0)!=(0); - if (!($480)) { - HEAP32[$1>>2] = 35; - break; - } - $481 = HEAP32[$3>>2]|0; - $482 = (_strcmp($481,10899)|0); - $483 = ($482|0)!=(0); - if (!($483)) { - HEAP32[$1>>2] = 36; - break; - } - $484 = HEAP32[$3>>2]|0; - $485 = (_strcmp($484,10906)|0); - $486 = ($485|0)!=(0); - if (!($486)) { - HEAP32[$1>>2] = 3; - break; - } - $487 = HEAP32[$3>>2]|0; - $488 = (_strcmp($487,10922)|0); - $489 = ($488|0)!=(0); - if (!($489)) { - HEAP32[$1>>2] = 2; - break; - } - $490 = HEAP32[$3>>2]|0; - $491 = (_strcmp($490,10939)|0); - $492 = ($491|0)!=(0); - if (!($492)) { - HEAP32[$1>>2] = 1; - break; - } - $493 = HEAP32[$3>>2]|0; - $494 = (_strcmp($493,10956)|0); - $495 = ($494|0)!=(0); - if (!($495)) { - HEAP32[$1>>2] = 28; - break; - } - $496 = HEAP32[$3>>2]|0; - $497 = (_strcmp($496,10972)|0); - $498 = ($497|0)!=(0); - if (!($498)) { - HEAP32[$1>>2] = 1; - break; - } - $499 = HEAP32[$3>>2]|0; - $500 = (_strcmp($499,10988)|0); - $501 = ($500|0)!=(0); - if (!($501)) { - HEAP32[$1>>2] = 4; - break; - } - $502 = HEAP32[$3>>2]|0; - $503 = (_strcmp($502,11005)|0); - $504 = ($503|0)!=(0); - if (!($504)) { - HEAP32[$1>>2] = 29; - break; - } - $505 = HEAP32[$3>>2]|0; - $506 = (_strcmp($505,11019)|0); - $507 = ($506|0)!=(0); - if (!($507)) { - HEAP32[$1>>2] = 30; - break; - } - $508 = HEAP32[$3>>2]|0; - $509 = (_strcmp($508,11031)|0); - $510 = ($509|0)!=(0); - if (!($510)) { - HEAP32[$1>>2] = 22; - break; - } - $511 = HEAP32[$3>>2]|0; - $512 = (_strcmp($511,11042)|0); - $513 = ($512|0)!=(0); - if (!($513)) { - HEAP32[$1>>2] = 2; - break; - } - $514 = HEAP32[$3>>2]|0; - $515 = (_strcmp($514,11055)|0); - $516 = ($515|0)!=(0); - if (!($516)) { - HEAP32[$1>>2] = 23; - break; - } - $517 = HEAP32[$3>>2]|0; - $518 = (_strcmp($517,11065)|0); - $519 = ($518|0)!=(0); - if (!($519)) { - HEAP32[$1>>2] = 2; - break; - } - $520 = HEAP32[$3>>2]|0; - $521 = (_strcmp($520,11082)|0); - $522 = ($521|0)!=(0); - if (!($522)) { - HEAP32[$1>>2] = 24; - break; - } - $523 = HEAP32[$3>>2]|0; - $524 = (_strcmp($523,11094)|0); - $525 = ($524|0)!=(0); - if (!($525)) { - HEAP32[$1>>2] = 25; - break; - } - $526 = HEAP32[$3>>2]|0; - $527 = (_strcmp($526,11116)|0); - $528 = ($527|0)!=(0); - if (!($528)) { - HEAP32[$1>>2] = 26; - break; - } - $529 = HEAP32[$3>>2]|0; - $530 = (_strcmp($529,11136)|0); - $531 = ($530|0)!=(0); - if (!($531)) { - HEAP32[$1>>2] = 3; - break; - } - $532 = HEAP32[$3>>2]|0; - $533 = (_strcmp($532,11149)|0); - $534 = ($533|0)!=(0); - if (!($534)) { - HEAP32[$1>>2] = 27; - break; - } - $535 = HEAP32[$3>>2]|0; - $536 = (_strcmp($535,11171)|0); - $537 = ($536|0)!=(0); - if (!($537)) { - HEAP32[$1>>2] = 28; - break; - } - $538 = HEAP32[$3>>2]|0; - $539 = (_strcmp($538,11191)|0); - $540 = ($539|0)!=(0); - if (!($540)) { - HEAP32[$1>>2] = 2; - break; - } - $541 = HEAP32[$3>>2]|0; - $542 = (_strcmp($541,11208)|0); - $543 = ($542|0)!=(0); - if (!($543)) { - HEAP32[$1>>2] = 2; - break; - } - $544 = HEAP32[$3>>2]|0; - $545 = (_strcmp($544,11225)|0); - $546 = ($545|0)!=(0); - if (!($546)) { - HEAP32[$1>>2] = 3; - break; - } - $547 = HEAP32[$3>>2]|0; - $548 = (_strcmp($547,11245)|0); - $549 = ($548|0)!=(0); - if ($549) { - $550 = HEAP32[$2>>2]|0; - $551 = HEAP32[$3>>2]|0; - $552 = _emscripten_asm_const_iii(0, ($550|0), ($551|0))|0; - HEAP32[$1>>2] = 0; - break; - } else { - HEAP32[$1>>2] = 37; - break; - } - } else { - HEAP32[$1>>2] = 5; - } - } while(0); - $553 = HEAP32[$1>>2]|0; - STACKTOP = sp;return ($553|0); -} -function _malloc($0) { - $0 = $0|0; - var $$$0192$i = 0, $$$0193$i = 0, $$$4236$i = 0, $$$4351$i = 0, $$$i = 0, $$0 = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i18$i = 0, $$01$i$i = 0, $$0189$i = 0, $$0192$lcssa$i = 0, $$01928$i = 0, $$0193$lcssa$i = 0, $$01937$i = 0, $$0197 = 0, $$0199 = 0, $$0206$i$i = 0, $$0207$i$i = 0, $$0211$i$i = 0; - var $$0212$i$i = 0, $$024371$i = 0, $$0287$i$i = 0, $$0288$i$i = 0, $$0289$i$i = 0, $$0295$i$i = 0, $$0296$i$i = 0, $$0342$i = 0, $$0344$i = 0, $$0345$i = 0, $$0347$i = 0, $$0353$i = 0, $$0358$i = 0, $$0359$$i = 0, $$0359$i = 0, $$0361$i = 0, $$0362$i = 0, $$0368$i = 0, $$1196$i = 0, $$1198$i = 0; - var $$124470$i = 0, $$1291$i$i = 0, $$1293$i$i = 0, $$1343$i = 0, $$1348$i = 0, $$1363$i = 0, $$1370$i = 0, $$1374$i = 0, $$2234253237$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2355$i = 0, $$3$i = 0, $$3$i$i = 0, $$3$i201 = 0, $$3350$i = 0, $$3372$i = 0, $$4$lcssa$i = 0, $$4$ph$i = 0, $$415$i = 0; - var $$4236$i = 0, $$4351$lcssa$i = 0, $$435114$i = 0, $$4357$$4$i = 0, $$4357$ph$i = 0, $$435713$i = 0, $$723948$i = 0, $$749$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i19$i = 0, $$pre$i210 = 0, $$pre$i212 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i20$iZ2D = 0, $$pre$phi$i211Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi11$i$iZ2D = 0, $$pre$phiZ2D = 0; - var $$pre10$i$i = 0, $$sink1$i = 0, $$sink1$i$i = 0, $$sink16$i = 0, $$sink2$i = 0, $$sink2$i204 = 0, $$sink3$i = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0; - var $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0; - var $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0; - var $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; - var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; - var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; - var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; - var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0; - var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0; - var $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0; - var $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0; - var $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0; - var $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0; - var $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0; - var $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0; - var $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0; - var $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0; - var $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0; - var $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0; - var $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0; - var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; - var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; - var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; - var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; - var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; - var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0; - var $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0; - var $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0; - var $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0; - var $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0; - var $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0; - var $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0; - var $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0; - var $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0; - var $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0; - var $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0; - var $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0; - var $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0; - var $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0; - var $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0; - var $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0; - var $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0; - var $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0; - var $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0; - var $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0; - var $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0; - var $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0; - var $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0; - var $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0; - var $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0; - var $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0; - var $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0; - var $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0; - var $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i208 = 0, $exitcond$i$i = 0, $not$$i = 0, $not$$i$i = 0, $not$$i17$i = 0, $not$$i209 = 0, $not$$i216 = 0, $not$1$i = 0, $not$1$i203 = 0, $not$5$i = 0, $not$7$i$i = 0, $not$8$i = 0, $not$9$i = 0; - var $or$cond$i = 0, $or$cond$i214 = 0, $or$cond1$i = 0, $or$cond10$i = 0, $or$cond11$i = 0, $or$cond11$not$i = 0, $or$cond12$i = 0, $or$cond2$i = 0, $or$cond2$i215 = 0, $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond7$i = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - $2 = ($0>>>0)<(245); - do { - if ($2) { - $3 = ($0>>>0)<(11); - $4 = (($0) + 11)|0; - $5 = $4 & -8; - $6 = $3 ? 16 : $5; - $7 = $6 >>> 3; - $8 = HEAP32[4155]|0; - $9 = $8 >>> $7; - $10 = $9 & 3; - $11 = ($10|0)==(0); - if (!($11)) { - $12 = $9 & 1; - $13 = $12 ^ 1; - $14 = (($13) + ($7))|0; - $15 = $14 << 1; - $16 = (16660 + ($15<<2)|0); - $17 = ((($16)) + 8|0); - $18 = HEAP32[$17>>2]|0; - $19 = ((($18)) + 8|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($16|0)==($20|0); - do { - if ($21) { - $22 = 1 << $14; - $23 = $22 ^ -1; - $24 = $8 & $23; - HEAP32[4155] = $24; - } else { - $25 = HEAP32[(16636)>>2]|0; - $26 = ($20>>>0)<($25>>>0); - if ($26) { - _abort(); - // unreachable; - } - $27 = ((($20)) + 12|0); - $28 = HEAP32[$27>>2]|0; - $29 = ($28|0)==($18|0); - if ($29) { - HEAP32[$27>>2] = $16; - HEAP32[$17>>2] = $20; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $30 = $14 << 3; - $31 = $30 | 3; - $32 = ((($18)) + 4|0); - HEAP32[$32>>2] = $31; - $33 = (($18) + ($30)|0); - $34 = ((($33)) + 4|0); - $35 = HEAP32[$34>>2]|0; - $36 = $35 | 1; - HEAP32[$34>>2] = $36; - $$0 = $19; - STACKTOP = sp;return ($$0|0); - } - $37 = HEAP32[(16628)>>2]|0; - $38 = ($6>>>0)>($37>>>0); - if ($38) { - $39 = ($9|0)==(0); - if (!($39)) { - $40 = $9 << $7; - $41 = 2 << $7; - $42 = (0 - ($41))|0; - $43 = $41 | $42; - $44 = $40 & $43; - $45 = (0 - ($44))|0; - $46 = $44 & $45; - $47 = (($46) + -1)|0; - $48 = $47 >>> 12; - $49 = $48 & 16; - $50 = $47 >>> $49; - $51 = $50 >>> 5; - $52 = $51 & 8; - $53 = $52 | $49; - $54 = $50 >>> $52; - $55 = $54 >>> 2; - $56 = $55 & 4; - $57 = $53 | $56; - $58 = $54 >>> $56; - $59 = $58 >>> 1; - $60 = $59 & 2; - $61 = $57 | $60; - $62 = $58 >>> $60; - $63 = $62 >>> 1; - $64 = $63 & 1; - $65 = $61 | $64; - $66 = $62 >>> $64; - $67 = (($65) + ($66))|0; - $68 = $67 << 1; - $69 = (16660 + ($68<<2)|0); - $70 = ((($69)) + 8|0); - $71 = HEAP32[$70>>2]|0; - $72 = ((($71)) + 8|0); - $73 = HEAP32[$72>>2]|0; - $74 = ($69|0)==($73|0); - do { - if ($74) { - $75 = 1 << $67; - $76 = $75 ^ -1; - $77 = $8 & $76; - HEAP32[4155] = $77; - $98 = $77; - } else { - $78 = HEAP32[(16636)>>2]|0; - $79 = ($73>>>0)<($78>>>0); - if ($79) { - _abort(); - // unreachable; - } - $80 = ((($73)) + 12|0); - $81 = HEAP32[$80>>2]|0; - $82 = ($81|0)==($71|0); - if ($82) { - HEAP32[$80>>2] = $69; - HEAP32[$70>>2] = $73; - $98 = $8; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $83 = $67 << 3; - $84 = (($83) - ($6))|0; - $85 = $6 | 3; - $86 = ((($71)) + 4|0); - HEAP32[$86>>2] = $85; - $87 = (($71) + ($6)|0); - $88 = $84 | 1; - $89 = ((($87)) + 4|0); - HEAP32[$89>>2] = $88; - $90 = (($87) + ($84)|0); - HEAP32[$90>>2] = $84; - $91 = ($37|0)==(0); - if (!($91)) { - $92 = HEAP32[(16640)>>2]|0; - $93 = $37 >>> 3; - $94 = $93 << 1; - $95 = (16660 + ($94<<2)|0); - $96 = 1 << $93; - $97 = $98 & $96; - $99 = ($97|0)==(0); - if ($99) { - $100 = $98 | $96; - HEAP32[4155] = $100; - $$pre = ((($95)) + 8|0); - $$0199 = $95;$$pre$phiZ2D = $$pre; - } else { - $101 = ((($95)) + 8|0); - $102 = HEAP32[$101>>2]|0; - $103 = HEAP32[(16636)>>2]|0; - $104 = ($102>>>0)<($103>>>0); - if ($104) { - _abort(); - // unreachable; - } else { - $$0199 = $102;$$pre$phiZ2D = $101; - } - } - HEAP32[$$pre$phiZ2D>>2] = $92; - $105 = ((($$0199)) + 12|0); - HEAP32[$105>>2] = $92; - $106 = ((($92)) + 8|0); - HEAP32[$106>>2] = $$0199; - $107 = ((($92)) + 12|0); - HEAP32[$107>>2] = $95; - } - HEAP32[(16628)>>2] = $84; - HEAP32[(16640)>>2] = $87; - $$0 = $72; - STACKTOP = sp;return ($$0|0); - } - $108 = HEAP32[(16624)>>2]|0; - $109 = ($108|0)==(0); - if ($109) { - $$0197 = $6; - } else { - $110 = (0 - ($108))|0; - $111 = $108 & $110; - $112 = (($111) + -1)|0; - $113 = $112 >>> 12; - $114 = $113 & 16; - $115 = $112 >>> $114; - $116 = $115 >>> 5; - $117 = $116 & 8; - $118 = $117 | $114; - $119 = $115 >>> $117; - $120 = $119 >>> 2; - $121 = $120 & 4; - $122 = $118 | $121; - $123 = $119 >>> $121; - $124 = $123 >>> 1; - $125 = $124 & 2; - $126 = $122 | $125; - $127 = $123 >>> $125; - $128 = $127 >>> 1; - $129 = $128 & 1; - $130 = $126 | $129; - $131 = $127 >>> $129; - $132 = (($130) + ($131))|0; - $133 = (16924 + ($132<<2)|0); - $134 = HEAP32[$133>>2]|0; - $135 = ((($134)) + 4|0); - $136 = HEAP32[$135>>2]|0; - $137 = $136 & -8; - $138 = (($137) - ($6))|0; - $139 = ((($134)) + 16|0); - $140 = HEAP32[$139>>2]|0; - $not$5$i = ($140|0)==(0|0); - $$sink16$i = $not$5$i&1; - $141 = (((($134)) + 16|0) + ($$sink16$i<<2)|0); - $142 = HEAP32[$141>>2]|0; - $143 = ($142|0)==(0|0); - if ($143) { - $$0192$lcssa$i = $134;$$0193$lcssa$i = $138; - } else { - $$01928$i = $134;$$01937$i = $138;$145 = $142; - while(1) { - $144 = ((($145)) + 4|0); - $146 = HEAP32[$144>>2]|0; - $147 = $146 & -8; - $148 = (($147) - ($6))|0; - $149 = ($148>>>0)<($$01937$i>>>0); - $$$0193$i = $149 ? $148 : $$01937$i; - $$$0192$i = $149 ? $145 : $$01928$i; - $150 = ((($145)) + 16|0); - $151 = HEAP32[$150>>2]|0; - $not$$i = ($151|0)==(0|0); - $$sink1$i = $not$$i&1; - $152 = (((($145)) + 16|0) + ($$sink1$i<<2)|0); - $153 = HEAP32[$152>>2]|0; - $154 = ($153|0)==(0|0); - if ($154) { - $$0192$lcssa$i = $$$0192$i;$$0193$lcssa$i = $$$0193$i; - break; - } else { - $$01928$i = $$$0192$i;$$01937$i = $$$0193$i;$145 = $153; - } - } - } - $155 = HEAP32[(16636)>>2]|0; - $156 = ($$0192$lcssa$i>>>0)<($155>>>0); - if ($156) { - _abort(); - // unreachable; - } - $157 = (($$0192$lcssa$i) + ($6)|0); - $158 = ($$0192$lcssa$i>>>0)<($157>>>0); - if (!($158)) { - _abort(); - // unreachable; - } - $159 = ((($$0192$lcssa$i)) + 24|0); - $160 = HEAP32[$159>>2]|0; - $161 = ((($$0192$lcssa$i)) + 12|0); - $162 = HEAP32[$161>>2]|0; - $163 = ($162|0)==($$0192$lcssa$i|0); - do { - if ($163) { - $173 = ((($$0192$lcssa$i)) + 20|0); - $174 = HEAP32[$173>>2]|0; - $175 = ($174|0)==(0|0); - if ($175) { - $176 = ((($$0192$lcssa$i)) + 16|0); - $177 = HEAP32[$176>>2]|0; - $178 = ($177|0)==(0|0); - if ($178) { - $$3$i = 0; - break; - } else { - $$1196$i = $177;$$1198$i = $176; - } - } else { - $$1196$i = $174;$$1198$i = $173; - } - while(1) { - $179 = ((($$1196$i)) + 20|0); - $180 = HEAP32[$179>>2]|0; - $181 = ($180|0)==(0|0); - if (!($181)) { - $$1196$i = $180;$$1198$i = $179; - continue; - } - $182 = ((($$1196$i)) + 16|0); - $183 = HEAP32[$182>>2]|0; - $184 = ($183|0)==(0|0); - if ($184) { - break; - } else { - $$1196$i = $183;$$1198$i = $182; - } - } - $185 = ($$1198$i>>>0)<($155>>>0); - if ($185) { - _abort(); - // unreachable; - } else { - HEAP32[$$1198$i>>2] = 0; - $$3$i = $$1196$i; - break; - } - } else { - $164 = ((($$0192$lcssa$i)) + 8|0); - $165 = HEAP32[$164>>2]|0; - $166 = ($165>>>0)<($155>>>0); - if ($166) { - _abort(); - // unreachable; - } - $167 = ((($165)) + 12|0); - $168 = HEAP32[$167>>2]|0; - $169 = ($168|0)==($$0192$lcssa$i|0); - if (!($169)) { - _abort(); - // unreachable; - } - $170 = ((($162)) + 8|0); - $171 = HEAP32[$170>>2]|0; - $172 = ($171|0)==($$0192$lcssa$i|0); - if ($172) { - HEAP32[$167>>2] = $162; - HEAP32[$170>>2] = $165; - $$3$i = $162; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $186 = ($160|0)==(0|0); - L73: do { - if (!($186)) { - $187 = ((($$0192$lcssa$i)) + 28|0); - $188 = HEAP32[$187>>2]|0; - $189 = (16924 + ($188<<2)|0); - $190 = HEAP32[$189>>2]|0; - $191 = ($$0192$lcssa$i|0)==($190|0); - do { - if ($191) { - HEAP32[$189>>2] = $$3$i; - $cond$i = ($$3$i|0)==(0|0); - if ($cond$i) { - $192 = 1 << $188; - $193 = $192 ^ -1; - $194 = $108 & $193; - HEAP32[(16624)>>2] = $194; - break L73; - } - } else { - $195 = HEAP32[(16636)>>2]|0; - $196 = ($160>>>0)<($195>>>0); - if ($196) { - _abort(); - // unreachable; - } else { - $197 = ((($160)) + 16|0); - $198 = HEAP32[$197>>2]|0; - $not$1$i = ($198|0)!=($$0192$lcssa$i|0); - $$sink2$i = $not$1$i&1; - $199 = (((($160)) + 16|0) + ($$sink2$i<<2)|0); - HEAP32[$199>>2] = $$3$i; - $200 = ($$3$i|0)==(0|0); - if ($200) { - break L73; - } else { - break; - } - } - } - } while(0); - $201 = HEAP32[(16636)>>2]|0; - $202 = ($$3$i>>>0)<($201>>>0); - if ($202) { - _abort(); - // unreachable; - } - $203 = ((($$3$i)) + 24|0); - HEAP32[$203>>2] = $160; - $204 = ((($$0192$lcssa$i)) + 16|0); - $205 = HEAP32[$204>>2]|0; - $206 = ($205|0)==(0|0); - do { - if (!($206)) { - $207 = ($205>>>0)<($201>>>0); - if ($207) { - _abort(); - // unreachable; - } else { - $208 = ((($$3$i)) + 16|0); - HEAP32[$208>>2] = $205; - $209 = ((($205)) + 24|0); - HEAP32[$209>>2] = $$3$i; - break; - } - } - } while(0); - $210 = ((($$0192$lcssa$i)) + 20|0); - $211 = HEAP32[$210>>2]|0; - $212 = ($211|0)==(0|0); - if (!($212)) { - $213 = HEAP32[(16636)>>2]|0; - $214 = ($211>>>0)<($213>>>0); - if ($214) { - _abort(); - // unreachable; - } else { - $215 = ((($$3$i)) + 20|0); - HEAP32[$215>>2] = $211; - $216 = ((($211)) + 24|0); - HEAP32[$216>>2] = $$3$i; - break; - } - } - } - } while(0); - $217 = ($$0193$lcssa$i>>>0)<(16); - if ($217) { - $218 = (($$0193$lcssa$i) + ($6))|0; - $219 = $218 | 3; - $220 = ((($$0192$lcssa$i)) + 4|0); - HEAP32[$220>>2] = $219; - $221 = (($$0192$lcssa$i) + ($218)|0); - $222 = ((($221)) + 4|0); - $223 = HEAP32[$222>>2]|0; - $224 = $223 | 1; - HEAP32[$222>>2] = $224; - } else { - $225 = $6 | 3; - $226 = ((($$0192$lcssa$i)) + 4|0); - HEAP32[$226>>2] = $225; - $227 = $$0193$lcssa$i | 1; - $228 = ((($157)) + 4|0); - HEAP32[$228>>2] = $227; - $229 = (($157) + ($$0193$lcssa$i)|0); - HEAP32[$229>>2] = $$0193$lcssa$i; - $230 = ($37|0)==(0); - if (!($230)) { - $231 = HEAP32[(16640)>>2]|0; - $232 = $37 >>> 3; - $233 = $232 << 1; - $234 = (16660 + ($233<<2)|0); - $235 = 1 << $232; - $236 = $8 & $235; - $237 = ($236|0)==(0); - if ($237) { - $238 = $8 | $235; - HEAP32[4155] = $238; - $$pre$i = ((($234)) + 8|0); - $$0189$i = $234;$$pre$phi$iZ2D = $$pre$i; - } else { - $239 = ((($234)) + 8|0); - $240 = HEAP32[$239>>2]|0; - $241 = HEAP32[(16636)>>2]|0; - $242 = ($240>>>0)<($241>>>0); - if ($242) { - _abort(); - // unreachable; - } else { - $$0189$i = $240;$$pre$phi$iZ2D = $239; - } - } - HEAP32[$$pre$phi$iZ2D>>2] = $231; - $243 = ((($$0189$i)) + 12|0); - HEAP32[$243>>2] = $231; - $244 = ((($231)) + 8|0); - HEAP32[$244>>2] = $$0189$i; - $245 = ((($231)) + 12|0); - HEAP32[$245>>2] = $234; - } - HEAP32[(16628)>>2] = $$0193$lcssa$i; - HEAP32[(16640)>>2] = $157; - } - $246 = ((($$0192$lcssa$i)) + 8|0); - $$0 = $246; - STACKTOP = sp;return ($$0|0); - } - } else { - $$0197 = $6; - } - } else { - $247 = ($0>>>0)>(4294967231); - if ($247) { - $$0197 = -1; - } else { - $248 = (($0) + 11)|0; - $249 = $248 & -8; - $250 = HEAP32[(16624)>>2]|0; - $251 = ($250|0)==(0); - if ($251) { - $$0197 = $249; - } else { - $252 = (0 - ($249))|0; - $253 = $248 >>> 8; - $254 = ($253|0)==(0); - if ($254) { - $$0358$i = 0; - } else { - $255 = ($249>>>0)>(16777215); - if ($255) { - $$0358$i = 31; - } else { - $256 = (($253) + 1048320)|0; - $257 = $256 >>> 16; - $258 = $257 & 8; - $259 = $253 << $258; - $260 = (($259) + 520192)|0; - $261 = $260 >>> 16; - $262 = $261 & 4; - $263 = $262 | $258; - $264 = $259 << $262; - $265 = (($264) + 245760)|0; - $266 = $265 >>> 16; - $267 = $266 & 2; - $268 = $263 | $267; - $269 = (14 - ($268))|0; - $270 = $264 << $267; - $271 = $270 >>> 15; - $272 = (($269) + ($271))|0; - $273 = $272 << 1; - $274 = (($272) + 7)|0; - $275 = $249 >>> $274; - $276 = $275 & 1; - $277 = $276 | $273; - $$0358$i = $277; - } - } - $278 = (16924 + ($$0358$i<<2)|0); - $279 = HEAP32[$278>>2]|0; - $280 = ($279|0)==(0|0); - L117: do { - if ($280) { - $$2355$i = 0;$$3$i201 = 0;$$3350$i = $252; - label = 81; - } else { - $281 = ($$0358$i|0)==(31); - $282 = $$0358$i >>> 1; - $283 = (25 - ($282))|0; - $284 = $281 ? 0 : $283; - $285 = $249 << $284; - $$0342$i = 0;$$0347$i = $252;$$0353$i = $279;$$0359$i = $285;$$0362$i = 0; - while(1) { - $286 = ((($$0353$i)) + 4|0); - $287 = HEAP32[$286>>2]|0; - $288 = $287 & -8; - $289 = (($288) - ($249))|0; - $290 = ($289>>>0)<($$0347$i>>>0); - if ($290) { - $291 = ($289|0)==(0); - if ($291) { - $$415$i = $$0353$i;$$435114$i = 0;$$435713$i = $$0353$i; - label = 85; - break L117; - } else { - $$1343$i = $$0353$i;$$1348$i = $289; - } - } else { - $$1343$i = $$0342$i;$$1348$i = $$0347$i; - } - $292 = ((($$0353$i)) + 20|0); - $293 = HEAP32[$292>>2]|0; - $294 = $$0359$i >>> 31; - $295 = (((($$0353$i)) + 16|0) + ($294<<2)|0); - $296 = HEAP32[$295>>2]|0; - $297 = ($293|0)==(0|0); - $298 = ($293|0)==($296|0); - $or$cond2$i = $297 | $298; - $$1363$i = $or$cond2$i ? $$0362$i : $293; - $299 = ($296|0)==(0|0); - $not$8$i = $299 ^ 1; - $300 = $not$8$i&1; - $$0359$$i = $$0359$i << $300; - if ($299) { - $$2355$i = $$1363$i;$$3$i201 = $$1343$i;$$3350$i = $$1348$i; - label = 81; - break; - } else { - $$0342$i = $$1343$i;$$0347$i = $$1348$i;$$0353$i = $296;$$0359$i = $$0359$$i;$$0362$i = $$1363$i; - } - } - } - } while(0); - if ((label|0) == 81) { - $301 = ($$2355$i|0)==(0|0); - $302 = ($$3$i201|0)==(0|0); - $or$cond$i = $301 & $302; - if ($or$cond$i) { - $303 = 2 << $$0358$i; - $304 = (0 - ($303))|0; - $305 = $303 | $304; - $306 = $250 & $305; - $307 = ($306|0)==(0); - if ($307) { - $$0197 = $249; - break; - } - $308 = (0 - ($306))|0; - $309 = $306 & $308; - $310 = (($309) + -1)|0; - $311 = $310 >>> 12; - $312 = $311 & 16; - $313 = $310 >>> $312; - $314 = $313 >>> 5; - $315 = $314 & 8; - $316 = $315 | $312; - $317 = $313 >>> $315; - $318 = $317 >>> 2; - $319 = $318 & 4; - $320 = $316 | $319; - $321 = $317 >>> $319; - $322 = $321 >>> 1; - $323 = $322 & 2; - $324 = $320 | $323; - $325 = $321 >>> $323; - $326 = $325 >>> 1; - $327 = $326 & 1; - $328 = $324 | $327; - $329 = $325 >>> $327; - $330 = (($328) + ($329))|0; - $331 = (16924 + ($330<<2)|0); - $332 = HEAP32[$331>>2]|0; - $$4$ph$i = 0;$$4357$ph$i = $332; - } else { - $$4$ph$i = $$3$i201;$$4357$ph$i = $$2355$i; - } - $333 = ($$4357$ph$i|0)==(0|0); - if ($333) { - $$4$lcssa$i = $$4$ph$i;$$4351$lcssa$i = $$3350$i; - } else { - $$415$i = $$4$ph$i;$$435114$i = $$3350$i;$$435713$i = $$4357$ph$i; - label = 85; - } - } - if ((label|0) == 85) { - while(1) { - label = 0; - $334 = ((($$435713$i)) + 4|0); - $335 = HEAP32[$334>>2]|0; - $336 = $335 & -8; - $337 = (($336) - ($249))|0; - $338 = ($337>>>0)<($$435114$i>>>0); - $$$4351$i = $338 ? $337 : $$435114$i; - $$4357$$4$i = $338 ? $$435713$i : $$415$i; - $339 = ((($$435713$i)) + 16|0); - $340 = HEAP32[$339>>2]|0; - $not$1$i203 = ($340|0)==(0|0); - $$sink2$i204 = $not$1$i203&1; - $341 = (((($$435713$i)) + 16|0) + ($$sink2$i204<<2)|0); - $342 = HEAP32[$341>>2]|0; - $343 = ($342|0)==(0|0); - if ($343) { - $$4$lcssa$i = $$4357$$4$i;$$4351$lcssa$i = $$$4351$i; - break; - } else { - $$415$i = $$4357$$4$i;$$435114$i = $$$4351$i;$$435713$i = $342; - label = 85; - } - } - } - $344 = ($$4$lcssa$i|0)==(0|0); - if ($344) { - $$0197 = $249; - } else { - $345 = HEAP32[(16628)>>2]|0; - $346 = (($345) - ($249))|0; - $347 = ($$4351$lcssa$i>>>0)<($346>>>0); - if ($347) { - $348 = HEAP32[(16636)>>2]|0; - $349 = ($$4$lcssa$i>>>0)<($348>>>0); - if ($349) { - _abort(); - // unreachable; - } - $350 = (($$4$lcssa$i) + ($249)|0); - $351 = ($$4$lcssa$i>>>0)<($350>>>0); - if (!($351)) { - _abort(); - // unreachable; - } - $352 = ((($$4$lcssa$i)) + 24|0); - $353 = HEAP32[$352>>2]|0; - $354 = ((($$4$lcssa$i)) + 12|0); - $355 = HEAP32[$354>>2]|0; - $356 = ($355|0)==($$4$lcssa$i|0); - do { - if ($356) { - $366 = ((($$4$lcssa$i)) + 20|0); - $367 = HEAP32[$366>>2]|0; - $368 = ($367|0)==(0|0); - if ($368) { - $369 = ((($$4$lcssa$i)) + 16|0); - $370 = HEAP32[$369>>2]|0; - $371 = ($370|0)==(0|0); - if ($371) { - $$3372$i = 0; - break; - } else { - $$1370$i = $370;$$1374$i = $369; - } - } else { - $$1370$i = $367;$$1374$i = $366; - } - while(1) { - $372 = ((($$1370$i)) + 20|0); - $373 = HEAP32[$372>>2]|0; - $374 = ($373|0)==(0|0); - if (!($374)) { - $$1370$i = $373;$$1374$i = $372; - continue; - } - $375 = ((($$1370$i)) + 16|0); - $376 = HEAP32[$375>>2]|0; - $377 = ($376|0)==(0|0); - if ($377) { - break; - } else { - $$1370$i = $376;$$1374$i = $375; - } - } - $378 = ($$1374$i>>>0)<($348>>>0); - if ($378) { - _abort(); - // unreachable; - } else { - HEAP32[$$1374$i>>2] = 0; - $$3372$i = $$1370$i; - break; - } - } else { - $357 = ((($$4$lcssa$i)) + 8|0); - $358 = HEAP32[$357>>2]|0; - $359 = ($358>>>0)<($348>>>0); - if ($359) { - _abort(); - // unreachable; - } - $360 = ((($358)) + 12|0); - $361 = HEAP32[$360>>2]|0; - $362 = ($361|0)==($$4$lcssa$i|0); - if (!($362)) { - _abort(); - // unreachable; - } - $363 = ((($355)) + 8|0); - $364 = HEAP32[$363>>2]|0; - $365 = ($364|0)==($$4$lcssa$i|0); - if ($365) { - HEAP32[$360>>2] = $355; - HEAP32[$363>>2] = $358; - $$3372$i = $355; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $379 = ($353|0)==(0|0); - L164: do { - if ($379) { - $470 = $250; - } else { - $380 = ((($$4$lcssa$i)) + 28|0); - $381 = HEAP32[$380>>2]|0; - $382 = (16924 + ($381<<2)|0); - $383 = HEAP32[$382>>2]|0; - $384 = ($$4$lcssa$i|0)==($383|0); - do { - if ($384) { - HEAP32[$382>>2] = $$3372$i; - $cond$i208 = ($$3372$i|0)==(0|0); - if ($cond$i208) { - $385 = 1 << $381; - $386 = $385 ^ -1; - $387 = $250 & $386; - HEAP32[(16624)>>2] = $387; - $470 = $387; - break L164; - } - } else { - $388 = HEAP32[(16636)>>2]|0; - $389 = ($353>>>0)<($388>>>0); - if ($389) { - _abort(); - // unreachable; - } else { - $390 = ((($353)) + 16|0); - $391 = HEAP32[$390>>2]|0; - $not$$i209 = ($391|0)!=($$4$lcssa$i|0); - $$sink3$i = $not$$i209&1; - $392 = (((($353)) + 16|0) + ($$sink3$i<<2)|0); - HEAP32[$392>>2] = $$3372$i; - $393 = ($$3372$i|0)==(0|0); - if ($393) { - $470 = $250; - break L164; - } else { - break; - } - } - } - } while(0); - $394 = HEAP32[(16636)>>2]|0; - $395 = ($$3372$i>>>0)<($394>>>0); - if ($395) { - _abort(); - // unreachable; - } - $396 = ((($$3372$i)) + 24|0); - HEAP32[$396>>2] = $353; - $397 = ((($$4$lcssa$i)) + 16|0); - $398 = HEAP32[$397>>2]|0; - $399 = ($398|0)==(0|0); - do { - if (!($399)) { - $400 = ($398>>>0)<($394>>>0); - if ($400) { - _abort(); - // unreachable; - } else { - $401 = ((($$3372$i)) + 16|0); - HEAP32[$401>>2] = $398; - $402 = ((($398)) + 24|0); - HEAP32[$402>>2] = $$3372$i; - break; - } - } - } while(0); - $403 = ((($$4$lcssa$i)) + 20|0); - $404 = HEAP32[$403>>2]|0; - $405 = ($404|0)==(0|0); - if ($405) { - $470 = $250; - } else { - $406 = HEAP32[(16636)>>2]|0; - $407 = ($404>>>0)<($406>>>0); - if ($407) { - _abort(); - // unreachable; - } else { - $408 = ((($$3372$i)) + 20|0); - HEAP32[$408>>2] = $404; - $409 = ((($404)) + 24|0); - HEAP32[$409>>2] = $$3372$i; - $470 = $250; - break; - } - } - } - } while(0); - $410 = ($$4351$lcssa$i>>>0)<(16); - do { - if ($410) { - $411 = (($$4351$lcssa$i) + ($249))|0; - $412 = $411 | 3; - $413 = ((($$4$lcssa$i)) + 4|0); - HEAP32[$413>>2] = $412; - $414 = (($$4$lcssa$i) + ($411)|0); - $415 = ((($414)) + 4|0); - $416 = HEAP32[$415>>2]|0; - $417 = $416 | 1; - HEAP32[$415>>2] = $417; - } else { - $418 = $249 | 3; - $419 = ((($$4$lcssa$i)) + 4|0); - HEAP32[$419>>2] = $418; - $420 = $$4351$lcssa$i | 1; - $421 = ((($350)) + 4|0); - HEAP32[$421>>2] = $420; - $422 = (($350) + ($$4351$lcssa$i)|0); - HEAP32[$422>>2] = $$4351$lcssa$i; - $423 = $$4351$lcssa$i >>> 3; - $424 = ($$4351$lcssa$i>>>0)<(256); - if ($424) { - $425 = $423 << 1; - $426 = (16660 + ($425<<2)|0); - $427 = HEAP32[4155]|0; - $428 = 1 << $423; - $429 = $427 & $428; - $430 = ($429|0)==(0); - if ($430) { - $431 = $427 | $428; - HEAP32[4155] = $431; - $$pre$i210 = ((($426)) + 8|0); - $$0368$i = $426;$$pre$phi$i211Z2D = $$pre$i210; - } else { - $432 = ((($426)) + 8|0); - $433 = HEAP32[$432>>2]|0; - $434 = HEAP32[(16636)>>2]|0; - $435 = ($433>>>0)<($434>>>0); - if ($435) { - _abort(); - // unreachable; - } else { - $$0368$i = $433;$$pre$phi$i211Z2D = $432; - } - } - HEAP32[$$pre$phi$i211Z2D>>2] = $350; - $436 = ((($$0368$i)) + 12|0); - HEAP32[$436>>2] = $350; - $437 = ((($350)) + 8|0); - HEAP32[$437>>2] = $$0368$i; - $438 = ((($350)) + 12|0); - HEAP32[$438>>2] = $426; - break; - } - $439 = $$4351$lcssa$i >>> 8; - $440 = ($439|0)==(0); - if ($440) { - $$0361$i = 0; - } else { - $441 = ($$4351$lcssa$i>>>0)>(16777215); - if ($441) { - $$0361$i = 31; - } else { - $442 = (($439) + 1048320)|0; - $443 = $442 >>> 16; - $444 = $443 & 8; - $445 = $439 << $444; - $446 = (($445) + 520192)|0; - $447 = $446 >>> 16; - $448 = $447 & 4; - $449 = $448 | $444; - $450 = $445 << $448; - $451 = (($450) + 245760)|0; - $452 = $451 >>> 16; - $453 = $452 & 2; - $454 = $449 | $453; - $455 = (14 - ($454))|0; - $456 = $450 << $453; - $457 = $456 >>> 15; - $458 = (($455) + ($457))|0; - $459 = $458 << 1; - $460 = (($458) + 7)|0; - $461 = $$4351$lcssa$i >>> $460; - $462 = $461 & 1; - $463 = $462 | $459; - $$0361$i = $463; - } - } - $464 = (16924 + ($$0361$i<<2)|0); - $465 = ((($350)) + 28|0); - HEAP32[$465>>2] = $$0361$i; - $466 = ((($350)) + 16|0); - $467 = ((($466)) + 4|0); - HEAP32[$467>>2] = 0; - HEAP32[$466>>2] = 0; - $468 = 1 << $$0361$i; - $469 = $470 & $468; - $471 = ($469|0)==(0); - if ($471) { - $472 = $470 | $468; - HEAP32[(16624)>>2] = $472; - HEAP32[$464>>2] = $350; - $473 = ((($350)) + 24|0); - HEAP32[$473>>2] = $464; - $474 = ((($350)) + 12|0); - HEAP32[$474>>2] = $350; - $475 = ((($350)) + 8|0); - HEAP32[$475>>2] = $350; - break; - } - $476 = HEAP32[$464>>2]|0; - $477 = ($$0361$i|0)==(31); - $478 = $$0361$i >>> 1; - $479 = (25 - ($478))|0; - $480 = $477 ? 0 : $479; - $481 = $$4351$lcssa$i << $480; - $$0344$i = $481;$$0345$i = $476; - while(1) { - $482 = ((($$0345$i)) + 4|0); - $483 = HEAP32[$482>>2]|0; - $484 = $483 & -8; - $485 = ($484|0)==($$4351$lcssa$i|0); - if ($485) { - label = 139; - break; - } - $486 = $$0344$i >>> 31; - $487 = (((($$0345$i)) + 16|0) + ($486<<2)|0); - $488 = $$0344$i << 1; - $489 = HEAP32[$487>>2]|0; - $490 = ($489|0)==(0|0); - if ($490) { - label = 136; - break; - } else { - $$0344$i = $488;$$0345$i = $489; - } - } - if ((label|0) == 136) { - $491 = HEAP32[(16636)>>2]|0; - $492 = ($487>>>0)<($491>>>0); - if ($492) { - _abort(); - // unreachable; - } else { - HEAP32[$487>>2] = $350; - $493 = ((($350)) + 24|0); - HEAP32[$493>>2] = $$0345$i; - $494 = ((($350)) + 12|0); - HEAP32[$494>>2] = $350; - $495 = ((($350)) + 8|0); - HEAP32[$495>>2] = $350; - break; - } - } - else if ((label|0) == 139) { - $496 = ((($$0345$i)) + 8|0); - $497 = HEAP32[$496>>2]|0; - $498 = HEAP32[(16636)>>2]|0; - $499 = ($497>>>0)>=($498>>>0); - $not$9$i = ($$0345$i>>>0)>=($498>>>0); - $500 = $499 & $not$9$i; - if ($500) { - $501 = ((($497)) + 12|0); - HEAP32[$501>>2] = $350; - HEAP32[$496>>2] = $350; - $502 = ((($350)) + 8|0); - HEAP32[$502>>2] = $497; - $503 = ((($350)) + 12|0); - HEAP32[$503>>2] = $$0345$i; - $504 = ((($350)) + 24|0); - HEAP32[$504>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } while(0); - $505 = ((($$4$lcssa$i)) + 8|0); - $$0 = $505; - STACKTOP = sp;return ($$0|0); - } else { - $$0197 = $249; - } - } - } - } - } - } while(0); - $506 = HEAP32[(16628)>>2]|0; - $507 = ($506>>>0)<($$0197>>>0); - if (!($507)) { - $508 = (($506) - ($$0197))|0; - $509 = HEAP32[(16640)>>2]|0; - $510 = ($508>>>0)>(15); - if ($510) { - $511 = (($509) + ($$0197)|0); - HEAP32[(16640)>>2] = $511; - HEAP32[(16628)>>2] = $508; - $512 = $508 | 1; - $513 = ((($511)) + 4|0); - HEAP32[$513>>2] = $512; - $514 = (($511) + ($508)|0); - HEAP32[$514>>2] = $508; - $515 = $$0197 | 3; - $516 = ((($509)) + 4|0); - HEAP32[$516>>2] = $515; - } else { - HEAP32[(16628)>>2] = 0; - HEAP32[(16640)>>2] = 0; - $517 = $506 | 3; - $518 = ((($509)) + 4|0); - HEAP32[$518>>2] = $517; - $519 = (($509) + ($506)|0); - $520 = ((($519)) + 4|0); - $521 = HEAP32[$520>>2]|0; - $522 = $521 | 1; - HEAP32[$520>>2] = $522; - } - $523 = ((($509)) + 8|0); - $$0 = $523; - STACKTOP = sp;return ($$0|0); - } - $524 = HEAP32[(16632)>>2]|0; - $525 = ($524>>>0)>($$0197>>>0); - if ($525) { - $526 = (($524) - ($$0197))|0; - HEAP32[(16632)>>2] = $526; - $527 = HEAP32[(16644)>>2]|0; - $528 = (($527) + ($$0197)|0); - HEAP32[(16644)>>2] = $528; - $529 = $526 | 1; - $530 = ((($528)) + 4|0); - HEAP32[$530>>2] = $529; - $531 = $$0197 | 3; - $532 = ((($527)) + 4|0); - HEAP32[$532>>2] = $531; - $533 = ((($527)) + 8|0); - $$0 = $533; - STACKTOP = sp;return ($$0|0); - } - $534 = HEAP32[4273]|0; - $535 = ($534|0)==(0); - if ($535) { - HEAP32[(17100)>>2] = 4096; - HEAP32[(17096)>>2] = 4096; - HEAP32[(17104)>>2] = -1; - HEAP32[(17108)>>2] = -1; - HEAP32[(17112)>>2] = 0; - HEAP32[(17064)>>2] = 0; - $536 = $1; - $537 = $536 & -16; - $538 = $537 ^ 1431655768; - HEAP32[$1>>2] = $538; - HEAP32[4273] = $538; - $542 = 4096; - } else { - $$pre$i212 = HEAP32[(17100)>>2]|0; - $542 = $$pre$i212; - } - $539 = (($$0197) + 48)|0; - $540 = (($$0197) + 47)|0; - $541 = (($542) + ($540))|0; - $543 = (0 - ($542))|0; - $544 = $541 & $543; - $545 = ($544>>>0)>($$0197>>>0); - if (!($545)) { - $$0 = 0; - STACKTOP = sp;return ($$0|0); - } - $546 = HEAP32[(17060)>>2]|0; - $547 = ($546|0)==(0); - if (!($547)) { - $548 = HEAP32[(17052)>>2]|0; - $549 = (($548) + ($544))|0; - $550 = ($549>>>0)<=($548>>>0); - $551 = ($549>>>0)>($546>>>0); - $or$cond1$i = $550 | $551; - if ($or$cond1$i) { - $$0 = 0; - STACKTOP = sp;return ($$0|0); - } - } - $552 = HEAP32[(17064)>>2]|0; - $553 = $552 & 4; - $554 = ($553|0)==(0); - L244: do { - if ($554) { - $555 = HEAP32[(16644)>>2]|0; - $556 = ($555|0)==(0|0); - L246: do { - if ($556) { - label = 163; - } else { - $$0$i$i = (17068); - while(1) { - $557 = HEAP32[$$0$i$i>>2]|0; - $558 = ($557>>>0)>($555>>>0); - if (!($558)) { - $559 = ((($$0$i$i)) + 4|0); - $560 = HEAP32[$559>>2]|0; - $561 = (($557) + ($560)|0); - $562 = ($561>>>0)>($555>>>0); - if ($562) { - break; - } - } - $563 = ((($$0$i$i)) + 8|0); - $564 = HEAP32[$563>>2]|0; - $565 = ($564|0)==(0|0); - if ($565) { - label = 163; - break L246; - } else { - $$0$i$i = $564; - } - } - $588 = (($541) - ($524))|0; - $589 = $588 & $543; - $590 = ($589>>>0)<(2147483647); - if ($590) { - $591 = (_sbrk(($589|0))|0); - $592 = HEAP32[$$0$i$i>>2]|0; - $593 = HEAP32[$559>>2]|0; - $594 = (($592) + ($593)|0); - $595 = ($591|0)==($594|0); - if ($595) { - $596 = ($591|0)==((-1)|0); - if ($596) { - $$2234253237$i = $589; - } else { - $$723948$i = $589;$$749$i = $591; - label = 180; - break L244; - } - } else { - $$2247$ph$i = $591;$$2253$ph$i = $589; - label = 171; - } - } else { - $$2234253237$i = 0; - } - } - } while(0); - do { - if ((label|0) == 163) { - $566 = (_sbrk(0)|0); - $567 = ($566|0)==((-1)|0); - if ($567) { - $$2234253237$i = 0; - } else { - $568 = $566; - $569 = HEAP32[(17096)>>2]|0; - $570 = (($569) + -1)|0; - $571 = $570 & $568; - $572 = ($571|0)==(0); - $573 = (($570) + ($568))|0; - $574 = (0 - ($569))|0; - $575 = $573 & $574; - $576 = (($575) - ($568))|0; - $577 = $572 ? 0 : $576; - $$$i = (($577) + ($544))|0; - $578 = HEAP32[(17052)>>2]|0; - $579 = (($$$i) + ($578))|0; - $580 = ($$$i>>>0)>($$0197>>>0); - $581 = ($$$i>>>0)<(2147483647); - $or$cond$i214 = $580 & $581; - if ($or$cond$i214) { - $582 = HEAP32[(17060)>>2]|0; - $583 = ($582|0)==(0); - if (!($583)) { - $584 = ($579>>>0)<=($578>>>0); - $585 = ($579>>>0)>($582>>>0); - $or$cond2$i215 = $584 | $585; - if ($or$cond2$i215) { - $$2234253237$i = 0; - break; - } - } - $586 = (_sbrk(($$$i|0))|0); - $587 = ($586|0)==($566|0); - if ($587) { - $$723948$i = $$$i;$$749$i = $566; - label = 180; - break L244; - } else { - $$2247$ph$i = $586;$$2253$ph$i = $$$i; - label = 171; - } - } else { - $$2234253237$i = 0; - } - } - } - } while(0); - do { - if ((label|0) == 171) { - $597 = (0 - ($$2253$ph$i))|0; - $598 = ($$2247$ph$i|0)!=((-1)|0); - $599 = ($$2253$ph$i>>>0)<(2147483647); - $or$cond7$i = $599 & $598; - $600 = ($539>>>0)>($$2253$ph$i>>>0); - $or$cond10$i = $600 & $or$cond7$i; - if (!($or$cond10$i)) { - $610 = ($$2247$ph$i|0)==((-1)|0); - if ($610) { - $$2234253237$i = 0; - break; - } else { - $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; - label = 180; - break L244; - } - } - $601 = HEAP32[(17100)>>2]|0; - $602 = (($540) - ($$2253$ph$i))|0; - $603 = (($602) + ($601))|0; - $604 = (0 - ($601))|0; - $605 = $603 & $604; - $606 = ($605>>>0)<(2147483647); - if (!($606)) { - $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; - label = 180; - break L244; - } - $607 = (_sbrk(($605|0))|0); - $608 = ($607|0)==((-1)|0); - if ($608) { - (_sbrk(($597|0))|0); - $$2234253237$i = 0; - break; - } else { - $609 = (($605) + ($$2253$ph$i))|0; - $$723948$i = $609;$$749$i = $$2247$ph$i; - label = 180; - break L244; - } - } - } while(0); - $611 = HEAP32[(17064)>>2]|0; - $612 = $611 | 4; - HEAP32[(17064)>>2] = $612; - $$4236$i = $$2234253237$i; - label = 178; - } else { - $$4236$i = 0; - label = 178; - } - } while(0); - if ((label|0) == 178) { - $613 = ($544>>>0)<(2147483647); - if ($613) { - $614 = (_sbrk(($544|0))|0); - $615 = (_sbrk(0)|0); - $616 = ($614|0)!=((-1)|0); - $617 = ($615|0)!=((-1)|0); - $or$cond5$i = $616 & $617; - $618 = ($614>>>0)<($615>>>0); - $or$cond11$i = $618 & $or$cond5$i; - $619 = $615; - $620 = $614; - $621 = (($619) - ($620))|0; - $622 = (($$0197) + 40)|0; - $623 = ($621>>>0)>($622>>>0); - $$$4236$i = $623 ? $621 : $$4236$i; - $or$cond11$not$i = $or$cond11$i ^ 1; - $624 = ($614|0)==((-1)|0); - $not$$i216 = $623 ^ 1; - $625 = $624 | $not$$i216; - $or$cond50$i = $625 | $or$cond11$not$i; - if (!($or$cond50$i)) { - $$723948$i = $$$4236$i;$$749$i = $614; - label = 180; - } - } - } - if ((label|0) == 180) { - $626 = HEAP32[(17052)>>2]|0; - $627 = (($626) + ($$723948$i))|0; - HEAP32[(17052)>>2] = $627; - $628 = HEAP32[(17056)>>2]|0; - $629 = ($627>>>0)>($628>>>0); - if ($629) { - HEAP32[(17056)>>2] = $627; - } - $630 = HEAP32[(16644)>>2]|0; - $631 = ($630|0)==(0|0); - do { - if ($631) { - $632 = HEAP32[(16636)>>2]|0; - $633 = ($632|0)==(0|0); - $634 = ($$749$i>>>0)<($632>>>0); - $or$cond12$i = $633 | $634; - if ($or$cond12$i) { - HEAP32[(16636)>>2] = $$749$i; - } - HEAP32[(17068)>>2] = $$749$i; - HEAP32[(17072)>>2] = $$723948$i; - HEAP32[(17080)>>2] = 0; - $635 = HEAP32[4273]|0; - HEAP32[(16656)>>2] = $635; - HEAP32[(16652)>>2] = -1; - $$01$i$i = 0; - while(1) { - $636 = $$01$i$i << 1; - $637 = (16660 + ($636<<2)|0); - $638 = ((($637)) + 12|0); - HEAP32[$638>>2] = $637; - $639 = ((($637)) + 8|0); - HEAP32[$639>>2] = $637; - $640 = (($$01$i$i) + 1)|0; - $exitcond$i$i = ($640|0)==(32); - if ($exitcond$i$i) { - break; - } else { - $$01$i$i = $640; - } - } - $641 = (($$723948$i) + -40)|0; - $642 = ((($$749$i)) + 8|0); - $643 = $642; - $644 = $643 & 7; - $645 = ($644|0)==(0); - $646 = (0 - ($643))|0; - $647 = $646 & 7; - $648 = $645 ? 0 : $647; - $649 = (($$749$i) + ($648)|0); - $650 = (($641) - ($648))|0; - HEAP32[(16644)>>2] = $649; - HEAP32[(16632)>>2] = $650; - $651 = $650 | 1; - $652 = ((($649)) + 4|0); - HEAP32[$652>>2] = $651; - $653 = (($649) + ($650)|0); - $654 = ((($653)) + 4|0); - HEAP32[$654>>2] = 40; - $655 = HEAP32[(17108)>>2]|0; - HEAP32[(16648)>>2] = $655; - } else { - $$024371$i = (17068); - while(1) { - $656 = HEAP32[$$024371$i>>2]|0; - $657 = ((($$024371$i)) + 4|0); - $658 = HEAP32[$657>>2]|0; - $659 = (($656) + ($658)|0); - $660 = ($$749$i|0)==($659|0); - if ($660) { - label = 190; - break; - } - $661 = ((($$024371$i)) + 8|0); - $662 = HEAP32[$661>>2]|0; - $663 = ($662|0)==(0|0); - if ($663) { - break; - } else { - $$024371$i = $662; - } - } - if ((label|0) == 190) { - $664 = ((($$024371$i)) + 12|0); - $665 = HEAP32[$664>>2]|0; - $666 = $665 & 8; - $667 = ($666|0)==(0); - if ($667) { - $668 = ($630>>>0)>=($656>>>0); - $669 = ($630>>>0)<($$749$i>>>0); - $or$cond51$i = $669 & $668; - if ($or$cond51$i) { - $670 = (($658) + ($$723948$i))|0; - HEAP32[$657>>2] = $670; - $671 = HEAP32[(16632)>>2]|0; - $672 = ((($630)) + 8|0); - $673 = $672; - $674 = $673 & 7; - $675 = ($674|0)==(0); - $676 = (0 - ($673))|0; - $677 = $676 & 7; - $678 = $675 ? 0 : $677; - $679 = (($630) + ($678)|0); - $680 = (($$723948$i) - ($678))|0; - $681 = (($671) + ($680))|0; - HEAP32[(16644)>>2] = $679; - HEAP32[(16632)>>2] = $681; - $682 = $681 | 1; - $683 = ((($679)) + 4|0); - HEAP32[$683>>2] = $682; - $684 = (($679) + ($681)|0); - $685 = ((($684)) + 4|0); - HEAP32[$685>>2] = 40; - $686 = HEAP32[(17108)>>2]|0; - HEAP32[(16648)>>2] = $686; - break; - } - } - } - $687 = HEAP32[(16636)>>2]|0; - $688 = ($$749$i>>>0)<($687>>>0); - if ($688) { - HEAP32[(16636)>>2] = $$749$i; - $752 = $$749$i; - } else { - $752 = $687; - } - $689 = (($$749$i) + ($$723948$i)|0); - $$124470$i = (17068); - while(1) { - $690 = HEAP32[$$124470$i>>2]|0; - $691 = ($690|0)==($689|0); - if ($691) { - label = 198; - break; - } - $692 = ((($$124470$i)) + 8|0); - $693 = HEAP32[$692>>2]|0; - $694 = ($693|0)==(0|0); - if ($694) { - break; - } else { - $$124470$i = $693; - } - } - if ((label|0) == 198) { - $695 = ((($$124470$i)) + 12|0); - $696 = HEAP32[$695>>2]|0; - $697 = $696 & 8; - $698 = ($697|0)==(0); - if ($698) { - HEAP32[$$124470$i>>2] = $$749$i; - $699 = ((($$124470$i)) + 4|0); - $700 = HEAP32[$699>>2]|0; - $701 = (($700) + ($$723948$i))|0; - HEAP32[$699>>2] = $701; - $702 = ((($$749$i)) + 8|0); - $703 = $702; - $704 = $703 & 7; - $705 = ($704|0)==(0); - $706 = (0 - ($703))|0; - $707 = $706 & 7; - $708 = $705 ? 0 : $707; - $709 = (($$749$i) + ($708)|0); - $710 = ((($689)) + 8|0); - $711 = $710; - $712 = $711 & 7; - $713 = ($712|0)==(0); - $714 = (0 - ($711))|0; - $715 = $714 & 7; - $716 = $713 ? 0 : $715; - $717 = (($689) + ($716)|0); - $718 = $717; - $719 = $709; - $720 = (($718) - ($719))|0; - $721 = (($709) + ($$0197)|0); - $722 = (($720) - ($$0197))|0; - $723 = $$0197 | 3; - $724 = ((($709)) + 4|0); - HEAP32[$724>>2] = $723; - $725 = ($717|0)==($630|0); - do { - if ($725) { - $726 = HEAP32[(16632)>>2]|0; - $727 = (($726) + ($722))|0; - HEAP32[(16632)>>2] = $727; - HEAP32[(16644)>>2] = $721; - $728 = $727 | 1; - $729 = ((($721)) + 4|0); - HEAP32[$729>>2] = $728; - } else { - $730 = HEAP32[(16640)>>2]|0; - $731 = ($717|0)==($730|0); - if ($731) { - $732 = HEAP32[(16628)>>2]|0; - $733 = (($732) + ($722))|0; - HEAP32[(16628)>>2] = $733; - HEAP32[(16640)>>2] = $721; - $734 = $733 | 1; - $735 = ((($721)) + 4|0); - HEAP32[$735>>2] = $734; - $736 = (($721) + ($733)|0); - HEAP32[$736>>2] = $733; - break; - } - $737 = ((($717)) + 4|0); - $738 = HEAP32[$737>>2]|0; - $739 = $738 & 3; - $740 = ($739|0)==(1); - if ($740) { - $741 = $738 & -8; - $742 = $738 >>> 3; - $743 = ($738>>>0)<(256); - L314: do { - if ($743) { - $744 = ((($717)) + 8|0); - $745 = HEAP32[$744>>2]|0; - $746 = ((($717)) + 12|0); - $747 = HEAP32[$746>>2]|0; - $748 = $742 << 1; - $749 = (16660 + ($748<<2)|0); - $750 = ($745|0)==($749|0); - do { - if (!($750)) { - $751 = ($745>>>0)<($752>>>0); - if ($751) { - _abort(); - // unreachable; - } - $753 = ((($745)) + 12|0); - $754 = HEAP32[$753>>2]|0; - $755 = ($754|0)==($717|0); - if ($755) { - break; - } - _abort(); - // unreachable; - } - } while(0); - $756 = ($747|0)==($745|0); - if ($756) { - $757 = 1 << $742; - $758 = $757 ^ -1; - $759 = HEAP32[4155]|0; - $760 = $759 & $758; - HEAP32[4155] = $760; - break; - } - $761 = ($747|0)==($749|0); - do { - if ($761) { - $$pre10$i$i = ((($747)) + 8|0); - $$pre$phi11$i$iZ2D = $$pre10$i$i; - } else { - $762 = ($747>>>0)<($752>>>0); - if ($762) { - _abort(); - // unreachable; - } - $763 = ((($747)) + 8|0); - $764 = HEAP32[$763>>2]|0; - $765 = ($764|0)==($717|0); - if ($765) { - $$pre$phi11$i$iZ2D = $763; - break; - } - _abort(); - // unreachable; - } - } while(0); - $766 = ((($745)) + 12|0); - HEAP32[$766>>2] = $747; - HEAP32[$$pre$phi11$i$iZ2D>>2] = $745; - } else { - $767 = ((($717)) + 24|0); - $768 = HEAP32[$767>>2]|0; - $769 = ((($717)) + 12|0); - $770 = HEAP32[$769>>2]|0; - $771 = ($770|0)==($717|0); - do { - if ($771) { - $781 = ((($717)) + 16|0); - $782 = ((($781)) + 4|0); - $783 = HEAP32[$782>>2]|0; - $784 = ($783|0)==(0|0); - if ($784) { - $785 = HEAP32[$781>>2]|0; - $786 = ($785|0)==(0|0); - if ($786) { - $$3$i$i = 0; - break; - } else { - $$1291$i$i = $785;$$1293$i$i = $781; - } - } else { - $$1291$i$i = $783;$$1293$i$i = $782; - } - while(1) { - $787 = ((($$1291$i$i)) + 20|0); - $788 = HEAP32[$787>>2]|0; - $789 = ($788|0)==(0|0); - if (!($789)) { - $$1291$i$i = $788;$$1293$i$i = $787; - continue; - } - $790 = ((($$1291$i$i)) + 16|0); - $791 = HEAP32[$790>>2]|0; - $792 = ($791|0)==(0|0); - if ($792) { - break; - } else { - $$1291$i$i = $791;$$1293$i$i = $790; - } - } - $793 = ($$1293$i$i>>>0)<($752>>>0); - if ($793) { - _abort(); - // unreachable; - } else { - HEAP32[$$1293$i$i>>2] = 0; - $$3$i$i = $$1291$i$i; - break; - } - } else { - $772 = ((($717)) + 8|0); - $773 = HEAP32[$772>>2]|0; - $774 = ($773>>>0)<($752>>>0); - if ($774) { - _abort(); - // unreachable; - } - $775 = ((($773)) + 12|0); - $776 = HEAP32[$775>>2]|0; - $777 = ($776|0)==($717|0); - if (!($777)) { - _abort(); - // unreachable; - } - $778 = ((($770)) + 8|0); - $779 = HEAP32[$778>>2]|0; - $780 = ($779|0)==($717|0); - if ($780) { - HEAP32[$775>>2] = $770; - HEAP32[$778>>2] = $773; - $$3$i$i = $770; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $794 = ($768|0)==(0|0); - if ($794) { - break; - } - $795 = ((($717)) + 28|0); - $796 = HEAP32[$795>>2]|0; - $797 = (16924 + ($796<<2)|0); - $798 = HEAP32[$797>>2]|0; - $799 = ($717|0)==($798|0); - do { - if ($799) { - HEAP32[$797>>2] = $$3$i$i; - $cond$i$i = ($$3$i$i|0)==(0|0); - if (!($cond$i$i)) { - break; - } - $800 = 1 << $796; - $801 = $800 ^ -1; - $802 = HEAP32[(16624)>>2]|0; - $803 = $802 & $801; - HEAP32[(16624)>>2] = $803; - break L314; - } else { - $804 = HEAP32[(16636)>>2]|0; - $805 = ($768>>>0)<($804>>>0); - if ($805) { - _abort(); - // unreachable; - } else { - $806 = ((($768)) + 16|0); - $807 = HEAP32[$806>>2]|0; - $not$$i17$i = ($807|0)!=($717|0); - $$sink1$i$i = $not$$i17$i&1; - $808 = (((($768)) + 16|0) + ($$sink1$i$i<<2)|0); - HEAP32[$808>>2] = $$3$i$i; - $809 = ($$3$i$i|0)==(0|0); - if ($809) { - break L314; - } else { - break; - } - } - } - } while(0); - $810 = HEAP32[(16636)>>2]|0; - $811 = ($$3$i$i>>>0)<($810>>>0); - if ($811) { - _abort(); - // unreachable; - } - $812 = ((($$3$i$i)) + 24|0); - HEAP32[$812>>2] = $768; - $813 = ((($717)) + 16|0); - $814 = HEAP32[$813>>2]|0; - $815 = ($814|0)==(0|0); - do { - if (!($815)) { - $816 = ($814>>>0)<($810>>>0); - if ($816) { - _abort(); - // unreachable; - } else { - $817 = ((($$3$i$i)) + 16|0); - HEAP32[$817>>2] = $814; - $818 = ((($814)) + 24|0); - HEAP32[$818>>2] = $$3$i$i; - break; - } - } - } while(0); - $819 = ((($813)) + 4|0); - $820 = HEAP32[$819>>2]|0; - $821 = ($820|0)==(0|0); - if ($821) { - break; - } - $822 = HEAP32[(16636)>>2]|0; - $823 = ($820>>>0)<($822>>>0); - if ($823) { - _abort(); - // unreachable; - } else { - $824 = ((($$3$i$i)) + 20|0); - HEAP32[$824>>2] = $820; - $825 = ((($820)) + 24|0); - HEAP32[$825>>2] = $$3$i$i; - break; - } - } - } while(0); - $826 = (($717) + ($741)|0); - $827 = (($741) + ($722))|0; - $$0$i18$i = $826;$$0287$i$i = $827; - } else { - $$0$i18$i = $717;$$0287$i$i = $722; - } - $828 = ((($$0$i18$i)) + 4|0); - $829 = HEAP32[$828>>2]|0; - $830 = $829 & -2; - HEAP32[$828>>2] = $830; - $831 = $$0287$i$i | 1; - $832 = ((($721)) + 4|0); - HEAP32[$832>>2] = $831; - $833 = (($721) + ($$0287$i$i)|0); - HEAP32[$833>>2] = $$0287$i$i; - $834 = $$0287$i$i >>> 3; - $835 = ($$0287$i$i>>>0)<(256); - if ($835) { - $836 = $834 << 1; - $837 = (16660 + ($836<<2)|0); - $838 = HEAP32[4155]|0; - $839 = 1 << $834; - $840 = $838 & $839; - $841 = ($840|0)==(0); - do { - if ($841) { - $842 = $838 | $839; - HEAP32[4155] = $842; - $$pre$i19$i = ((($837)) + 8|0); - $$0295$i$i = $837;$$pre$phi$i20$iZ2D = $$pre$i19$i; - } else { - $843 = ((($837)) + 8|0); - $844 = HEAP32[$843>>2]|0; - $845 = HEAP32[(16636)>>2]|0; - $846 = ($844>>>0)<($845>>>0); - if (!($846)) { - $$0295$i$i = $844;$$pre$phi$i20$iZ2D = $843; - break; - } - _abort(); - // unreachable; - } - } while(0); - HEAP32[$$pre$phi$i20$iZ2D>>2] = $721; - $847 = ((($$0295$i$i)) + 12|0); - HEAP32[$847>>2] = $721; - $848 = ((($721)) + 8|0); - HEAP32[$848>>2] = $$0295$i$i; - $849 = ((($721)) + 12|0); - HEAP32[$849>>2] = $837; - break; - } - $850 = $$0287$i$i >>> 8; - $851 = ($850|0)==(0); - do { - if ($851) { - $$0296$i$i = 0; - } else { - $852 = ($$0287$i$i>>>0)>(16777215); - if ($852) { - $$0296$i$i = 31; - break; - } - $853 = (($850) + 1048320)|0; - $854 = $853 >>> 16; - $855 = $854 & 8; - $856 = $850 << $855; - $857 = (($856) + 520192)|0; - $858 = $857 >>> 16; - $859 = $858 & 4; - $860 = $859 | $855; - $861 = $856 << $859; - $862 = (($861) + 245760)|0; - $863 = $862 >>> 16; - $864 = $863 & 2; - $865 = $860 | $864; - $866 = (14 - ($865))|0; - $867 = $861 << $864; - $868 = $867 >>> 15; - $869 = (($866) + ($868))|0; - $870 = $869 << 1; - $871 = (($869) + 7)|0; - $872 = $$0287$i$i >>> $871; - $873 = $872 & 1; - $874 = $873 | $870; - $$0296$i$i = $874; - } - } while(0); - $875 = (16924 + ($$0296$i$i<<2)|0); - $876 = ((($721)) + 28|0); - HEAP32[$876>>2] = $$0296$i$i; - $877 = ((($721)) + 16|0); - $878 = ((($877)) + 4|0); - HEAP32[$878>>2] = 0; - HEAP32[$877>>2] = 0; - $879 = HEAP32[(16624)>>2]|0; - $880 = 1 << $$0296$i$i; - $881 = $879 & $880; - $882 = ($881|0)==(0); - if ($882) { - $883 = $879 | $880; - HEAP32[(16624)>>2] = $883; - HEAP32[$875>>2] = $721; - $884 = ((($721)) + 24|0); - HEAP32[$884>>2] = $875; - $885 = ((($721)) + 12|0); - HEAP32[$885>>2] = $721; - $886 = ((($721)) + 8|0); - HEAP32[$886>>2] = $721; - break; - } - $887 = HEAP32[$875>>2]|0; - $888 = ($$0296$i$i|0)==(31); - $889 = $$0296$i$i >>> 1; - $890 = (25 - ($889))|0; - $891 = $888 ? 0 : $890; - $892 = $$0287$i$i << $891; - $$0288$i$i = $892;$$0289$i$i = $887; - while(1) { - $893 = ((($$0289$i$i)) + 4|0); - $894 = HEAP32[$893>>2]|0; - $895 = $894 & -8; - $896 = ($895|0)==($$0287$i$i|0); - if ($896) { - label = 265; - break; - } - $897 = $$0288$i$i >>> 31; - $898 = (((($$0289$i$i)) + 16|0) + ($897<<2)|0); - $899 = $$0288$i$i << 1; - $900 = HEAP32[$898>>2]|0; - $901 = ($900|0)==(0|0); - if ($901) { - label = 262; - break; - } else { - $$0288$i$i = $899;$$0289$i$i = $900; - } - } - if ((label|0) == 262) { - $902 = HEAP32[(16636)>>2]|0; - $903 = ($898>>>0)<($902>>>0); - if ($903) { - _abort(); - // unreachable; - } else { - HEAP32[$898>>2] = $721; - $904 = ((($721)) + 24|0); - HEAP32[$904>>2] = $$0289$i$i; - $905 = ((($721)) + 12|0); - HEAP32[$905>>2] = $721; - $906 = ((($721)) + 8|0); - HEAP32[$906>>2] = $721; - break; - } - } - else if ((label|0) == 265) { - $907 = ((($$0289$i$i)) + 8|0); - $908 = HEAP32[$907>>2]|0; - $909 = HEAP32[(16636)>>2]|0; - $910 = ($908>>>0)>=($909>>>0); - $not$7$i$i = ($$0289$i$i>>>0)>=($909>>>0); - $911 = $910 & $not$7$i$i; - if ($911) { - $912 = ((($908)) + 12|0); - HEAP32[$912>>2] = $721; - HEAP32[$907>>2] = $721; - $913 = ((($721)) + 8|0); - HEAP32[$913>>2] = $908; - $914 = ((($721)) + 12|0); - HEAP32[$914>>2] = $$0289$i$i; - $915 = ((($721)) + 24|0); - HEAP32[$915>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } while(0); - $1047 = ((($709)) + 8|0); - $$0 = $1047; - STACKTOP = sp;return ($$0|0); - } - } - $$0$i$i$i = (17068); - while(1) { - $916 = HEAP32[$$0$i$i$i>>2]|0; - $917 = ($916>>>0)>($630>>>0); - if (!($917)) { - $918 = ((($$0$i$i$i)) + 4|0); - $919 = HEAP32[$918>>2]|0; - $920 = (($916) + ($919)|0); - $921 = ($920>>>0)>($630>>>0); - if ($921) { - break; - } - } - $922 = ((($$0$i$i$i)) + 8|0); - $923 = HEAP32[$922>>2]|0; - $$0$i$i$i = $923; - } - $924 = ((($920)) + -47|0); - $925 = ((($924)) + 8|0); - $926 = $925; - $927 = $926 & 7; - $928 = ($927|0)==(0); - $929 = (0 - ($926))|0; - $930 = $929 & 7; - $931 = $928 ? 0 : $930; - $932 = (($924) + ($931)|0); - $933 = ((($630)) + 16|0); - $934 = ($932>>>0)<($933>>>0); - $935 = $934 ? $630 : $932; - $936 = ((($935)) + 8|0); - $937 = ((($935)) + 24|0); - $938 = (($$723948$i) + -40)|0; - $939 = ((($$749$i)) + 8|0); - $940 = $939; - $941 = $940 & 7; - $942 = ($941|0)==(0); - $943 = (0 - ($940))|0; - $944 = $943 & 7; - $945 = $942 ? 0 : $944; - $946 = (($$749$i) + ($945)|0); - $947 = (($938) - ($945))|0; - HEAP32[(16644)>>2] = $946; - HEAP32[(16632)>>2] = $947; - $948 = $947 | 1; - $949 = ((($946)) + 4|0); - HEAP32[$949>>2] = $948; - $950 = (($946) + ($947)|0); - $951 = ((($950)) + 4|0); - HEAP32[$951>>2] = 40; - $952 = HEAP32[(17108)>>2]|0; - HEAP32[(16648)>>2] = $952; - $953 = ((($935)) + 4|0); - HEAP32[$953>>2] = 27; - ;HEAP32[$936>>2]=HEAP32[(17068)>>2]|0;HEAP32[$936+4>>2]=HEAP32[(17068)+4>>2]|0;HEAP32[$936+8>>2]=HEAP32[(17068)+8>>2]|0;HEAP32[$936+12>>2]=HEAP32[(17068)+12>>2]|0; - HEAP32[(17068)>>2] = $$749$i; - HEAP32[(17072)>>2] = $$723948$i; - HEAP32[(17080)>>2] = 0; - HEAP32[(17076)>>2] = $936; - $955 = $937; - while(1) { - $954 = ((($955)) + 4|0); - HEAP32[$954>>2] = 7; - $956 = ((($955)) + 8|0); - $957 = ($956>>>0)<($920>>>0); - if ($957) { - $955 = $954; - } else { - break; - } - } - $958 = ($935|0)==($630|0); - if (!($958)) { - $959 = $935; - $960 = $630; - $961 = (($959) - ($960))|0; - $962 = HEAP32[$953>>2]|0; - $963 = $962 & -2; - HEAP32[$953>>2] = $963; - $964 = $961 | 1; - $965 = ((($630)) + 4|0); - HEAP32[$965>>2] = $964; - HEAP32[$935>>2] = $961; - $966 = $961 >>> 3; - $967 = ($961>>>0)<(256); - if ($967) { - $968 = $966 << 1; - $969 = (16660 + ($968<<2)|0); - $970 = HEAP32[4155]|0; - $971 = 1 << $966; - $972 = $970 & $971; - $973 = ($972|0)==(0); - if ($973) { - $974 = $970 | $971; - HEAP32[4155] = $974; - $$pre$i$i = ((($969)) + 8|0); - $$0211$i$i = $969;$$pre$phi$i$iZ2D = $$pre$i$i; - } else { - $975 = ((($969)) + 8|0); - $976 = HEAP32[$975>>2]|0; - $977 = HEAP32[(16636)>>2]|0; - $978 = ($976>>>0)<($977>>>0); - if ($978) { - _abort(); - // unreachable; - } else { - $$0211$i$i = $976;$$pre$phi$i$iZ2D = $975; - } - } - HEAP32[$$pre$phi$i$iZ2D>>2] = $630; - $979 = ((($$0211$i$i)) + 12|0); - HEAP32[$979>>2] = $630; - $980 = ((($630)) + 8|0); - HEAP32[$980>>2] = $$0211$i$i; - $981 = ((($630)) + 12|0); - HEAP32[$981>>2] = $969; - break; - } - $982 = $961 >>> 8; - $983 = ($982|0)==(0); - if ($983) { - $$0212$i$i = 0; - } else { - $984 = ($961>>>0)>(16777215); - if ($984) { - $$0212$i$i = 31; - } else { - $985 = (($982) + 1048320)|0; - $986 = $985 >>> 16; - $987 = $986 & 8; - $988 = $982 << $987; - $989 = (($988) + 520192)|0; - $990 = $989 >>> 16; - $991 = $990 & 4; - $992 = $991 | $987; - $993 = $988 << $991; - $994 = (($993) + 245760)|0; - $995 = $994 >>> 16; - $996 = $995 & 2; - $997 = $992 | $996; - $998 = (14 - ($997))|0; - $999 = $993 << $996; - $1000 = $999 >>> 15; - $1001 = (($998) + ($1000))|0; - $1002 = $1001 << 1; - $1003 = (($1001) + 7)|0; - $1004 = $961 >>> $1003; - $1005 = $1004 & 1; - $1006 = $1005 | $1002; - $$0212$i$i = $1006; - } - } - $1007 = (16924 + ($$0212$i$i<<2)|0); - $1008 = ((($630)) + 28|0); - HEAP32[$1008>>2] = $$0212$i$i; - $1009 = ((($630)) + 20|0); - HEAP32[$1009>>2] = 0; - HEAP32[$933>>2] = 0; - $1010 = HEAP32[(16624)>>2]|0; - $1011 = 1 << $$0212$i$i; - $1012 = $1010 & $1011; - $1013 = ($1012|0)==(0); - if ($1013) { - $1014 = $1010 | $1011; - HEAP32[(16624)>>2] = $1014; - HEAP32[$1007>>2] = $630; - $1015 = ((($630)) + 24|0); - HEAP32[$1015>>2] = $1007; - $1016 = ((($630)) + 12|0); - HEAP32[$1016>>2] = $630; - $1017 = ((($630)) + 8|0); - HEAP32[$1017>>2] = $630; - break; - } - $1018 = HEAP32[$1007>>2]|0; - $1019 = ($$0212$i$i|0)==(31); - $1020 = $$0212$i$i >>> 1; - $1021 = (25 - ($1020))|0; - $1022 = $1019 ? 0 : $1021; - $1023 = $961 << $1022; - $$0206$i$i = $1023;$$0207$i$i = $1018; - while(1) { - $1024 = ((($$0207$i$i)) + 4|0); - $1025 = HEAP32[$1024>>2]|0; - $1026 = $1025 & -8; - $1027 = ($1026|0)==($961|0); - if ($1027) { - label = 292; - break; - } - $1028 = $$0206$i$i >>> 31; - $1029 = (((($$0207$i$i)) + 16|0) + ($1028<<2)|0); - $1030 = $$0206$i$i << 1; - $1031 = HEAP32[$1029>>2]|0; - $1032 = ($1031|0)==(0|0); - if ($1032) { - label = 289; - break; - } else { - $$0206$i$i = $1030;$$0207$i$i = $1031; - } - } - if ((label|0) == 289) { - $1033 = HEAP32[(16636)>>2]|0; - $1034 = ($1029>>>0)<($1033>>>0); - if ($1034) { - _abort(); - // unreachable; - } else { - HEAP32[$1029>>2] = $630; - $1035 = ((($630)) + 24|0); - HEAP32[$1035>>2] = $$0207$i$i; - $1036 = ((($630)) + 12|0); - HEAP32[$1036>>2] = $630; - $1037 = ((($630)) + 8|0); - HEAP32[$1037>>2] = $630; - break; - } - } - else if ((label|0) == 292) { - $1038 = ((($$0207$i$i)) + 8|0); - $1039 = HEAP32[$1038>>2]|0; - $1040 = HEAP32[(16636)>>2]|0; - $1041 = ($1039>>>0)>=($1040>>>0); - $not$$i$i = ($$0207$i$i>>>0)>=($1040>>>0); - $1042 = $1041 & $not$$i$i; - if ($1042) { - $1043 = ((($1039)) + 12|0); - HEAP32[$1043>>2] = $630; - HEAP32[$1038>>2] = $630; - $1044 = ((($630)) + 8|0); - HEAP32[$1044>>2] = $1039; - $1045 = ((($630)) + 12|0); - HEAP32[$1045>>2] = $$0207$i$i; - $1046 = ((($630)) + 24|0); - HEAP32[$1046>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } - } while(0); - $1048 = HEAP32[(16632)>>2]|0; - $1049 = ($1048>>>0)>($$0197>>>0); - if ($1049) { - $1050 = (($1048) - ($$0197))|0; - HEAP32[(16632)>>2] = $1050; - $1051 = HEAP32[(16644)>>2]|0; - $1052 = (($1051) + ($$0197)|0); - HEAP32[(16644)>>2] = $1052; - $1053 = $1050 | 1; - $1054 = ((($1052)) + 4|0); - HEAP32[$1054>>2] = $1053; - $1055 = $$0197 | 3; - $1056 = ((($1051)) + 4|0); - HEAP32[$1056>>2] = $1055; - $1057 = ((($1051)) + 8|0); - $$0 = $1057; - STACKTOP = sp;return ($$0|0); - } - } - $1058 = (___errno_location()|0); - HEAP32[$1058>>2] = 12; - $$0 = 0; - STACKTOP = sp;return ($$0|0); -} -function _free($0) { - $0 = $0|0; - var $$0212$i = 0, $$0212$in$i = 0, $$0383 = 0, $$0384 = 0, $$0396 = 0, $$0403 = 0, $$1 = 0, $$1382 = 0, $$1387 = 0, $$1390 = 0, $$1398 = 0, $$1402 = 0, $$2 = 0, $$3 = 0, $$3400 = 0, $$pre = 0, $$pre$phi443Z2D = 0, $$pre$phi445Z2D = 0, $$pre$phiZ2D = 0, $$pre442 = 0; - var $$pre444 = 0, $$sink3 = 0, $$sink5 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; - var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; - var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0; - var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0; - var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0; - var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0; - var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0; - var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0; - var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0; - var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0; - var $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0; - var $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0; - var $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; - var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; - var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; - var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; - var $99 = 0, $cond421 = 0, $cond422 = 0, $not$ = 0, $not$405 = 0, $not$437 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0|0); - if ($1) { - return; - } - $2 = ((($0)) + -8|0); - $3 = HEAP32[(16636)>>2]|0; - $4 = ($2>>>0)<($3>>>0); - if ($4) { - _abort(); - // unreachable; - } - $5 = ((($0)) + -4|0); - $6 = HEAP32[$5>>2]|0; - $7 = $6 & 3; - $8 = ($7|0)==(1); - if ($8) { - _abort(); - // unreachable; - } - $9 = $6 & -8; - $10 = (($2) + ($9)|0); - $11 = $6 & 1; - $12 = ($11|0)==(0); - L10: do { - if ($12) { - $13 = HEAP32[$2>>2]|0; - $14 = ($7|0)==(0); - if ($14) { - return; - } - $15 = (0 - ($13))|0; - $16 = (($2) + ($15)|0); - $17 = (($13) + ($9))|0; - $18 = ($16>>>0)<($3>>>0); - if ($18) { - _abort(); - // unreachable; - } - $19 = HEAP32[(16640)>>2]|0; - $20 = ($16|0)==($19|0); - if ($20) { - $104 = ((($10)) + 4|0); - $105 = HEAP32[$104>>2]|0; - $106 = $105 & 3; - $107 = ($106|0)==(3); - if (!($107)) { - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - $108 = (($16) + ($17)|0); - $109 = ((($16)) + 4|0); - $110 = $17 | 1; - $111 = $105 & -2; - HEAP32[(16628)>>2] = $17; - HEAP32[$104>>2] = $111; - HEAP32[$109>>2] = $110; - HEAP32[$108>>2] = $17; - return; - } - $21 = $13 >>> 3; - $22 = ($13>>>0)<(256); - if ($22) { - $23 = ((($16)) + 8|0); - $24 = HEAP32[$23>>2]|0; - $25 = ((($16)) + 12|0); - $26 = HEAP32[$25>>2]|0; - $27 = $21 << 1; - $28 = (16660 + ($27<<2)|0); - $29 = ($24|0)==($28|0); - if (!($29)) { - $30 = ($24>>>0)<($3>>>0); - if ($30) { - _abort(); - // unreachable; - } - $31 = ((($24)) + 12|0); - $32 = HEAP32[$31>>2]|0; - $33 = ($32|0)==($16|0); - if (!($33)) { - _abort(); - // unreachable; - } - } - $34 = ($26|0)==($24|0); - if ($34) { - $35 = 1 << $21; - $36 = $35 ^ -1; - $37 = HEAP32[4155]|0; - $38 = $37 & $36; - HEAP32[4155] = $38; - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - $39 = ($26|0)==($28|0); - if ($39) { - $$pre444 = ((($26)) + 8|0); - $$pre$phi445Z2D = $$pre444; - } else { - $40 = ($26>>>0)<($3>>>0); - if ($40) { - _abort(); - // unreachable; - } - $41 = ((($26)) + 8|0); - $42 = HEAP32[$41>>2]|0; - $43 = ($42|0)==($16|0); - if ($43) { - $$pre$phi445Z2D = $41; - } else { - _abort(); - // unreachable; - } - } - $44 = ((($24)) + 12|0); - HEAP32[$44>>2] = $26; - HEAP32[$$pre$phi445Z2D>>2] = $24; - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - $45 = ((($16)) + 24|0); - $46 = HEAP32[$45>>2]|0; - $47 = ((($16)) + 12|0); - $48 = HEAP32[$47>>2]|0; - $49 = ($48|0)==($16|0); - do { - if ($49) { - $59 = ((($16)) + 16|0); - $60 = ((($59)) + 4|0); - $61 = HEAP32[$60>>2]|0; - $62 = ($61|0)==(0|0); - if ($62) { - $63 = HEAP32[$59>>2]|0; - $64 = ($63|0)==(0|0); - if ($64) { - $$3 = 0; - break; - } else { - $$1387 = $63;$$1390 = $59; - } - } else { - $$1387 = $61;$$1390 = $60; - } - while(1) { - $65 = ((($$1387)) + 20|0); - $66 = HEAP32[$65>>2]|0; - $67 = ($66|0)==(0|0); - if (!($67)) { - $$1387 = $66;$$1390 = $65; - continue; - } - $68 = ((($$1387)) + 16|0); - $69 = HEAP32[$68>>2]|0; - $70 = ($69|0)==(0|0); - if ($70) { - break; - } else { - $$1387 = $69;$$1390 = $68; - } - } - $71 = ($$1390>>>0)<($3>>>0); - if ($71) { - _abort(); - // unreachable; - } else { - HEAP32[$$1390>>2] = 0; - $$3 = $$1387; - break; - } - } else { - $50 = ((($16)) + 8|0); - $51 = HEAP32[$50>>2]|0; - $52 = ($51>>>0)<($3>>>0); - if ($52) { - _abort(); - // unreachable; - } - $53 = ((($51)) + 12|0); - $54 = HEAP32[$53>>2]|0; - $55 = ($54|0)==($16|0); - if (!($55)) { - _abort(); - // unreachable; - } - $56 = ((($48)) + 8|0); - $57 = HEAP32[$56>>2]|0; - $58 = ($57|0)==($16|0); - if ($58) { - HEAP32[$53>>2] = $48; - HEAP32[$56>>2] = $51; - $$3 = $48; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $72 = ($46|0)==(0|0); - if ($72) { - $$1 = $16;$$1382 = $17;$113 = $16; - } else { - $73 = ((($16)) + 28|0); - $74 = HEAP32[$73>>2]|0; - $75 = (16924 + ($74<<2)|0); - $76 = HEAP32[$75>>2]|0; - $77 = ($16|0)==($76|0); - do { - if ($77) { - HEAP32[$75>>2] = $$3; - $cond421 = ($$3|0)==(0|0); - if ($cond421) { - $78 = 1 << $74; - $79 = $78 ^ -1; - $80 = HEAP32[(16624)>>2]|0; - $81 = $80 & $79; - HEAP32[(16624)>>2] = $81; - $$1 = $16;$$1382 = $17;$113 = $16; - break L10; - } - } else { - $82 = HEAP32[(16636)>>2]|0; - $83 = ($46>>>0)<($82>>>0); - if ($83) { - _abort(); - // unreachable; - } else { - $84 = ((($46)) + 16|0); - $85 = HEAP32[$84>>2]|0; - $not$405 = ($85|0)!=($16|0); - $$sink3 = $not$405&1; - $86 = (((($46)) + 16|0) + ($$sink3<<2)|0); - HEAP32[$86>>2] = $$3; - $87 = ($$3|0)==(0|0); - if ($87) { - $$1 = $16;$$1382 = $17;$113 = $16; - break L10; - } else { - break; - } - } - } - } while(0); - $88 = HEAP32[(16636)>>2]|0; - $89 = ($$3>>>0)<($88>>>0); - if ($89) { - _abort(); - // unreachable; - } - $90 = ((($$3)) + 24|0); - HEAP32[$90>>2] = $46; - $91 = ((($16)) + 16|0); - $92 = HEAP32[$91>>2]|0; - $93 = ($92|0)==(0|0); - do { - if (!($93)) { - $94 = ($92>>>0)<($88>>>0); - if ($94) { - _abort(); - // unreachable; - } else { - $95 = ((($$3)) + 16|0); - HEAP32[$95>>2] = $92; - $96 = ((($92)) + 24|0); - HEAP32[$96>>2] = $$3; - break; - } - } - } while(0); - $97 = ((($91)) + 4|0); - $98 = HEAP32[$97>>2]|0; - $99 = ($98|0)==(0|0); - if ($99) { - $$1 = $16;$$1382 = $17;$113 = $16; - } else { - $100 = HEAP32[(16636)>>2]|0; - $101 = ($98>>>0)<($100>>>0); - if ($101) { - _abort(); - // unreachable; - } else { - $102 = ((($$3)) + 20|0); - HEAP32[$102>>2] = $98; - $103 = ((($98)) + 24|0); - HEAP32[$103>>2] = $$3; - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - } - } - } else { - $$1 = $2;$$1382 = $9;$113 = $2; - } - } while(0); - $112 = ($113>>>0)<($10>>>0); - if (!($112)) { - _abort(); - // unreachable; - } - $114 = ((($10)) + 4|0); - $115 = HEAP32[$114>>2]|0; - $116 = $115 & 1; - $117 = ($116|0)==(0); - if ($117) { - _abort(); - // unreachable; - } - $118 = $115 & 2; - $119 = ($118|0)==(0); - if ($119) { - $120 = HEAP32[(16644)>>2]|0; - $121 = ($10|0)==($120|0); - $122 = HEAP32[(16640)>>2]|0; - if ($121) { - $123 = HEAP32[(16632)>>2]|0; - $124 = (($123) + ($$1382))|0; - HEAP32[(16632)>>2] = $124; - HEAP32[(16644)>>2] = $$1; - $125 = $124 | 1; - $126 = ((($$1)) + 4|0); - HEAP32[$126>>2] = $125; - $127 = ($$1|0)==($122|0); - if (!($127)) { - return; - } - HEAP32[(16640)>>2] = 0; - HEAP32[(16628)>>2] = 0; - return; - } - $128 = ($10|0)==($122|0); - if ($128) { - $129 = HEAP32[(16628)>>2]|0; - $130 = (($129) + ($$1382))|0; - HEAP32[(16628)>>2] = $130; - HEAP32[(16640)>>2] = $113; - $131 = $130 | 1; - $132 = ((($$1)) + 4|0); - HEAP32[$132>>2] = $131; - $133 = (($113) + ($130)|0); - HEAP32[$133>>2] = $130; - return; - } - $134 = $115 & -8; - $135 = (($134) + ($$1382))|0; - $136 = $115 >>> 3; - $137 = ($115>>>0)<(256); - L108: do { - if ($137) { - $138 = ((($10)) + 8|0); - $139 = HEAP32[$138>>2]|0; - $140 = ((($10)) + 12|0); - $141 = HEAP32[$140>>2]|0; - $142 = $136 << 1; - $143 = (16660 + ($142<<2)|0); - $144 = ($139|0)==($143|0); - if (!($144)) { - $145 = HEAP32[(16636)>>2]|0; - $146 = ($139>>>0)<($145>>>0); - if ($146) { - _abort(); - // unreachable; - } - $147 = ((($139)) + 12|0); - $148 = HEAP32[$147>>2]|0; - $149 = ($148|0)==($10|0); - if (!($149)) { - _abort(); - // unreachable; - } - } - $150 = ($141|0)==($139|0); - if ($150) { - $151 = 1 << $136; - $152 = $151 ^ -1; - $153 = HEAP32[4155]|0; - $154 = $153 & $152; - HEAP32[4155] = $154; - break; - } - $155 = ($141|0)==($143|0); - if ($155) { - $$pre442 = ((($141)) + 8|0); - $$pre$phi443Z2D = $$pre442; - } else { - $156 = HEAP32[(16636)>>2]|0; - $157 = ($141>>>0)<($156>>>0); - if ($157) { - _abort(); - // unreachable; - } - $158 = ((($141)) + 8|0); - $159 = HEAP32[$158>>2]|0; - $160 = ($159|0)==($10|0); - if ($160) { - $$pre$phi443Z2D = $158; - } else { - _abort(); - // unreachable; - } - } - $161 = ((($139)) + 12|0); - HEAP32[$161>>2] = $141; - HEAP32[$$pre$phi443Z2D>>2] = $139; - } else { - $162 = ((($10)) + 24|0); - $163 = HEAP32[$162>>2]|0; - $164 = ((($10)) + 12|0); - $165 = HEAP32[$164>>2]|0; - $166 = ($165|0)==($10|0); - do { - if ($166) { - $177 = ((($10)) + 16|0); - $178 = ((($177)) + 4|0); - $179 = HEAP32[$178>>2]|0; - $180 = ($179|0)==(0|0); - if ($180) { - $181 = HEAP32[$177>>2]|0; - $182 = ($181|0)==(0|0); - if ($182) { - $$3400 = 0; - break; - } else { - $$1398 = $181;$$1402 = $177; - } - } else { - $$1398 = $179;$$1402 = $178; - } - while(1) { - $183 = ((($$1398)) + 20|0); - $184 = HEAP32[$183>>2]|0; - $185 = ($184|0)==(0|0); - if (!($185)) { - $$1398 = $184;$$1402 = $183; - continue; - } - $186 = ((($$1398)) + 16|0); - $187 = HEAP32[$186>>2]|0; - $188 = ($187|0)==(0|0); - if ($188) { - break; - } else { - $$1398 = $187;$$1402 = $186; - } - } - $189 = HEAP32[(16636)>>2]|0; - $190 = ($$1402>>>0)<($189>>>0); - if ($190) { - _abort(); - // unreachable; - } else { - HEAP32[$$1402>>2] = 0; - $$3400 = $$1398; - break; - } - } else { - $167 = ((($10)) + 8|0); - $168 = HEAP32[$167>>2]|0; - $169 = HEAP32[(16636)>>2]|0; - $170 = ($168>>>0)<($169>>>0); - if ($170) { - _abort(); - // unreachable; - } - $171 = ((($168)) + 12|0); - $172 = HEAP32[$171>>2]|0; - $173 = ($172|0)==($10|0); - if (!($173)) { - _abort(); - // unreachable; - } - $174 = ((($165)) + 8|0); - $175 = HEAP32[$174>>2]|0; - $176 = ($175|0)==($10|0); - if ($176) { - HEAP32[$171>>2] = $165; - HEAP32[$174>>2] = $168; - $$3400 = $165; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $191 = ($163|0)==(0|0); - if (!($191)) { - $192 = ((($10)) + 28|0); - $193 = HEAP32[$192>>2]|0; - $194 = (16924 + ($193<<2)|0); - $195 = HEAP32[$194>>2]|0; - $196 = ($10|0)==($195|0); - do { - if ($196) { - HEAP32[$194>>2] = $$3400; - $cond422 = ($$3400|0)==(0|0); - if ($cond422) { - $197 = 1 << $193; - $198 = $197 ^ -1; - $199 = HEAP32[(16624)>>2]|0; - $200 = $199 & $198; - HEAP32[(16624)>>2] = $200; - break L108; - } - } else { - $201 = HEAP32[(16636)>>2]|0; - $202 = ($163>>>0)<($201>>>0); - if ($202) { - _abort(); - // unreachable; - } else { - $203 = ((($163)) + 16|0); - $204 = HEAP32[$203>>2]|0; - $not$ = ($204|0)!=($10|0); - $$sink5 = $not$&1; - $205 = (((($163)) + 16|0) + ($$sink5<<2)|0); - HEAP32[$205>>2] = $$3400; - $206 = ($$3400|0)==(0|0); - if ($206) { - break L108; - } else { - break; - } - } - } - } while(0); - $207 = HEAP32[(16636)>>2]|0; - $208 = ($$3400>>>0)<($207>>>0); - if ($208) { - _abort(); - // unreachable; - } - $209 = ((($$3400)) + 24|0); - HEAP32[$209>>2] = $163; - $210 = ((($10)) + 16|0); - $211 = HEAP32[$210>>2]|0; - $212 = ($211|0)==(0|0); - do { - if (!($212)) { - $213 = ($211>>>0)<($207>>>0); - if ($213) { - _abort(); - // unreachable; - } else { - $214 = ((($$3400)) + 16|0); - HEAP32[$214>>2] = $211; - $215 = ((($211)) + 24|0); - HEAP32[$215>>2] = $$3400; - break; - } - } - } while(0); - $216 = ((($210)) + 4|0); - $217 = HEAP32[$216>>2]|0; - $218 = ($217|0)==(0|0); - if (!($218)) { - $219 = HEAP32[(16636)>>2]|0; - $220 = ($217>>>0)<($219>>>0); - if ($220) { - _abort(); - // unreachable; - } else { - $221 = ((($$3400)) + 20|0); - HEAP32[$221>>2] = $217; - $222 = ((($217)) + 24|0); - HEAP32[$222>>2] = $$3400; - break; - } - } - } - } - } while(0); - $223 = $135 | 1; - $224 = ((($$1)) + 4|0); - HEAP32[$224>>2] = $223; - $225 = (($113) + ($135)|0); - HEAP32[$225>>2] = $135; - $226 = HEAP32[(16640)>>2]|0; - $227 = ($$1|0)==($226|0); - if ($227) { - HEAP32[(16628)>>2] = $135; - return; - } else { - $$2 = $135; - } - } else { - $228 = $115 & -2; - HEAP32[$114>>2] = $228; - $229 = $$1382 | 1; - $230 = ((($$1)) + 4|0); - HEAP32[$230>>2] = $229; - $231 = (($113) + ($$1382)|0); - HEAP32[$231>>2] = $$1382; - $$2 = $$1382; - } - $232 = $$2 >>> 3; - $233 = ($$2>>>0)<(256); - if ($233) { - $234 = $232 << 1; - $235 = (16660 + ($234<<2)|0); - $236 = HEAP32[4155]|0; - $237 = 1 << $232; - $238 = $236 & $237; - $239 = ($238|0)==(0); - if ($239) { - $240 = $236 | $237; - HEAP32[4155] = $240; - $$pre = ((($235)) + 8|0); - $$0403 = $235;$$pre$phiZ2D = $$pre; - } else { - $241 = ((($235)) + 8|0); - $242 = HEAP32[$241>>2]|0; - $243 = HEAP32[(16636)>>2]|0; - $244 = ($242>>>0)<($243>>>0); - if ($244) { - _abort(); - // unreachable; - } else { - $$0403 = $242;$$pre$phiZ2D = $241; - } - } - HEAP32[$$pre$phiZ2D>>2] = $$1; - $245 = ((($$0403)) + 12|0); - HEAP32[$245>>2] = $$1; - $246 = ((($$1)) + 8|0); - HEAP32[$246>>2] = $$0403; - $247 = ((($$1)) + 12|0); - HEAP32[$247>>2] = $235; - return; - } - $248 = $$2 >>> 8; - $249 = ($248|0)==(0); - if ($249) { - $$0396 = 0; - } else { - $250 = ($$2>>>0)>(16777215); - if ($250) { - $$0396 = 31; - } else { - $251 = (($248) + 1048320)|0; - $252 = $251 >>> 16; - $253 = $252 & 8; - $254 = $248 << $253; - $255 = (($254) + 520192)|0; - $256 = $255 >>> 16; - $257 = $256 & 4; - $258 = $257 | $253; - $259 = $254 << $257; - $260 = (($259) + 245760)|0; - $261 = $260 >>> 16; - $262 = $261 & 2; - $263 = $258 | $262; - $264 = (14 - ($263))|0; - $265 = $259 << $262; - $266 = $265 >>> 15; - $267 = (($264) + ($266))|0; - $268 = $267 << 1; - $269 = (($267) + 7)|0; - $270 = $$2 >>> $269; - $271 = $270 & 1; - $272 = $271 | $268; - $$0396 = $272; - } - } - $273 = (16924 + ($$0396<<2)|0); - $274 = ((($$1)) + 28|0); - HEAP32[$274>>2] = $$0396; - $275 = ((($$1)) + 16|0); - $276 = ((($$1)) + 20|0); - HEAP32[$276>>2] = 0; - HEAP32[$275>>2] = 0; - $277 = HEAP32[(16624)>>2]|0; - $278 = 1 << $$0396; - $279 = $277 & $278; - $280 = ($279|0)==(0); - do { - if ($280) { - $281 = $277 | $278; - HEAP32[(16624)>>2] = $281; - HEAP32[$273>>2] = $$1; - $282 = ((($$1)) + 24|0); - HEAP32[$282>>2] = $273; - $283 = ((($$1)) + 12|0); - HEAP32[$283>>2] = $$1; - $284 = ((($$1)) + 8|0); - HEAP32[$284>>2] = $$1; - } else { - $285 = HEAP32[$273>>2]|0; - $286 = ($$0396|0)==(31); - $287 = $$0396 >>> 1; - $288 = (25 - ($287))|0; - $289 = $286 ? 0 : $288; - $290 = $$2 << $289; - $$0383 = $290;$$0384 = $285; - while(1) { - $291 = ((($$0384)) + 4|0); - $292 = HEAP32[$291>>2]|0; - $293 = $292 & -8; - $294 = ($293|0)==($$2|0); - if ($294) { - label = 124; - break; - } - $295 = $$0383 >>> 31; - $296 = (((($$0384)) + 16|0) + ($295<<2)|0); - $297 = $$0383 << 1; - $298 = HEAP32[$296>>2]|0; - $299 = ($298|0)==(0|0); - if ($299) { - label = 121; - break; - } else { - $$0383 = $297;$$0384 = $298; - } - } - if ((label|0) == 121) { - $300 = HEAP32[(16636)>>2]|0; - $301 = ($296>>>0)<($300>>>0); - if ($301) { - _abort(); - // unreachable; - } else { - HEAP32[$296>>2] = $$1; - $302 = ((($$1)) + 24|0); - HEAP32[$302>>2] = $$0384; - $303 = ((($$1)) + 12|0); - HEAP32[$303>>2] = $$1; - $304 = ((($$1)) + 8|0); - HEAP32[$304>>2] = $$1; - break; - } - } - else if ((label|0) == 124) { - $305 = ((($$0384)) + 8|0); - $306 = HEAP32[$305>>2]|0; - $307 = HEAP32[(16636)>>2]|0; - $308 = ($306>>>0)>=($307>>>0); - $not$437 = ($$0384>>>0)>=($307>>>0); - $309 = $308 & $not$437; - if ($309) { - $310 = ((($306)) + 12|0); - HEAP32[$310>>2] = $$1; - HEAP32[$305>>2] = $$1; - $311 = ((($$1)) + 8|0); - HEAP32[$311>>2] = $306; - $312 = ((($$1)) + 12|0); - HEAP32[$312>>2] = $$0384; - $313 = ((($$1)) + 24|0); - HEAP32[$313>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } while(0); - $314 = HEAP32[(16652)>>2]|0; - $315 = (($314) + -1)|0; - HEAP32[(16652)>>2] = $315; - $316 = ($315|0)==(0); - if ($316) { - $$0212$in$i = (17076); - } else { - return; - } - while(1) { - $$0212$i = HEAP32[$$0212$in$i>>2]|0; - $317 = ($$0212$i|0)==(0|0); - $318 = ((($$0212$i)) + 8|0); - if ($317) { - break; - } else { - $$0212$in$i = $318; - } - } - HEAP32[(16652)>>2] = -1; - return; -} -function _emscripten_get_global_libc() { - var label = 0, sp = 0; - sp = STACKTOP; - return (17116|0); -} -function ___stdio_close($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = ((($0)) + 60|0); - $2 = HEAP32[$1>>2]|0; - $3 = (_dummy_738($2)|0); - HEAP32[$vararg_buffer>>2] = $3; - $4 = (___syscall6(6,($vararg_buffer|0))|0); - $5 = (___syscall_ret($4)|0); - STACKTOP = sp;return ($5|0); -} -function ___stdio_write($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$04756 = 0, $$04855 = 0, $$04954 = 0, $$051 = 0, $$1 = 0, $$150 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0; - var $vararg_ptr7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $vararg_buffer3 = sp + 16|0; - $vararg_buffer = sp; - $3 = sp + 32|0; - $4 = ((($0)) + 28|0); - $5 = HEAP32[$4>>2]|0; - HEAP32[$3>>2] = $5; - $6 = ((($3)) + 4|0); - $7 = ((($0)) + 20|0); - $8 = HEAP32[$7>>2]|0; - $9 = (($8) - ($5))|0; - HEAP32[$6>>2] = $9; - $10 = ((($3)) + 8|0); - HEAP32[$10>>2] = $1; - $11 = ((($3)) + 12|0); - HEAP32[$11>>2] = $2; - $12 = (($9) + ($2))|0; - $13 = ((($0)) + 60|0); - $14 = HEAP32[$13>>2]|0; - $15 = $3; - HEAP32[$vararg_buffer>>2] = $14; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $15; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = 2; - $16 = (___syscall146(146,($vararg_buffer|0))|0); - $17 = (___syscall_ret($16)|0); - $18 = ($12|0)==($17|0); - L1: do { - if ($18) { - label = 3; - } else { - $$04756 = 2;$$04855 = $12;$$04954 = $3;$26 = $17; - while(1) { - $25 = ($26|0)<(0); - if ($25) { - break; - } - $34 = (($$04855) - ($26))|0; - $35 = ((($$04954)) + 4|0); - $36 = HEAP32[$35>>2]|0; - $37 = ($26>>>0)>($36>>>0); - $38 = ((($$04954)) + 8|0); - $$150 = $37 ? $38 : $$04954; - $39 = $37 << 31 >> 31; - $$1 = (($39) + ($$04756))|0; - $40 = $37 ? $36 : 0; - $$0 = (($26) - ($40))|0; - $41 = HEAP32[$$150>>2]|0; - $42 = (($41) + ($$0)|0); - HEAP32[$$150>>2] = $42; - $43 = ((($$150)) + 4|0); - $44 = HEAP32[$43>>2]|0; - $45 = (($44) - ($$0))|0; - HEAP32[$43>>2] = $45; - $46 = HEAP32[$13>>2]|0; - $47 = $$150; - HEAP32[$vararg_buffer3>>2] = $46; - $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr6>>2] = $47; - $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); - HEAP32[$vararg_ptr7>>2] = $$1; - $48 = (___syscall146(146,($vararg_buffer3|0))|0); - $49 = (___syscall_ret($48)|0); - $50 = ($34|0)==($49|0); - if ($50) { - label = 3; - break L1; - } else { - $$04756 = $$1;$$04855 = $34;$$04954 = $$150;$26 = $49; - } - } - $27 = ((($0)) + 16|0); - HEAP32[$27>>2] = 0; - HEAP32[$4>>2] = 0; - HEAP32[$7>>2] = 0; - $28 = HEAP32[$0>>2]|0; - $29 = $28 | 32; - HEAP32[$0>>2] = $29; - $30 = ($$04756|0)==(2); - if ($30) { - $$051 = 0; - } else { - $31 = ((($$04954)) + 4|0); - $32 = HEAP32[$31>>2]|0; - $33 = (($2) - ($32))|0; - $$051 = $33; - } - } - } while(0); - if ((label|0) == 3) { - $19 = ((($0)) + 44|0); - $20 = HEAP32[$19>>2]|0; - $21 = ((($0)) + 48|0); - $22 = HEAP32[$21>>2]|0; - $23 = (($20) + ($22)|0); - $24 = ((($0)) + 16|0); - HEAP32[$24>>2] = $23; - HEAP32[$4>>2] = $20; - HEAP32[$7>>2] = $20; - $$051 = $2; - } - STACKTOP = sp;return ($$051|0); -} -function ___stdio_seek($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$pre = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $3 = sp + 20|0; - $4 = ((($0)) + 60|0); - $5 = HEAP32[$4>>2]|0; - $6 = $3; - HEAP32[$vararg_buffer>>2] = $5; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = 0; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $1; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $6; - $vararg_ptr4 = ((($vararg_buffer)) + 16|0); - HEAP32[$vararg_ptr4>>2] = $2; - $7 = (___syscall140(140,($vararg_buffer|0))|0); - $8 = (___syscall_ret($7)|0); - $9 = ($8|0)<(0); - if ($9) { - HEAP32[$3>>2] = -1; - $10 = -1; - } else { - $$pre = HEAP32[$3>>2]|0; - $10 = $$pre; - } - STACKTOP = sp;return ($10|0); -} -function ___syscall_ret($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0>>>0)>(4294963200); - if ($1) { - $2 = (0 - ($0))|0; - $3 = (___errno_location()|0); - HEAP32[$3>>2] = $2; - $$0 = -1; - } else { - $$0 = $0; - } - return ($$0|0); -} -function ___errno_location() { - var $0 = 0, $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (___pthread_self_108()|0); - $1 = ((($0)) + 64|0); - return ($1|0); -} -function ___pthread_self_108() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function _pthread_self() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2984|0); -} -function _dummy_738($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return ($0|0); -} -function ___stdout_write($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $3 = sp + 16|0; - $4 = ((($0)) + 36|0); - HEAP32[$4>>2] = 9; - $5 = HEAP32[$0>>2]|0; - $6 = $5 & 64; - $7 = ($6|0)==(0); - if ($7) { - $8 = ((($0)) + 60|0); - $9 = HEAP32[$8>>2]|0; - $10 = $3; - HEAP32[$vararg_buffer>>2] = $9; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = 21523; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $10; - $11 = (___syscall54(54,($vararg_buffer|0))|0); - $12 = ($11|0)==(0); - if (!($12)) { - $13 = ((($0)) + 75|0); - HEAP8[$13>>0] = -1; - } - } - $14 = (___stdio_write($0,$1,$2)|0); - STACKTOP = sp;return ($14|0); -} -function _strcmp($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$011 = 0, $$0710 = 0, $$lcssa = 0, $$lcssa8 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $2 = HEAP8[$0>>0]|0; - $3 = HEAP8[$1>>0]|0; - $4 = ($2<<24>>24)!=($3<<24>>24); - $5 = ($2<<24>>24)==(0); - $or$cond9 = $5 | $4; - if ($or$cond9) { - $$lcssa = $3;$$lcssa8 = $2; - } else { - $$011 = $1;$$0710 = $0; - while(1) { - $6 = ((($$0710)) + 1|0); - $7 = ((($$011)) + 1|0); - $8 = HEAP8[$6>>0]|0; - $9 = HEAP8[$7>>0]|0; - $10 = ($8<<24>>24)!=($9<<24>>24); - $11 = ($8<<24>>24)==(0); - $or$cond = $11 | $10; - if ($or$cond) { - $$lcssa = $9;$$lcssa8 = $8; - break; - } else { - $$011 = $7;$$0710 = $6; - } - } - } - $12 = $$lcssa8&255; - $13 = $$lcssa&255; - $14 = (($12) - ($13))|0; - return ($14|0); -} -function _memcmp($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$01318 = 0, $$01417 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $14 = 0; - } else { - $$01318 = $0;$$01417 = $2;$$019 = $1; - while(1) { - $4 = HEAP8[$$01318>>0]|0; - $5 = HEAP8[$$019>>0]|0; - $6 = ($4<<24>>24)==($5<<24>>24); - if (!($6)) { - break; - } - $7 = (($$01417) + -1)|0; - $8 = ((($$01318)) + 1|0); - $9 = ((($$019)) + 1|0); - $10 = ($7|0)==(0); - if ($10) { - $14 = 0; - break L1; - } else { - $$01318 = $8;$$01417 = $7;$$019 = $9; - } - } - $11 = $4&255; - $12 = $5&255; - $13 = (($11) - ($12))|0; - $14 = $13; - } - } while(0); - return ($14|0); -} -function _vsprintf($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (_vsnprintf($0,2147483647,$1,$2)|0); - return ($3|0); -} -function _vsnprintf($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$$015 = 0, $$0 = 0, $$014 = 0, $$015 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $4 = sp + 124|0; - $5 = sp; - dest=$5; src=3360; stop=dest+124|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $6 = (($1) + -1)|0; - $7 = ($6>>>0)>(2147483646); - if ($7) { - $8 = ($1|0)==(0); - if ($8) { - $$014 = $4;$$015 = 1; - label = 4; - } else { - $9 = (___errno_location()|0); - HEAP32[$9>>2] = 75; - $$0 = -1; - } - } else { - $$014 = $0;$$015 = $1; - label = 4; - } - if ((label|0) == 4) { - $10 = $$014; - $11 = (-2 - ($10))|0; - $12 = ($$015>>>0)>($11>>>0); - $$$015 = $12 ? $11 : $$015; - $13 = ((($5)) + 48|0); - HEAP32[$13>>2] = $$$015; - $14 = ((($5)) + 20|0); - HEAP32[$14>>2] = $$014; - $15 = ((($5)) + 44|0); - HEAP32[$15>>2] = $$014; - $16 = (($$014) + ($$$015)|0); - $17 = ((($5)) + 16|0); - HEAP32[$17>>2] = $16; - $18 = ((($5)) + 28|0); - HEAP32[$18>>2] = $16; - $19 = (_vfprintf($5,$2,$3)|0); - $20 = ($$$015|0)==(0); - if ($20) { - $$0 = $19; - } else { - $21 = HEAP32[$14>>2]|0; - $22 = HEAP32[$17>>2]|0; - $23 = ($21|0)==($22|0); - $24 = $23 << 31 >> 31; - $25 = (($21) + ($24)|0); - HEAP8[$25>>0] = 0; - $$0 = $19; - } - } - STACKTOP = sp;return ($$0|0); -} -function _vfprintf($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $$0 = 0, $$1 = 0, $$1$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); - $3 = sp + 120|0; - $4 = sp + 80|0; - $5 = sp; - $6 = sp + 136|0; - dest=$4; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - $vacopy_currentptr = HEAP32[$2>>2]|0; - HEAP32[$3>>2] = $vacopy_currentptr; - $7 = (_printf_core(0,$1,$3,$5,$4)|0); - $8 = ($7|0)<(0); - if ($8) { - $$0 = -1; - } else { - $9 = ((($0)) + 76|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)>(-1); - if ($11) { - $12 = (___lockfile($0)|0); - $40 = $12; - } else { - $40 = 0; - } - $13 = HEAP32[$0>>2]|0; - $14 = $13 & 32; - $15 = ((($0)) + 74|0); - $16 = HEAP8[$15>>0]|0; - $17 = ($16<<24>>24)<(1); - if ($17) { - $18 = $13 & -33; - HEAP32[$0>>2] = $18; - } - $19 = ((($0)) + 48|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($20|0)==(0); - if ($21) { - $23 = ((($0)) + 44|0); - $24 = HEAP32[$23>>2]|0; - HEAP32[$23>>2] = $6; - $25 = ((($0)) + 28|0); - HEAP32[$25>>2] = $6; - $26 = ((($0)) + 20|0); - HEAP32[$26>>2] = $6; - HEAP32[$19>>2] = 80; - $27 = ((($6)) + 80|0); - $28 = ((($0)) + 16|0); - HEAP32[$28>>2] = $27; - $29 = (_printf_core($0,$1,$3,$5,$4)|0); - $30 = ($24|0)==(0|0); - if ($30) { - $$1 = $29; - } else { - $31 = ((($0)) + 36|0); - $32 = HEAP32[$31>>2]|0; - (FUNCTION_TABLE_iiii[$32 & 15]($0,0,0)|0); - $33 = HEAP32[$26>>2]|0; - $34 = ($33|0)==(0|0); - $$ = $34 ? -1 : $29; - HEAP32[$23>>2] = $24; - HEAP32[$19>>2] = 0; - HEAP32[$28>>2] = 0; - HEAP32[$25>>2] = 0; - HEAP32[$26>>2] = 0; - $$1 = $$; - } - } else { - $22 = (_printf_core($0,$1,$3,$5,$4)|0); - $$1 = $22; - } - $35 = HEAP32[$0>>2]|0; - $36 = $35 & 32; - $37 = ($36|0)==(0); - $$1$ = $37 ? $$1 : -1; - $38 = $35 | $14; - HEAP32[$0>>2] = $38; - $39 = ($40|0)==(0); - if (!($39)) { - ___unlockfile($0); - } - $$0 = $$1$; - } - STACKTOP = sp;return ($$0|0); -} -function _printf_core($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$ = 0, $$$ = 0, $$$0259 = 0, $$$0262 = 0, $$$0269 = 0, $$$4266 = 0, $$$5 = 0, $$0 = 0, $$0228 = 0, $$0228$ = 0, $$0229322 = 0, $$0232 = 0, $$0235 = 0, $$0237 = 0, $$0240$lcssa = 0, $$0240$lcssa357 = 0, $$0240321 = 0, $$0243 = 0, $$0247 = 0, $$0249$lcssa = 0; - var $$0249306 = 0, $$0252 = 0, $$0253 = 0, $$0254 = 0, $$0254$$0254$ = 0, $$0259 = 0, $$0262$lcssa = 0, $$0262311 = 0, $$0269 = 0, $$0269$phi = 0, $$1 = 0, $$1230333 = 0, $$1233 = 0, $$1236 = 0, $$1238 = 0, $$1241332 = 0, $$1244320 = 0, $$1248 = 0, $$1250 = 0, $$1255 = 0; - var $$1260 = 0, $$1263 = 0, $$1263$ = 0, $$1270 = 0, $$2 = 0, $$2234 = 0, $$2239 = 0, $$2242305 = 0, $$2245 = 0, $$2251 = 0, $$2256 = 0, $$2256$ = 0, $$2256$$$2256 = 0, $$2261 = 0, $$2271 = 0, $$284$ = 0, $$289 = 0, $$290 = 0, $$3257 = 0, $$3265 = 0; - var $$3272 = 0, $$3303 = 0, $$377 = 0, $$4258355 = 0, $$4266 = 0, $$5 = 0, $$6268 = 0, $$lcssa295 = 0, $$pre = 0, $$pre346 = 0, $$pre347 = 0, $$pre347$pre = 0, $$pre349 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; - var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; - var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; - var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; - var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; - var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0; - var $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0; - var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0; - var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0; - var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0; - var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0; - var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0; - var $306 = 0.0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0; - var $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; - var $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0, $arglist_next3 = 0, $expanded = 0, $expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0, $expanded8 = 0, $isdigit = 0, $isdigit275 = 0, $isdigit277 = 0, $isdigittmp = 0, $isdigittmp$ = 0, $isdigittmp274 = 0; - var $isdigittmp276 = 0, $narrow = 0, $or$cond = 0, $or$cond281 = 0, $or$cond283 = 0, $or$cond286 = 0, $storemerge = 0, $storemerge273310 = 0, $storemerge278 = 0, $trunc = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $5 = sp + 16|0; - $6 = sp; - $7 = sp + 24|0; - $8 = sp + 8|0; - $9 = sp + 20|0; - HEAP32[$5>>2] = $1; - $10 = ($0|0)!=(0|0); - $11 = ((($7)) + 40|0); - $12 = $11; - $13 = ((($7)) + 39|0); - $14 = ((($8)) + 4|0); - $$0243 = 0;$$0247 = 0;$$0269 = 0;$21 = $1; - L1: while(1) { - $15 = ($$0247|0)>(-1); - do { - if ($15) { - $16 = (2147483647 - ($$0247))|0; - $17 = ($$0243|0)>($16|0); - if ($17) { - $18 = (___errno_location()|0); - HEAP32[$18>>2] = 75; - $$1248 = -1; - break; - } else { - $19 = (($$0243) + ($$0247))|0; - $$1248 = $19; - break; - } - } else { - $$1248 = $$0247; - } - } while(0); - $20 = HEAP8[$21>>0]|0; - $22 = ($20<<24>>24)==(0); - if ($22) { - label = 87; - break; - } else { - $23 = $20;$25 = $21; - } - L9: while(1) { - switch ($23<<24>>24) { - case 37: { - $$0249306 = $25;$27 = $25; - label = 9; - break L9; - break; - } - case 0: { - $$0249$lcssa = $25;$39 = $25; - break L9; - break; - } - default: { - } - } - $24 = ((($25)) + 1|0); - HEAP32[$5>>2] = $24; - $$pre = HEAP8[$24>>0]|0; - $23 = $$pre;$25 = $24; - } - L12: do { - if ((label|0) == 9) { - while(1) { - label = 0; - $26 = ((($27)) + 1|0); - $28 = HEAP8[$26>>0]|0; - $29 = ($28<<24>>24)==(37); - if (!($29)) { - $$0249$lcssa = $$0249306;$39 = $27; - break L12; - } - $30 = ((($$0249306)) + 1|0); - $31 = ((($27)) + 2|0); - HEAP32[$5>>2] = $31; - $32 = HEAP8[$31>>0]|0; - $33 = ($32<<24>>24)==(37); - if ($33) { - $$0249306 = $30;$27 = $31; - label = 9; - } else { - $$0249$lcssa = $30;$39 = $31; - break; - } - } - } - } while(0); - $34 = $$0249$lcssa; - $35 = $21; - $36 = (($34) - ($35))|0; - if ($10) { - _out($0,$21,$36); - } - $37 = ($36|0)==(0); - if (!($37)) { - $$0269$phi = $$0269;$$0243 = $36;$$0247 = $$1248;$21 = $39;$$0269 = $$0269$phi; - continue; - } - $38 = ((($39)) + 1|0); - $40 = HEAP8[$38>>0]|0; - $41 = $40 << 24 >> 24; - $isdigittmp = (($41) + -48)|0; - $isdigit = ($isdigittmp>>>0)<(10); - if ($isdigit) { - $42 = ((($39)) + 2|0); - $43 = HEAP8[$42>>0]|0; - $44 = ($43<<24>>24)==(36); - $45 = ((($39)) + 3|0); - $$377 = $44 ? $45 : $38; - $$$0269 = $44 ? 1 : $$0269; - $isdigittmp$ = $44 ? $isdigittmp : -1; - $$0253 = $isdigittmp$;$$1270 = $$$0269;$storemerge = $$377; - } else { - $$0253 = -1;$$1270 = $$0269;$storemerge = $38; - } - HEAP32[$5>>2] = $storemerge; - $46 = HEAP8[$storemerge>>0]|0; - $47 = $46 << 24 >> 24; - $48 = (($47) + -32)|0; - $49 = ($48>>>0)<(32); - L24: do { - if ($49) { - $$0262311 = 0;$329 = $46;$51 = $48;$storemerge273310 = $storemerge; - while(1) { - $50 = 1 << $51; - $52 = $50 & 75913; - $53 = ($52|0)==(0); - if ($53) { - $$0262$lcssa = $$0262311;$$lcssa295 = $329;$62 = $storemerge273310; - break L24; - } - $54 = $50 | $$0262311; - $55 = ((($storemerge273310)) + 1|0); - HEAP32[$5>>2] = $55; - $56 = HEAP8[$55>>0]|0; - $57 = $56 << 24 >> 24; - $58 = (($57) + -32)|0; - $59 = ($58>>>0)<(32); - if ($59) { - $$0262311 = $54;$329 = $56;$51 = $58;$storemerge273310 = $55; - } else { - $$0262$lcssa = $54;$$lcssa295 = $56;$62 = $55; - break; - } - } - } else { - $$0262$lcssa = 0;$$lcssa295 = $46;$62 = $storemerge; - } - } while(0); - $60 = ($$lcssa295<<24>>24)==(42); - if ($60) { - $61 = ((($62)) + 1|0); - $63 = HEAP8[$61>>0]|0; - $64 = $63 << 24 >> 24; - $isdigittmp276 = (($64) + -48)|0; - $isdigit277 = ($isdigittmp276>>>0)<(10); - if ($isdigit277) { - $65 = ((($62)) + 2|0); - $66 = HEAP8[$65>>0]|0; - $67 = ($66<<24>>24)==(36); - if ($67) { - $68 = (($4) + ($isdigittmp276<<2)|0); - HEAP32[$68>>2] = 10; - $69 = HEAP8[$61>>0]|0; - $70 = $69 << 24 >> 24; - $71 = (($70) + -48)|0; - $72 = (($3) + ($71<<3)|0); - $73 = $72; - $74 = $73; - $75 = HEAP32[$74>>2]|0; - $76 = (($73) + 4)|0; - $77 = $76; - $78 = HEAP32[$77>>2]|0; - $79 = ((($62)) + 3|0); - $$0259 = $75;$$2271 = 1;$storemerge278 = $79; - } else { - label = 23; - } - } else { - label = 23; - } - if ((label|0) == 23) { - label = 0; - $80 = ($$1270|0)==(0); - if (!($80)) { - $$0 = -1; - break; - } - if ($10) { - $arglist_current = HEAP32[$2>>2]|0; - $81 = $arglist_current; - $82 = ((0) + 4|0); - $expanded4 = $82; - $expanded = (($expanded4) - 1)|0; - $83 = (($81) + ($expanded))|0; - $84 = ((0) + 4|0); - $expanded8 = $84; - $expanded7 = (($expanded8) - 1)|0; - $expanded6 = $expanded7 ^ -1; - $85 = $83 & $expanded6; - $86 = $85; - $87 = HEAP32[$86>>2]|0; - $arglist_next = ((($86)) + 4|0); - HEAP32[$2>>2] = $arglist_next; - $$0259 = $87;$$2271 = 0;$storemerge278 = $61; - } else { - $$0259 = 0;$$2271 = 0;$storemerge278 = $61; - } - } - HEAP32[$5>>2] = $storemerge278; - $88 = ($$0259|0)<(0); - $89 = $$0262$lcssa | 8192; - $90 = (0 - ($$0259))|0; - $$$0262 = $88 ? $89 : $$0262$lcssa; - $$$0259 = $88 ? $90 : $$0259; - $$1260 = $$$0259;$$1263 = $$$0262;$$3272 = $$2271;$94 = $storemerge278; - } else { - $91 = (_getint($5)|0); - $92 = ($91|0)<(0); - if ($92) { - $$0 = -1; - break; - } - $$pre346 = HEAP32[$5>>2]|0; - $$1260 = $91;$$1263 = $$0262$lcssa;$$3272 = $$1270;$94 = $$pre346; - } - $93 = HEAP8[$94>>0]|0; - $95 = ($93<<24>>24)==(46); - do { - if ($95) { - $96 = ((($94)) + 1|0); - $97 = HEAP8[$96>>0]|0; - $98 = ($97<<24>>24)==(42); - if (!($98)) { - $125 = ((($94)) + 1|0); - HEAP32[$5>>2] = $125; - $126 = (_getint($5)|0); - $$pre347$pre = HEAP32[$5>>2]|0; - $$0254 = $126;$$pre347 = $$pre347$pre; - break; - } - $99 = ((($94)) + 2|0); - $100 = HEAP8[$99>>0]|0; - $101 = $100 << 24 >> 24; - $isdigittmp274 = (($101) + -48)|0; - $isdigit275 = ($isdigittmp274>>>0)<(10); - if ($isdigit275) { - $102 = ((($94)) + 3|0); - $103 = HEAP8[$102>>0]|0; - $104 = ($103<<24>>24)==(36); - if ($104) { - $105 = (($4) + ($isdigittmp274<<2)|0); - HEAP32[$105>>2] = 10; - $106 = HEAP8[$99>>0]|0; - $107 = $106 << 24 >> 24; - $108 = (($107) + -48)|0; - $109 = (($3) + ($108<<3)|0); - $110 = $109; - $111 = $110; - $112 = HEAP32[$111>>2]|0; - $113 = (($110) + 4)|0; - $114 = $113; - $115 = HEAP32[$114>>2]|0; - $116 = ((($94)) + 4|0); - HEAP32[$5>>2] = $116; - $$0254 = $112;$$pre347 = $116; - break; - } - } - $117 = ($$3272|0)==(0); - if (!($117)) { - $$0 = -1; - break L1; - } - if ($10) { - $arglist_current2 = HEAP32[$2>>2]|0; - $118 = $arglist_current2; - $119 = ((0) + 4|0); - $expanded11 = $119; - $expanded10 = (($expanded11) - 1)|0; - $120 = (($118) + ($expanded10))|0; - $121 = ((0) + 4|0); - $expanded15 = $121; - $expanded14 = (($expanded15) - 1)|0; - $expanded13 = $expanded14 ^ -1; - $122 = $120 & $expanded13; - $123 = $122; - $124 = HEAP32[$123>>2]|0; - $arglist_next3 = ((($123)) + 4|0); - HEAP32[$2>>2] = $arglist_next3; - $330 = $124; - } else { - $330 = 0; - } - HEAP32[$5>>2] = $99; - $$0254 = $330;$$pre347 = $99; - } else { - $$0254 = -1;$$pre347 = $94; - } - } while(0); - $$0252 = 0;$128 = $$pre347; - while(1) { - $127 = HEAP8[$128>>0]|0; - $129 = $127 << 24 >> 24; - $130 = (($129) + -65)|0; - $131 = ($130>>>0)>(57); - if ($131) { - $$0 = -1; - break L1; - } - $132 = ((($128)) + 1|0); - HEAP32[$5>>2] = $132; - $133 = HEAP8[$128>>0]|0; - $134 = $133 << 24 >> 24; - $135 = (($134) + -65)|0; - $136 = ((11356 + (($$0252*58)|0)|0) + ($135)|0); - $137 = HEAP8[$136>>0]|0; - $138 = $137&255; - $139 = (($138) + -1)|0; - $140 = ($139>>>0)<(8); - if ($140) { - $$0252 = $138;$128 = $132; - } else { - break; - } - } - $141 = ($137<<24>>24)==(0); - if ($141) { - $$0 = -1; - break; - } - $142 = ($137<<24>>24)==(19); - $143 = ($$0253|0)>(-1); - do { - if ($142) { - if ($143) { - $$0 = -1; - break L1; - } else { - label = 49; - } - } else { - if ($143) { - $144 = (($4) + ($$0253<<2)|0); - HEAP32[$144>>2] = $138; - $145 = (($3) + ($$0253<<3)|0); - $146 = $145; - $147 = $146; - $148 = HEAP32[$147>>2]|0; - $149 = (($146) + 4)|0; - $150 = $149; - $151 = HEAP32[$150>>2]|0; - $152 = $6; - $153 = $152; - HEAP32[$153>>2] = $148; - $154 = (($152) + 4)|0; - $155 = $154; - HEAP32[$155>>2] = $151; - label = 49; - break; - } - if (!($10)) { - $$0 = 0; - break L1; - } - _pop_arg($6,$138,$2); - } - } while(0); - if ((label|0) == 49) { - label = 0; - if (!($10)) { - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue; - } - } - $156 = HEAP8[$128>>0]|0; - $157 = $156 << 24 >> 24; - $158 = ($$0252|0)!=(0); - $159 = $157 & 15; - $160 = ($159|0)==(3); - $or$cond281 = $158 & $160; - $161 = $157 & -33; - $$0235 = $or$cond281 ? $161 : $157; - $162 = $$1263 & 8192; - $163 = ($162|0)==(0); - $164 = $$1263 & -65537; - $$1263$ = $163 ? $$1263 : $164; - L71: do { - switch ($$0235|0) { - case 110: { - $trunc = $$0252&255; - switch ($trunc<<24>>24) { - case 0: { - $171 = HEAP32[$6>>2]|0; - HEAP32[$171>>2] = $$1248; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 1: { - $172 = HEAP32[$6>>2]|0; - HEAP32[$172>>2] = $$1248; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 2: { - $173 = ($$1248|0)<(0); - $174 = $173 << 31 >> 31; - $175 = HEAP32[$6>>2]|0; - $176 = $175; - $177 = $176; - HEAP32[$177>>2] = $$1248; - $178 = (($176) + 4)|0; - $179 = $178; - HEAP32[$179>>2] = $174; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 3: { - $180 = $$1248&65535; - $181 = HEAP32[$6>>2]|0; - HEAP16[$181>>1] = $180; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 4: { - $182 = $$1248&255; - $183 = HEAP32[$6>>2]|0; - HEAP8[$183>>0] = $182; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 6: { - $184 = HEAP32[$6>>2]|0; - HEAP32[$184>>2] = $$1248; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 7: { - $185 = ($$1248|0)<(0); - $186 = $185 << 31 >> 31; - $187 = HEAP32[$6>>2]|0; - $188 = $187; - $189 = $188; - HEAP32[$189>>2] = $$1248; - $190 = (($188) + 4)|0; - $191 = $190; - HEAP32[$191>>2] = $186; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - default: { - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - } - } - break; - } - case 112: { - $192 = ($$0254>>>0)>(8); - $193 = $192 ? $$0254 : 8; - $194 = $$1263$ | 8; - $$1236 = 120;$$1255 = $193;$$3265 = $194; - label = 61; - break; - } - case 88: case 120: { - $$1236 = $$0235;$$1255 = $$0254;$$3265 = $$1263$; - label = 61; - break; - } - case 111: { - $210 = $6; - $211 = $210; - $212 = HEAP32[$211>>2]|0; - $213 = (($210) + 4)|0; - $214 = $213; - $215 = HEAP32[$214>>2]|0; - $216 = (_fmt_o($212,$215,$11)|0); - $217 = $$1263$ & 8; - $218 = ($217|0)==(0); - $219 = $216; - $220 = (($12) - ($219))|0; - $221 = ($$0254|0)>($220|0); - $222 = (($220) + 1)|0; - $223 = $218 | $221; - $$0254$$0254$ = $223 ? $$0254 : $222; - $$0228 = $216;$$1233 = 0;$$1238 = 11820;$$2256 = $$0254$$0254$;$$4266 = $$1263$;$248 = $212;$250 = $215; - label = 67; - break; - } - case 105: case 100: { - $224 = $6; - $225 = $224; - $226 = HEAP32[$225>>2]|0; - $227 = (($224) + 4)|0; - $228 = $227; - $229 = HEAP32[$228>>2]|0; - $230 = ($229|0)<(0); - if ($230) { - $231 = (_i64Subtract(0,0,($226|0),($229|0))|0); - $232 = tempRet0; - $233 = $6; - $234 = $233; - HEAP32[$234>>2] = $231; - $235 = (($233) + 4)|0; - $236 = $235; - HEAP32[$236>>2] = $232; - $$0232 = 1;$$0237 = 11820;$242 = $231;$243 = $232; - label = 66; - break L71; - } else { - $237 = $$1263$ & 2048; - $238 = ($237|0)==(0); - $239 = $$1263$ & 1; - $240 = ($239|0)==(0); - $$ = $240 ? 11820 : (11822); - $$$ = $238 ? $$ : (11821); - $241 = $$1263$ & 2049; - $narrow = ($241|0)!=(0); - $$284$ = $narrow&1; - $$0232 = $$284$;$$0237 = $$$;$242 = $226;$243 = $229; - label = 66; - break L71; - } - break; - } - case 117: { - $165 = $6; - $166 = $165; - $167 = HEAP32[$166>>2]|0; - $168 = (($165) + 4)|0; - $169 = $168; - $170 = HEAP32[$169>>2]|0; - $$0232 = 0;$$0237 = 11820;$242 = $167;$243 = $170; - label = 66; - break; - } - case 99: { - $259 = $6; - $260 = $259; - $261 = HEAP32[$260>>2]|0; - $262 = (($259) + 4)|0; - $263 = $262; - $264 = HEAP32[$263>>2]|0; - $265 = $261&255; - HEAP8[$13>>0] = $265; - $$2 = $13;$$2234 = 0;$$2239 = 11820;$$2251 = $11;$$5 = 1;$$6268 = $164; - break; - } - case 109: { - $266 = (___errno_location()|0); - $267 = HEAP32[$266>>2]|0; - $268 = (_strerror($267)|0); - $$1 = $268; - label = 71; - break; - } - case 115: { - $269 = HEAP32[$6>>2]|0; - $270 = ($269|0)!=(0|0); - $271 = $270 ? $269 : 11830; - $$1 = $271; - label = 71; - break; - } - case 67: { - $278 = $6; - $279 = $278; - $280 = HEAP32[$279>>2]|0; - $281 = (($278) + 4)|0; - $282 = $281; - $283 = HEAP32[$282>>2]|0; - HEAP32[$8>>2] = $280; - HEAP32[$14>>2] = 0; - HEAP32[$6>>2] = $8; - $$4258355 = -1;$331 = $8; - label = 75; - break; - } - case 83: { - $$pre349 = HEAP32[$6>>2]|0; - $284 = ($$0254|0)==(0); - if ($284) { - _pad_674($0,32,$$1260,0,$$1263$); - $$0240$lcssa357 = 0; - label = 84; - } else { - $$4258355 = $$0254;$331 = $$pre349; - label = 75; - } - break; - } - case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { - $306 = +HEAPF64[$6>>3]; - $307 = (_fmt_fp($0,$306,$$1260,$$0254,$$1263$,$$0235)|0); - $$0243 = $307;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - default: { - $$2 = $21;$$2234 = 0;$$2239 = 11820;$$2251 = $11;$$5 = $$0254;$$6268 = $$1263$; - } - } - } while(0); - L95: do { - if ((label|0) == 61) { - label = 0; - $195 = $6; - $196 = $195; - $197 = HEAP32[$196>>2]|0; - $198 = (($195) + 4)|0; - $199 = $198; - $200 = HEAP32[$199>>2]|0; - $201 = $$1236 & 32; - $202 = (_fmt_x($197,$200,$11,$201)|0); - $203 = ($197|0)==(0); - $204 = ($200|0)==(0); - $205 = $203 & $204; - $206 = $$3265 & 8; - $207 = ($206|0)==(0); - $or$cond283 = $207 | $205; - $208 = $$1236 >> 4; - $209 = (11820 + ($208)|0); - $$289 = $or$cond283 ? 11820 : $209; - $$290 = $or$cond283 ? 0 : 2; - $$0228 = $202;$$1233 = $$290;$$1238 = $$289;$$2256 = $$1255;$$4266 = $$3265;$248 = $197;$250 = $200; - label = 67; - } - else if ((label|0) == 66) { - label = 0; - $244 = (_fmt_u($242,$243,$11)|0); - $$0228 = $244;$$1233 = $$0232;$$1238 = $$0237;$$2256 = $$0254;$$4266 = $$1263$;$248 = $242;$250 = $243; - label = 67; - } - else if ((label|0) == 71) { - label = 0; - $272 = (_memchr($$1,0,$$0254)|0); - $273 = ($272|0)==(0|0); - $274 = $272; - $275 = $$1; - $276 = (($274) - ($275))|0; - $277 = (($$1) + ($$0254)|0); - $$3257 = $273 ? $$0254 : $276; - $$1250 = $273 ? $277 : $272; - $$2 = $$1;$$2234 = 0;$$2239 = 11820;$$2251 = $$1250;$$5 = $$3257;$$6268 = $164; - } - else if ((label|0) == 75) { - label = 0; - $$0229322 = $331;$$0240321 = 0;$$1244320 = 0; - while(1) { - $285 = HEAP32[$$0229322>>2]|0; - $286 = ($285|0)==(0); - if ($286) { - $$0240$lcssa = $$0240321;$$2245 = $$1244320; - break; - } - $287 = (_wctomb($9,$285)|0); - $288 = ($287|0)<(0); - $289 = (($$4258355) - ($$0240321))|0; - $290 = ($287>>>0)>($289>>>0); - $or$cond286 = $288 | $290; - if ($or$cond286) { - $$0240$lcssa = $$0240321;$$2245 = $287; - break; - } - $291 = ((($$0229322)) + 4|0); - $292 = (($287) + ($$0240321))|0; - $293 = ($$4258355>>>0)>($292>>>0); - if ($293) { - $$0229322 = $291;$$0240321 = $292;$$1244320 = $287; - } else { - $$0240$lcssa = $292;$$2245 = $287; - break; - } - } - $294 = ($$2245|0)<(0); - if ($294) { - $$0 = -1; - break L1; - } - _pad_674($0,32,$$1260,$$0240$lcssa,$$1263$); - $295 = ($$0240$lcssa|0)==(0); - if ($295) { - $$0240$lcssa357 = 0; - label = 84; - } else { - $$1230333 = $331;$$1241332 = 0; - while(1) { - $296 = HEAP32[$$1230333>>2]|0; - $297 = ($296|0)==(0); - if ($297) { - $$0240$lcssa357 = $$0240$lcssa; - label = 84; - break L95; - } - $298 = (_wctomb($9,$296)|0); - $299 = (($298) + ($$1241332))|0; - $300 = ($299|0)>($$0240$lcssa|0); - if ($300) { - $$0240$lcssa357 = $$0240$lcssa; - label = 84; - break L95; - } - $301 = ((($$1230333)) + 4|0); - _out($0,$9,$298); - $302 = ($299>>>0)<($$0240$lcssa>>>0); - if ($302) { - $$1230333 = $301;$$1241332 = $299; - } else { - $$0240$lcssa357 = $$0240$lcssa; - label = 84; - break; - } - } - } - } - } while(0); - if ((label|0) == 67) { - label = 0; - $245 = ($$2256|0)>(-1); - $246 = $$4266 & -65537; - $$$4266 = $245 ? $246 : $$4266; - $247 = ($248|0)!=(0); - $249 = ($250|0)!=(0); - $251 = $247 | $249; - $252 = ($$2256|0)!=(0); - $or$cond = $252 | $251; - $253 = $$0228; - $254 = (($12) - ($253))|0; - $255 = $251 ^ 1; - $256 = $255&1; - $257 = (($256) + ($254))|0; - $258 = ($$2256|0)>($257|0); - $$2256$ = $258 ? $$2256 : $257; - $$2256$$$2256 = $or$cond ? $$2256$ : $$2256; - $$0228$ = $or$cond ? $$0228 : $11; - $$2 = $$0228$;$$2234 = $$1233;$$2239 = $$1238;$$2251 = $11;$$5 = $$2256$$$2256;$$6268 = $$$4266; - } - else if ((label|0) == 84) { - label = 0; - $303 = $$1263$ ^ 8192; - _pad_674($0,32,$$1260,$$0240$lcssa357,$303); - $304 = ($$1260|0)>($$0240$lcssa357|0); - $305 = $304 ? $$1260 : $$0240$lcssa357; - $$0243 = $305;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue; - } - $308 = $$2251; - $309 = $$2; - $310 = (($308) - ($309))|0; - $311 = ($$5|0)<($310|0); - $$$5 = $311 ? $310 : $$5; - $312 = (($$$5) + ($$2234))|0; - $313 = ($$1260|0)<($312|0); - $$2261 = $313 ? $312 : $$1260; - _pad_674($0,32,$$2261,$312,$$6268); - _out($0,$$2239,$$2234); - $314 = $$6268 ^ 65536; - _pad_674($0,48,$$2261,$312,$314); - _pad_674($0,48,$$$5,$310,0); - _out($0,$$2,$310); - $315 = $$6268 ^ 8192; - _pad_674($0,32,$$2261,$312,$315); - $$0243 = $$2261;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - } - L114: do { - if ((label|0) == 87) { - $316 = ($0|0)==(0|0); - if ($316) { - $317 = ($$0269|0)==(0); - if ($317) { - $$0 = 0; - } else { - $$2242305 = 1; - while(1) { - $318 = (($4) + ($$2242305<<2)|0); - $319 = HEAP32[$318>>2]|0; - $320 = ($319|0)==(0); - if ($320) { - $$3303 = $$2242305; - break; - } - $321 = (($3) + ($$2242305<<3)|0); - _pop_arg($321,$319,$2); - $322 = (($$2242305) + 1)|0; - $323 = ($322|0)<(10); - if ($323) { - $$2242305 = $322; - } else { - $$0 = 1; - break L114; - } - } - while(1) { - $326 = (($4) + ($$3303<<2)|0); - $327 = HEAP32[$326>>2]|0; - $328 = ($327|0)==(0); - $325 = (($$3303) + 1)|0; - if (!($328)) { - $$0 = -1; - break L114; - } - $324 = ($325|0)<(10); - if ($324) { - $$3303 = $325; - } else { - $$0 = 1; - break; - } - } - } - } else { - $$0 = $$1248; - } - } - } while(0); - STACKTOP = sp;return ($$0|0); -} -function ___lockfile($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return 0; -} -function ___unlockfile($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function _out($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = HEAP32[$0>>2]|0; - $4 = $3 & 32; - $5 = ($4|0)==(0); - if ($5) { - (___fwritex($1,$2,$0)|0); - } - return; -} -function _getint($0) { - $0 = $0|0; - var $$0$lcssa = 0, $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $isdigit = 0, $isdigit5 = 0, $isdigittmp = 0, $isdigittmp4 = 0, $isdigittmp7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - $2 = HEAP8[$1>>0]|0; - $3 = $2 << 24 >> 24; - $isdigittmp4 = (($3) + -48)|0; - $isdigit5 = ($isdigittmp4>>>0)<(10); - if ($isdigit5) { - $$06 = 0;$7 = $1;$isdigittmp7 = $isdigittmp4; - while(1) { - $4 = ($$06*10)|0; - $5 = (($isdigittmp7) + ($4))|0; - $6 = ((($7)) + 1|0); - HEAP32[$0>>2] = $6; - $8 = HEAP8[$6>>0]|0; - $9 = $8 << 24 >> 24; - $isdigittmp = (($9) + -48)|0; - $isdigit = ($isdigittmp>>>0)<(10); - if ($isdigit) { - $$06 = $5;$7 = $6;$isdigittmp7 = $isdigittmp; - } else { - $$0$lcssa = $5; - break; - } - } - } else { - $$0$lcssa = 0; - } - return ($$0$lcssa|0); -} -function _pop_arg($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$mask = 0, $$mask31 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0; - var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, $arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, $expanded28 = 0, $expanded30 = 0, $expanded31 = 0; - var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, $expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 = 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, $expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 = 0, $expanded58 = 0, $expanded59 = 0; - var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, $expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 = 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, $expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 = 0, $expanded86 = 0, $expanded87 = 0; - var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, $expanded94 = 0, $expanded95 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($1>>>0)>(20); - L1: do { - if (!($3)) { - do { - switch ($1|0) { - case 9: { - $arglist_current = HEAP32[$2>>2]|0; - $4 = $arglist_current; - $5 = ((0) + 4|0); - $expanded28 = $5; - $expanded = (($expanded28) - 1)|0; - $6 = (($4) + ($expanded))|0; - $7 = ((0) + 4|0); - $expanded32 = $7; - $expanded31 = (($expanded32) - 1)|0; - $expanded30 = $expanded31 ^ -1; - $8 = $6 & $expanded30; - $9 = $8; - $10 = HEAP32[$9>>2]|0; - $arglist_next = ((($9)) + 4|0); - HEAP32[$2>>2] = $arglist_next; - HEAP32[$0>>2] = $10; - break L1; - break; - } - case 10: { - $arglist_current2 = HEAP32[$2>>2]|0; - $11 = $arglist_current2; - $12 = ((0) + 4|0); - $expanded35 = $12; - $expanded34 = (($expanded35) - 1)|0; - $13 = (($11) + ($expanded34))|0; - $14 = ((0) + 4|0); - $expanded39 = $14; - $expanded38 = (($expanded39) - 1)|0; - $expanded37 = $expanded38 ^ -1; - $15 = $13 & $expanded37; - $16 = $15; - $17 = HEAP32[$16>>2]|0; - $arglist_next3 = ((($16)) + 4|0); - HEAP32[$2>>2] = $arglist_next3; - $18 = ($17|0)<(0); - $19 = $18 << 31 >> 31; - $20 = $0; - $21 = $20; - HEAP32[$21>>2] = $17; - $22 = (($20) + 4)|0; - $23 = $22; - HEAP32[$23>>2] = $19; - break L1; - break; - } - case 11: { - $arglist_current5 = HEAP32[$2>>2]|0; - $24 = $arglist_current5; - $25 = ((0) + 4|0); - $expanded42 = $25; - $expanded41 = (($expanded42) - 1)|0; - $26 = (($24) + ($expanded41))|0; - $27 = ((0) + 4|0); - $expanded46 = $27; - $expanded45 = (($expanded46) - 1)|0; - $expanded44 = $expanded45 ^ -1; - $28 = $26 & $expanded44; - $29 = $28; - $30 = HEAP32[$29>>2]|0; - $arglist_next6 = ((($29)) + 4|0); - HEAP32[$2>>2] = $arglist_next6; - $31 = $0; - $32 = $31; - HEAP32[$32>>2] = $30; - $33 = (($31) + 4)|0; - $34 = $33; - HEAP32[$34>>2] = 0; - break L1; - break; - } - case 12: { - $arglist_current8 = HEAP32[$2>>2]|0; - $35 = $arglist_current8; - $36 = ((0) + 8|0); - $expanded49 = $36; - $expanded48 = (($expanded49) - 1)|0; - $37 = (($35) + ($expanded48))|0; - $38 = ((0) + 8|0); - $expanded53 = $38; - $expanded52 = (($expanded53) - 1)|0; - $expanded51 = $expanded52 ^ -1; - $39 = $37 & $expanded51; - $40 = $39; - $41 = $40; - $42 = $41; - $43 = HEAP32[$42>>2]|0; - $44 = (($41) + 4)|0; - $45 = $44; - $46 = HEAP32[$45>>2]|0; - $arglist_next9 = ((($40)) + 8|0); - HEAP32[$2>>2] = $arglist_next9; - $47 = $0; - $48 = $47; - HEAP32[$48>>2] = $43; - $49 = (($47) + 4)|0; - $50 = $49; - HEAP32[$50>>2] = $46; - break L1; - break; - } - case 13: { - $arglist_current11 = HEAP32[$2>>2]|0; - $51 = $arglist_current11; - $52 = ((0) + 4|0); - $expanded56 = $52; - $expanded55 = (($expanded56) - 1)|0; - $53 = (($51) + ($expanded55))|0; - $54 = ((0) + 4|0); - $expanded60 = $54; - $expanded59 = (($expanded60) - 1)|0; - $expanded58 = $expanded59 ^ -1; - $55 = $53 & $expanded58; - $56 = $55; - $57 = HEAP32[$56>>2]|0; - $arglist_next12 = ((($56)) + 4|0); - HEAP32[$2>>2] = $arglist_next12; - $58 = $57&65535; - $59 = $58 << 16 >> 16; - $60 = ($59|0)<(0); - $61 = $60 << 31 >> 31; - $62 = $0; - $63 = $62; - HEAP32[$63>>2] = $59; - $64 = (($62) + 4)|0; - $65 = $64; - HEAP32[$65>>2] = $61; - break L1; - break; - } - case 14: { - $arglist_current14 = HEAP32[$2>>2]|0; - $66 = $arglist_current14; - $67 = ((0) + 4|0); - $expanded63 = $67; - $expanded62 = (($expanded63) - 1)|0; - $68 = (($66) + ($expanded62))|0; - $69 = ((0) + 4|0); - $expanded67 = $69; - $expanded66 = (($expanded67) - 1)|0; - $expanded65 = $expanded66 ^ -1; - $70 = $68 & $expanded65; - $71 = $70; - $72 = HEAP32[$71>>2]|0; - $arglist_next15 = ((($71)) + 4|0); - HEAP32[$2>>2] = $arglist_next15; - $$mask31 = $72 & 65535; - $73 = $0; - $74 = $73; - HEAP32[$74>>2] = $$mask31; - $75 = (($73) + 4)|0; - $76 = $75; - HEAP32[$76>>2] = 0; - break L1; - break; - } - case 15: { - $arglist_current17 = HEAP32[$2>>2]|0; - $77 = $arglist_current17; - $78 = ((0) + 4|0); - $expanded70 = $78; - $expanded69 = (($expanded70) - 1)|0; - $79 = (($77) + ($expanded69))|0; - $80 = ((0) + 4|0); - $expanded74 = $80; - $expanded73 = (($expanded74) - 1)|0; - $expanded72 = $expanded73 ^ -1; - $81 = $79 & $expanded72; - $82 = $81; - $83 = HEAP32[$82>>2]|0; - $arglist_next18 = ((($82)) + 4|0); - HEAP32[$2>>2] = $arglist_next18; - $84 = $83&255; - $85 = $84 << 24 >> 24; - $86 = ($85|0)<(0); - $87 = $86 << 31 >> 31; - $88 = $0; - $89 = $88; - HEAP32[$89>>2] = $85; - $90 = (($88) + 4)|0; - $91 = $90; - HEAP32[$91>>2] = $87; - break L1; - break; - } - case 16: { - $arglist_current20 = HEAP32[$2>>2]|0; - $92 = $arglist_current20; - $93 = ((0) + 4|0); - $expanded77 = $93; - $expanded76 = (($expanded77) - 1)|0; - $94 = (($92) + ($expanded76))|0; - $95 = ((0) + 4|0); - $expanded81 = $95; - $expanded80 = (($expanded81) - 1)|0; - $expanded79 = $expanded80 ^ -1; - $96 = $94 & $expanded79; - $97 = $96; - $98 = HEAP32[$97>>2]|0; - $arglist_next21 = ((($97)) + 4|0); - HEAP32[$2>>2] = $arglist_next21; - $$mask = $98 & 255; - $99 = $0; - $100 = $99; - HEAP32[$100>>2] = $$mask; - $101 = (($99) + 4)|0; - $102 = $101; - HEAP32[$102>>2] = 0; - break L1; - break; - } - case 17: { - $arglist_current23 = HEAP32[$2>>2]|0; - $103 = $arglist_current23; - $104 = ((0) + 8|0); - $expanded84 = $104; - $expanded83 = (($expanded84) - 1)|0; - $105 = (($103) + ($expanded83))|0; - $106 = ((0) + 8|0); - $expanded88 = $106; - $expanded87 = (($expanded88) - 1)|0; - $expanded86 = $expanded87 ^ -1; - $107 = $105 & $expanded86; - $108 = $107; - $109 = +HEAPF64[$108>>3]; - $arglist_next24 = ((($108)) + 8|0); - HEAP32[$2>>2] = $arglist_next24; - HEAPF64[$0>>3] = $109; - break L1; - break; - } - case 18: { - $arglist_current26 = HEAP32[$2>>2]|0; - $110 = $arglist_current26; - $111 = ((0) + 8|0); - $expanded91 = $111; - $expanded90 = (($expanded91) - 1)|0; - $112 = (($110) + ($expanded90))|0; - $113 = ((0) + 8|0); - $expanded95 = $113; - $expanded94 = (($expanded95) - 1)|0; - $expanded93 = $expanded94 ^ -1; - $114 = $112 & $expanded93; - $115 = $114; - $116 = +HEAPF64[$115>>3]; - $arglist_next27 = ((($115)) + 8|0); - HEAP32[$2>>2] = $arglist_next27; - HEAPF64[$0>>3] = $116; - break L1; - break; - } - default: { - break L1; - } - } - } while(0); - } - } while(0); - return; -} -function _fmt_x($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$05$lcssa = 0, $$056 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $4 = ($0|0)==(0); - $5 = ($1|0)==(0); - $6 = $4 & $5; - if ($6) { - $$05$lcssa = $2; - } else { - $$056 = $2;$15 = $1;$8 = $0; - while(1) { - $7 = $8 & 15; - $9 = (11872 + ($7)|0); - $10 = HEAP8[$9>>0]|0; - $11 = $10&255; - $12 = $11 | $3; - $13 = $12&255; - $14 = ((($$056)) + -1|0); - HEAP8[$14>>0] = $13; - $16 = (_bitshift64Lshr(($8|0),($15|0),4)|0); - $17 = tempRet0; - $18 = ($16|0)==(0); - $19 = ($17|0)==(0); - $20 = $18 & $19; - if ($20) { - $$05$lcssa = $14; - break; - } else { - $$056 = $14;$15 = $17;$8 = $16; - } - } - } - return ($$05$lcssa|0); -} -function _fmt_o($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0$lcssa = 0, $$06 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(0); - $4 = ($1|0)==(0); - $5 = $3 & $4; - if ($5) { - $$0$lcssa = $2; - } else { - $$06 = $2;$11 = $1;$7 = $0; - while(1) { - $6 = $7&255; - $8 = $6 & 7; - $9 = $8 | 48; - $10 = ((($$06)) + -1|0); - HEAP8[$10>>0] = $9; - $12 = (_bitshift64Lshr(($7|0),($11|0),3)|0); - $13 = tempRet0; - $14 = ($12|0)==(0); - $15 = ($13|0)==(0); - $16 = $14 & $15; - if ($16) { - $$0$lcssa = $10; - break; - } else { - $$06 = $10;$11 = $13;$7 = $12; - } - } - } - return ($$0$lcssa|0); -} -function _fmt_u($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$010$lcssa$off0 = 0, $$012 = 0, $$09$lcssa = 0, $$0914 = 0, $$1$lcssa = 0, $$111 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($1>>>0)>(0); - $4 = ($0>>>0)>(4294967295); - $5 = ($1|0)==(0); - $6 = $5 & $4; - $7 = $3 | $6; - if ($7) { - $$0914 = $2;$8 = $0;$9 = $1; - while(1) { - $10 = (___uremdi3(($8|0),($9|0),10,0)|0); - $11 = tempRet0; - $12 = $10&255; - $13 = $12 | 48; - $14 = ((($$0914)) + -1|0); - HEAP8[$14>>0] = $13; - $15 = (___udivdi3(($8|0),($9|0),10,0)|0); - $16 = tempRet0; - $17 = ($9>>>0)>(9); - $18 = ($8>>>0)>(4294967295); - $19 = ($9|0)==(9); - $20 = $19 & $18; - $21 = $17 | $20; - if ($21) { - $$0914 = $14;$8 = $15;$9 = $16; - } else { - break; - } - } - $$010$lcssa$off0 = $15;$$09$lcssa = $14; - } else { - $$010$lcssa$off0 = $0;$$09$lcssa = $2; - } - $22 = ($$010$lcssa$off0|0)==(0); - if ($22) { - $$1$lcssa = $$09$lcssa; - } else { - $$012 = $$010$lcssa$off0;$$111 = $$09$lcssa; - while(1) { - $23 = (($$012>>>0) % 10)&-1; - $24 = $23 | 48; - $25 = $24&255; - $26 = ((($$111)) + -1|0); - HEAP8[$26>>0] = $25; - $27 = (($$012>>>0) / 10)&-1; - $28 = ($$012>>>0)<(10); - if ($28) { - $$1$lcssa = $26; - break; - } else { - $$012 = $27;$$111 = $26; - } - } - } - return ($$1$lcssa|0); -} -function _strerror($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (___pthread_self_105()|0); - $2 = ((($1)) + 188|0); - $3 = HEAP32[$2>>2]|0; - $4 = (___strerror_l($0,$3)|0); - return ($4|0); -} -function _memchr($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0$lcssa = 0, $$035$lcssa = 0, $$035$lcssa65 = 0, $$03555 = 0, $$036$lcssa = 0, $$036$lcssa64 = 0, $$03654 = 0, $$046 = 0, $$137$lcssa = 0, $$13745 = 0, $$140 = 0, $$2 = 0, $$23839 = 0, $$3 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond53 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = $1 & 255; - $4 = $0; - $5 = $4 & 3; - $6 = ($5|0)!=(0); - $7 = ($2|0)!=(0); - $or$cond53 = $7 & $6; - L1: do { - if ($or$cond53) { - $8 = $1&255; - $$03555 = $0;$$03654 = $2; - while(1) { - $9 = HEAP8[$$03555>>0]|0; - $10 = ($9<<24>>24)==($8<<24>>24); - if ($10) { - $$035$lcssa65 = $$03555;$$036$lcssa64 = $$03654; - label = 6; - break L1; - } - $11 = ((($$03555)) + 1|0); - $12 = (($$03654) + -1)|0; - $13 = $11; - $14 = $13 & 3; - $15 = ($14|0)!=(0); - $16 = ($12|0)!=(0); - $or$cond = $16 & $15; - if ($or$cond) { - $$03555 = $11;$$03654 = $12; - } else { - $$035$lcssa = $11;$$036$lcssa = $12;$$lcssa = $16; - label = 5; - break; - } - } - } else { - $$035$lcssa = $0;$$036$lcssa = $2;$$lcssa = $7; - label = 5; - } - } while(0); - if ((label|0) == 5) { - if ($$lcssa) { - $$035$lcssa65 = $$035$lcssa;$$036$lcssa64 = $$036$lcssa; - label = 6; - } else { - $$2 = $$035$lcssa;$$3 = 0; - } - } - L8: do { - if ((label|0) == 6) { - $17 = HEAP8[$$035$lcssa65>>0]|0; - $18 = $1&255; - $19 = ($17<<24>>24)==($18<<24>>24); - if ($19) { - $$2 = $$035$lcssa65;$$3 = $$036$lcssa64; - } else { - $20 = Math_imul($3, 16843009)|0; - $21 = ($$036$lcssa64>>>0)>(3); - L11: do { - if ($21) { - $$046 = $$035$lcssa65;$$13745 = $$036$lcssa64; - while(1) { - $22 = HEAP32[$$046>>2]|0; - $23 = $22 ^ $20; - $24 = (($23) + -16843009)|0; - $25 = $23 & -2139062144; - $26 = $25 ^ -2139062144; - $27 = $26 & $24; - $28 = ($27|0)==(0); - if (!($28)) { - break; - } - $29 = ((($$046)) + 4|0); - $30 = (($$13745) + -4)|0; - $31 = ($30>>>0)>(3); - if ($31) { - $$046 = $29;$$13745 = $30; - } else { - $$0$lcssa = $29;$$137$lcssa = $30; - label = 11; - break L11; - } - } - $$140 = $$046;$$23839 = $$13745; - } else { - $$0$lcssa = $$035$lcssa65;$$137$lcssa = $$036$lcssa64; - label = 11; - } - } while(0); - if ((label|0) == 11) { - $32 = ($$137$lcssa|0)==(0); - if ($32) { - $$2 = $$0$lcssa;$$3 = 0; - break; - } else { - $$140 = $$0$lcssa;$$23839 = $$137$lcssa; - } - } - while(1) { - $33 = HEAP8[$$140>>0]|0; - $34 = ($33<<24>>24)==($18<<24>>24); - if ($34) { - $$2 = $$140;$$3 = $$23839; - break L8; - } - $35 = ((($$140)) + 1|0); - $36 = (($$23839) + -1)|0; - $37 = ($36|0)==(0); - if ($37) { - $$2 = $35;$$3 = 0; - break; - } else { - $$140 = $35;$$23839 = $36; - } - } - } - } - } while(0); - $38 = ($$3|0)!=(0); - $39 = $38 ? $$2 : 0; - return ($39|0); -} -function _pad_674($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0$lcssa = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $5 = sp; - $6 = $4 & 73728; - $7 = ($6|0)==(0); - $8 = ($2|0)>($3|0); - $or$cond = $8 & $7; - if ($or$cond) { - $9 = (($2) - ($3))|0; - $10 = ($9>>>0)<(256); - $11 = $10 ? $9 : 256; - _memset(($5|0),($1|0),($11|0))|0; - $12 = ($9>>>0)>(255); - if ($12) { - $13 = (($2) - ($3))|0; - $$011 = $9; - while(1) { - _out($0,$5,256); - $14 = (($$011) + -256)|0; - $15 = ($14>>>0)>(255); - if ($15) { - $$011 = $14; - } else { - break; - } - } - $16 = $13 & 255; - $$0$lcssa = $16; - } else { - $$0$lcssa = $9; - } - _out($0,$5,$$0$lcssa); - } - STACKTOP = sp;return; -} -function _wctomb($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($0|0)==(0|0); - if ($2) { - $$0 = 0; - } else { - $3 = (_wcrtomb($0,$1,0)|0); - $$0 = $3; - } - return ($$0|0); -} -function _fmt_fp($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = +$1; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $$ = 0, $$$ = 0, $$$$559 = 0.0, $$$3484 = 0, $$$3484691 = 0, $$$3484692 = 0, $$$3501 = 0, $$$4502 = 0, $$$542 = 0.0, $$$559 = 0.0, $$0 = 0, $$0463$lcssa = 0, $$0463584 = 0, $$0464594 = 0, $$0471 = 0.0, $$0479 = 0, $$0487642 = 0, $$0488 = 0, $$0488653 = 0, $$0488655 = 0; - var $$0496$$9 = 0, $$0497654 = 0, $$0498 = 0, $$0509582 = 0.0, $$0510 = 0, $$0511 = 0, $$0514637 = 0, $$0520 = 0, $$0521 = 0, $$0521$ = 0, $$0523 = 0, $$0525 = 0, $$0527 = 0, $$0527629 = 0, $$0527631 = 0, $$0530636 = 0, $$1465 = 0, $$1467 = 0.0, $$1469 = 0.0, $$1472 = 0.0; - var $$1480 = 0, $$1482$lcssa = 0, $$1482661 = 0, $$1489641 = 0, $$1499$lcssa = 0, $$1499660 = 0, $$1508583 = 0, $$1512$lcssa = 0, $$1512607 = 0, $$1515 = 0, $$1524 = 0, $$1526 = 0, $$1528614 = 0, $$1531$lcssa = 0, $$1531630 = 0, $$1598 = 0, $$2 = 0, $$2473 = 0.0, $$2476 = 0, $$2476$$547 = 0; - var $$2476$$549 = 0, $$2483$ph = 0, $$2500 = 0, $$2513 = 0, $$2516618 = 0, $$2529 = 0, $$2532617 = 0, $$3 = 0.0, $$3477 = 0, $$3484$lcssa = 0, $$3484648 = 0, $$3501$lcssa = 0, $$3501647 = 0, $$3533613 = 0, $$4 = 0.0, $$4478$lcssa = 0, $$4478590 = 0, $$4492 = 0, $$4502 = 0, $$4518 = 0; - var $$5$lcssa = 0, $$534$ = 0, $$539 = 0, $$539$ = 0, $$542 = 0.0, $$546 = 0, $$548 = 0, $$5486$lcssa = 0, $$5486623 = 0, $$5493597 = 0, $$5519$ph = 0, $$555 = 0, $$556 = 0, $$559 = 0.0, $$5602 = 0, $$6 = 0, $$6494589 = 0, $$7495601 = 0, $$7505 = 0, $$7505$ = 0; - var $$7505$ph = 0, $$8 = 0, $$9$ph = 0, $$lcssa673 = 0, $$neg = 0, $$neg567 = 0, $$pn = 0, $$pn566 = 0, $$pr = 0, $$pr564 = 0, $$pre = 0, $$pre$phi690Z2D = 0, $$pre689 = 0, $$sink545$lcssa = 0, $$sink545622 = 0, $$sink562 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0; - var $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0; - var $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0; - var $14 = 0.0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0; - var $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0; - var $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0; - var $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0; - var $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0.0, $229 = 0.0, $23 = 0; - var $230 = 0, $231 = 0.0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0; - var $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0; - var $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0; - var $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0; - var $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0; - var $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0; - var $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0.0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0; - var $358 = 0, $359 = 0, $36 = 0.0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0; - var $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0; - var $narrow = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond3$not = 0, $or$cond537 = 0, $or$cond541 = 0, $or$cond544 = 0, $or$cond554 = 0, $or$cond6 = 0, $scevgep684 = 0, $scevgep684685 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 560|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(560|0); - $6 = sp + 8|0; - $7 = sp; - $8 = sp + 524|0; - $9 = $8; - $10 = sp + 512|0; - HEAP32[$7>>2] = 0; - $11 = ((($10)) + 12|0); - (___DOUBLE_BITS_675($1)|0); - $12 = tempRet0; - $13 = ($12|0)<(0); - if ($13) { - $14 = -$1; - $$0471 = $14;$$0520 = 1;$$0521 = 11837; - } else { - $15 = $4 & 2048; - $16 = ($15|0)==(0); - $17 = $4 & 1; - $18 = ($17|0)==(0); - $$ = $18 ? (11838) : (11843); - $$$ = $16 ? $$ : (11840); - $19 = $4 & 2049; - $narrow = ($19|0)!=(0); - $$534$ = $narrow&1; - $$0471 = $1;$$0520 = $$534$;$$0521 = $$$; - } - (___DOUBLE_BITS_675($$0471)|0); - $20 = tempRet0; - $21 = $20 & 2146435072; - $22 = ($21>>>0)<(2146435072); - $23 = (0)<(0); - $24 = ($21|0)==(2146435072); - $25 = $24 & $23; - $26 = $22 | $25; - do { - if ($26) { - $35 = (+_frexpl($$0471,$7)); - $36 = $35 * 2.0; - $37 = $36 != 0.0; - if ($37) { - $38 = HEAP32[$7>>2]|0; - $39 = (($38) + -1)|0; - HEAP32[$7>>2] = $39; - } - $40 = $5 | 32; - $41 = ($40|0)==(97); - if ($41) { - $42 = $5 & 32; - $43 = ($42|0)==(0); - $44 = ((($$0521)) + 9|0); - $$0521$ = $43 ? $$0521 : $44; - $45 = $$0520 | 2; - $46 = ($3>>>0)>(11); - $47 = (12 - ($3))|0; - $48 = ($47|0)==(0); - $49 = $46 | $48; - do { - if ($49) { - $$1472 = $36; - } else { - $$0509582 = 8.0;$$1508583 = $47; - while(1) { - $50 = (($$1508583) + -1)|0; - $51 = $$0509582 * 16.0; - $52 = ($50|0)==(0); - if ($52) { - break; - } else { - $$0509582 = $51;$$1508583 = $50; - } - } - $53 = HEAP8[$$0521$>>0]|0; - $54 = ($53<<24>>24)==(45); - if ($54) { - $55 = -$36; - $56 = $55 - $51; - $57 = $51 + $56; - $58 = -$57; - $$1472 = $58; - break; - } else { - $59 = $36 + $51; - $60 = $59 - $51; - $$1472 = $60; - break; - } - } - } while(0); - $61 = HEAP32[$7>>2]|0; - $62 = ($61|0)<(0); - $63 = (0 - ($61))|0; - $64 = $62 ? $63 : $61; - $65 = ($64|0)<(0); - $66 = $65 << 31 >> 31; - $67 = (_fmt_u($64,$66,$11)|0); - $68 = ($67|0)==($11|0); - if ($68) { - $69 = ((($10)) + 11|0); - HEAP8[$69>>0] = 48; - $$0511 = $69; - } else { - $$0511 = $67; - } - $70 = $61 >> 31; - $71 = $70 & 2; - $72 = (($71) + 43)|0; - $73 = $72&255; - $74 = ((($$0511)) + -1|0); - HEAP8[$74>>0] = $73; - $75 = (($5) + 15)|0; - $76 = $75&255; - $77 = ((($$0511)) + -2|0); - HEAP8[$77>>0] = $76; - $notrhs = ($3|0)<(1); - $78 = $4 & 8; - $79 = ($78|0)==(0); - $$0523 = $8;$$2473 = $$1472; - while(1) { - $80 = (~~(($$2473))); - $81 = (11872 + ($80)|0); - $82 = HEAP8[$81>>0]|0; - $83 = $82&255; - $84 = $83 | $42; - $85 = $84&255; - $86 = ((($$0523)) + 1|0); - HEAP8[$$0523>>0] = $85; - $87 = (+($80|0)); - $88 = $$2473 - $87; - $89 = $88 * 16.0; - $90 = $86; - $91 = (($90) - ($9))|0; - $92 = ($91|0)==(1); - if ($92) { - $notlhs = $89 == 0.0; - $or$cond3$not = $notrhs & $notlhs; - $or$cond = $79 & $or$cond3$not; - if ($or$cond) { - $$1524 = $86; - } else { - $93 = ((($$0523)) + 2|0); - HEAP8[$86>>0] = 46; - $$1524 = $93; - } - } else { - $$1524 = $86; - } - $94 = $89 != 0.0; - if ($94) { - $$0523 = $$1524;$$2473 = $89; - } else { - break; - } - } - $95 = ($3|0)!=(0); - $96 = $77; - $97 = $11; - $98 = $$1524; - $99 = (($98) - ($9))|0; - $100 = (($97) - ($96))|0; - $101 = (($99) + -2)|0; - $102 = ($101|0)<($3|0); - $or$cond537 = $95 & $102; - $103 = (($3) + 2)|0; - $$pn = $or$cond537 ? $103 : $99; - $$0525 = (($100) + ($45))|0; - $104 = (($$0525) + ($$pn))|0; - _pad_674($0,32,$2,$104,$4); - _out($0,$$0521$,$45); - $105 = $4 ^ 65536; - _pad_674($0,48,$2,$104,$105); - _out($0,$8,$99); - $106 = (($$pn) - ($99))|0; - _pad_674($0,48,$106,0,0); - _out($0,$77,$100); - $107 = $4 ^ 8192; - _pad_674($0,32,$2,$104,$107); - $$sink562 = $104; - break; - } - $108 = ($3|0)<(0); - $$539 = $108 ? 6 : $3; - if ($37) { - $109 = $36 * 268435456.0; - $110 = HEAP32[$7>>2]|0; - $111 = (($110) + -28)|0; - HEAP32[$7>>2] = $111; - $$3 = $109;$$pr = $111; - } else { - $$pre = HEAP32[$7>>2]|0; - $$3 = $36;$$pr = $$pre; - } - $112 = ($$pr|0)<(0); - $113 = ((($6)) + 288|0); - $$556 = $112 ? $6 : $113; - $$0498 = $$556;$$4 = $$3; - while(1) { - $114 = (~~(($$4))>>>0); - HEAP32[$$0498>>2] = $114; - $115 = ((($$0498)) + 4|0); - $116 = (+($114>>>0)); - $117 = $$4 - $116; - $118 = $117 * 1.0E+9; - $119 = $118 != 0.0; - if ($119) { - $$0498 = $115;$$4 = $118; - } else { - break; - } - } - $120 = ($$pr|0)>(0); - if ($120) { - $$1482661 = $$556;$$1499660 = $115;$122 = $$pr; - while(1) { - $121 = ($122|0)<(29); - $123 = $121 ? $122 : 29; - $$0488653 = ((($$1499660)) + -4|0); - $124 = ($$0488653>>>0)<($$1482661>>>0); - if ($124) { - $$2483$ph = $$1482661; - } else { - $$0488655 = $$0488653;$$0497654 = 0; - while(1) { - $125 = HEAP32[$$0488655>>2]|0; - $126 = (_bitshift64Shl(($125|0),0,($123|0))|0); - $127 = tempRet0; - $128 = (_i64Add(($126|0),($127|0),($$0497654|0),0)|0); - $129 = tempRet0; - $130 = (___uremdi3(($128|0),($129|0),1000000000,0)|0); - $131 = tempRet0; - HEAP32[$$0488655>>2] = $130; - $132 = (___udivdi3(($128|0),($129|0),1000000000,0)|0); - $133 = tempRet0; - $$0488 = ((($$0488655)) + -4|0); - $134 = ($$0488>>>0)<($$1482661>>>0); - if ($134) { - break; - } else { - $$0488655 = $$0488;$$0497654 = $132; - } - } - $135 = ($132|0)==(0); - if ($135) { - $$2483$ph = $$1482661; - } else { - $136 = ((($$1482661)) + -4|0); - HEAP32[$136>>2] = $132; - $$2483$ph = $136; - } - } - $$2500 = $$1499660; - while(1) { - $137 = ($$2500>>>0)>($$2483$ph>>>0); - if (!($137)) { - break; - } - $138 = ((($$2500)) + -4|0); - $139 = HEAP32[$138>>2]|0; - $140 = ($139|0)==(0); - if ($140) { - $$2500 = $138; - } else { - break; - } - } - $141 = HEAP32[$7>>2]|0; - $142 = (($141) - ($123))|0; - HEAP32[$7>>2] = $142; - $143 = ($142|0)>(0); - if ($143) { - $$1482661 = $$2483$ph;$$1499660 = $$2500;$122 = $142; - } else { - $$1482$lcssa = $$2483$ph;$$1499$lcssa = $$2500;$$pr564 = $142; - break; - } - } - } else { - $$1482$lcssa = $$556;$$1499$lcssa = $115;$$pr564 = $$pr; - } - $144 = ($$pr564|0)<(0); - if ($144) { - $145 = (($$539) + 25)|0; - $146 = (($145|0) / 9)&-1; - $147 = (($146) + 1)|0; - $148 = ($40|0)==(102); - $$3484648 = $$1482$lcssa;$$3501647 = $$1499$lcssa;$150 = $$pr564; - while(1) { - $149 = (0 - ($150))|0; - $151 = ($149|0)<(9); - $152 = $151 ? $149 : 9; - $153 = ($$3484648>>>0)<($$3501647>>>0); - if ($153) { - $157 = 1 << $152; - $158 = (($157) + -1)|0; - $159 = 1000000000 >>> $152; - $$0487642 = 0;$$1489641 = $$3484648; - while(1) { - $160 = HEAP32[$$1489641>>2]|0; - $161 = $160 & $158; - $162 = $160 >>> $152; - $163 = (($162) + ($$0487642))|0; - HEAP32[$$1489641>>2] = $163; - $164 = Math_imul($161, $159)|0; - $165 = ((($$1489641)) + 4|0); - $166 = ($165>>>0)<($$3501647>>>0); - if ($166) { - $$0487642 = $164;$$1489641 = $165; - } else { - break; - } - } - $167 = HEAP32[$$3484648>>2]|0; - $168 = ($167|0)==(0); - $169 = ((($$3484648)) + 4|0); - $$$3484 = $168 ? $169 : $$3484648; - $170 = ($164|0)==(0); - if ($170) { - $$$3484692 = $$$3484;$$4502 = $$3501647; - } else { - $171 = ((($$3501647)) + 4|0); - HEAP32[$$3501647>>2] = $164; - $$$3484692 = $$$3484;$$4502 = $171; - } - } else { - $154 = HEAP32[$$3484648>>2]|0; - $155 = ($154|0)==(0); - $156 = ((($$3484648)) + 4|0); - $$$3484691 = $155 ? $156 : $$3484648; - $$$3484692 = $$$3484691;$$4502 = $$3501647; - } - $172 = $148 ? $$556 : $$$3484692; - $173 = $$4502; - $174 = $172; - $175 = (($173) - ($174))|0; - $176 = $175 >> 2; - $177 = ($176|0)>($147|0); - $178 = (($172) + ($147<<2)|0); - $$$4502 = $177 ? $178 : $$4502; - $179 = HEAP32[$7>>2]|0; - $180 = (($179) + ($152))|0; - HEAP32[$7>>2] = $180; - $181 = ($180|0)<(0); - if ($181) { - $$3484648 = $$$3484692;$$3501647 = $$$4502;$150 = $180; - } else { - $$3484$lcssa = $$$3484692;$$3501$lcssa = $$$4502; - break; - } - } - } else { - $$3484$lcssa = $$1482$lcssa;$$3501$lcssa = $$1499$lcssa; - } - $182 = ($$3484$lcssa>>>0)<($$3501$lcssa>>>0); - $183 = $$556; - if ($182) { - $184 = $$3484$lcssa; - $185 = (($183) - ($184))|0; - $186 = $185 >> 2; - $187 = ($186*9)|0; - $188 = HEAP32[$$3484$lcssa>>2]|0; - $189 = ($188>>>0)<(10); - if ($189) { - $$1515 = $187; - } else { - $$0514637 = $187;$$0530636 = 10; - while(1) { - $190 = ($$0530636*10)|0; - $191 = (($$0514637) + 1)|0; - $192 = ($188>>>0)<($190>>>0); - if ($192) { - $$1515 = $191; - break; - } else { - $$0514637 = $191;$$0530636 = $190; - } - } - } - } else { - $$1515 = 0; - } - $193 = ($40|0)!=(102); - $194 = $193 ? $$1515 : 0; - $195 = (($$539) - ($194))|0; - $196 = ($40|0)==(103); - $197 = ($$539|0)!=(0); - $198 = $197 & $196; - $$neg = $198 << 31 >> 31; - $199 = (($195) + ($$neg))|0; - $200 = $$3501$lcssa; - $201 = (($200) - ($183))|0; - $202 = $201 >> 2; - $203 = ($202*9)|0; - $204 = (($203) + -9)|0; - $205 = ($199|0)<($204|0); - if ($205) { - $206 = ((($$556)) + 4|0); - $207 = (($199) + 9216)|0; - $208 = (($207|0) / 9)&-1; - $209 = (($208) + -1024)|0; - $210 = (($206) + ($209<<2)|0); - $211 = (($207|0) % 9)&-1; - $$0527629 = (($211) + 1)|0; - $212 = ($$0527629|0)<(9); - if ($212) { - $$0527631 = $$0527629;$$1531630 = 10; - while(1) { - $213 = ($$1531630*10)|0; - $$0527 = (($$0527631) + 1)|0; - $exitcond = ($$0527|0)==(9); - if ($exitcond) { - $$1531$lcssa = $213; - break; - } else { - $$0527631 = $$0527;$$1531630 = $213; - } - } - } else { - $$1531$lcssa = 10; - } - $214 = HEAP32[$210>>2]|0; - $215 = (($214>>>0) % ($$1531$lcssa>>>0))&-1; - $216 = ($215|0)==(0); - $217 = ((($210)) + 4|0); - $218 = ($217|0)==($$3501$lcssa|0); - $or$cond541 = $218 & $216; - if ($or$cond541) { - $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; - } else { - $219 = (($214>>>0) / ($$1531$lcssa>>>0))&-1; - $220 = $219 & 1; - $221 = ($220|0)==(0); - $$542 = $221 ? 9007199254740992.0 : 9007199254740994.0; - $222 = (($$1531$lcssa|0) / 2)&-1; - $223 = ($215>>>0)<($222>>>0); - $224 = ($215|0)==($222|0); - $or$cond544 = $218 & $224; - $$559 = $or$cond544 ? 1.0 : 1.5; - $$$559 = $223 ? 0.5 : $$559; - $225 = ($$0520|0)==(0); - if ($225) { - $$1467 = $$$559;$$1469 = $$542; - } else { - $226 = HEAP8[$$0521>>0]|0; - $227 = ($226<<24>>24)==(45); - $228 = -$$542; - $229 = -$$$559; - $$$542 = $227 ? $228 : $$542; - $$$$559 = $227 ? $229 : $$$559; - $$1467 = $$$$559;$$1469 = $$$542; - } - $230 = (($214) - ($215))|0; - HEAP32[$210>>2] = $230; - $231 = $$1469 + $$1467; - $232 = $231 != $$1469; - if ($232) { - $233 = (($230) + ($$1531$lcssa))|0; - HEAP32[$210>>2] = $233; - $234 = ($233>>>0)>(999999999); - if ($234) { - $$5486623 = $$3484$lcssa;$$sink545622 = $210; - while(1) { - $235 = ((($$sink545622)) + -4|0); - HEAP32[$$sink545622>>2] = 0; - $236 = ($235>>>0)<($$5486623>>>0); - if ($236) { - $237 = ((($$5486623)) + -4|0); - HEAP32[$237>>2] = 0; - $$6 = $237; - } else { - $$6 = $$5486623; - } - $238 = HEAP32[$235>>2]|0; - $239 = (($238) + 1)|0; - HEAP32[$235>>2] = $239; - $240 = ($239>>>0)>(999999999); - if ($240) { - $$5486623 = $$6;$$sink545622 = $235; - } else { - $$5486$lcssa = $$6;$$sink545$lcssa = $235; - break; - } - } - } else { - $$5486$lcssa = $$3484$lcssa;$$sink545$lcssa = $210; - } - $241 = $$5486$lcssa; - $242 = (($183) - ($241))|0; - $243 = $242 >> 2; - $244 = ($243*9)|0; - $245 = HEAP32[$$5486$lcssa>>2]|0; - $246 = ($245>>>0)<(10); - if ($246) { - $$4492 = $$sink545$lcssa;$$4518 = $244;$$8 = $$5486$lcssa; - } else { - $$2516618 = $244;$$2532617 = 10; - while(1) { - $247 = ($$2532617*10)|0; - $248 = (($$2516618) + 1)|0; - $249 = ($245>>>0)<($247>>>0); - if ($249) { - $$4492 = $$sink545$lcssa;$$4518 = $248;$$8 = $$5486$lcssa; - break; - } else { - $$2516618 = $248;$$2532617 = $247; - } - } - } - } else { - $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; - } - } - $250 = ((($$4492)) + 4|0); - $251 = ($$3501$lcssa>>>0)>($250>>>0); - $$$3501 = $251 ? $250 : $$3501$lcssa; - $$5519$ph = $$4518;$$7505$ph = $$$3501;$$9$ph = $$8; - } else { - $$5519$ph = $$1515;$$7505$ph = $$3501$lcssa;$$9$ph = $$3484$lcssa; - } - $$7505 = $$7505$ph; - while(1) { - $252 = ($$7505>>>0)>($$9$ph>>>0); - if (!($252)) { - $$lcssa673 = 0; - break; - } - $253 = ((($$7505)) + -4|0); - $254 = HEAP32[$253>>2]|0; - $255 = ($254|0)==(0); - if ($255) { - $$7505 = $253; - } else { - $$lcssa673 = 1; - break; - } - } - $256 = (0 - ($$5519$ph))|0; - do { - if ($196) { - $not$ = $197 ^ 1; - $257 = $not$&1; - $$539$ = (($257) + ($$539))|0; - $258 = ($$539$|0)>($$5519$ph|0); - $259 = ($$5519$ph|0)>(-5); - $or$cond6 = $258 & $259; - if ($or$cond6) { - $260 = (($5) + -1)|0; - $$neg567 = (($$539$) + -1)|0; - $261 = (($$neg567) - ($$5519$ph))|0; - $$0479 = $260;$$2476 = $261; - } else { - $262 = (($5) + -2)|0; - $263 = (($$539$) + -1)|0; - $$0479 = $262;$$2476 = $263; - } - $264 = $4 & 8; - $265 = ($264|0)==(0); - if ($265) { - if ($$lcssa673) { - $266 = ((($$7505)) + -4|0); - $267 = HEAP32[$266>>2]|0; - $268 = ($267|0)==(0); - if ($268) { - $$2529 = 9; - } else { - $269 = (($267>>>0) % 10)&-1; - $270 = ($269|0)==(0); - if ($270) { - $$1528614 = 0;$$3533613 = 10; - while(1) { - $271 = ($$3533613*10)|0; - $272 = (($$1528614) + 1)|0; - $273 = (($267>>>0) % ($271>>>0))&-1; - $274 = ($273|0)==(0); - if ($274) { - $$1528614 = $272;$$3533613 = $271; - } else { - $$2529 = $272; - break; - } - } - } else { - $$2529 = 0; - } - } - } else { - $$2529 = 9; - } - $275 = $$0479 | 32; - $276 = ($275|0)==(102); - $277 = $$7505; - $278 = (($277) - ($183))|0; - $279 = $278 >> 2; - $280 = ($279*9)|0; - $281 = (($280) + -9)|0; - if ($276) { - $282 = (($281) - ($$2529))|0; - $283 = ($282|0)>(0); - $$546 = $283 ? $282 : 0; - $284 = ($$2476|0)<($$546|0); - $$2476$$547 = $284 ? $$2476 : $$546; - $$1480 = $$0479;$$3477 = $$2476$$547;$$pre$phi690Z2D = 0; - break; - } else { - $285 = (($281) + ($$5519$ph))|0; - $286 = (($285) - ($$2529))|0; - $287 = ($286|0)>(0); - $$548 = $287 ? $286 : 0; - $288 = ($$2476|0)<($$548|0); - $$2476$$549 = $288 ? $$2476 : $$548; - $$1480 = $$0479;$$3477 = $$2476$$549;$$pre$phi690Z2D = 0; - break; - } - } else { - $$1480 = $$0479;$$3477 = $$2476;$$pre$phi690Z2D = $264; - } - } else { - $$pre689 = $4 & 8; - $$1480 = $5;$$3477 = $$539;$$pre$phi690Z2D = $$pre689; - } - } while(0); - $289 = $$3477 | $$pre$phi690Z2D; - $290 = ($289|0)!=(0); - $291 = $290&1; - $292 = $$1480 | 32; - $293 = ($292|0)==(102); - if ($293) { - $294 = ($$5519$ph|0)>(0); - $295 = $294 ? $$5519$ph : 0; - $$2513 = 0;$$pn566 = $295; - } else { - $296 = ($$5519$ph|0)<(0); - $297 = $296 ? $256 : $$5519$ph; - $298 = ($297|0)<(0); - $299 = $298 << 31 >> 31; - $300 = (_fmt_u($297,$299,$11)|0); - $301 = $11; - $302 = $300; - $303 = (($301) - ($302))|0; - $304 = ($303|0)<(2); - if ($304) { - $$1512607 = $300; - while(1) { - $305 = ((($$1512607)) + -1|0); - HEAP8[$305>>0] = 48; - $306 = $305; - $307 = (($301) - ($306))|0; - $308 = ($307|0)<(2); - if ($308) { - $$1512607 = $305; - } else { - $$1512$lcssa = $305; - break; - } - } - } else { - $$1512$lcssa = $300; - } - $309 = $$5519$ph >> 31; - $310 = $309 & 2; - $311 = (($310) + 43)|0; - $312 = $311&255; - $313 = ((($$1512$lcssa)) + -1|0); - HEAP8[$313>>0] = $312; - $314 = $$1480&255; - $315 = ((($$1512$lcssa)) + -2|0); - HEAP8[$315>>0] = $314; - $316 = $315; - $317 = (($301) - ($316))|0; - $$2513 = $315;$$pn566 = $317; - } - $318 = (($$0520) + 1)|0; - $319 = (($318) + ($$3477))|0; - $$1526 = (($319) + ($291))|0; - $320 = (($$1526) + ($$pn566))|0; - _pad_674($0,32,$2,$320,$4); - _out($0,$$0521,$$0520); - $321 = $4 ^ 65536; - _pad_674($0,48,$2,$320,$321); - if ($293) { - $322 = ($$9$ph>>>0)>($$556>>>0); - $$0496$$9 = $322 ? $$556 : $$9$ph; - $323 = ((($8)) + 9|0); - $324 = $323; - $325 = ((($8)) + 8|0); - $$5493597 = $$0496$$9; - while(1) { - $326 = HEAP32[$$5493597>>2]|0; - $327 = (_fmt_u($326,0,$323)|0); - $328 = ($$5493597|0)==($$0496$$9|0); - if ($328) { - $334 = ($327|0)==($323|0); - if ($334) { - HEAP8[$325>>0] = 48; - $$1465 = $325; - } else { - $$1465 = $327; - } - } else { - $329 = ($327>>>0)>($8>>>0); - if ($329) { - $330 = $327; - $331 = (($330) - ($9))|0; - _memset(($8|0),48,($331|0))|0; - $$0464594 = $327; - while(1) { - $332 = ((($$0464594)) + -1|0); - $333 = ($332>>>0)>($8>>>0); - if ($333) { - $$0464594 = $332; - } else { - $$1465 = $332; - break; - } - } - } else { - $$1465 = $327; - } - } - $335 = $$1465; - $336 = (($324) - ($335))|0; - _out($0,$$1465,$336); - $337 = ((($$5493597)) + 4|0); - $338 = ($337>>>0)>($$556>>>0); - if ($338) { - break; - } else { - $$5493597 = $337; - } - } - $339 = ($289|0)==(0); - if (!($339)) { - _out($0,11888,1); - } - $340 = ($337>>>0)<($$7505>>>0); - $341 = ($$3477|0)>(0); - $342 = $340 & $341; - if ($342) { - $$4478590 = $$3477;$$6494589 = $337; - while(1) { - $343 = HEAP32[$$6494589>>2]|0; - $344 = (_fmt_u($343,0,$323)|0); - $345 = ($344>>>0)>($8>>>0); - if ($345) { - $346 = $344; - $347 = (($346) - ($9))|0; - _memset(($8|0),48,($347|0))|0; - $$0463584 = $344; - while(1) { - $348 = ((($$0463584)) + -1|0); - $349 = ($348>>>0)>($8>>>0); - if ($349) { - $$0463584 = $348; - } else { - $$0463$lcssa = $348; - break; - } - } - } else { - $$0463$lcssa = $344; - } - $350 = ($$4478590|0)<(9); - $351 = $350 ? $$4478590 : 9; - _out($0,$$0463$lcssa,$351); - $352 = ((($$6494589)) + 4|0); - $353 = (($$4478590) + -9)|0; - $354 = ($352>>>0)<($$7505>>>0); - $355 = ($$4478590|0)>(9); - $356 = $354 & $355; - if ($356) { - $$4478590 = $353;$$6494589 = $352; - } else { - $$4478$lcssa = $353; - break; - } - } - } else { - $$4478$lcssa = $$3477; - } - $357 = (($$4478$lcssa) + 9)|0; - _pad_674($0,48,$357,9,0); - } else { - $358 = ((($$9$ph)) + 4|0); - $$7505$ = $$lcssa673 ? $$7505 : $358; - $359 = ($$3477|0)>(-1); - if ($359) { - $360 = ((($8)) + 9|0); - $361 = ($$pre$phi690Z2D|0)==(0); - $362 = $360; - $363 = (0 - ($9))|0; - $364 = ((($8)) + 8|0); - $$5602 = $$3477;$$7495601 = $$9$ph; - while(1) { - $365 = HEAP32[$$7495601>>2]|0; - $366 = (_fmt_u($365,0,$360)|0); - $367 = ($366|0)==($360|0); - if ($367) { - HEAP8[$364>>0] = 48; - $$0 = $364; - } else { - $$0 = $366; - } - $368 = ($$7495601|0)==($$9$ph|0); - do { - if ($368) { - $372 = ((($$0)) + 1|0); - _out($0,$$0,1); - $373 = ($$5602|0)<(1); - $or$cond554 = $361 & $373; - if ($or$cond554) { - $$2 = $372; - break; - } - _out($0,11888,1); - $$2 = $372; - } else { - $369 = ($$0>>>0)>($8>>>0); - if (!($369)) { - $$2 = $$0; - break; - } - $scevgep684 = (($$0) + ($363)|0); - $scevgep684685 = $scevgep684; - _memset(($8|0),48,($scevgep684685|0))|0; - $$1598 = $$0; - while(1) { - $370 = ((($$1598)) + -1|0); - $371 = ($370>>>0)>($8>>>0); - if ($371) { - $$1598 = $370; - } else { - $$2 = $370; - break; - } - } - } - } while(0); - $374 = $$2; - $375 = (($362) - ($374))|0; - $376 = ($$5602|0)>($375|0); - $377 = $376 ? $375 : $$5602; - _out($0,$$2,$377); - $378 = (($$5602) - ($375))|0; - $379 = ((($$7495601)) + 4|0); - $380 = ($379>>>0)<($$7505$>>>0); - $381 = ($378|0)>(-1); - $382 = $380 & $381; - if ($382) { - $$5602 = $378;$$7495601 = $379; - } else { - $$5$lcssa = $378; - break; - } - } - } else { - $$5$lcssa = $$3477; - } - $383 = (($$5$lcssa) + 18)|0; - _pad_674($0,48,$383,18,0); - $384 = $11; - $385 = $$2513; - $386 = (($384) - ($385))|0; - _out($0,$$2513,$386); - } - $387 = $4 ^ 8192; - _pad_674($0,32,$2,$320,$387); - $$sink562 = $320; - } else { - $27 = $5 & 32; - $28 = ($27|0)!=(0); - $29 = $28 ? 11856 : 11860; - $30 = ($$0471 != $$0471) | (0.0 != 0.0); - $31 = $28 ? 11864 : 11868; - $$0510 = $30 ? $31 : $29; - $32 = (($$0520) + 3)|0; - $33 = $4 & -65537; - _pad_674($0,32,$2,$32,$33); - _out($0,$$0521,$$0520); - _out($0,$$0510,3); - $34 = $4 ^ 8192; - _pad_674($0,32,$2,$32,$34); - $$sink562 = $32; - } - } while(0); - $388 = ($$sink562|0)<($2|0); - $$555 = $388 ? $2 : $$sink562; - STACKTOP = sp;return ($$555|0); -} -function ___DOUBLE_BITS_675($0) { - $0 = +$0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; - $2 = HEAP32[tempDoublePtr+4>>2]|0; - tempRet0 = ($2); - return ($1|0); -} -function _frexpl($0,$1) { - $0 = +$0; - $1 = $1|0; - var $2 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (+_frexp($0,$1)); - return (+$2); -} -function _frexp($0,$1) { - $0 = +$0; - $1 = $1|0; - var $$0 = 0.0, $$016 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, $storemerge = 0, $trunc$clear = 0, label = 0; - var sp = 0; - sp = STACKTOP; - HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; - $3 = HEAP32[tempDoublePtr+4>>2]|0; - $4 = (_bitshift64Lshr(($2|0),($3|0),52)|0); - $5 = tempRet0; - $6 = $4&65535; - $trunc$clear = $6 & 2047; - switch ($trunc$clear<<16>>16) { - case 0: { - $7 = $0 != 0.0; - if ($7) { - $8 = $0 * 1.8446744073709552E+19; - $9 = (+_frexp($8,$1)); - $10 = HEAP32[$1>>2]|0; - $11 = (($10) + -64)|0; - $$016 = $9;$storemerge = $11; - } else { - $$016 = $0;$storemerge = 0; - } - HEAP32[$1>>2] = $storemerge; - $$0 = $$016; - break; - } - case 2047: { - $$0 = $0; - break; - } - default: { - $12 = $4 & 2047; - $13 = (($12) + -1022)|0; - HEAP32[$1>>2] = $13; - $14 = $3 & -2146435073; - $15 = $14 | 1071644672; - HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $15;$16 = +HEAPF64[tempDoublePtr>>3]; - $$0 = $16; - } - } - return (+$$0); -} -function _wcrtomb($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $not$ = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(0|0); - do { - if ($3) { - $$0 = 1; - } else { - $4 = ($1>>>0)<(128); - if ($4) { - $5 = $1&255; - HEAP8[$0>>0] = $5; - $$0 = 1; - break; - } - $6 = (___pthread_self_448()|0); - $7 = ((($6)) + 188|0); - $8 = HEAP32[$7>>2]|0; - $9 = HEAP32[$8>>2]|0; - $not$ = ($9|0)==(0|0); - if ($not$) { - $10 = $1 & -128; - $11 = ($10|0)==(57216); - if ($11) { - $13 = $1&255; - HEAP8[$0>>0] = $13; - $$0 = 1; - break; - } else { - $12 = (___errno_location()|0); - HEAP32[$12>>2] = 84; - $$0 = -1; - break; - } - } - $14 = ($1>>>0)<(2048); - if ($14) { - $15 = $1 >>> 6; - $16 = $15 | 192; - $17 = $16&255; - $18 = ((($0)) + 1|0); - HEAP8[$0>>0] = $17; - $19 = $1 & 63; - $20 = $19 | 128; - $21 = $20&255; - HEAP8[$18>>0] = $21; - $$0 = 2; - break; - } - $22 = ($1>>>0)<(55296); - $23 = $1 & -8192; - $24 = ($23|0)==(57344); - $or$cond = $22 | $24; - if ($or$cond) { - $25 = $1 >>> 12; - $26 = $25 | 224; - $27 = $26&255; - $28 = ((($0)) + 1|0); - HEAP8[$0>>0] = $27; - $29 = $1 >>> 6; - $30 = $29 & 63; - $31 = $30 | 128; - $32 = $31&255; - $33 = ((($0)) + 2|0); - HEAP8[$28>>0] = $32; - $34 = $1 & 63; - $35 = $34 | 128; - $36 = $35&255; - HEAP8[$33>>0] = $36; - $$0 = 3; - break; - } - $37 = (($1) + -65536)|0; - $38 = ($37>>>0)<(1048576); - if ($38) { - $39 = $1 >>> 18; - $40 = $39 | 240; - $41 = $40&255; - $42 = ((($0)) + 1|0); - HEAP8[$0>>0] = $41; - $43 = $1 >>> 12; - $44 = $43 & 63; - $45 = $44 | 128; - $46 = $45&255; - $47 = ((($0)) + 2|0); - HEAP8[$42>>0] = $46; - $48 = $1 >>> 6; - $49 = $48 & 63; - $50 = $49 | 128; - $51 = $50&255; - $52 = ((($0)) + 3|0); - HEAP8[$47>>0] = $51; - $53 = $1 & 63; - $54 = $53 | 128; - $55 = $54&255; - HEAP8[$52>>0] = $55; - $$0 = 4; - break; - } else { - $56 = (___errno_location()|0); - HEAP32[$56>>2] = 84; - $$0 = -1; - break; - } - } - } while(0); - return ($$0|0); -} -function ___pthread_self_448() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function ___pthread_self_105() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function ___strerror_l($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$012$lcssa = 0, $$01214 = 0, $$016 = 0, $$113 = 0, $$115 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $$016 = 0; - while(1) { - $3 = (11890 + ($$016)|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&255; - $6 = ($5|0)==($0|0); - if ($6) { - label = 2; - break; - } - $7 = (($$016) + 1)|0; - $8 = ($7|0)==(87); - if ($8) { - $$01214 = 11978;$$115 = 87; - label = 5; - break; - } else { - $$016 = $7; - } - } - if ((label|0) == 2) { - $2 = ($$016|0)==(0); - if ($2) { - $$012$lcssa = 11978; - } else { - $$01214 = 11978;$$115 = $$016; - label = 5; - } - } - if ((label|0) == 5) { - while(1) { - label = 0; - $$113 = $$01214; - while(1) { - $9 = HEAP8[$$113>>0]|0; - $10 = ($9<<24>>24)==(0); - $11 = ((($$113)) + 1|0); - if ($10) { - break; - } else { - $$113 = $11; - } - } - $12 = (($$115) + -1)|0; - $13 = ($12|0)==(0); - if ($13) { - $$012$lcssa = $11; - break; - } else { - $$01214 = $11;$$115 = $12; - label = 5; - } - } - } - $14 = ((($1)) + 20|0); - $15 = HEAP32[$14>>2]|0; - $16 = (___lctrans($$012$lcssa,$15)|0); - return ($16|0); -} -function ___lctrans($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (___lctrans_impl($0,$1)|0); - return ($2|0); -} -function ___lctrans_impl($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)==(0|0); - if ($2) { - $$0 = 0; - } else { - $3 = HEAP32[$1>>2]|0; - $4 = ((($1)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = (___mo_lookup($3,$5,$0)|0); - $$0 = $6; - } - $7 = ($$0|0)!=(0|0); - $8 = $7 ? $$0 : $0; - return ($8|0); -} -function ___mo_lookup($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $$090 = 0, $$094 = 0, $$191 = 0, $$195 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond102 = 0, $or$cond104 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = HEAP32[$0>>2]|0; - $4 = (($3) + 1794895138)|0; - $5 = ((($0)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = (_swapc($6,$4)|0); - $8 = ((($0)) + 12|0); - $9 = HEAP32[$8>>2]|0; - $10 = (_swapc($9,$4)|0); - $11 = ((($0)) + 16|0); - $12 = HEAP32[$11>>2]|0; - $13 = (_swapc($12,$4)|0); - $14 = $1 >>> 2; - $15 = ($7>>>0)<($14>>>0); - L1: do { - if ($15) { - $16 = $7 << 2; - $17 = (($1) - ($16))|0; - $18 = ($10>>>0)<($17>>>0); - $19 = ($13>>>0)<($17>>>0); - $or$cond = $18 & $19; - if ($or$cond) { - $20 = $13 | $10; - $21 = $20 & 3; - $22 = ($21|0)==(0); - if ($22) { - $23 = $10 >>> 2; - $24 = $13 >>> 2; - $$090 = 0;$$094 = $7; - while(1) { - $25 = $$094 >>> 1; - $26 = (($$090) + ($25))|0; - $27 = $26 << 1; - $28 = (($27) + ($23))|0; - $29 = (($0) + ($28<<2)|0); - $30 = HEAP32[$29>>2]|0; - $31 = (_swapc($30,$4)|0); - $32 = (($28) + 1)|0; - $33 = (($0) + ($32<<2)|0); - $34 = HEAP32[$33>>2]|0; - $35 = (_swapc($34,$4)|0); - $36 = ($35>>>0)<($1>>>0); - $37 = (($1) - ($35))|0; - $38 = ($31>>>0)<($37>>>0); - $or$cond102 = $36 & $38; - if (!($or$cond102)) { - $$4 = 0; - break L1; - } - $39 = (($35) + ($31))|0; - $40 = (($0) + ($39)|0); - $41 = HEAP8[$40>>0]|0; - $42 = ($41<<24>>24)==(0); - if (!($42)) { - $$4 = 0; - break L1; - } - $43 = (($0) + ($35)|0); - $44 = (_strcmp($2,$43)|0); - $45 = ($44|0)==(0); - if ($45) { - break; - } - $62 = ($$094|0)==(1); - $63 = ($44|0)<(0); - $64 = (($$094) - ($25))|0; - $$195 = $63 ? $25 : $64; - $$191 = $63 ? $$090 : $26; - if ($62) { - $$4 = 0; - break L1; - } else { - $$090 = $$191;$$094 = $$195; - } - } - $46 = (($27) + ($24))|0; - $47 = (($0) + ($46<<2)|0); - $48 = HEAP32[$47>>2]|0; - $49 = (_swapc($48,$4)|0); - $50 = (($46) + 1)|0; - $51 = (($0) + ($50<<2)|0); - $52 = HEAP32[$51>>2]|0; - $53 = (_swapc($52,$4)|0); - $54 = ($53>>>0)<($1>>>0); - $55 = (($1) - ($53))|0; - $56 = ($49>>>0)<($55>>>0); - $or$cond104 = $54 & $56; - if ($or$cond104) { - $57 = (($0) + ($53)|0); - $58 = (($53) + ($49))|0; - $59 = (($0) + ($58)|0); - $60 = HEAP8[$59>>0]|0; - $61 = ($60<<24>>24)==(0); - $$ = $61 ? $57 : 0; - $$4 = $$; - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } while(0); - return ($$4|0); -} -function _swapc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$ = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)==(0); - $3 = (_llvm_bswap_i32(($0|0))|0); - $$ = $2 ? $0 : $3; - return ($$|0); -} -function ___fwritex($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$038 = 0, $$042 = 0, $$1 = 0, $$139 = 0, $$141 = 0, $$143 = 0, $$pre = 0, $$pre47 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; - var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($2)) + 16|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)==(0|0); - if ($5) { - $7 = (___towrite($2)|0); - $8 = ($7|0)==(0); - if ($8) { - $$pre = HEAP32[$3>>2]|0; - $12 = $$pre; - label = 5; - } else { - $$1 = 0; - } - } else { - $6 = $4; - $12 = $6; - label = 5; - } - L5: do { - if ((label|0) == 5) { - $9 = ((($2)) + 20|0); - $10 = HEAP32[$9>>2]|0; - $11 = (($12) - ($10))|0; - $13 = ($11>>>0)<($1>>>0); - $14 = $10; - if ($13) { - $15 = ((($2)) + 36|0); - $16 = HEAP32[$15>>2]|0; - $17 = (FUNCTION_TABLE_iiii[$16 & 15]($2,$0,$1)|0); - $$1 = $17; - break; - } - $18 = ((($2)) + 75|0); - $19 = HEAP8[$18>>0]|0; - $20 = ($19<<24>>24)>(-1); - L10: do { - if ($20) { - $$038 = $1; - while(1) { - $21 = ($$038|0)==(0); - if ($21) { - $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; - break L10; - } - $22 = (($$038) + -1)|0; - $23 = (($0) + ($22)|0); - $24 = HEAP8[$23>>0]|0; - $25 = ($24<<24>>24)==(10); - if ($25) { - break; - } else { - $$038 = $22; - } - } - $26 = ((($2)) + 36|0); - $27 = HEAP32[$26>>2]|0; - $28 = (FUNCTION_TABLE_iiii[$27 & 15]($2,$0,$$038)|0); - $29 = ($28>>>0)<($$038>>>0); - if ($29) { - $$1 = $28; - break L5; - } - $30 = (($0) + ($$038)|0); - $$042 = (($1) - ($$038))|0; - $$pre47 = HEAP32[$9>>2]|0; - $$139 = $$038;$$141 = $30;$$143 = $$042;$31 = $$pre47; - } else { - $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; - } - } while(0); - _memcpy(($31|0),($$141|0),($$143|0))|0; - $32 = HEAP32[$9>>2]|0; - $33 = (($32) + ($$143)|0); - HEAP32[$9>>2] = $33; - $34 = (($$139) + ($$143))|0; - $$1 = $34; - } - } while(0); - return ($$1|0); -} -function ___towrite($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 74|0); - $2 = HEAP8[$1>>0]|0; - $3 = $2 << 24 >> 24; - $4 = (($3) + 255)|0; - $5 = $4 | $3; - $6 = $5&255; - HEAP8[$1>>0] = $6; - $7 = HEAP32[$0>>2]|0; - $8 = $7 & 8; - $9 = ($8|0)==(0); - if ($9) { - $11 = ((($0)) + 8|0); - HEAP32[$11>>2] = 0; - $12 = ((($0)) + 4|0); - HEAP32[$12>>2] = 0; - $13 = ((($0)) + 44|0); - $14 = HEAP32[$13>>2]|0; - $15 = ((($0)) + 28|0); - HEAP32[$15>>2] = $14; - $16 = ((($0)) + 20|0); - HEAP32[$16>>2] = $14; - $17 = ((($0)) + 48|0); - $18 = HEAP32[$17>>2]|0; - $19 = (($14) + ($18)|0); - $20 = ((($0)) + 16|0); - HEAP32[$20>>2] = $19; - $$0 = 0; - } else { - $10 = $7 | 32; - HEAP32[$0>>2] = $10; - $$0 = -1; - } - return ($$0|0); -} -function _sn_write($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($0)) + 16|0); - $4 = HEAP32[$3>>2]|0; - $5 = ((($0)) + 20|0); - $6 = HEAP32[$5>>2]|0; - $7 = $6; - $8 = (($4) - ($7))|0; - $9 = ($8>>>0)>($2>>>0); - $$ = $9 ? $2 : $8; - _memcpy(($6|0),($1|0),($$|0))|0; - $10 = HEAP32[$5>>2]|0; - $11 = (($10) + ($$)|0); - HEAP32[$5>>2] = $11; - return ($2|0); -} -function _strlen($0) { - $0 = $0|0; - var $$0 = 0, $$015$lcssa = 0, $$01519 = 0, $$1$lcssa = 0, $$pn = 0, $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = $0; - $2 = $1 & 3; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $$015$lcssa = $0; - label = 4; - } else { - $$01519 = $0;$23 = $1; - while(1) { - $4 = HEAP8[$$01519>>0]|0; - $5 = ($4<<24>>24)==(0); - if ($5) { - $$sink = $23; - break L1; - } - $6 = ((($$01519)) + 1|0); - $7 = $6; - $8 = $7 & 3; - $9 = ($8|0)==(0); - if ($9) { - $$015$lcssa = $6; - label = 4; - break; - } else { - $$01519 = $6;$23 = $7; - } - } - } - } while(0); - if ((label|0) == 4) { - $$0 = $$015$lcssa; - while(1) { - $10 = HEAP32[$$0>>2]|0; - $11 = (($10) + -16843009)|0; - $12 = $10 & -2139062144; - $13 = $12 ^ -2139062144; - $14 = $13 & $11; - $15 = ($14|0)==(0); - $16 = ((($$0)) + 4|0); - if ($15) { - $$0 = $16; - } else { - break; - } - } - $17 = $10&255; - $18 = ($17<<24>>24)==(0); - if ($18) { - $$1$lcssa = $$0; - } else { - $$pn = $$0; - while(1) { - $19 = ((($$pn)) + 1|0); - $$pre = HEAP8[$19>>0]|0; - $20 = ($$pre<<24>>24)==(0); - if ($20) { - $$1$lcssa = $19; - break; - } else { - $$pn = $19; - } - } - } - $21 = $$1$lcssa; - $$sink = $21; - } - $22 = (($$sink) - ($1))|0; - return ($22|0); -} -function _strchr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (___strchrnul($0,$1)|0); - $3 = HEAP8[$2>>0]|0; - $4 = $1&255; - $5 = ($3<<24>>24)==($4<<24>>24); - $6 = $5 ? $2 : 0; - return ($6|0); -} -function ___strchrnul($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$029$lcssa = 0, $$02936 = 0, $$030$lcssa = 0, $$03039 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond33 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = $1 & 255; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $8 = (_strlen($0)|0); - $9 = (($0) + ($8)|0); - $$0 = $9; - } else { - $4 = $0; - $5 = $4 & 3; - $6 = ($5|0)==(0); - if ($6) { - $$030$lcssa = $0; - } else { - $7 = $1&255; - $$03039 = $0; - while(1) { - $10 = HEAP8[$$03039>>0]|0; - $11 = ($10<<24>>24)==(0); - $12 = ($10<<24>>24)==($7<<24>>24); - $or$cond = $11 | $12; - if ($or$cond) { - $$0 = $$03039; - break L1; - } - $13 = ((($$03039)) + 1|0); - $14 = $13; - $15 = $14 & 3; - $16 = ($15|0)==(0); - if ($16) { - $$030$lcssa = $13; - break; - } else { - $$03039 = $13; - } - } - } - $17 = Math_imul($2, 16843009)|0; - $18 = HEAP32[$$030$lcssa>>2]|0; - $19 = (($18) + -16843009)|0; - $20 = $18 & -2139062144; - $21 = $20 ^ -2139062144; - $22 = $21 & $19; - $23 = ($22|0)==(0); - L10: do { - if ($23) { - $$02936 = $$030$lcssa;$25 = $18; - while(1) { - $24 = $25 ^ $17; - $26 = (($24) + -16843009)|0; - $27 = $24 & -2139062144; - $28 = $27 ^ -2139062144; - $29 = $28 & $26; - $30 = ($29|0)==(0); - if (!($30)) { - $$029$lcssa = $$02936; - break L10; - } - $31 = ((($$02936)) + 4|0); - $32 = HEAP32[$31>>2]|0; - $33 = (($32) + -16843009)|0; - $34 = $32 & -2139062144; - $35 = $34 ^ -2139062144; - $36 = $35 & $33; - $37 = ($36|0)==(0); - if ($37) { - $$02936 = $31;$25 = $32; - } else { - $$029$lcssa = $31; - break; - } - } - } else { - $$029$lcssa = $$030$lcssa; - } - } while(0); - $38 = $1&255; - $$1 = $$029$lcssa; - while(1) { - $39 = HEAP8[$$1>>0]|0; - $40 = ($39<<24>>24)==(0); - $41 = ($39<<24>>24)==($38<<24>>24); - $or$cond33 = $40 | $41; - $42 = ((($$1)) + 1|0); - if ($or$cond33) { - $$0 = $$1; - break; - } else { - $$1 = $42; - } - } - } - } while(0); - return ($$0|0); -} -function _strcpy($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - (___stpcpy($0,$1)|0); - return ($0|0); -} -function ___stpcpy($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0$lcssa = 0, $$025$lcssa = 0, $$02536 = 0, $$026$lcssa = 0, $$02642 = 0, $$027$lcssa = 0, $$02741 = 0, $$029 = 0, $$037 = 0, $$1$ph = 0, $$128$ph = 0, $$12834 = 0, $$135 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; - var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = $1; - $3 = $0; - $4 = $2 ^ $3; - $5 = $4 & 3; - $6 = ($5|0)==(0); - L1: do { - if ($6) { - $7 = $2 & 3; - $8 = ($7|0)==(0); - if ($8) { - $$026$lcssa = $1;$$027$lcssa = $0; - } else { - $$02642 = $1;$$02741 = $0; - while(1) { - $9 = HEAP8[$$02642>>0]|0; - HEAP8[$$02741>>0] = $9; - $10 = ($9<<24>>24)==(0); - if ($10) { - $$029 = $$02741; - break L1; - } - $11 = ((($$02642)) + 1|0); - $12 = ((($$02741)) + 1|0); - $13 = $11; - $14 = $13 & 3; - $15 = ($14|0)==(0); - if ($15) { - $$026$lcssa = $11;$$027$lcssa = $12; - break; - } else { - $$02642 = $11;$$02741 = $12; - } - } - } - $16 = HEAP32[$$026$lcssa>>2]|0; - $17 = (($16) + -16843009)|0; - $18 = $16 & -2139062144; - $19 = $18 ^ -2139062144; - $20 = $19 & $17; - $21 = ($20|0)==(0); - if ($21) { - $$02536 = $$027$lcssa;$$037 = $$026$lcssa;$24 = $16; - while(1) { - $22 = ((($$037)) + 4|0); - $23 = ((($$02536)) + 4|0); - HEAP32[$$02536>>2] = $24; - $25 = HEAP32[$22>>2]|0; - $26 = (($25) + -16843009)|0; - $27 = $25 & -2139062144; - $28 = $27 ^ -2139062144; - $29 = $28 & $26; - $30 = ($29|0)==(0); - if ($30) { - $$02536 = $23;$$037 = $22;$24 = $25; - } else { - $$0$lcssa = $22;$$025$lcssa = $23; - break; - } - } - } else { - $$0$lcssa = $$026$lcssa;$$025$lcssa = $$027$lcssa; - } - $$1$ph = $$0$lcssa;$$128$ph = $$025$lcssa; - label = 8; - } else { - $$1$ph = $1;$$128$ph = $0; - label = 8; - } - } while(0); - if ((label|0) == 8) { - $31 = HEAP8[$$1$ph>>0]|0; - HEAP8[$$128$ph>>0] = $31; - $32 = ($31<<24>>24)==(0); - if ($32) { - $$029 = $$128$ph; - } else { - $$12834 = $$128$ph;$$135 = $$1$ph; - while(1) { - $33 = ((($$135)) + 1|0); - $34 = ((($$12834)) + 1|0); - $35 = HEAP8[$33>>0]|0; - HEAP8[$34>>0] = $35; - $36 = ($35<<24>>24)==(0); - if ($36) { - $$029 = $34; - break; - } else { - $$12834 = $34;$$135 = $33; - } - } - } - } - return ($$029|0); -} -function ___ofl_lock() { - var label = 0, sp = 0; - sp = STACKTOP; - ___lock((17180|0)); - return (17188|0); -} -function ___ofl_unlock() { - var label = 0, sp = 0; - sp = STACKTOP; - ___unlock((17180|0)); - return; -} -function _fflush($0) { - $0 = $0|0; - var $$0 = 0, $$023 = 0, $$02325 = 0, $$02327 = 0, $$024$lcssa = 0, $$02426 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0|0); - do { - if ($1) { - $8 = HEAP32[839]|0; - $9 = ($8|0)==(0|0); - if ($9) { - $29 = 0; - } else { - $10 = HEAP32[839]|0; - $11 = (_fflush($10)|0); - $29 = $11; - } - $12 = (___ofl_lock()|0); - $$02325 = HEAP32[$12>>2]|0; - $13 = ($$02325|0)==(0|0); - if ($13) { - $$024$lcssa = $29; - } else { - $$02327 = $$02325;$$02426 = $29; - while(1) { - $14 = ((($$02327)) + 76|0); - $15 = HEAP32[$14>>2]|0; - $16 = ($15|0)>(-1); - if ($16) { - $17 = (___lockfile($$02327)|0); - $26 = $17; - } else { - $26 = 0; - } - $18 = ((($$02327)) + 20|0); - $19 = HEAP32[$18>>2]|0; - $20 = ((($$02327)) + 28|0); - $21 = HEAP32[$20>>2]|0; - $22 = ($19>>>0)>($21>>>0); - if ($22) { - $23 = (___fflush_unlocked($$02327)|0); - $24 = $23 | $$02426; - $$1 = $24; - } else { - $$1 = $$02426; - } - $25 = ($26|0)==(0); - if (!($25)) { - ___unlockfile($$02327); - } - $27 = ((($$02327)) + 56|0); - $$023 = HEAP32[$27>>2]|0; - $28 = ($$023|0)==(0|0); - if ($28) { - $$024$lcssa = $$1; - break; - } else { - $$02327 = $$023;$$02426 = $$1; - } - } - } - ___ofl_unlock(); - $$0 = $$024$lcssa; - } else { - $2 = ((($0)) + 76|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)>(-1); - if (!($4)) { - $5 = (___fflush_unlocked($0)|0); - $$0 = $5; - break; - } - $6 = (___lockfile($0)|0); - $phitmp = ($6|0)==(0); - $7 = (___fflush_unlocked($0)|0); - if ($phitmp) { - $$0 = $7; - } else { - ___unlockfile($0); - $$0 = $7; - } - } - } while(0); - return ($$0|0); -} -function ___fflush_unlocked($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 20|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 28|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($2>>>0)>($4>>>0); - if ($5) { - $6 = ((($0)) + 36|0); - $7 = HEAP32[$6>>2]|0; - (FUNCTION_TABLE_iiii[$7 & 15]($0,0,0)|0); - $8 = HEAP32[$1>>2]|0; - $9 = ($8|0)==(0|0); - if ($9) { - $$0 = -1; - } else { - label = 3; - } - } else { - label = 3; - } - if ((label|0) == 3) { - $10 = ((($0)) + 4|0); - $11 = HEAP32[$10>>2]|0; - $12 = ((($0)) + 8|0); - $13 = HEAP32[$12>>2]|0; - $14 = ($11>>>0)<($13>>>0); - if ($14) { - $15 = $11; - $16 = $13; - $17 = (($15) - ($16))|0; - $18 = ((($0)) + 40|0); - $19 = HEAP32[$18>>2]|0; - (FUNCTION_TABLE_iiii[$19 & 15]($0,$17,1)|0); - } - $20 = ((($0)) + 16|0); - HEAP32[$20>>2] = 0; - HEAP32[$3>>2] = 0; - HEAP32[$1>>2] = 0; - HEAP32[$12>>2] = 0; - HEAP32[$10>>2] = 0; - $$0 = 0; - } - return ($$0|0); -} -function _strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = ($2<<24>>24)==(0); - do { - if ($3) { - $$0 = $0; - } else { - $4 = $2 << 24 >> 24; - $5 = (_strchr($0,$4)|0); - $6 = ($5|0)==(0|0); - if ($6) { - $$0 = 0; - } else { - $7 = ((($1)) + 1|0); - $8 = HEAP8[$7>>0]|0; - $9 = ($8<<24>>24)==(0); - if ($9) { - $$0 = $5; - } else { - $10 = ((($5)) + 1|0); - $11 = HEAP8[$10>>0]|0; - $12 = ($11<<24>>24)==(0); - if ($12) { - $$0 = 0; - } else { - $13 = ((($1)) + 2|0); - $14 = HEAP8[$13>>0]|0; - $15 = ($14<<24>>24)==(0); - if ($15) { - $16 = (_twobyte_strstr($5,$1)|0); - $$0 = $16; - break; - } - $17 = ((($5)) + 2|0); - $18 = HEAP8[$17>>0]|0; - $19 = ($18<<24>>24)==(0); - if ($19) { - $$0 = 0; - } else { - $20 = ((($1)) + 3|0); - $21 = HEAP8[$20>>0]|0; - $22 = ($21<<24>>24)==(0); - if ($22) { - $23 = (_threebyte_strstr($5,$1)|0); - $$0 = $23; - break; - } - $24 = ((($5)) + 3|0); - $25 = HEAP8[$24>>0]|0; - $26 = ($25<<24>>24)==(0); - if ($26) { - $$0 = 0; - } else { - $27 = ((($1)) + 4|0); - $28 = HEAP8[$27>>0]|0; - $29 = ($28<<24>>24)==(0); - if ($29) { - $30 = (_fourbyte_strstr($5,$1)|0); - $$0 = $30; - break; - } else { - $31 = (_twoway_strstr($5,$1)|0); - $$0 = $31; - break; - } - } - } - } - } - } - } - } while(0); - return ($$0|0); -} -function _twobyte_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$lcssa = 0, $$sink = 0, $$sink$in = 0, $$sink$masked = 0, $$sink17$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = $2&255; - $4 = $3 << 8; - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&255; - $8 = $4 | $7; - $9 = HEAP8[$0>>0]|0; - $10 = $9&255; - $$sink$in = $10;$$sink17$sink = $0; - while(1) { - $11 = ((($$sink17$sink)) + 1|0); - $12 = HEAP8[$11>>0]|0; - $13 = ($12<<24>>24)==(0); - if ($13) { - $$lcssa = 0; - break; - } - $$sink = $$sink$in << 8; - $14 = $12&255; - $$sink$masked = $$sink & 65280; - $15 = $14 | $$sink$masked; - $16 = ($15|0)==($8|0); - if ($16) { - $$lcssa = $$sink17$sink; - break; - } else { - $$sink$in = $15;$$sink17$sink = $11; - } - } - return ($$lcssa|0); -} -function _threebyte_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$016$lcssa = 0, $$01619 = 0, $$020 = 0, $$lcssa = 0, $$not = 0, $$not17 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond18 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = $2&255; - $4 = $3 << 24; - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&255; - $8 = $7 << 16; - $9 = $8 | $4; - $10 = ((($1)) + 2|0); - $11 = HEAP8[$10>>0]|0; - $12 = $11&255; - $13 = $12 << 8; - $14 = $9 | $13; - $15 = HEAP8[$0>>0]|0; - $16 = $15&255; - $17 = $16 << 24; - $18 = ((($0)) + 1|0); - $19 = HEAP8[$18>>0]|0; - $20 = $19&255; - $21 = $20 << 16; - $22 = $21 | $17; - $23 = ((($0)) + 2|0); - $24 = HEAP8[$23>>0]|0; - $25 = $24&255; - $26 = $25 << 8; - $27 = $22 | $26; - $28 = ($24<<24>>24)!=(0); - $$not17 = $28 ^ 1; - $29 = ($27|0)==($14|0); - $or$cond18 = $29 | $$not17; - if ($or$cond18) { - $$016$lcssa = $23;$$lcssa = $28; - } else { - $$01619 = $23;$$020 = $27; - while(1) { - $30 = ((($$01619)) + 1|0); - $31 = HEAP8[$30>>0]|0; - $32 = $31&255; - $33 = $32 | $$020; - $34 = $33 << 8; - $35 = ($31<<24>>24)!=(0); - $$not = $35 ^ 1; - $36 = ($34|0)==($14|0); - $or$cond = $36 | $$not; - if ($or$cond) { - $$016$lcssa = $30;$$lcssa = $35; - break; - } else { - $$01619 = $30;$$020 = $34; - } - } - } - $37 = ((($$016$lcssa)) + -2|0); - $38 = $$lcssa ? $37 : 0; - return ($38|0); -} -function _fourbyte_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$lcssa = 0, $$not = 0, $$not22 = 0, $$sink21$lcssa = 0, $$sink2124 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond23 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = $2&255; - $4 = $3 << 24; - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&255; - $8 = $7 << 16; - $9 = $8 | $4; - $10 = ((($1)) + 2|0); - $11 = HEAP8[$10>>0]|0; - $12 = $11&255; - $13 = $12 << 8; - $14 = $9 | $13; - $15 = ((($1)) + 3|0); - $16 = HEAP8[$15>>0]|0; - $17 = $16&255; - $18 = $14 | $17; - $19 = HEAP8[$0>>0]|0; - $20 = $19&255; - $21 = $20 << 24; - $22 = ((($0)) + 1|0); - $23 = HEAP8[$22>>0]|0; - $24 = $23&255; - $25 = $24 << 16; - $26 = $25 | $21; - $27 = ((($0)) + 2|0); - $28 = HEAP8[$27>>0]|0; - $29 = $28&255; - $30 = $29 << 8; - $31 = $26 | $30; - $32 = ((($0)) + 3|0); - $33 = HEAP8[$32>>0]|0; - $34 = $33&255; - $35 = $34 | $31; - $36 = ($33<<24>>24)!=(0); - $$not22 = $36 ^ 1; - $37 = ($35|0)==($18|0); - $or$cond23 = $37 | $$not22; - if ($or$cond23) { - $$lcssa = $36;$$sink21$lcssa = $32; - } else { - $$sink2124 = $32;$39 = $35; - while(1) { - $38 = $39 << 8; - $40 = ((($$sink2124)) + 1|0); - $41 = HEAP8[$40>>0]|0; - $42 = $41&255; - $43 = $42 | $38; - $44 = ($41<<24>>24)!=(0); - $$not = $44 ^ 1; - $45 = ($43|0)==($18|0); - $or$cond = $45 | $$not; - if ($or$cond) { - $$lcssa = $44;$$sink21$lcssa = $40; - break; - } else { - $$sink2124 = $40;$39 = $43; - } - } - } - $46 = ((($$sink21$lcssa)) + -3|0); - $47 = $$lcssa ? $46 : 0; - return ($47|0); -} -function _twoway_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0166 = 0, $$0168 = 0, $$0169 = 0, $$0169$be = 0, $$0170 = 0, $$0175$ph$ph$lcssa220 = 0, $$0175$ph$ph$lcssa220323 = 0, $$0175$ph$ph256 = 0, $$0179244 = 0, $$0183$ph200$ph255 = 0, $$0183$ph200250 = 0, $$0183$ph262 = 0, $$0185$ph$lcssa = 0, $$0185$ph$lcssa322 = 0, $$0185$ph261 = 0, $$0187$lcssa320321 = 0, $$0187266 = 0, $$1176$$0175 = 0, $$1176$ph$ph$lcssa211 = 0, $$1176$ph$ph235 = 0; - var $$1180224 = 0, $$1184$ph196$ph234 = 0, $$1184$ph196229 = 0, $$1184$ph241 = 0, $$1186$$0185 = 0, $$1186$$0185$ = 0, $$1186$ph$lcssa = 0, $$1186$ph240 = 0, $$2181 = 0, $$2181$sink = 0, $$3 = 0, $$3173 = 0, $$3178 = 0, $$3182223 = 0, $$4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0; - var $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0; - var $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; - var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; - var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; - var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; - var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0; - var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond191 = 0, $cond191222 = 0, $cond265 = 0, $div = 0, $div188 = 0, $or$cond = 0, $or$cond190 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); - $2 = sp + 1024|0; - $3 = sp; - ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; - $4 = HEAP8[$1>>0]|0; - $cond265 = ($4<<24>>24)==(0); - L1: do { - if ($cond265) { - $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = 0;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; - label = 27; - } else { - $5 = $4&255; - $$0187266 = 0;$12 = $4;$20 = $5; - while(1) { - $8 = (($0) + ($$0187266)|0); - $9 = HEAP8[$8>>0]|0; - $10 = ($9<<24>>24)==(0); - if ($10) { - $$3 = 0; - break L1; - } - $11 = $12 & 31; - $13 = $11&255; - $14 = 1 << $13; - $div188 = ($12&255) >>> 5; - $15 = $div188&255; - $16 = (($2) + ($15<<2)|0); - $17 = HEAP32[$16>>2]|0; - $18 = $17 | $14; - HEAP32[$16>>2] = $18; - $7 = (($$0187266) + 1)|0; - $19 = (($3) + ($20<<2)|0); - HEAP32[$19>>2] = $7; - $21 = (($1) + ($7)|0); - $22 = HEAP8[$21>>0]|0; - $23 = $22&255; - $cond = ($22<<24>>24)==(0); - if ($cond) { - break; - } else { - $$0187266 = $7;$12 = $22;$20 = $23; - } - } - $6 = ($7>>>0)>(1); - if ($6) { - $$0183$ph262 = 0;$$0185$ph261 = -1;$129 = 1; - L7: while(1) { - $$0175$ph$ph256 = 1;$$0183$ph200$ph255 = $$0183$ph262;$132 = $129; - while(1) { - $$0183$ph200250 = $$0183$ph200$ph255;$131 = $132; - L11: while(1) { - $$0179244 = 1;$31 = $131; - while(1) { - $27 = (($$0179244) + ($$0185$ph261))|0; - $28 = (($1) + ($27)|0); - $29 = HEAP8[$28>>0]|0; - $30 = (($1) + ($31)|0); - $32 = HEAP8[$30>>0]|0; - $33 = ($29<<24>>24)==($32<<24>>24); - if (!($33)) { - break L11; - } - $34 = ($$0179244|0)==($$0175$ph$ph256|0); - $25 = (($$0179244) + 1)|0; - if ($34) { - break; - } - $24 = (($25) + ($$0183$ph200250))|0; - $26 = ($24>>>0)<($7>>>0); - if ($26) { - $$0179244 = $25;$31 = $24; - } else { - $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; - break L7; - } - } - $35 = (($$0175$ph$ph256) + ($$0183$ph200250))|0; - $36 = (($35) + 1)|0; - $37 = ($36>>>0)<($7>>>0); - if ($37) { - $$0183$ph200250 = $35;$131 = $36; - } else { - $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; - break L7; - } - } - $38 = ($29&255)>($32&255); - $39 = (($31) - ($$0185$ph261))|0; - if (!($38)) { - break; - } - $43 = (($31) + 1)|0; - $44 = ($43>>>0)<($7>>>0); - if ($44) { - $$0175$ph$ph256 = $39;$$0183$ph200$ph255 = $31;$132 = $43; - } else { - $$0175$ph$ph$lcssa220 = $39;$$0185$ph$lcssa = $$0185$ph261; - break L7; - } - } - $40 = (($$0183$ph200250) + 1)|0; - $41 = (($$0183$ph200250) + 2)|0; - $42 = ($41>>>0)<($7>>>0); - if ($42) { - $$0183$ph262 = $40;$$0185$ph261 = $$0183$ph200250;$129 = $41; - } else { - $$0175$ph$ph$lcssa220 = 1;$$0185$ph$lcssa = $$0183$ph200250; - break; - } - } - if ($6) { - $$1184$ph241 = 0;$$1186$ph240 = -1;$130 = 1; - while(1) { - $$1176$ph$ph235 = 1;$$1184$ph196$ph234 = $$1184$ph241;$134 = $130; - while(1) { - $$1184$ph196229 = $$1184$ph196$ph234;$133 = $134; - L26: while(1) { - $$1180224 = 1;$52 = $133; - while(1) { - $48 = (($$1180224) + ($$1186$ph240))|0; - $49 = (($1) + ($48)|0); - $50 = HEAP8[$49>>0]|0; - $51 = (($1) + ($52)|0); - $53 = HEAP8[$51>>0]|0; - $54 = ($50<<24>>24)==($53<<24>>24); - if (!($54)) { - break L26; - } - $55 = ($$1180224|0)==($$1176$ph$ph235|0); - $46 = (($$1180224) + 1)|0; - if ($55) { - break; - } - $45 = (($46) + ($$1184$ph196229))|0; - $47 = ($45>>>0)<($7>>>0); - if ($47) { - $$1180224 = $46;$52 = $45; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; - label = 27; - break L1; - } - } - $56 = (($$1176$ph$ph235) + ($$1184$ph196229))|0; - $57 = (($56) + 1)|0; - $58 = ($57>>>0)<($7>>>0); - if ($58) { - $$1184$ph196229 = $56;$133 = $57; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; - label = 27; - break L1; - } - } - $59 = ($50&255)<($53&255); - $60 = (($52) - ($$1186$ph240))|0; - if (!($59)) { - break; - } - $64 = (($52) + 1)|0; - $65 = ($64>>>0)<($7>>>0); - if ($65) { - $$1176$ph$ph235 = $60;$$1184$ph196$ph234 = $52;$134 = $64; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $60;$$1186$ph$lcssa = $$1186$ph240; - label = 27; - break L1; - } - } - $61 = (($$1184$ph196229) + 1)|0; - $62 = (($$1184$ph196229) + 2)|0; - $63 = ($62>>>0)<($7>>>0); - if ($63) { - $$1184$ph241 = $61;$$1186$ph240 = $$1184$ph196229;$130 = $62; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = $$1184$ph196229; - label = 27; - break; - } - } - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; - label = 27; - } - } else { - $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; - label = 27; - } - } - } while(0); - L36: do { - if ((label|0) == 27) { - $66 = (($$1186$ph$lcssa) + 1)|0; - $67 = (($$0185$ph$lcssa322) + 1)|0; - $68 = ($66>>>0)>($67>>>0); - $$1176$$0175 = $68 ? $$1176$ph$ph$lcssa211 : $$0175$ph$ph$lcssa220323; - $$1186$$0185 = $68 ? $$1186$ph$lcssa : $$0185$ph$lcssa322; - $69 = (($1) + ($$1176$$0175)|0); - $70 = (($$1186$$0185) + 1)|0; - $71 = (_memcmp($1,$69,$70)|0); - $72 = ($71|0)==(0); - if ($72) { - $77 = (($$0187$lcssa320321) - ($$1176$$0175))|0; - $$0168 = $77;$$3178 = $$1176$$0175; - } else { - $73 = (($$0187$lcssa320321) - ($$1186$$0185))|0; - $74 = (($73) + -1)|0; - $75 = ($$1186$$0185>>>0)>($74>>>0); - $$1186$$0185$ = $75 ? $$1186$$0185 : $74; - $76 = (($$1186$$0185$) + 1)|0; - $$0168 = 0;$$3178 = $76; - } - $78 = $$0187$lcssa320321 | 63; - $79 = (($$0187$lcssa320321) + -1)|0; - $80 = ($$0168|0)!=(0); - $81 = (($$0187$lcssa320321) - ($$3178))|0; - $$0166 = $0;$$0169 = 0;$$0170 = $0; - while(1) { - $82 = $$0170; - $83 = $$0166; - $84 = (($82) - ($83))|0; - $85 = ($84>>>0)<($$0187$lcssa320321>>>0); - do { - if ($85) { - $86 = (_memchr($$0170,0,$78)|0); - $87 = ($86|0)==(0|0); - if ($87) { - $91 = (($$0170) + ($78)|0); - $$3173 = $91; - break; - } else { - $88 = $86; - $89 = (($88) - ($83))|0; - $90 = ($89>>>0)<($$0187$lcssa320321>>>0); - if ($90) { - $$3 = 0; - break L36; - } else { - $$3173 = $86; - break; - } - } - } else { - $$3173 = $$0170; - } - } while(0); - $92 = (($$0166) + ($79)|0); - $93 = HEAP8[$92>>0]|0; - $div = ($93&255) >>> 5; - $94 = $div&255; - $95 = (($2) + ($94<<2)|0); - $96 = HEAP32[$95>>2]|0; - $97 = $93 & 31; - $98 = $97&255; - $99 = 1 << $98; - $100 = $99 & $96; - $101 = ($100|0)==(0); - L50: do { - if ($101) { - $$0169$be = 0;$$2181$sink = $$0187$lcssa320321; - } else { - $102 = $93&255; - $103 = (($3) + ($102<<2)|0); - $104 = HEAP32[$103>>2]|0; - $105 = (($$0187$lcssa320321) - ($104))|0; - $106 = ($105|0)==(0); - if (!($106)) { - $107 = ($$0169|0)!=(0); - $or$cond = $80 & $107; - $108 = ($105>>>0)<($$3178>>>0); - $or$cond190 = $or$cond & $108; - $$2181 = $or$cond190 ? $81 : $105; - $$0169$be = 0;$$2181$sink = $$2181; - break; - } - $110 = ($70>>>0)>($$0169>>>0); - $111 = $110 ? $70 : $$0169; - $112 = (($1) + ($111)|0); - $113 = HEAP8[$112>>0]|0; - $cond191222 = ($113<<24>>24)==(0); - L55: do { - if ($cond191222) { - $$4 = $70; - } else { - $$3182223 = $111;$117 = $113; - while(1) { - $114 = (($$0166) + ($$3182223)|0); - $115 = HEAP8[$114>>0]|0; - $116 = ($117<<24>>24)==($115<<24>>24); - if (!($116)) { - break; - } - $118 = (($$3182223) + 1)|0; - $119 = (($1) + ($118)|0); - $120 = HEAP8[$119>>0]|0; - $cond191 = ($120<<24>>24)==(0); - if ($cond191) { - $$4 = $70; - break L55; - } else { - $$3182223 = $118;$117 = $120; - } - } - $121 = (($$3182223) - ($$1186$$0185))|0; - $$0169$be = 0;$$2181$sink = $121; - break L50; - } - } while(0); - while(1) { - $122 = ($$4>>>0)>($$0169>>>0); - if (!($122)) { - $$3 = $$0166; - break L36; - } - $123 = (($$4) + -1)|0; - $124 = (($1) + ($123)|0); - $125 = HEAP8[$124>>0]|0; - $126 = (($$0166) + ($123)|0); - $127 = HEAP8[$126>>0]|0; - $128 = ($125<<24>>24)==($127<<24>>24); - if ($128) { - $$4 = $123; - } else { - $$0169$be = $$0168;$$2181$sink = $$3178; - break; - } - } - } - } while(0); - $109 = (($$0166) + ($$2181$sink)|0); - $$0166 = $109;$$0169 = $$0169$be;$$0170 = $$3173; - } - } - } while(0); - STACKTOP = sp;return ($$3|0); -} -function _strspn($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$01925 = 0, $$020 = 0, $$1$lcssa = 0, $$123 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0, $div21 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $2 = sp; - ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; - $3 = HEAP8[$1>>0]|0; - $4 = ($3<<24>>24)==(0); - do { - if ($4) { - $$0 = 0; - } else { - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = ($6<<24>>24)==(0); - if ($7) { - $$020 = $0; - while(1) { - $8 = HEAP8[$$020>>0]|0; - $9 = ($8<<24>>24)==($3<<24>>24); - $10 = ((($$020)) + 1|0); - if ($9) { - $$020 = $10; - } else { - break; - } - } - $11 = $$020; - $12 = $0; - $13 = (($11) - ($12))|0; - $$0 = $13; - break; - } else { - $$01925 = $1;$17 = $3; - } - while(1) { - $16 = $17 & 31; - $18 = $16&255; - $19 = 1 << $18; - $div21 = ($17&255) >>> 5; - $20 = $div21&255; - $21 = (($2) + ($20<<2)|0); - $22 = HEAP32[$21>>2]|0; - $23 = $22 | $19; - HEAP32[$21>>2] = $23; - $24 = ((($$01925)) + 1|0); - $25 = HEAP8[$24>>0]|0; - $26 = ($25<<24>>24)==(0); - if ($26) { - break; - } else { - $$01925 = $24;$17 = $25; - } - } - $14 = HEAP8[$0>>0]|0; - $15 = ($14<<24>>24)==(0); - L10: do { - if ($15) { - $$1$lcssa = $0; - } else { - $$123 = $0;$27 = $14; - while(1) { - $div = ($27&255) >>> 5; - $28 = $div&255; - $29 = (($2) + ($28<<2)|0); - $30 = HEAP32[$29>>2]|0; - $31 = $27 & 31; - $32 = $31&255; - $33 = 1 << $32; - $34 = $30 & $33; - $35 = ($34|0)==(0); - if ($35) { - $$1$lcssa = $$123; - break L10; - } - $36 = ((($$123)) + 1|0); - $37 = HEAP8[$36>>0]|0; - $38 = ($37<<24>>24)==(0); - if ($38) { - $$1$lcssa = $36; - break; - } else { - $$123 = $36;$27 = $37; - } - } - } - } while(0); - $39 = $$1$lcssa; - $40 = $0; - $41 = (($39) - ($40))|0; - $$0 = $41; - } - } while(0); - STACKTOP = sp;return ($$0|0); -} -function _srand($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (($0) + -1)|0; - $2 = 14048; - $3 = $2; - HEAP32[$3>>2] = $1; - $4 = (($2) + 4)|0; - $5 = $4; - HEAP32[$5>>2] = 0; - return; -} -function _vprintf($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP32[807]|0; - $3 = (_vfprintf($2,$0,$1)|0); - return ($3|0); -} -function _strcspn($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$01824 = 0, $$019$sink = 0, $$01922 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0; - var $div20 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $2 = sp; - $3 = HEAP8[$1>>0]|0; - $4 = ($3<<24>>24)==(0); - L1: do { - if ($4) { - label = 3; - } else { - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = ($6<<24>>24)==(0); - if ($7) { - label = 3; - } else { - ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; - $$01824 = $1;$13 = $3; - while(1) { - $12 = $13 & 31; - $14 = $12&255; - $15 = 1 << $14; - $div20 = ($13&255) >>> 5; - $16 = $div20&255; - $17 = (($2) + ($16<<2)|0); - $18 = HEAP32[$17>>2]|0; - $19 = $18 | $15; - HEAP32[$17>>2] = $19; - $20 = ((($$01824)) + 1|0); - $21 = HEAP8[$20>>0]|0; - $22 = ($21<<24>>24)==(0); - if ($22) { - break; - } else { - $$01824 = $20;$13 = $21; - } - } - $10 = HEAP8[$0>>0]|0; - $11 = ($10<<24>>24)==(0); - if ($11) { - $$019$sink = $0; - } else { - $$01922 = $0;$23 = $10; - while(1) { - $div = ($23&255) >>> 5; - $24 = $div&255; - $25 = (($2) + ($24<<2)|0); - $26 = HEAP32[$25>>2]|0; - $27 = $23 & 31; - $28 = $27&255; - $29 = 1 << $28; - $30 = $26 & $29; - $31 = ($30|0)==(0); - if (!($31)) { - $$019$sink = $$01922; - break L1; - } - $32 = ((($$01922)) + 1|0); - $33 = HEAP8[$32>>0]|0; - $34 = ($33<<24>>24)==(0); - if ($34) { - $$019$sink = $32; - break; - } else { - $$01922 = $32;$23 = $33; - } - } - } - } - } - } while(0); - if ((label|0) == 3) { - $8 = $3 << 24 >> 24; - $9 = (___strchrnul($0,$8)|0); - $$019$sink = $9; - } - $35 = $$019$sink; - $36 = $0; - $37 = (($35) - ($36))|0; - STACKTOP = sp;return ($37|0); -} -function _strcat($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (_strlen($0)|0); - $3 = (($0) + ($2)|0); - (_strcpy($3,$1)|0); - return ($0|0); -} -function _strtok($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$010 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($0|0)==(0|0); - if ($2) { - $3 = HEAP32[4298]|0; - $4 = ($3|0)==(0|0); - if ($4) { - $$0 = 0; - } else { - $$010 = $3; - label = 3; - } - } else { - $$010 = $0; - label = 3; - } - do { - if ((label|0) == 3) { - $5 = (_strspn($$010,$1)|0); - $6 = (($$010) + ($5)|0); - $7 = HEAP8[$6>>0]|0; - $8 = ($7<<24>>24)==(0); - if ($8) { - HEAP32[4298] = 0; - $$0 = 0; - break; - } - $9 = (_strcspn($6,$1)|0); - $10 = (($6) + ($9)|0); - HEAP32[4298] = $10; - $11 = HEAP8[$10>>0]|0; - $12 = ($11<<24>>24)==(0); - if ($12) { - HEAP32[4298] = 0; - $$0 = $6; - break; - } else { - $13 = ((($10)) + 1|0); - HEAP32[4298] = $13; - HEAP8[$10>>0] = 0; - $$0 = $6; - break; - } - } - } while(0); - return ($$0|0); -} -function runPostSets() { -} -function _memset(ptr, value, num) { - ptr = ptr|0; value = value|0; num = num|0; - var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0; - end = (ptr + num)|0; - - value = value & 0xff; - if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) { - while ((ptr&3) != 0) { - HEAP8[((ptr)>>0)]=value; - ptr = (ptr+1)|0; - } - - aligned_end = (end & -4)|0; - block_aligned_end = (aligned_end - 64)|0; - value4 = value | (value << 8) | (value << 16) | (value << 24); - - while((ptr|0) <= (block_aligned_end|0)) { - HEAP32[((ptr)>>2)]=value4; - HEAP32[(((ptr)+(4))>>2)]=value4; - HEAP32[(((ptr)+(8))>>2)]=value4; - HEAP32[(((ptr)+(12))>>2)]=value4; - HEAP32[(((ptr)+(16))>>2)]=value4; - HEAP32[(((ptr)+(20))>>2)]=value4; - HEAP32[(((ptr)+(24))>>2)]=value4; - HEAP32[(((ptr)+(28))>>2)]=value4; - HEAP32[(((ptr)+(32))>>2)]=value4; - HEAP32[(((ptr)+(36))>>2)]=value4; - HEAP32[(((ptr)+(40))>>2)]=value4; - HEAP32[(((ptr)+(44))>>2)]=value4; - HEAP32[(((ptr)+(48))>>2)]=value4; - HEAP32[(((ptr)+(52))>>2)]=value4; - HEAP32[(((ptr)+(56))>>2)]=value4; - HEAP32[(((ptr)+(60))>>2)]=value4; - ptr = (ptr + 64)|0; - } - - while ((ptr|0) < (aligned_end|0) ) { - HEAP32[((ptr)>>2)]=value4; - ptr = (ptr+4)|0; - } - } - // The remaining bytes. - while ((ptr|0) < (end|0)) { - HEAP8[((ptr)>>0)]=value; - ptr = (ptr+1)|0; - } - return (end-num)|0; -} -function _i64Subtract(a, b, c, d) { - a = a|0; b = b|0; c = c|0; d = d|0; - var l = 0, h = 0; - l = (a - c)>>>0; - h = (b - d)>>>0; - h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow. - return ((tempRet0 = h,l|0)|0); -} -function _i64Add(a, b, c, d) { - /* - x = a + b*2^32 - y = c + d*2^32 - result = l + h*2^32 - */ - a = a|0; b = b|0; c = c|0; d = d|0; - var l = 0, h = 0; - l = (a + c)>>>0; - h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow. - return ((tempRet0 = h,l|0)|0); -} -function _llvm_cttz_i32(x) { - x = x|0; - var ret = 0; - ret = ((HEAP8[(((cttz_i8)+(x & 0xff))>>0)])|0); - if ((ret|0) < 8) return ret|0; - ret = ((HEAP8[(((cttz_i8)+((x >> 8)&0xff))>>0)])|0); - if ((ret|0) < 8) return (ret + 8)|0; - ret = ((HEAP8[(((cttz_i8)+((x >> 16)&0xff))>>0)])|0); - if ((ret|0) < 8) return (ret + 16)|0; - return (((HEAP8[(((cttz_i8)+(x >>> 24))>>0)])|0) + 24)|0; -} -function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - $rem = $rem | 0; - var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0; - $n_sroa_0_0_extract_trunc = $a$0; - $n_sroa_1_4_extract_shift$0 = $a$1; - $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; - $d_sroa_0_0_extract_trunc = $b$0; - $d_sroa_1_4_extract_shift$0 = $b$1; - $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; - if (($n_sroa_1_4_extract_trunc | 0) == 0) { - $4 = ($rem | 0) != 0; - if (($d_sroa_1_4_extract_trunc | 0) == 0) { - if ($4) { - HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); - HEAP32[$rem + 4 >> 2] = 0; - } - $_0$1 = 0; - $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - if (!$4) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - } - $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; - do { - if (($d_sroa_0_0_extract_trunc | 0) == 0) { - if ($17) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); - HEAP32[$rem + 4 >> 2] = 0; - } - $_0$1 = 0; - $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - if (($n_sroa_0_0_extract_trunc | 0) == 0) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0; - HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); - } - $_0$1 = 0; - $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $37 = $d_sroa_1_4_extract_trunc - 1 | 0; - if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0; - } - $_0$1 = 0; - $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; - $51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - if ($51 >>> 0 <= 30) { - $57 = $51 + 1 | 0; - $58 = 31 - $51 | 0; - $sr_1_ph = $57; - $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0); - $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0); - $q_sroa_0_1_ph = 0; - $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58; - break; - } - if (($rem | 0) == 0) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - if (!$17) { - $117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; - $119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - if ($119 >>> 0 <= 31) { - $125 = $119 + 1 | 0; - $126 = 31 - $119 | 0; - $130 = $119 - 31 >> 31; - $sr_1_ph = $125; - $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126; - $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130; - $q_sroa_0_1_ph = 0; - $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126; - break; - } - if (($rem | 0) == 0) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $66 = $d_sroa_0_0_extract_trunc - 1 | 0; - if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) { - $86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0; - $88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - $89 = 64 - $88 | 0; - $91 = 32 - $88 | 0; - $92 = $91 >> 31; - $95 = $88 - 32 | 0; - $105 = $95 >> 31; - $sr_1_ph = $88; - $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105; - $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0); - $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92; - $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31; - break; - } - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; - HEAP32[$rem + 4 >> 2] = 0; - } - if (($d_sroa_0_0_extract_trunc | 0) == 1) { - $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$0 = 0 | $a$0 & -1; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; - $_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0); - $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - } - } while (0); - if (($sr_1_ph | 0) == 0) { - $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; - $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; - $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; - $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; - $carry_0_lcssa$1 = 0; - $carry_0_lcssa$0 = 0; - } else { - $d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1; - $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0; - $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0; - $137$1 = tempRet0; - $q_sroa_1_1198 = $q_sroa_1_1_ph; - $q_sroa_0_1199 = $q_sroa_0_1_ph; - $r_sroa_1_1200 = $r_sroa_1_1_ph; - $r_sroa_0_1201 = $r_sroa_0_1_ph; - $sr_1202 = $sr_1_ph; - $carry_0203 = 0; - while (1) { - $147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; - $149 = $carry_0203 | $q_sroa_0_1199 << 1; - $r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | $q_sroa_1_1198 >>> 31); - $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; - _i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0) | 0; - $150$1 = tempRet0; - $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; - $152 = $151$0 & 1; - $154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1 | 0) | 0; - $r_sroa_0_0_extract_trunc = $154$0; - $r_sroa_1_4_extract_trunc = tempRet0; - $155 = $sr_1202 - 1 | 0; - if (($155 | 0) == 0) { - break; - } else { - $q_sroa_1_1198 = $147; - $q_sroa_0_1199 = $149; - $r_sroa_1_1200 = $r_sroa_1_4_extract_trunc; - $r_sroa_0_1201 = $r_sroa_0_0_extract_trunc; - $sr_1202 = $155; - $carry_0203 = $152; - } - } - $q_sroa_1_1_lcssa = $147; - $q_sroa_0_1_lcssa = $149; - $r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc; - $r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc; - $carry_0_lcssa$1 = 0; - $carry_0_lcssa$0 = $152; - } - $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; - $q_sroa_0_0_insert_ext75$1 = 0; - $q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1; - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa; - HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0; - } - $_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | $q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1; - $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0; - return (tempRet0 = $_0$1, $_0$0) | 0; -} -function ___udivdi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $1$0 = 0; - $1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; - return $1$0 | 0; -} -function _memcpy(dest, src, num) { - dest = dest|0; src = src|0; num = num|0; - var ret = 0; - var aligned_dest_end = 0; - var block_aligned_dest_end = 0; - var dest_end = 0; - // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use. - if ((num|0) >= - 8192 - ) { - return _emscripten_memcpy_big(dest|0, src|0, num|0)|0; - } - - ret = dest|0; - dest_end = (dest + num)|0; - if ((dest&3) == (src&3)) { - // The initial unaligned < 4-byte front. - while (dest & 3) { - if ((num|0) == 0) return ret|0; - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - dest = (dest+1)|0; - src = (src+1)|0; - num = (num-1)|0; - } - aligned_dest_end = (dest_end & -4)|0; - block_aligned_dest_end = (aligned_dest_end - 64)|0; - while ((dest|0) <= (block_aligned_dest_end|0) ) { - HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); - HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0); - HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0); - HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0); - HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0); - HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0); - HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0); - HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0); - HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0); - HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0); - HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0); - HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0); - HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0); - HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0); - HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0); - HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0); - dest = (dest+64)|0; - src = (src+64)|0; - } - while ((dest|0) < (aligned_dest_end|0) ) { - HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); - dest = (dest+4)|0; - src = (src+4)|0; - } - } else { - // In the unaligned copy case, unroll a bit as well. - aligned_dest_end = (dest_end - 4)|0; - while ((dest|0) < (aligned_dest_end|0) ) { - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0); - HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0); - HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0); - dest = (dest+4)|0; - src = (src+4)|0; - } - } - // The remaining unaligned < 4 byte tail. - while ((dest|0) < (dest_end|0)) { - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - dest = (dest+1)|0; - src = (src+1)|0; - } - return ret|0; -} -function _memmove(dest, src, num) { - dest = dest|0; src = src|0; num = num|0; - var ret = 0; - if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) { - // Unlikely case: Copy backwards in a safe manner - ret = dest; - src = (src + num)|0; - dest = (dest + num)|0; - while ((num|0) > 0) { - dest = (dest - 1)|0; - src = (src - 1)|0; - num = (num - 1)|0; - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - } - dest = ret; - } else { - _memcpy(dest, src, num) | 0; - } - return dest | 0; -} -function ___uremdi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $rem = 0, __stackBase__ = 0; - __stackBase__ = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - $rem = __stackBase__ | 0; - ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) | 0; - STACKTOP = __stackBase__; - return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0; -} -function _roundf(f) { - f = +f; - return f >= +0 ? +Math_floor(f + +0.5) : +Math_ceil(f - +0.5); // TODO: use fround? -} -function _bitshift64Lshr(low, high, bits) { - low = low|0; high = high|0; bits = bits|0; - var ander = 0; - if ((bits|0) < 32) { - ander = ((1 << bits) - 1)|0; - tempRet0 = high >>> bits; - return (low >>> bits) | ((high&ander) << (32 - bits)); - } - tempRet0 = 0; - return (high >>> (bits - 32))|0; -} -function _sbrk(increment) { - increment = increment|0; - var oldDynamicTop = 0; - var oldDynamicTopOnChange = 0; - var newDynamicTop = 0; - var totalMemory = 0; - increment = ((increment + 15) & -16)|0; - oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0; - newDynamicTop = oldDynamicTop + increment | 0; - - if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int. - | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract. - abortOnCannotGrowMemory()|0; - ___setErrNo(12); - return -1; - } - - HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop; - totalMemory = getTotalMemory()|0; - if ((newDynamicTop|0) > (totalMemory|0)) { - if ((enlargeMemory()|0) == 0) { - HEAP32[DYNAMICTOP_PTR>>2] = oldDynamicTop; - ___setErrNo(12); - return -1; - } - } - return oldDynamicTop|0; -} -function _bitshift64Shl(low, high, bits) { - low = low|0; high = high|0; bits = bits|0; - var ander = 0; - if ((bits|0) < 32) { - ander = ((1 << bits) - 1)|0; - tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits)); - return low << bits; - } - tempRet0 = low << (bits - 32); - return 0; -} -function _llvm_bswap_i32(x) { - x = x|0; - return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0; -} - - -function dynCall_viiiii(index,a1,a2,a3,a4,a5) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; - FUNCTION_TABLE_viiiii[index&7](a1|0,a2|0,a3|0,a4|0,a5|0); -} - - -function dynCall_vd(index,a1) { - index = index|0; - a1=+a1; - FUNCTION_TABLE_vd[index&3](+a1); -} - - -function dynCall_vid(index,a1,a2) { - index = index|0; - a1=a1|0; a2=+a2; - FUNCTION_TABLE_vid[index&3](a1|0,+a2); -} - - -function dynCall_vi(index,a1) { - index = index|0; - a1=a1|0; - FUNCTION_TABLE_vi[index&31](a1|0); -} - - -function dynCall_vii(index,a1,a2) { - index = index|0; - a1=a1|0; a2=a2|0; - FUNCTION_TABLE_vii[index&63](a1|0,a2|0); -} - - -function dynCall_ii(index,a1) { - index = index|0; - a1=a1|0; - return FUNCTION_TABLE_ii[index&15](a1|0)|0; -} - - -function dynCall_viddd(index,a1,a2,a3,a4) { - index = index|0; - a1=a1|0; a2=+a2; a3=+a3; a4=+a4; - FUNCTION_TABLE_viddd[index&3](a1|0,+a2,+a3,+a4); -} - - -function dynCall_vidd(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=+a2; a3=+a3; - FUNCTION_TABLE_vidd[index&7](a1|0,+a2,+a3); -} - - -function dynCall_iiii(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; - return FUNCTION_TABLE_iiii[index&15](a1|0,a2|0,a3|0)|0; -} - - -function dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; - FUNCTION_TABLE_viiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0); -} - - -function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; - FUNCTION_TABLE_viiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0); -} - - -function dynCall_viii(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; - FUNCTION_TABLE_viii[index&31](a1|0,a2|0,a3|0); -} - - -function dynCall_vidddd(index,a1,a2,a3,a4,a5) { - index = index|0; - a1=a1|0; a2=+a2; a3=+a3; a4=+a4; a5=+a5; - FUNCTION_TABLE_vidddd[index&3](a1|0,+a2,+a3,+a4,+a5); -} - - -function dynCall_vdi(index,a1,a2) { - index = index|0; - a1=+a1; a2=a2|0; - FUNCTION_TABLE_vdi[index&1](+a1,a2|0); -} - - -function dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; - FUNCTION_TABLE_viiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0); -} - - -function dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; a9=a9|0; - FUNCTION_TABLE_viiiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0,a9|0); -} - - -function dynCall_iii(index,a1,a2) { - index = index|0; - a1=a1|0; a2=a2|0; - return FUNCTION_TABLE_iii[index&3](a1|0,a2|0)|0; -} - - -function dynCall_i(index) { - index = index|0; - - return FUNCTION_TABLE_i[index&3]()|0; -} - - -function dynCall_vdddddd(index,a1,a2,a3,a4,a5,a6) { - index = index|0; - a1=+a1; a2=+a2; a3=+a3; a4=+a4; a5=+a5; a6=+a6; - FUNCTION_TABLE_vdddddd[index&1](+a1,+a2,+a3,+a4,+a5,+a6); -} - - -function dynCall_vdddd(index,a1,a2,a3,a4) { - index = index|0; - a1=+a1; a2=+a2; a3=+a3; a4=+a4; - FUNCTION_TABLE_vdddd[index&3](+a1,+a2,+a3,+a4); -} - - -function dynCall_vdd(index,a1,a2) { - index = index|0; - a1=+a1; a2=+a2; - FUNCTION_TABLE_vdd[index&3](+a1,+a2); -} - - -function dynCall_v(index) { - index = index|0; - - FUNCTION_TABLE_v[index&7](); -} - - -function dynCall_viid(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=+a3; - FUNCTION_TABLE_viid[index&1](a1|0,a2|0,+a3); -} - - -function dynCall_viiii(index,a1,a2,a3,a4) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; - FUNCTION_TABLE_viiii[index&31](a1|0,a2|0,a3|0,a4|0); -} - -function b0(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(0); -} -function _emscripten_glUniform4i__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glUniform4i(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function _emscripten_glFramebufferTexture2D__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glFramebufferTexture2D(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function _emscripten_glShaderBinary__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glShaderBinary(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function _emscripten_glDrawElementsInstanced__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glDrawElementsInstanced(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function b1(p0) { - p0 = +p0; nullFunc_vd(1); -} -function _emscripten_glClearDepth__wrapper(p0) { - p0 = +p0; _emscripten_glClearDepth(+p0); -} -function _emscripten_glClearDepthf__wrapper(p0) { - p0 = +p0; _emscripten_glClearDepthf(+p0); -} -function _emscripten_glLineWidth__wrapper(p0) { - p0 = +p0; _emscripten_glLineWidth(+p0); -} -function b2(p0,p1) { - p0 = p0|0;p1 = +p1; nullFunc_vid(2); -} -function _emscripten_glUniform1f__wrapper(p0,p1) { - p0 = p0|0;p1 = +p1; _emscripten_glUniform1f(p0|0,+p1); -} -function _emscripten_glVertexAttrib1f__wrapper(p0,p1) { - p0 = p0|0;p1 = +p1; _emscripten_glVertexAttrib1f(p0|0,+p1); -} -function b3(p0) { - p0 = p0|0; nullFunc_vi(3); -} -function _emscripten_glDeleteShader__wrapper(p0) { - p0 = p0|0; _emscripten_glDeleteShader(p0|0); -} -function _emscripten_glCompileShader__wrapper(p0) { - p0 = p0|0; _emscripten_glCompileShader(p0|0); -} -function _emscripten_glDeleteProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glDeleteProgram(p0|0); -} -function _emscripten_glLinkProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glLinkProgram(p0|0); -} -function _emscripten_glUseProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glUseProgram(p0|0); -} -function _emscripten_glValidateProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glValidateProgram(p0|0); -} -function _emscripten_glDeleteObjectARB__wrapper(p0) { - p0 = p0|0; _emscripten_glDeleteObjectARB(p0|0); -} -function _emscripten_glEnableClientState__wrapper(p0) { - p0 = p0|0; _emscripten_glEnableClientState(p0|0); -} -function _emscripten_glClientActiveTexture__wrapper(p0) { - p0 = p0|0; _emscripten_glClientActiveTexture(p0|0); -} -function _emscripten_glBindVertexArray__wrapper(p0) { - p0 = p0|0; _emscripten_glBindVertexArray(p0|0); -} -function _emscripten_glMatrixMode__wrapper(p0) { - p0 = p0|0; _emscripten_glMatrixMode(p0|0); -} -function _emscripten_glLoadMatrixf__wrapper(p0) { - p0 = p0|0; _emscripten_glLoadMatrixf(p0|0); -} -function _emscripten_glEnableVertexAttribArray__wrapper(p0) { - p0 = p0|0; _emscripten_glEnableVertexAttribArray(p0|0); -} -function _emscripten_glDisableVertexAttribArray__wrapper(p0) { - p0 = p0|0; _emscripten_glDisableVertexAttribArray(p0|0); -} -function _emscripten_glDepthFunc__wrapper(p0) { - p0 = p0|0; _emscripten_glDepthFunc(p0|0); -} -function _emscripten_glEnable__wrapper(p0) { - p0 = p0|0; _emscripten_glEnable(p0|0); -} -function _emscripten_glDisable__wrapper(p0) { - p0 = p0|0; _emscripten_glDisable(p0|0); -} -function _emscripten_glFrontFace__wrapper(p0) { - p0 = p0|0; _emscripten_glFrontFace(p0|0); -} -function _emscripten_glCullFace__wrapper(p0) { - p0 = p0|0; _emscripten_glCullFace(p0|0); -} -function _emscripten_glClear__wrapper(p0) { - p0 = p0|0; _emscripten_glClear(p0|0); -} -function _emscripten_glClearStencil__wrapper(p0) { - p0 = p0|0; _emscripten_glClearStencil(p0|0); -} -function _emscripten_glDepthMask__wrapper(p0) { - p0 = p0|0; _emscripten_glDepthMask(p0|0); -} -function _emscripten_glStencilMask__wrapper(p0) { - p0 = p0|0; _emscripten_glStencilMask(p0|0); -} -function _emscripten_glGenerateMipmap__wrapper(p0) { - p0 = p0|0; _emscripten_glGenerateMipmap(p0|0); -} -function _emscripten_glActiveTexture__wrapper(p0) { - p0 = p0|0; _emscripten_glActiveTexture(p0|0); -} -function _emscripten_glBlendEquation__wrapper(p0) { - p0 = p0|0; _emscripten_glBlendEquation(p0|0); -} -function b4(p0,p1) { - p0 = p0|0;p1 = p1|0; nullFunc_vii(4); -} -function _emscripten_glPixelStorei__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glPixelStorei(p0|0,p1|0); -} -function _emscripten_glGetIntegerv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetIntegerv(p0|0,p1|0); -} -function _emscripten_glGetFloatv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetFloatv(p0|0,p1|0); -} -function _emscripten_glGetBooleanv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetBooleanv(p0|0,p1|0); -} -function _emscripten_glGenTextures__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenTextures(p0|0,p1|0); -} -function _emscripten_glDeleteTextures__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteTextures(p0|0,p1|0); -} -function _emscripten_glBindTexture__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindTexture(p0|0,p1|0); -} -function _emscripten_glGenBuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenBuffers(p0|0,p1|0); -} -function _emscripten_glDeleteBuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteBuffers(p0|0,p1|0); -} -function _emscripten_glGenRenderbuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenRenderbuffers(p0|0,p1|0); -} -function _emscripten_glDeleteRenderbuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteRenderbuffers(p0|0,p1|0); -} -function _emscripten_glBindRenderbuffer__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindRenderbuffer(p0|0,p1|0); -} -function _emscripten_glUniform1i__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glUniform1i(p0|0,p1|0); -} -function _emscripten_glBindBuffer__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindBuffer(p0|0,p1|0); -} -function _emscripten_glVertexAttrib1fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib1fv(p0|0,p1|0); -} -function _emscripten_glVertexAttrib2fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib2fv(p0|0,p1|0); -} -function _emscripten_glVertexAttrib3fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib3fv(p0|0,p1|0); -} -function _emscripten_glVertexAttrib4fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib4fv(p0|0,p1|0); -} -function _emscripten_glAttachShader__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glAttachShader(p0|0,p1|0); -} -function _emscripten_glDetachShader__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDetachShader(p0|0,p1|0); -} -function _emscripten_glBindFramebuffer__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindFramebuffer(p0|0,p1|0); -} -function _emscripten_glGenFramebuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenFramebuffers(p0|0,p1|0); -} -function _emscripten_glDeleteFramebuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteFramebuffers(p0|0,p1|0); -} -function _emscripten_glBindProgramARB__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindProgramARB(p0|0,p1|0); -} -function _emscripten_glGetPointerv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetPointerv(p0|0,p1|0); -} -function _emscripten_glGenVertexArrays__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenVertexArrays(p0|0,p1|0); -} -function _emscripten_glDeleteVertexArrays__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteVertexArrays(p0|0,p1|0); -} -function _emscripten_glVertexAttribDivisor__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttribDivisor(p0|0,p1|0); -} -function _emscripten_glBlendFunc__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBlendFunc(p0|0,p1|0); -} -function _emscripten_glBlendEquationSeparate__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBlendEquationSeparate(p0|0,p1|0); -} -function _emscripten_glStencilMaskSeparate__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glStencilMaskSeparate(p0|0,p1|0); -} -function _emscripten_glHint__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glHint(p0|0,p1|0); -} -function _emscripten_glDrawBuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDrawBuffers(p0|0,p1|0); -} -function b5(p0) { - p0 = p0|0; nullFunc_ii(5);return 0; -} -function _emscripten_glGetString__wrapper(p0) { - p0 = p0|0; return _emscripten_glGetString(p0|0)|0; -} -function _emscripten_glIsTexture__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsTexture(p0|0)|0; -} -function _emscripten_glIsBuffer__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsBuffer(p0|0)|0; -} -function _emscripten_glIsRenderbuffer__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsRenderbuffer(p0|0)|0; -} -function _emscripten_glCreateShader__wrapper(p0) { - p0 = p0|0; return _emscripten_glCreateShader(p0|0)|0; -} -function _emscripten_glIsShader__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsShader(p0|0)|0; -} -function _emscripten_glIsProgram__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsProgram(p0|0)|0; -} -function _emscripten_glIsFramebuffer__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsFramebuffer(p0|0)|0; -} -function _emscripten_glCheckFramebufferStatus__wrapper(p0) { - p0 = p0|0; return _emscripten_glCheckFramebufferStatus(p0|0)|0; -} -function _emscripten_glIsEnabled__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsEnabled(p0|0)|0; -} -function b6(p0,p1,p2,p3) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_viddd(6); -} -function _emscripten_glUniform3f__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glUniform3f(p0|0,+p1,+p2,+p3); -} -function _emscripten_glVertexAttrib3f__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glVertexAttrib3f(p0|0,+p1,+p2,+p3); -} -function b7(p0,p1,p2) { - p0 = p0|0;p1 = +p1;p2 = +p2; nullFunc_vidd(7); -} -function _emscripten_glUniform2f__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glUniform2f(p0|0,+p1,+p2); -} -function _emscripten_glVertexAttrib2f__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glVertexAttrib2f(p0|0,+p1,+p2); -} -function b8(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(8);return 0; -} -function b9(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; nullFunc_viiiiiiii(9); -} -function _emscripten_glCompressedTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCompressedTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); -} -function _emscripten_glCopyTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); -} -function _emscripten_glCopyTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); -} -function b10(p0,p1,p2,p3,p4,p5) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; nullFunc_viiiiii(10); -} -function _emscripten_glDrawRangeElements__wrapper(p0,p1,p2,p3,p4,p5) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glDrawRangeElements(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); -} -function _emscripten_glVertexAttribPointer__wrapper(p0,p1,p2,p3,p4,p5) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glVertexAttribPointer(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); -} -function b11(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(11); -} -function _emscripten_glGetTexParameterfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameterfv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetTexParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glTexParameterfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameterfv(p0|0,p1|0,p2|0); -} -function _emscripten_glTexParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetBufferParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetBufferParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetRenderbufferParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetRenderbufferParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetUniformfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformfv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetUniformiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformiv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetVertexAttribfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribfv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetVertexAttribiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribiv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetVertexAttribPointerv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribPointerv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform2i__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2i(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform1iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform2iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform3iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform4iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform1fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1fv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform2fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2fv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform3fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3fv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform4fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4fv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetShaderiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetShaderiv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetProgramiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetProgramiv(p0|0,p1|0,p2|0); -} -function _emscripten_glBindAttribLocation__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glBindAttribLocation(p0|0,p1|0,p2|0); -} -function _emscripten_glGetObjectParameterivARB__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetObjectParameterivARB(p0|0,p1|0,p2|0); -} -function _emscripten_glNormalPointer__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glNormalPointer(p0|0,p1|0,p2|0); -} -function _emscripten_glDrawArrays__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glDrawArrays(p0|0,p1|0,p2|0); -} -function _emscripten_glTexParameteri__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteri(p0|0,p1|0,p2|0); -} -function _emscripten_glStencilFunc__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilFunc(p0|0,p1|0,p2|0); -} -function _emscripten_glStencilOp__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilOp(p0|0,p1|0,p2|0); -} -function b12(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; nullFunc_vidddd(12); -} -function _emscripten_glUniform4f__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glUniform4f(p0|0,+p1,+p2,+p3,+p4); -} -function _emscripten_glVertexAttrib4f__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glVertexAttrib4f(p0|0,+p1,+p2,+p3,+p4); -} -function b13(p0,p1) { - p0 = +p0;p1 = p1|0; nullFunc_vdi(13); -} -function _emscripten_glSampleCoverage__wrapper(p0,p1) { - p0 = +p0;p1 = p1|0; _emscripten_glSampleCoverage(+p0,p1|0); -} -function b14(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; nullFunc_viiiiiii(14); -} -function _emscripten_glReadPixels__wrapper(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glReadPixels(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); -} -function _emscripten_glGetActiveUniform__wrapper(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveUniform(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); -} -function _emscripten_glGetActiveAttrib__wrapper(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveAttrib(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); -} -function b15(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; nullFunc_viiiiiiiii(15); -} -function _emscripten_glCompressedTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glCompressedTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); -} -function _emscripten_glTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); -} -function _emscripten_glTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); -} -function b16(p0,p1) { - p0 = p0|0;p1 = p1|0; nullFunc_iii(16);return 0; -} -function _emscripten_glGetUniformLocation__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; return _emscripten_glGetUniformLocation(p0|0,p1|0)|0; -} -function _emscripten_glGetAttribLocation__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; return _emscripten_glGetAttribLocation(p0|0,p1|0)|0; -} -function b17() { - ; nullFunc_i(17);return 0; -} -function _emscripten_glCreateProgram__wrapper() { - ; return _emscripten_glCreateProgram()|0; -} -function _emscripten_glGetError__wrapper() { - ; return _emscripten_glGetError()|0; -} -function b18(p0,p1,p2,p3,p4,p5) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; nullFunc_vdddddd(18); -} -function _emscripten_glFrustum__wrapper(p0,p1,p2,p3,p4,p5) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; _emscripten_glFrustum(+p0,+p1,+p2,+p3,+p4,+p5); -} -function b19(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_vdddd(19); -} -function _emscripten_glRotatef__wrapper(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glRotatef(+p0,+p1,+p2,+p3); -} -function _emscripten_glClearColor__wrapper(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glClearColor(+p0,+p1,+p2,+p3); -} -function _emscripten_glBlendColor__wrapper(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glBlendColor(+p0,+p1,+p2,+p3); -} -function b20(p0,p1) { - p0 = +p0;p1 = +p1; nullFunc_vdd(20); -} -function _emscripten_glDepthRange__wrapper(p0,p1) { - p0 = +p0;p1 = +p1; _emscripten_glDepthRange(+p0,+p1); -} -function _emscripten_glDepthRangef__wrapper(p0,p1) { - p0 = +p0;p1 = +p1; _emscripten_glDepthRangef(+p0,+p1); -} -function _emscripten_glPolygonOffset__wrapper(p0,p1) { - p0 = +p0;p1 = +p1; _emscripten_glPolygonOffset(+p0,+p1); -} -function b21() { - ; nullFunc_v(21); -} -function _emscripten_glLoadIdentity__wrapper() { - ; _emscripten_glLoadIdentity(); -} -function _emscripten_glReleaseShaderCompiler__wrapper() { - ; _emscripten_glReleaseShaderCompiler(); -} -function _emscripten_glFinish__wrapper() { - ; _emscripten_glFinish(); -} -function _emscripten_glFlush__wrapper() { - ; _emscripten_glFlush(); -} -function b22(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = +p2; nullFunc_viid(22); -} -function _emscripten_glTexParameterf__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = +p2; _emscripten_glTexParameterf(p0|0,p1|0,+p2); -} -function b23(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(23); -} -function _emscripten_glBufferData__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferData(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glBufferSubData__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferSubData(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniform3i__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniform3i(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniformMatrix2fv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix2fv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniformMatrix3fv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix3fv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniformMatrix4fv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix4fv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetAttachedShaders__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetAttachedShaders(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glShaderSource__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glShaderSource(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetShaderSource__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderSource(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetShaderInfoLog__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderInfoLog(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetShaderPrecisionFormat__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderPrecisionFormat(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetProgramInfoLog__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetProgramInfoLog(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glFramebufferRenderbuffer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glFramebufferRenderbuffer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetFramebufferAttachmentParameteriv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetFramebufferAttachmentParameteriv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetInfoLogARB__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetInfoLogARB(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glVertexPointer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glVertexPointer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glTexCoordPointer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glTexCoordPointer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glColorPointer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorPointer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glDrawElements__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawElements(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glDrawArraysInstanced__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawArraysInstanced(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glViewport__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glViewport(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glScissor__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glScissor(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glColorMask__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorMask(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glRenderbufferStorage__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glRenderbufferStorage(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glBlendFuncSeparate__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBlendFuncSeparate(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glStencilFuncSeparate__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilFuncSeparate(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glStencilOpSeparate__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilOpSeparate(p0|0,p1|0,p2|0,p3|0); -} - -// EMSCRIPTEN_END_FUNCS -var FUNCTION_TABLE_viiiii = [b0,_KeyCallback,_emscripten_glUniform4i__wrapper,_emscripten_glFramebufferTexture2D__wrapper,_emscripten_glShaderBinary__wrapper,_emscripten_glDrawElementsInstanced__wrapper,b0,b0]; -var FUNCTION_TABLE_vd = [b1,_emscripten_glClearDepth__wrapper,_emscripten_glClearDepthf__wrapper,_emscripten_glLineWidth__wrapper]; -var FUNCTION_TABLE_vid = [b2,_emscripten_glUniform1f__wrapper,_emscripten_glVertexAttrib1f__wrapper,b2]; -var FUNCTION_TABLE_vi = [b3,_emscripten_glDeleteShader__wrapper,_emscripten_glCompileShader__wrapper,_emscripten_glDeleteProgram__wrapper,_emscripten_glLinkProgram__wrapper,_emscripten_glUseProgram__wrapper,_emscripten_glValidateProgram__wrapper,_emscripten_glDeleteObjectARB__wrapper,_emscripten_glEnableClientState__wrapper,_emscripten_glClientActiveTexture__wrapper,_emscripten_glBindVertexArray__wrapper,_emscripten_glMatrixMode__wrapper,_emscripten_glLoadMatrixf__wrapper,_emscripten_glEnableVertexAttribArray__wrapper,_emscripten_glDisableVertexAttribArray__wrapper,_emscripten_glDepthFunc__wrapper,_emscripten_glEnable__wrapper,_emscripten_glDisable__wrapper,_emscripten_glFrontFace__wrapper,_emscripten_glCullFace__wrapper,_emscripten_glClear__wrapper,_emscripten_glClearStencil__wrapper,_emscripten_glDepthMask__wrapper,_emscripten_glStencilMask__wrapper,_emscripten_glGenerateMipmap__wrapper,_emscripten_glActiveTexture__wrapper,_emscripten_glBlendEquation__wrapper,b3,b3 -,b3,b3,b3]; -var FUNCTION_TABLE_vii = [b4,_ErrorCallback,_CursorEnterCallback,_CharCallback,_WindowIconifyCallback,_emscripten_glPixelStorei__wrapper,_emscripten_glGetIntegerv__wrapper,_emscripten_glGetFloatv__wrapper,_emscripten_glGetBooleanv__wrapper,_emscripten_glGenTextures__wrapper,_emscripten_glDeleteTextures__wrapper,_emscripten_glBindTexture__wrapper,_emscripten_glGenBuffers__wrapper,_emscripten_glDeleteBuffers__wrapper,_emscripten_glGenRenderbuffers__wrapper,_emscripten_glDeleteRenderbuffers__wrapper,_emscripten_glBindRenderbuffer__wrapper,_emscripten_glUniform1i__wrapper,_emscripten_glBindBuffer__wrapper,_emscripten_glVertexAttrib1fv__wrapper,_emscripten_glVertexAttrib2fv__wrapper,_emscripten_glVertexAttrib3fv__wrapper,_emscripten_glVertexAttrib4fv__wrapper,_emscripten_glAttachShader__wrapper,_emscripten_glDetachShader__wrapper,_emscripten_glBindFramebuffer__wrapper,_emscripten_glGenFramebuffers__wrapper,_emscripten_glDeleteFramebuffers__wrapper,_emscripten_glBindProgramARB__wrapper,_emscripten_glGetPointerv__wrapper,_emscripten_glGenVertexArrays__wrapper,_emscripten_glDeleteVertexArrays__wrapper,_emscripten_glVertexAttribDivisor__wrapper,_emscripten_glBlendFunc__wrapper,_emscripten_glBlendEquationSeparate__wrapper,_emscripten_glStencilMaskSeparate__wrapper,_emscripten_glHint__wrapper,_emscripten_glDrawBuffers__wrapper,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4]; -var FUNCTION_TABLE_ii = [b5,___stdio_close,_emscripten_glGetString__wrapper,_emscripten_glIsTexture__wrapper,_emscripten_glIsBuffer__wrapper,_emscripten_glIsRenderbuffer__wrapper,_emscripten_glCreateShader__wrapper,_emscripten_glIsShader__wrapper,_emscripten_glIsProgram__wrapper,_emscripten_glIsFramebuffer__wrapper,_emscripten_glCheckFramebufferStatus__wrapper,_emscripten_glIsEnabled__wrapper,b5,b5,b5,b5]; -var FUNCTION_TABLE_viddd = [b6,_emscripten_glUniform3f__wrapper,_emscripten_glVertexAttrib3f__wrapper,b6]; -var FUNCTION_TABLE_vidd = [b7,_MouseCursorPosCallback,_ScrollCallback,_emscripten_glUniform2f__wrapper,_emscripten_glVertexAttrib2f__wrapper,b7,b7,b7]; -var FUNCTION_TABLE_iiii = [b8,___stdout_write,___stdio_seek,_sn_write,_EmscriptenFullscreenChangeCallback,_EmscriptenKeyboardCallback,_EmscriptenMouseCallback,_EmscriptenTouchCallback,_EmscriptenGamepadCallback,___stdio_write,b8,b8,b8,b8,b8,b8]; -var FUNCTION_TABLE_viiiiiiii = [b9,_emscripten_glCompressedTexImage2D__wrapper,_emscripten_glCopyTexImage2D__wrapper,_emscripten_glCopyTexSubImage2D__wrapper]; -var FUNCTION_TABLE_viiiiii = [b10,_emscripten_glDrawRangeElements__wrapper,_emscripten_glVertexAttribPointer__wrapper,b10]; -var FUNCTION_TABLE_viii = [b11,_WindowSizeCallback,_emscripten_glGetTexParameterfv__wrapper,_emscripten_glGetTexParameteriv__wrapper,_emscripten_glTexParameterfv__wrapper,_emscripten_glTexParameteriv__wrapper,_emscripten_glGetBufferParameteriv__wrapper,_emscripten_glGetRenderbufferParameteriv__wrapper,_emscripten_glGetUniformfv__wrapper,_emscripten_glGetUniformiv__wrapper,_emscripten_glGetVertexAttribfv__wrapper,_emscripten_glGetVertexAttribiv__wrapper,_emscripten_glGetVertexAttribPointerv__wrapper,_emscripten_glUniform2i__wrapper,_emscripten_glUniform1iv__wrapper,_emscripten_glUniform2iv__wrapper,_emscripten_glUniform3iv__wrapper,_emscripten_glUniform4iv__wrapper,_emscripten_glUniform1fv__wrapper,_emscripten_glUniform2fv__wrapper,_emscripten_glUniform3fv__wrapper,_emscripten_glUniform4fv__wrapper,_emscripten_glGetShaderiv__wrapper,_emscripten_glGetProgramiv__wrapper,_emscripten_glBindAttribLocation__wrapper,_emscripten_glGetObjectParameterivARB__wrapper,_emscripten_glNormalPointer__wrapper,_emscripten_glDrawArrays__wrapper,_emscripten_glTexParameteri__wrapper,_emscripten_glStencilFunc__wrapper,_emscripten_glStencilOp__wrapper,b11]; -var FUNCTION_TABLE_vidddd = [b12,_emscripten_glUniform4f__wrapper,_emscripten_glVertexAttrib4f__wrapper,b12]; -var FUNCTION_TABLE_vdi = [b13,_emscripten_glSampleCoverage__wrapper]; -var FUNCTION_TABLE_viiiiiii = [b14,_emscripten_glReadPixels__wrapper,_emscripten_glGetActiveUniform__wrapper,_emscripten_glGetActiveAttrib__wrapper]; -var FUNCTION_TABLE_viiiiiiiii = [b15,_emscripten_glCompressedTexSubImage2D__wrapper,_emscripten_glTexImage2D__wrapper,_emscripten_glTexSubImage2D__wrapper]; -var FUNCTION_TABLE_iii = [b16,_emscripten_glGetUniformLocation__wrapper,_emscripten_glGetAttribLocation__wrapper,b16]; -var FUNCTION_TABLE_i = [b17,_emscripten_glCreateProgram__wrapper,_emscripten_glGetError__wrapper,b17]; -var FUNCTION_TABLE_vdddddd = [b18,_emscripten_glFrustum__wrapper]; -var FUNCTION_TABLE_vdddd = [b19,_emscripten_glRotatef__wrapper,_emscripten_glClearColor__wrapper,_emscripten_glBlendColor__wrapper]; -var FUNCTION_TABLE_vdd = [b20,_emscripten_glDepthRange__wrapper,_emscripten_glDepthRangef__wrapper,_emscripten_glPolygonOffset__wrapper]; -var FUNCTION_TABLE_v = [b21,_UpdateDrawFrame,_emscripten_glLoadIdentity__wrapper,_emscripten_glReleaseShaderCompiler__wrapper,_emscripten_glFinish__wrapper,_emscripten_glFlush__wrapper,b21,b21]; -var FUNCTION_TABLE_viid = [b22,_emscripten_glTexParameterf__wrapper]; -var FUNCTION_TABLE_viiii = [b23,_MouseButtonCallback,_emscripten_glBufferData__wrapper,_emscripten_glBufferSubData__wrapper,_emscripten_glUniform3i__wrapper,_emscripten_glUniformMatrix2fv__wrapper,_emscripten_glUniformMatrix3fv__wrapper,_emscripten_glUniformMatrix4fv__wrapper,_emscripten_glGetAttachedShaders__wrapper,_emscripten_glShaderSource__wrapper,_emscripten_glGetShaderSource__wrapper,_emscripten_glGetShaderInfoLog__wrapper,_emscripten_glGetShaderPrecisionFormat__wrapper,_emscripten_glGetProgramInfoLog__wrapper,_emscripten_glFramebufferRenderbuffer__wrapper,_emscripten_glGetFramebufferAttachmentParameteriv__wrapper,_emscripten_glGetInfoLogARB__wrapper,_emscripten_glVertexPointer__wrapper,_emscripten_glTexCoordPointer__wrapper,_emscripten_glColorPointer__wrapper,_emscripten_glDrawElements__wrapper,_emscripten_glDrawArraysInstanced__wrapper,_emscripten_glViewport__wrapper,_emscripten_glScissor__wrapper,_emscripten_glColorMask__wrapper,_emscripten_glRenderbufferStorage__wrapper,_emscripten_glBlendFuncSeparate__wrapper,_emscripten_glStencilFuncSeparate__wrapper,_emscripten_glStencilOpSeparate__wrapper,b23,b23,b23]; - - return { _llvm_bswap_i32: _llvm_bswap_i32, _roundf: _roundf, _main: _main, dynCall_i: dynCall_i, stackSave: stackSave, _i64Subtract: _i64Subtract, ___udivdi3: ___udivdi3, dynCall_vidddd: dynCall_vidddd, setThrew: setThrew, dynCall_viii: dynCall_viii, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, dynCall_iii: dynCall_iii, _memset: _memset, _sbrk: _sbrk, _memcpy: _memcpy, stackAlloc: stackAlloc, dynCall_vd: dynCall_vd, dynCall_vii: dynCall_vii, ___uremdi3: ___uremdi3, dynCall_vid: dynCall_vid, dynCall_vi: dynCall_vi, dynCall_viiiiiii: dynCall_viiiiiii, getTempRet0: getTempRet0, setTempRet0: setTempRet0, _i64Add: _i64Add, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_iiii: dynCall_iiii, _emscripten_get_global_libc: _emscripten_get_global_libc, dynCall_viid: dynCall_viid, dynCall_ii: dynCall_ii, _emscripten_GetProcAddress: _emscripten_GetProcAddress, dynCall_viiii: dynCall_viiii, ___errno_location: ___errno_location, dynCall_viiiii: dynCall_viiiii, dynCall_viddd: dynCall_viddd, dynCall_vidd: dynCall_vidd, _free: _free, runPostSets: runPostSets, dynCall_viiiiii: dynCall_viiiiii, establishStackSpace: establishStackSpace, _memmove: _memmove, _strstr: _strstr, stackRestore: stackRestore, _malloc: _malloc, dynCall_vdi: dynCall_vdi, dynCall_viiiiiiiii: dynCall_viiiiiiiii, dynCall_vdd: dynCall_vdd, dynCall_v: dynCall_v, dynCall_vdddddd: dynCall_vdddddd, dynCall_vdddd: dynCall_vdddd }; -}) -// EMSCRIPTEN_END_ASM -(Module.asmGlobalArg, Module.asmLibraryArg, buffer); - -var real__llvm_bswap_i32 = asm["_llvm_bswap_i32"]; asm["_llvm_bswap_i32"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__llvm_bswap_i32.apply(null, arguments); -}; - -var real__roundf = asm["_roundf"]; asm["_roundf"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__roundf.apply(null, arguments); -}; - -var real__main = asm["_main"]; asm["_main"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__main.apply(null, arguments); -}; - -var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackSave.apply(null, arguments); -}; - -var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_getTempRet0.apply(null, arguments); -}; - -var real____udivdi3 = asm["___udivdi3"]; asm["___udivdi3"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____udivdi3.apply(null, arguments); -}; - -var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_setThrew.apply(null, arguments); -}; - -var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__bitshift64Lshr.apply(null, arguments); -}; - -var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__bitshift64Shl.apply(null, arguments); -}; - -var real__fflush = asm["_fflush"]; asm["_fflush"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__fflush.apply(null, arguments); -}; - -var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__sbrk.apply(null, arguments); -}; - -var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackAlloc.apply(null, arguments); -}; - -var real____uremdi3 = asm["___uremdi3"]; asm["___uremdi3"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____uremdi3.apply(null, arguments); -}; - -var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__i64Subtract.apply(null, arguments); -}; - -var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_setTempRet0.apply(null, arguments); -}; - -var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__i64Add.apply(null, arguments); -}; - -var real__emscripten_get_global_libc = asm["_emscripten_get_global_libc"]; asm["_emscripten_get_global_libc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__emscripten_get_global_libc.apply(null, arguments); -}; - -var real__emscripten_GetProcAddress = asm["_emscripten_GetProcAddress"]; asm["_emscripten_GetProcAddress"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__emscripten_GetProcAddress.apply(null, arguments); -}; - -var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____errno_location.apply(null, arguments); -}; - -var real__free = asm["_free"]; asm["_free"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__free.apply(null, arguments); -}; - -var real_establishStackSpace = asm["establishStackSpace"]; asm["establishStackSpace"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_establishStackSpace.apply(null, arguments); -}; - -var real__memmove = asm["_memmove"]; asm["_memmove"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__memmove.apply(null, arguments); -}; - -var real__strstr = asm["_strstr"]; asm["_strstr"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__strstr.apply(null, arguments); -}; - -var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackRestore.apply(null, arguments); -}; - -var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__malloc.apply(null, arguments); -}; -var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"]; -var _roundf = Module["_roundf"] = asm["_roundf"]; -var _main = Module["_main"] = asm["_main"]; -var stackSave = Module["stackSave"] = asm["stackSave"]; -var getTempRet0 = Module["getTempRet0"] = asm["getTempRet0"]; -var ___udivdi3 = Module["___udivdi3"] = asm["___udivdi3"]; -var setThrew = Module["setThrew"] = asm["setThrew"]; -var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; -var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; -var _fflush = Module["_fflush"] = asm["_fflush"]; -var _memset = Module["_memset"] = asm["_memset"]; -var _sbrk = Module["_sbrk"] = asm["_sbrk"]; -var _memcpy = Module["_memcpy"] = asm["_memcpy"]; -var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"]; -var ___uremdi3 = Module["___uremdi3"] = asm["___uremdi3"]; -var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; -var setTempRet0 = Module["setTempRet0"] = asm["setTempRet0"]; -var _i64Add = Module["_i64Add"] = asm["_i64Add"]; -var _emscripten_get_global_libc = Module["_emscripten_get_global_libc"] = asm["_emscripten_get_global_libc"]; -var _emscripten_GetProcAddress = Module["_emscripten_GetProcAddress"] = asm["_emscripten_GetProcAddress"]; -var ___errno_location = Module["___errno_location"] = asm["___errno_location"]; -var _free = Module["_free"] = asm["_free"]; -var runPostSets = Module["runPostSets"] = asm["runPostSets"]; -var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"]; -var _memmove = Module["_memmove"] = asm["_memmove"]; -var _strstr = Module["_strstr"] = asm["_strstr"]; -var stackRestore = Module["stackRestore"] = asm["stackRestore"]; -var _malloc = Module["_malloc"] = asm["_malloc"]; -var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; -var dynCall_vd = Module["dynCall_vd"] = asm["dynCall_vd"]; -var dynCall_vid = Module["dynCall_vid"] = asm["dynCall_vid"]; -var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; -var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; -var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; -var dynCall_viddd = Module["dynCall_viddd"] = asm["dynCall_viddd"]; -var dynCall_vidd = Module["dynCall_vidd"] = asm["dynCall_vidd"]; -var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; -var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = asm["dynCall_viiiiiiii"]; -var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; -var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; -var dynCall_vidddd = Module["dynCall_vidddd"] = asm["dynCall_vidddd"]; -var dynCall_vdi = Module["dynCall_vdi"] = asm["dynCall_vdi"]; -var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = asm["dynCall_viiiiiii"]; -var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = asm["dynCall_viiiiiiiii"]; -var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; -var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; -var dynCall_vdddddd = Module["dynCall_vdddddd"] = asm["dynCall_vdddddd"]; -var dynCall_vdddd = Module["dynCall_vdddd"] = asm["dynCall_vdddd"]; -var dynCall_vdd = Module["dynCall_vdd"] = asm["dynCall_vdd"]; -var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; -var dynCall_viid = Module["dynCall_viid"] = asm["dynCall_viid"]; -var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; -; -Runtime.stackAlloc = Module['stackAlloc']; -Runtime.stackSave = Module['stackSave']; -Runtime.stackRestore = Module['stackRestore']; -Runtime.establishStackSpace = Module['establishStackSpace']; -Runtime.setTempRet0 = Module['setTempRet0']; -Runtime.getTempRet0 = Module['getTempRet0']; - - -// === Auto-generated postamble setup entry stuff === - -Module['asm'] = asm; - - - - - - -/** - * @constructor - * @extends {Error} - */ -function ExitStatus(status) { - this.name = "ExitStatus"; - this.message = "Program terminated with exit(" + status + ")"; - this.status = status; -}; -ExitStatus.prototype = new Error(); -ExitStatus.prototype.constructor = ExitStatus; - -var initialStackTop; -var preloadStartTime = null; -var calledMain = false; - -dependenciesFulfilled = function runCaller() { - // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) - if (!Module['calledRun']) run(); - if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled -} - -Module['callMain'] = Module.callMain = function callMain(args) { - assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)'); - assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); - - args = args || []; - - ensureInitRuntime(); - - var argc = args.length+1; - function pad() { - for (var i = 0; i < 4-1; i++) { - argv.push(0); - } - } - var argv = [allocate(intArrayFromString(Module['thisProgram']), 'i8', ALLOC_NORMAL) ]; - pad(); - for (var i = 0; i < argc-1; i = i + 1) { - argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL)); - pad(); - } - argv.push(0); - argv = allocate(argv, 'i32', ALLOC_NORMAL); - - - try { - - var ret = Module['_main'](argc, argv, 0); - - - // if we're not running an evented main loop, it's time to exit - exit(ret, /* implicit = */ true); - } - catch(e) { - if (e instanceof ExitStatus) { - // exit() throws this once it's done to make sure execution - // has been stopped completely - return; - } else if (e == 'SimulateInfiniteLoop') { - // running an evented main loop, don't immediately exit - Module['noExitRuntime'] = true; - return; - } else { - var toLog = e; - if (e && typeof e === 'object' && e.stack) { - toLog = [e, e.stack]; - } - Module.printErr('exception thrown: ' + toLog); - Module['quit'](1, e); - } - } finally { - calledMain = true; - } -} - - - - -/** @type {function(Array=)} */ -function run(args) { - args = args || Module['arguments']; - - if (preloadStartTime === null) preloadStartTime = Date.now(); - - if (runDependencies > 0) { - return; - } - - writeStackCookie(); - - preRun(); - - if (runDependencies > 0) return; // a preRun added a dependency, run will be called later - if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame - - function doRun() { - if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening - Module['calledRun'] = true; - - if (ABORT) return; - - ensureInitRuntime(); - - preMain(); - - if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) { - Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms'); - } - - if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); - - if (Module['_main'] && shouldRunNow) Module['callMain'](args); - - postRun(); - } - - if (Module['setStatus']) { - Module['setStatus']('Running...'); - setTimeout(function() { - setTimeout(function() { - Module['setStatus'](''); - }, 1); - doRun(); - }, 1); - } else { - doRun(); - } - checkStackCookie(); -} -Module['run'] = Module.run = run; - -function exit(status, implicit) { - if (implicit && Module['noExitRuntime']) { - Module.printErr('exit(' + status + ') implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)'); - return; - } - - if (Module['noExitRuntime']) { - Module.printErr('exit(' + status + ') called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)'); - } else { - - ABORT = true; - EXITSTATUS = status; - STACKTOP = initialStackTop; - - exitRuntime(); - - if (Module['onExit']) Module['onExit'](status); - } - - if (ENVIRONMENT_IS_NODE) { - process['exit'](status); - } - Module['quit'](status, new ExitStatus(status)); -} -Module['exit'] = Module.exit = exit; - -var abortDecorators = []; - -function abort(what) { - if (Module['onAbort']) { - Module['onAbort'](what); - } - - if (what !== undefined) { - Module.print(what); - Module.printErr(what); - what = JSON.stringify(what) - } else { - what = ''; - } - - ABORT = true; - EXITSTATUS = 1; - - var extra = ''; - - var output = 'abort(' + what + ') at ' + stackTrace() + extra; - if (abortDecorators) { - abortDecorators.forEach(function(decorator) { - output = decorator(output, what); - }); - } - throw output; -} -Module['abort'] = Module.abort = abort; - -// {{PRE_RUN_ADDITIONS}} - -if (Module['preInit']) { - if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; - while (Module['preInit'].length > 0) { - Module['preInit'].pop()(); - } -} - -// shouldRunNow refers to calling main(), not run(). -var shouldRunNow = true; -if (Module['noInitialRun']) { - shouldRunNow = false; -} - - -run(); - -// {{POST_RUN_ADDITIONS}} - - - - - -// {{MODULE_ADDITIONS}} - - - diff --git a/examples/web/core/core_3d_mode.png b/examples/web/core/core_3d_mode.png deleted file mode 100644 index de65dae..0000000 Binary files a/examples/web/core/core_3d_mode.png and /dev/null differ diff --git a/examples/web/core/core_color_select.c b/examples/web/core/core_color_select.c deleted file mode 100644 index 87e3f61..0000000 --- a/examples/web/core/core_color_select.c +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Color selection by mouse (collision detection) (adapted for HTML5 platform) -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#if defined(PLATFORM_WEB) - #include -#endif - -#if defined(PLATFORM_ANDROID) - #include "android_native_app_glue.h" -#endif - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -int screenWidth = 800; -int screenHeight = 450; - -Color *colors; - -Rectangle colorsRecs[21]; // Rectangles array - -bool selected[21] = { false }; // Selected rectangles indicator - -Vector2 mousePoint; - -//---------------------------------------------------------------------------------- -// Module Functions Declaration -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void); // Update and Draw one frame - -//---------------------------------------------------------------------------------- -// Main Enry Point -//---------------------------------------------------------------------------------- -#if defined(PLATFORM_ANDROID) -void android_main(struct android_app *app) -#else -int main(void) -#endif -{ - // Initialization - //-------------------------------------------------------------------------------------- -#if defined(PLATFORM_ANDROID) - InitWindow(screenWidth, screenHeight, app); -#else - InitWindow(screenWidth, screenHeight, "raylib [core] example - color selection (collision detection)"); -#endif - - Color tempColors[21] = { DARKGRAY, MAROON, ORANGE, DARKGREEN, DARKBLUE, DARKPURPLE, DARKBROWN, - GRAY, RED, GOLD, LIME, BLUE, VIOLET, BROWN, LIGHTGRAY, PINK, YELLOW, - GREEN, SKYBLUE, PURPLE, BEIGE }; - - colors = tempColors; - - // Fills colorsRecs data (for every rectangle) - for (int i = 0; i < 21; i++) - { - colorsRecs[i].x = 20 + 100*(i%7) + 10*(i%7); - colorsRecs[i].y = 40 + 100*(i/7) + 10*(i/7); - colorsRecs[i].width = 100; - colorsRecs[i].height = 100; - } - -#if defined(PLATFORM_WEB) - emscripten_set_main_loop(UpdateDrawFrame, 0, 1); -#else - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - UpdateDrawFrame(); - } -#endif - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- -#if !defined(PLATFORM_ANDROID) - return 0; -#endif -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void) -{ - // Update - //---------------------------------------------------------------------------------- - mousePoint = GetMousePosition(); - - for (int i = 0; i < 21; i++) // Iterate along all the rectangles - { - if (CheckCollisionPointRec(mousePoint, colorsRecs[i])) - { - colors[i].a = 120; - - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) selected[i] = !selected[i]; - } - else colors[i].a = 255; - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - for (int i = 0; i < 21; i++) // Draw all rectangles - { - DrawRectangleRec(colorsRecs[i], colors[i]); - - // Draw four rectangles around selected rectangle - if (selected[i]) - { - DrawRectangle(colorsRecs[i].x, colorsRecs[i].y, 100, 10, RAYWHITE); // Square top rectangle - DrawRectangle(colorsRecs[i].x, colorsRecs[i].y, 10, 100, RAYWHITE); // Square left rectangle - DrawRectangle(colorsRecs[i].x + 90, colorsRecs[i].y, 10, 100, RAYWHITE); // Square right rectangle - DrawRectangle(colorsRecs[i].x, colorsRecs[i].y + 90, 100, 10, RAYWHITE); // Square bottom rectangle - } - } - - EndDrawing(); - //---------------------------------------------------------------------------------- -} \ No newline at end of file diff --git a/examples/web/core/core_color_select.html b/examples/web/core/core_color_select.html deleted file mode 100644 index 97de59d..0000000 --- a/examples/web/core/core_color_select.html +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - - raylib HTML5 GAME - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
Downloading...
- - - - - -
- -
-
- -
- -
- - - - - - - \ No newline at end of file diff --git a/examples/web/core/core_color_select.js b/examples/web/core/core_color_select.js deleted file mode 100644 index 8a9e579..0000000 --- a/examples/web/core/core_color_select.js +++ /dev/null @@ -1,23764 +0,0 @@ -// The Module object: Our interface to the outside world. We import -// and export values on it, and do the work to get that through -// closure compiler if necessary. There are various ways Module can be used: -// 1. Not defined. We create it here -// 2. A function parameter, function(Module) { ..generated code.. } -// 3. pre-run appended it, var Module = {}; ..generated code.. -// 4. External script tag defines var Module. -// We need to do an eval in order to handle the closure compiler -// case, where this code here is minified but Module was defined -// elsewhere (e.g. case 4 above). We also need to check if Module -// already exists (e.g. case 3 above). -// Note that if you want to run closure, and also to use Module -// after the generated code, you will need to define var Module = {}; -// before the code. Then that object will be used in the code, and you -// can continue to use Module afterwards as well. -var Module; -if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {}; - -// Sometimes an existing Module object exists with properties -// meant to overwrite the default module functionality. Here -// we collect those properties and reapply _after_ we configure -// the current environment's defaults to avoid having to be so -// defensive during initialization. -var moduleOverrides = {}; -for (var key in Module) { - if (Module.hasOwnProperty(key)) { - moduleOverrides[key] = Module[key]; - } -} - -// The environment setup code below is customized to use Module. -// *** Environment setup code *** -var ENVIRONMENT_IS_WEB = false; -var ENVIRONMENT_IS_WORKER = false; -var ENVIRONMENT_IS_NODE = false; -var ENVIRONMENT_IS_SHELL = false; - -// Three configurations we can be running in: -// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) -// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) -// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) - -if (Module['ENVIRONMENT']) { - if (Module['ENVIRONMENT'] === 'WEB') { - ENVIRONMENT_IS_WEB = true; - } else if (Module['ENVIRONMENT'] === 'WORKER') { - ENVIRONMENT_IS_WORKER = true; - } else if (Module['ENVIRONMENT'] === 'NODE') { - ENVIRONMENT_IS_NODE = true; - } else if (Module['ENVIRONMENT'] === 'SHELL') { - ENVIRONMENT_IS_SHELL = true; - } else { - throw new Error('The provided Module[\'ENVIRONMENT\'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.'); - } -} else { - ENVIRONMENT_IS_WEB = typeof window === 'object'; - ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; - ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; - ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; -} - - -if (ENVIRONMENT_IS_NODE) { - // Expose functionality in the same simple way that the shells work - // Note that we pollute the global namespace here, otherwise we break in node - if (!Module['print']) Module['print'] = console.log; - if (!Module['printErr']) Module['printErr'] = console.warn; - - var nodeFS; - var nodePath; - - Module['read'] = function shell_read(filename, binary) { - if (!nodeFS) nodeFS = require('fs'); - if (!nodePath) nodePath = require('path'); - filename = nodePath['normalize'](filename); - var ret = nodeFS['readFileSync'](filename); - return binary ? ret : ret.toString(); - }; - - Module['readBinary'] = function readBinary(filename) { - var ret = Module['read'](filename, true); - if (!ret.buffer) { - ret = new Uint8Array(ret); - } - assert(ret.buffer); - return ret; - }; - - Module['load'] = function load(f) { - globalEval(read(f)); - }; - - if (!Module['thisProgram']) { - if (process['argv'].length > 1) { - Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); - } else { - Module['thisProgram'] = 'unknown-program'; - } - } - - Module['arguments'] = process['argv'].slice(2); - - if (typeof module !== 'undefined') { - module['exports'] = Module; - } - - process['on']('uncaughtException', function(ex) { - // suppress ExitStatus exceptions from showing an error - if (!(ex instanceof ExitStatus)) { - throw ex; - } - }); - - Module['inspect'] = function () { return '[Emscripten Module object]'; }; -} -else if (ENVIRONMENT_IS_SHELL) { - if (!Module['print']) Module['print'] = print; - if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm - - if (typeof read != 'undefined') { - Module['read'] = read; - } else { - Module['read'] = function shell_read() { throw 'no read() available' }; - } - - Module['readBinary'] = function readBinary(f) { - if (typeof readbuffer === 'function') { - return new Uint8Array(readbuffer(f)); - } - var data = read(f, 'binary'); - assert(typeof data === 'object'); - return data; - }; - - if (typeof scriptArgs != 'undefined') { - Module['arguments'] = scriptArgs; - } else if (typeof arguments != 'undefined') { - Module['arguments'] = arguments; - } - - if (typeof quit === 'function') { - Module['quit'] = function(status, toThrow) { - quit(status); - } - } - -} -else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { - Module['read'] = function shell_read(url) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.send(null); - return xhr.responseText; - }; - - if (ENVIRONMENT_IS_WORKER) { - Module['readBinary'] = function readBinary(url) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.responseType = 'arraybuffer'; - xhr.send(null); - return new Uint8Array(xhr.response); - }; - } - - Module['readAsync'] = function readAsync(url, onload, onerror) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.onload = function xhr_onload() { - if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 - onload(xhr.response); - } else { - onerror(); - } - }; - xhr.onerror = onerror; - xhr.send(null); - }; - - if (typeof arguments != 'undefined') { - Module['arguments'] = arguments; - } - - if (typeof console !== 'undefined') { - if (!Module['print']) Module['print'] = function shell_print(x) { - console.log(x); - }; - if (!Module['printErr']) Module['printErr'] = function shell_printErr(x) { - console.warn(x); - }; - } else { - // Probably a worker, and without console.log. We can do very little here... - var TRY_USE_DUMP = false; - if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) { - dump(x); - }) : (function(x) { - // self.postMessage(x); // enable this if you want stdout to be sent as messages - })); - } - - if (ENVIRONMENT_IS_WORKER) { - Module['load'] = importScripts; - } - - if (typeof Module['setWindowTitle'] === 'undefined') { - Module['setWindowTitle'] = function(title) { document.title = title }; - } -} -else { - // Unreachable because SHELL is dependant on the others - throw 'Unknown runtime environment. Where are we?'; -} - -function globalEval(x) { - eval.call(null, x); -} -if (!Module['load'] && Module['read']) { - Module['load'] = function load(f) { - globalEval(Module['read'](f)); - }; -} -if (!Module['print']) { - Module['print'] = function(){}; -} -if (!Module['printErr']) { - Module['printErr'] = Module['print']; -} -if (!Module['arguments']) { - Module['arguments'] = []; -} -if (!Module['thisProgram']) { - Module['thisProgram'] = './this.program'; -} -if (!Module['quit']) { - Module['quit'] = function(status, toThrow) { - throw toThrow; - } -} - -// *** Environment setup code *** - -// Closure helpers -Module.print = Module['print']; -Module.printErr = Module['printErr']; - -// Callbacks -Module['preRun'] = []; -Module['postRun'] = []; - -// Merge back in the overrides -for (var key in moduleOverrides) { - if (moduleOverrides.hasOwnProperty(key)) { - Module[key] = moduleOverrides[key]; - } -} -// Free the object hierarchy contained in the overrides, this lets the GC -// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. -moduleOverrides = undefined; - - - -// {{PREAMBLE_ADDITIONS}} - -// === Preamble library stuff === - -// Documentation for the public APIs defined in this file must be updated in: -// site/source/docs/api_reference/preamble.js.rst -// A prebuilt local version of the documentation is available at: -// site/build/text/docs/api_reference/preamble.js.txt -// You can also build docs locally as HTML or other formats in site/ -// An online HTML version (which may be of a different version of Emscripten) -// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html - -//======================================== -// Runtime code shared with compiler -//======================================== - -var Runtime = { - setTempRet0: function (value) { - tempRet0 = value; - return value; - }, - getTempRet0: function () { - return tempRet0; - }, - stackSave: function () { - return STACKTOP; - }, - stackRestore: function (stackTop) { - STACKTOP = stackTop; - }, - getNativeTypeSize: function (type) { - switch (type) { - case 'i1': case 'i8': return 1; - case 'i16': return 2; - case 'i32': return 4; - case 'i64': return 8; - case 'float': return 4; - case 'double': return 8; - default: { - if (type[type.length-1] === '*') { - return Runtime.QUANTUM_SIZE; // A pointer - } else if (type[0] === 'i') { - var bits = parseInt(type.substr(1)); - assert(bits % 8 === 0); - return bits/8; - } else { - return 0; - } - } - } - }, - getNativeFieldSize: function (type) { - return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE); - }, - STACK_ALIGN: 16, - prepVararg: function (ptr, type) { - if (type === 'double' || type === 'i64') { - // move so the load is aligned - if (ptr & 7) { - assert((ptr & 7) === 4); - ptr += 4; - } - } else { - assert((ptr & 3) === 0); - } - return ptr; - }, - getAlignSize: function (type, size, vararg) { - // we align i64s and doubles on 64-bit boundaries, unlike x86 - if (!vararg && (type == 'i64' || type == 'double')) return 8; - if (!type) return Math.min(size, 8); // align structures internally to 64 bits - return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE); - }, - dynCall: function (sig, ptr, args) { - if (args && args.length) { - assert(args.length == sig.length-1); - assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); - return Module['dynCall_' + sig].apply(null, [ptr].concat(args)); - } else { - assert(sig.length == 1); - assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); - return Module['dynCall_' + sig].call(null, ptr); - } - }, - functionPointers: [], - addFunction: function (func) { - for (var i = 0; i < Runtime.functionPointers.length; i++) { - if (!Runtime.functionPointers[i]) { - Runtime.functionPointers[i] = func; - return 2*(1 + i); - } - } - throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; - }, - removeFunction: function (index) { - Runtime.functionPointers[(index-2)/2] = null; - }, - warnOnce: function (text) { - if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; - if (!Runtime.warnOnce.shown[text]) { - Runtime.warnOnce.shown[text] = 1; - Module.printErr(text); - } - }, - funcWrappers: {}, - getFuncWrapper: function (func, sig) { - assert(sig); - if (!Runtime.funcWrappers[sig]) { - Runtime.funcWrappers[sig] = {}; - } - var sigCache = Runtime.funcWrappers[sig]; - if (!sigCache[func]) { - // optimize away arguments usage in common cases - if (sig.length === 1) { - sigCache[func] = function dynCall_wrapper() { - return Runtime.dynCall(sig, func); - }; - } else if (sig.length === 2) { - sigCache[func] = function dynCall_wrapper(arg) { - return Runtime.dynCall(sig, func, [arg]); - }; - } else { - // general case - sigCache[func] = function dynCall_wrapper() { - return Runtime.dynCall(sig, func, Array.prototype.slice.call(arguments)); - }; - } - } - return sigCache[func]; - }, - getCompilerSetting: function (name) { - throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work'; - }, - stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+15)&-16);(assert((((STACKTOP|0) < (STACK_MAX|0))|0))|0); return ret; }, - staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + (assert(!staticSealed),size))|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; }, - dynamicAlloc: function (size) { assert(DYNAMICTOP_PTR);var ret = HEAP32[DYNAMICTOP_PTR>>2];var end = (((ret + size + 15)|0) & -16);HEAP32[DYNAMICTOP_PTR>>2] = end;if (end >= TOTAL_MEMORY) {var success = enlargeMemory();if (!success) {HEAP32[DYNAMICTOP_PTR>>2] = ret;return 0;}}return ret;}, - alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 16))*(quantum ? quantum : 16); return ret; }, - makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0))); return ret; }, - GLOBAL_BASE: 8, - QUANTUM_SIZE: 4, - __dummy__: 0 -} - - - -Module["Runtime"] = Runtime; - - - -//======================================== -// Runtime essentials -//======================================== - -var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort() -var EXITSTATUS = 0; - -/** @type {function(*, string=)} */ -function assert(condition, text) { - if (!condition) { - abort('Assertion failed: ' + text); - } -} - -var globalScope = this; - -// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) -function getCFunc(ident) { - var func = Module['_' + ident]; // closure exported function - if (!func) { - try { func = eval('_' + ident); } catch(e) {} - } - assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)'); - return func; -} - -var cwrap, ccall; -(function(){ - var JSfuncs = { - // Helpers for cwrap -- it can't refer to Runtime directly because it might - // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find - // out what the minified function name is. - 'stackSave': function() { - Runtime.stackSave() - }, - 'stackRestore': function() { - Runtime.stackRestore() - }, - // type conversion from js to c - 'arrayToC' : function(arr) { - var ret = Runtime.stackAlloc(arr.length); - writeArrayToMemory(arr, ret); - return ret; - }, - 'stringToC' : function(str) { - var ret = 0; - if (str !== null && str !== undefined && str !== 0) { // null string - // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' - var len = (str.length << 2) + 1; - ret = Runtime.stackAlloc(len); - stringToUTF8(str, ret, len); - } - return ret; - } - }; - // For fast lookup of conversion functions - var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']}; - - // C calling interface. - ccall = function ccallFunc(ident, returnType, argTypes, args, opts) { - var func = getCFunc(ident); - var cArgs = []; - var stack = 0; - assert(returnType !== 'array', 'Return type should not be "array".'); - if (args) { - for (var i = 0; i < args.length; i++) { - var converter = toC[argTypes[i]]; - if (converter) { - if (stack === 0) stack = Runtime.stackSave(); - cArgs[i] = converter(args[i]); - } else { - cArgs[i] = args[i]; - } - } - } - var ret = func.apply(null, cArgs); - if ((!opts || !opts.async) && typeof EmterpreterAsync === 'object') { - assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling ccall'); - } - if (opts && opts.async) assert(!returnType, 'async ccalls cannot return values'); - if (returnType === 'string') ret = Pointer_stringify(ret); - if (stack !== 0) { - if (opts && opts.async) { - EmterpreterAsync.asyncFinalizers.push(function() { - Runtime.stackRestore(stack); - }); - return; - } - Runtime.stackRestore(stack); - } - return ret; - } - - var sourceRegex = /^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; - function parseJSFunc(jsfunc) { - // Match the body and the return value of a javascript function source - var parsed = jsfunc.toString().match(sourceRegex).slice(1); - return {arguments : parsed[0], body : parsed[1], returnValue: parsed[2]} - } - - // sources of useful functions. we create this lazily as it can trigger a source decompression on this entire file - var JSsource = null; - function ensureJSsource() { - if (!JSsource) { - JSsource = {}; - for (var fun in JSfuncs) { - if (JSfuncs.hasOwnProperty(fun)) { - // Elements of toCsource are arrays of three items: - // the code, and the return value - JSsource[fun] = parseJSFunc(JSfuncs[fun]); - } - } - } - } - - cwrap = function cwrap(ident, returnType, argTypes) { - argTypes = argTypes || []; - var cfunc = getCFunc(ident); - // When the function takes numbers and returns a number, we can just return - // the original function - var numericArgs = argTypes.every(function(type){ return type === 'number'}); - var numericRet = (returnType !== 'string'); - if ( numericRet && numericArgs) { - return cfunc; - } - // Creation of the arguments list (["$1","$2",...,"$nargs"]) - var argNames = argTypes.map(function(x,i){return '$'+i}); - var funcstr = "(function(" + argNames.join(',') + ") {"; - var nargs = argTypes.length; - if (!numericArgs) { - // Generate the code needed to convert the arguments from javascript - // values to pointers - ensureJSsource(); - funcstr += 'var stack = ' + JSsource['stackSave'].body + ';'; - for (var i = 0; i < nargs; i++) { - var arg = argNames[i], type = argTypes[i]; - if (type === 'number') continue; - var convertCode = JSsource[type + 'ToC']; // [code, return] - funcstr += 'var ' + convertCode.arguments + ' = ' + arg + ';'; - funcstr += convertCode.body + ';'; - funcstr += arg + '=(' + convertCode.returnValue + ');'; - } - } - - // When the code is compressed, the name of cfunc is not literally 'cfunc' anymore - var cfuncname = parseJSFunc(function(){return cfunc}).returnValue; - // Call the function - funcstr += 'var ret = ' + cfuncname + '(' + argNames.join(',') + ');'; - if (!numericRet) { // Return type can only by 'string' or 'number' - // Convert the result to a string - var strgfy = parseJSFunc(function(){return Pointer_stringify}).returnValue; - funcstr += 'ret = ' + strgfy + '(ret);'; - } - funcstr += "if (typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling cwrap') }"; - if (!numericArgs) { - // If we had a stack, restore it - ensureJSsource(); - funcstr += JSsource['stackRestore'].body.replace('()', '(stack)') + ';'; - } - funcstr += 'return ret})'; - return eval(funcstr); - }; -})(); -Module["ccall"] = ccall; -Module["cwrap"] = cwrap; - -/** @type {function(number, number, string, boolean=)} */ -function setValue(ptr, value, type, noSafe) { - type = type || 'i8'; - if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit - switch(type) { - case 'i1': HEAP8[((ptr)>>0)]=value; break; - case 'i8': HEAP8[((ptr)>>0)]=value; break; - case 'i16': HEAP16[((ptr)>>1)]=value; break; - case 'i32': HEAP32[((ptr)>>2)]=value; break; - case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; - case 'float': HEAPF32[((ptr)>>2)]=value; break; - case 'double': HEAPF64[((ptr)>>3)]=value; break; - default: abort('invalid type for setValue: ' + type); - } -} -Module["setValue"] = setValue; - -/** @type {function(number, string, boolean=)} */ -function getValue(ptr, type, noSafe) { - type = type || 'i8'; - if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit - switch(type) { - case 'i1': return HEAP8[((ptr)>>0)]; - case 'i8': return HEAP8[((ptr)>>0)]; - case 'i16': return HEAP16[((ptr)>>1)]; - case 'i32': return HEAP32[((ptr)>>2)]; - case 'i64': return HEAP32[((ptr)>>2)]; - case 'float': return HEAPF32[((ptr)>>2)]; - case 'double': return HEAPF64[((ptr)>>3)]; - default: abort('invalid type for setValue: ' + type); - } - return null; -} -Module["getValue"] = getValue; - -var ALLOC_NORMAL = 0; // Tries to use _malloc() -var ALLOC_STACK = 1; // Lives for the duration of the current function call -var ALLOC_STATIC = 2; // Cannot be freed -var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk -var ALLOC_NONE = 4; // Do not allocate -Module["ALLOC_NORMAL"] = ALLOC_NORMAL; -Module["ALLOC_STACK"] = ALLOC_STACK; -Module["ALLOC_STATIC"] = ALLOC_STATIC; -Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC; -Module["ALLOC_NONE"] = ALLOC_NONE; - -// allocate(): This is for internal use. You can use it yourself as well, but the interface -// is a little tricky (see docs right below). The reason is that it is optimized -// for multiple syntaxes to save space in generated code. So you should -// normally not use allocate(), and instead allocate memory using _malloc(), -// initialize it with setValue(), and so forth. -// @slab: An array of data, or a number. If a number, then the size of the block to allocate, -// in *bytes* (note that this is sometimes confusing: the next parameter does not -// affect this!) -// @types: Either an array of types, one for each byte (or 0 if no type at that position), -// or a single type which is used for the entire block. This only matters if there -// is initial data - if @slab is a number, then this does not matter at all and is -// ignored. -// @allocator: How to allocate memory, see ALLOC_* -/** @type {function((TypedArray|Array|number), string, number, number=)} */ -function allocate(slab, types, allocator, ptr) { - var zeroinit, size; - if (typeof slab === 'number') { - zeroinit = true; - size = slab; - } else { - zeroinit = false; - size = slab.length; - } - - var singleType = typeof types === 'string' ? types : null; - - var ret; - if (allocator == ALLOC_NONE) { - ret = ptr; - } else { - ret = [typeof _malloc === 'function' ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); - } - - if (zeroinit) { - var ptr = ret, stop; - assert((ret & 3) == 0); - stop = ret + (size & ~3); - for (; ptr < stop; ptr += 4) { - HEAP32[((ptr)>>2)]=0; - } - stop = ret + size; - while (ptr < stop) { - HEAP8[((ptr++)>>0)]=0; - } - return ret; - } - - if (singleType === 'i8') { - if (slab.subarray || slab.slice) { - HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret); - } else { - HEAPU8.set(new Uint8Array(slab), ret); - } - return ret; - } - - var i = 0, type, typeSize, previousType; - while (i < size) { - var curr = slab[i]; - - if (typeof curr === 'function') { - curr = Runtime.getFunctionIndex(curr); - } - - type = singleType || types[i]; - if (type === 0) { - i++; - continue; - } - assert(type, 'Must know what type to store in allocate!'); - - if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later - - setValue(ret+i, curr, type); - - // no need to look up size unless type changes, so cache it - if (previousType !== type) { - typeSize = Runtime.getNativeTypeSize(type); - previousType = type; - } - i += typeSize; - } - - return ret; -} -Module["allocate"] = allocate; - -// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready -function getMemory(size) { - if (!staticSealed) return Runtime.staticAlloc(size); - if (!runtimeInitialized) return Runtime.dynamicAlloc(size); - return _malloc(size); -} -Module["getMemory"] = getMemory; - -/** @type {function(number, number=)} */ -function Pointer_stringify(ptr, length) { - if (length === 0 || !ptr) return ''; - // TODO: use TextDecoder - // Find the length, and check for UTF while doing so - var hasUtf = 0; - var t; - var i = 0; - while (1) { - assert(ptr + i < TOTAL_MEMORY); - t = HEAPU8[(((ptr)+(i))>>0)]; - hasUtf |= t; - if (t == 0 && !length) break; - i++; - if (length && i == length) break; - } - if (!length) length = i; - - var ret = ''; - - if (hasUtf < 128) { - var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack - var curr; - while (length > 0) { - curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); - ret = ret ? ret + curr : curr; - ptr += MAX_CHUNK; - length -= MAX_CHUNK; - } - return ret; - } - return Module['UTF8ToString'](ptr); -} -Module["Pointer_stringify"] = Pointer_stringify; - -// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -function AsciiToString(ptr) { - var str = ''; - while (1) { - var ch = HEAP8[((ptr++)>>0)]; - if (!ch) return str; - str += String.fromCharCode(ch); - } -} -Module["AsciiToString"] = AsciiToString; - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. - -function stringToAscii(str, outPtr) { - return writeAsciiToMemory(str, outPtr, false); -} -Module["stringToAscii"] = stringToAscii; - -// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns -// a copy of that string as a Javascript String object. - -var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; -function UTF8ArrayToString(u8Array, idx) { - var endPtr = idx; - // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. - // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. - while (u8Array[endPtr]) ++endPtr; - - if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { - return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); - } else { - var u0, u1, u2, u3, u4, u5; - - var str = ''; - while (1) { - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 - u0 = u8Array[idx++]; - if (!u0) return str; - if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } - u1 = u8Array[idx++] & 63; - if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } - u2 = u8Array[idx++] & 63; - if ((u0 & 0xF0) == 0xE0) { - u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; - } else { - u3 = u8Array[idx++] & 63; - if ((u0 & 0xF8) == 0xF0) { - u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; - } else { - u4 = u8Array[idx++] & 63; - if ((u0 & 0xFC) == 0xF8) { - u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; - } else { - u5 = u8Array[idx++] & 63; - u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; - } - } - } - if (u0 < 0x10000) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } - } - } -} -Module["UTF8ArrayToString"] = UTF8ArrayToString; - -// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -function UTF8ToString(ptr) { - return UTF8ArrayToString(HEAPU8,ptr); -} -Module["UTF8ToString"] = UTF8ToString; - -// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', -// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. -// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element. -// outIdx: The starting offset in the array to begin the copying. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. -// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { - if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. - return 0; - - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); - if (u <= 0x7F) { - if (outIdx >= endIdx) break; - outU8Array[outIdx++] = u; - } else if (u <= 0x7FF) { - if (outIdx + 1 >= endIdx) break; - outU8Array[outIdx++] = 0xC0 | (u >> 6); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0xFFFF) { - if (outIdx + 2 >= endIdx) break; - outU8Array[outIdx++] = 0xE0 | (u >> 12); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0x1FFFFF) { - if (outIdx + 3 >= endIdx) break; - outU8Array[outIdx++] = 0xF0 | (u >> 18); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0x3FFFFFF) { - if (outIdx + 4 >= endIdx) break; - outU8Array[outIdx++] = 0xF8 | (u >> 24); - outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else { - if (outIdx + 5 >= endIdx) break; - outU8Array[outIdx++] = 0xFC | (u >> 30); - outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } - } - // Null-terminate the pointer to the buffer. - outU8Array[outIdx] = 0; - return outIdx - startIdx; -} -Module["stringToUTF8Array"] = stringToUTF8Array; - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. -// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF8(str, outPtr, maxBytesToWrite) { - assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); -} -Module["stringToUTF8"] = stringToUTF8; - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); - if (u <= 0x7F) { - ++len; - } else if (u <= 0x7FF) { - len += 2; - } else if (u <= 0xFFFF) { - len += 3; - } else if (u <= 0x1FFFFF) { - len += 4; - } else if (u <= 0x3FFFFFF) { - len += 5; - } else { - len += 6; - } - } - return len; -} -Module["lengthBytesUTF8"] = lengthBytesUTF8; - -// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; -function UTF16ToString(ptr) { - assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); - var endPtr = ptr; - // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. - // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. - var idx = endPtr >> 1; - while (HEAP16[idx]) ++idx; - endPtr = idx << 1; - - if (endPtr - ptr > 32 && UTF16Decoder) { - return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); - } else { - var i = 0; - - var str = ''; - while (1) { - var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; - if (codeUnit == 0) return str; - ++i; - // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. - str += String.fromCharCode(codeUnit); - } - } -} - - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. -// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outPtr: Byte address in Emscripten HEAP where to write the string to. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. -// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF16(str, outPtr, maxBytesToWrite) { - assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); - assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. - if (maxBytesToWrite === undefined) { - maxBytesToWrite = 0x7FFFFFFF; - } - if (maxBytesToWrite < 2) return 0; - maxBytesToWrite -= 2; // Null terminator. - var startPtr = outPtr; - var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; - for (var i = 0; i < numCharsToWrite; ++i) { - // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. - var codeUnit = str.charCodeAt(i); // possibly a lead surrogate - HEAP16[((outPtr)>>1)]=codeUnit; - outPtr += 2; - } - // Null-terminate the pointer to the HEAP. - HEAP16[((outPtr)>>1)]=0; - return outPtr - startPtr; -} - - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF16(str) { - return str.length*2; -} - - -function UTF32ToString(ptr) { - assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); - var i = 0; - - var str = ''; - while (1) { - var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; - if (utf32 == 0) - return str; - ++i; - // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - if (utf32 >= 0x10000) { - var ch = utf32 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } else { - str += String.fromCharCode(utf32); - } - } -} - - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. -// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outPtr: Byte address in Emscripten HEAP where to write the string to. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. -// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF32(str, outPtr, maxBytesToWrite) { - assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); - assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. - if (maxBytesToWrite === undefined) { - maxBytesToWrite = 0x7FFFFFFF; - } - if (maxBytesToWrite < 4) return 0; - var startPtr = outPtr; - var endPtr = startPtr + maxBytesToWrite - 4; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var codeUnit = str.charCodeAt(i); // possibly a lead surrogate - if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { - var trailSurrogate = str.charCodeAt(++i); - codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); - } - HEAP32[((outPtr)>>2)]=codeUnit; - outPtr += 4; - if (outPtr + 4 > endPtr) break; - } - // Null-terminate the pointer to the HEAP. - HEAP32[((outPtr)>>2)]=0; - return outPtr - startPtr; -} - - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF32(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var codeUnit = str.charCodeAt(i); - if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. - len += 4; - } - - return len; -} - - -function demangle(func) { - var __cxa_demangle_func = Module['___cxa_demangle'] || Module['__cxa_demangle']; - if (__cxa_demangle_func) { - try { - var s = - func.substr(1); - var len = lengthBytesUTF8(s)+1; - var buf = _malloc(len); - stringToUTF8(s, buf, len); - var status = _malloc(4); - var ret = __cxa_demangle_func(buf, 0, 0, status); - if (getValue(status, 'i32') === 0 && ret) { - return Pointer_stringify(ret); - } - // otherwise, libcxxabi failed - } catch(e) { - // ignore problems here - } finally { - if (buf) _free(buf); - if (status) _free(status); - if (ret) _free(ret); - } - // failure when using libcxxabi, don't demangle - return func; - } - Runtime.warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); - return func; -} - -function demangleAll(text) { - var regex = - /__Z[\w\d_]+/g; - return text.replace(regex, - function(x) { - var y = demangle(x); - return x === y ? x : (x + ' [' + y + ']'); - }); -} - -function jsStackTrace() { - var err = new Error(); - if (!err.stack) { - // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, - // so try that as a special-case. - try { - throw new Error(0); - } catch(e) { - err = e; - } - if (!err.stack) { - return '(no stack trace available)'; - } - } - return err.stack.toString(); -} - -function stackTrace() { - var js = jsStackTrace(); - if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace'](); - return demangleAll(js); -} -Module["stackTrace"] = stackTrace; - -// Memory management - -var PAGE_SIZE = 16384; -var WASM_PAGE_SIZE = 65536; -var ASMJS_PAGE_SIZE = 16777216; -var MIN_TOTAL_MEMORY = 16777216; - -function alignUp(x, multiple) { - if (x % multiple > 0) { - x += multiple - (x % multiple); - } - return x; -} - -var HEAP, -/** @type {ArrayBuffer} */ - buffer, -/** @type {Int8Array} */ - HEAP8, -/** @type {Uint8Array} */ - HEAPU8, -/** @type {Int16Array} */ - HEAP16, -/** @type {Uint16Array} */ - HEAPU16, -/** @type {Int32Array} */ - HEAP32, -/** @type {Uint32Array} */ - HEAPU32, -/** @type {Float32Array} */ - HEAPF32, -/** @type {Float64Array} */ - HEAPF64; - -function updateGlobalBuffer(buf) { - Module['buffer'] = buffer = buf; -} - -function updateGlobalBufferViews() { - Module['HEAP8'] = HEAP8 = new Int8Array(buffer); - Module['HEAP16'] = HEAP16 = new Int16Array(buffer); - Module['HEAP32'] = HEAP32 = new Int32Array(buffer); - Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer); - Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer); - Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer); - Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer); - Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer); -} - -var STATIC_BASE, STATICTOP, staticSealed; // static area -var STACK_BASE, STACKTOP, STACK_MAX; // stack area -var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk - - STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; - staticSealed = false; - - -// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. -function writeStackCookie() { - assert((STACK_MAX & 3) == 0); - HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467; - HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE; -} - -function checkStackCookie() { - if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) { - abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16)); - } - // Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own. - if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!'; -} - -function abortStackOverflow(allocSize) { - abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - Module['asm'].stackSave() + allocSize) + ' bytes available!'); -} - -function abortOnCannotGrowMemory() { - abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); -} - - -function enlargeMemory() { - abortOnCannotGrowMemory(); -} - - -var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; -var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216; -if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); - -// Initialize the runtime's memory -// check for full engine support (use string 'subarray' to avoid closure compiler confusion) -assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined, - 'JS engine does not provide full typed array support'); - - - -// Use a provided buffer, if there is one, or else allocate a new one -if (Module['buffer']) { - buffer = Module['buffer']; - assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength); -} else { - // Use a WebAssembly memory where available - { - buffer = new ArrayBuffer(TOTAL_MEMORY); - } - assert(buffer.byteLength === TOTAL_MEMORY); -} -updateGlobalBufferViews(); - - -function getTotalMemory() { - return TOTAL_MEMORY; -} - -// Endianness check (note: assumes compiler arch was little-endian) - HEAP32[0] = 0x63736d65; /* 'emsc' */ -HEAP16[1] = 0x6373; -if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!'; - -Module['HEAP'] = HEAP; -Module['buffer'] = buffer; -Module['HEAP8'] = HEAP8; -Module['HEAP16'] = HEAP16; -Module['HEAP32'] = HEAP32; -Module['HEAPU8'] = HEAPU8; -Module['HEAPU16'] = HEAPU16; -Module['HEAPU32'] = HEAPU32; -Module['HEAPF32'] = HEAPF32; -Module['HEAPF64'] = HEAPF64; - -function callRuntimeCallbacks(callbacks) { - while(callbacks.length > 0) { - var callback = callbacks.shift(); - if (typeof callback == 'function') { - callback(); - continue; - } - var func = callback.func; - if (typeof func === 'number') { - if (callback.arg === undefined) { - Module['dynCall_v'](func); - } else { - Module['dynCall_vi'](func, callback.arg); - } - } else { - func(callback.arg === undefined ? null : callback.arg); - } - } -} - -var __ATPRERUN__ = []; // functions called before the runtime is initialized -var __ATINIT__ = []; // functions called during startup -var __ATMAIN__ = []; // functions called when main() is to be run -var __ATEXIT__ = []; // functions called during shutdown -var __ATPOSTRUN__ = []; // functions called after the runtime has exited - -var runtimeInitialized = false; -var runtimeExited = false; - - -function preRun() { - // compatibility - merge in anything from Module['preRun'] at this time - if (Module['preRun']) { - if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; - while (Module['preRun'].length) { - addOnPreRun(Module['preRun'].shift()); - } - } - callRuntimeCallbacks(__ATPRERUN__); -} - -function ensureInitRuntime() { - checkStackCookie(); - if (runtimeInitialized) return; - runtimeInitialized = true; - callRuntimeCallbacks(__ATINIT__); -} - -function preMain() { - checkStackCookie(); - callRuntimeCallbacks(__ATMAIN__); -} - -function exitRuntime() { - checkStackCookie(); - callRuntimeCallbacks(__ATEXIT__); - runtimeExited = true; -} - -function postRun() { - checkStackCookie(); - // compatibility - merge in anything from Module['postRun'] at this time - if (Module['postRun']) { - if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; - while (Module['postRun'].length) { - addOnPostRun(Module['postRun'].shift()); - } - } - callRuntimeCallbacks(__ATPOSTRUN__); -} - -function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); -} -Module["addOnPreRun"] = addOnPreRun; - -function addOnInit(cb) { - __ATINIT__.unshift(cb); -} -Module["addOnInit"] = addOnInit; - -function addOnPreMain(cb) { - __ATMAIN__.unshift(cb); -} -Module["addOnPreMain"] = addOnPreMain; - -function addOnExit(cb) { - __ATEXIT__.unshift(cb); -} -Module["addOnExit"] = addOnExit; - -function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); -} -Module["addOnPostRun"] = addOnPostRun; - -// Tools - -/** @type {function(string, boolean=, number=)} */ -function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) u8array.length = numBytesWritten; - return u8array; -} -Module["intArrayFromString"] = intArrayFromString; - -function intArrayToString(array) { - var ret = []; - for (var i = 0; i < array.length; i++) { - var chr = array[i]; - if (chr > 0xFF) { - assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); - chr &= 0xFF; - } - ret.push(String.fromCharCode(chr)); - } - return ret.join(''); -} -Module["intArrayToString"] = intArrayToString; - -// Deprecated: This function should not be called because it is unsafe and does not provide -// a maximum length limit of how many bytes it is allowed to write. Prefer calling the -// function stringToUTF8Array() instead, which takes in a maximum length that can be used -// to be secure from out of bounds writes. -/** @deprecated */ -function writeStringToMemory(string, buffer, dontAddNull) { - Runtime.warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); - - var /** @type {number} */ lastChar, /** @type {number} */ end; - if (dontAddNull) { - // stringToUTF8Array always appends null. If we don't want to do that, remember the - // character that existed at the location where the null will be placed, and restore - // that after the write (below). - end = buffer + lengthBytesUTF8(string); - lastChar = HEAP8[end]; - } - stringToUTF8(string, buffer, Infinity); - if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. -} -Module["writeStringToMemory"] = writeStringToMemory; - -function writeArrayToMemory(array, buffer) { - assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') - HEAP8.set(array, buffer); -} -Module["writeArrayToMemory"] = writeArrayToMemory; - -function writeAsciiToMemory(str, buffer, dontAddNull) { - for (var i = 0; i < str.length; ++i) { - assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); - HEAP8[((buffer++)>>0)]=str.charCodeAt(i); - } - // Null-terminate the pointer to the HEAP. - if (!dontAddNull) HEAP8[((buffer)>>0)]=0; -} -Module["writeAsciiToMemory"] = writeAsciiToMemory; - -function unSign(value, bits, ignore) { - if (value >= 0) { - return value; - } - return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts - : Math.pow(2, bits) + value; -} -function reSign(value, bits, ignore) { - if (value <= 0) { - return value; - } - var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 - : Math.pow(2, bits-1); - if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that - // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors - // TODO: In i64 mode 1, resign the two parts separately and safely - value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts - } - return value; -} - -// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 ) -if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) { - var ah = a >>> 16; - var al = a & 0xffff; - var bh = b >>> 16; - var bl = b & 0xffff; - return (al*bl + ((ah*bl + al*bh) << 16))|0; -}; -Math.imul = Math['imul']; - - -if (!Math['clz32']) Math['clz32'] = function(x) { - x = x >>> 0; - for (var i = 0; i < 32; i++) { - if (x & (1 << (31 - i))) return i; - } - return 32; -}; -Math.clz32 = Math['clz32'] - -if (!Math['trunc']) Math['trunc'] = function(x) { - return x < 0 ? Math.ceil(x) : Math.floor(x); -}; -Math.trunc = Math['trunc']; - -var Math_abs = Math.abs; -var Math_cos = Math.cos; -var Math_sin = Math.sin; -var Math_tan = Math.tan; -var Math_acos = Math.acos; -var Math_asin = Math.asin; -var Math_atan = Math.atan; -var Math_atan2 = Math.atan2; -var Math_exp = Math.exp; -var Math_log = Math.log; -var Math_sqrt = Math.sqrt; -var Math_ceil = Math.ceil; -var Math_floor = Math.floor; -var Math_pow = Math.pow; -var Math_imul = Math.imul; -var Math_fround = Math.fround; -var Math_round = Math.round; -var Math_min = Math.min; -var Math_clz32 = Math.clz32; -var Math_trunc = Math.trunc; - -// A counter of dependencies for calling run(). If we need to -// do asynchronous work before running, increment this and -// decrement it. Incrementing must happen in a place like -// PRE_RUN_ADDITIONS (used by emcc to add file preloading). -// Note that you can add dependencies in preRun, even though -// it happens right before run - run will be postponed until -// the dependencies are met. -var runDependencies = 0; -var runDependencyWatcher = null; -var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled -var runDependencyTracking = {}; - -function getUniqueRunDependency(id) { - var orig = id; - while (1) { - if (!runDependencyTracking[id]) return id; - id = orig + Math.random(); - } - return id; -} - -function addRunDependency(id) { - runDependencies++; - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - if (id) { - assert(!runDependencyTracking[id]); - runDependencyTracking[id] = 1; - if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { - // Check for missing dependencies every few seconds - runDependencyWatcher = setInterval(function() { - if (ABORT) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - return; - } - var shown = false; - for (var dep in runDependencyTracking) { - if (!shown) { - shown = true; - Module.printErr('still waiting on run dependencies:'); - } - Module.printErr('dependency: ' + dep); - } - if (shown) { - Module.printErr('(end of list)'); - } - }, 10000); - } - } else { - Module.printErr('warning: run dependency added without ID'); - } -} -Module["addRunDependency"] = addRunDependency; - -function removeRunDependency(id) { - runDependencies--; - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - if (id) { - assert(runDependencyTracking[id]); - delete runDependencyTracking[id]; - } else { - Module.printErr('warning: run dependency removed without ID'); - } - if (runDependencies == 0) { - if (runDependencyWatcher !== null) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - } - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); // can add another dependenciesFulfilled - } - } -} -Module["removeRunDependency"] = removeRunDependency; - -Module["preloadedImages"] = {}; // maps url to image data -Module["preloadedAudios"] = {}; // maps url to audio data - - - -var memoryInitializer = null; - - - -var /* show errors on likely calls to FS when it was not included */ FS = { - error: function() { - abort('Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -s FORCE_FILESYSTEM=1'); - }, - init: function() { FS.error() }, - createDataFile: function() { FS.error() }, - createPreloadedFile: function() { FS.error() }, - createLazyFile: function() { FS.error() }, - open: function() { FS.error() }, - mkdev: function() { FS.error() }, - registerDevice: function() { FS.error() }, - analyzePath: function() { FS.error() }, - loadFilesFromDB: function() { FS.error() }, - - ErrnoError: function ErrnoError() { FS.error() }, -}; -Module['FS_createDataFile'] = FS.createDataFile; -Module['FS_createPreloadedFile'] = FS.createPreloadedFile; - - - -// === Body === - -var ASM_CONSTS = [function($0, $1) { Module.printErr('bad name in getProcAddress: ' + [Pointer_stringify($0), Pointer_stringify($1)]) }]; - -function _emscripten_asm_const_iii(code, a0, a1) { - return ASM_CONSTS[code](a0, a1); -} - - - -STATIC_BASE = Runtime.GLOBAL_BASE; - -STATICTOP = STATIC_BASE + 19808; -/* global initializers */ __ATINIT__.push(); - - -/* memory initializer */ allocate([32,3,0,0,194,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,176,1,0,0,0,0,0,0,0,0,0,32,37,249,142,0,10,2,0,0,128,190,125,95,244,125,31,160,242,43,74,30,9,82,8,0,64,34,65,80,20,4,16,32,32,41,46,18,8,34,8,0,32,34,65,80,20,4,16,32,32,249,16,76,8,250,62,60,16,34,125,222,247,125,16,32,32,161,232,50,8,34,8,0,8,34,5,16,4,69,16,0,240,163,164,50,8,82,8,0,4,34,5,16,4,69,16,32,32,249,226,94,8,2,0,129,2,62,125,31,244,125,16,0,0,32,0,0,176,1,128,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,0,0,0,0,190,15,0,192,15,224,247,251,125,126,191,95,232,190,80,0,162,8,8,68,232,47,20,10,133,2,129,80,72,160,80,0,162,40,228,73,40,40,20,10,132,2,129,64,72,160,72,0,190,15,2,16,175,235,247,9,132,62,159,216,79,160,71,0,34,136,228,9,161,42,20,10,132,2,129,80,72,160,72,0,34,40,8,4,160,47,20,10,133,2,129,80,72,162,80,0,190,143,0,0,33,32,244,251,125,126,129,95,232,156,208,7,0,128,0,0,224,15,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,0,0,128,1,12,0,130,66,191,223,239,247,251,11,5,5,133,66,191,4,72,0,198,66,161,80,40,20,64,8,5,37,133,66,160,8,168,0,170,70,161,80,40,20,64,8,5,37,133,66,144,16,8,0,146,74,161,95,232,247,67,8,5,37,121,126,136,32,8,0,130,82,161,64,40,1,66,8,137,36,133,64,132,64,8,0,130,98,161,64,42,2,66,8,81,36,133,64,130,128,8,0,130,66,191,192,47,244,67,248,33,252,133,126,191,0,9,62,0,0,0,0,4,0,0,0,0,0,0,0,128,1,12,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,2,4,0,4,0,32,72,65,0,0,0,0,0,8,0,0,4,4,0,4,60,32,0,65,0,0,0,0,0,8,0,0,240,125,223,247,133,239,75,81,190,239,251,190,239,59,81,4,0,69,65,20,133,40,74,73,170,40,138,162,32,8,81,4,240,69,65,244,157,40,74,71,170,40,138,162,224,11,81,4,16,69,65,20,132,40,74,73,170,40,138,162,0,10,145,2,240,125,223,247,133,47,74,209,170,232,251,190,224,123,31,1,0,0,0,0,4,8,64,0,0,0,8,32,0,0,0,0,0,0,0,0,132,15,96,0,0,0,8,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,1,15,0,0,0,0,0,0,0,0,0,0,0,0,0,36,1,15,0,0,0,0,0,0,0,0,0,6,0,0,0,36,1,15,0,0,0,0,0,0,0,128,16,9,162,40,250,36,1,15,0,0,0,0,0,0,0,0,62,1,42,37,66,34,82,15,0,0,0,0,0,0,0,128,138,3,42,34,34,36,41,15,0,0,0,0,0,0,0,128,10,1,42,37,18,36,1,15,0,0,0,0,0,0,0,128,10,1,190,232,251,36,1,15,0,0,0,0,0,0,0,128,190,14,0,0,2,172,1,15,0,0,0,0,0,0,0,128,4,0,0,224,3,0,0,15,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,14,184,67,132,3,58,32,0,128,160,190,2,32,0,0,240,138,32,82,196,2,43,32,4,34,145,2,248,59,0,240,7,142,56,75,228,2,58,32,2,28,138,30,8,42,233,17,4,224,11,66,244,2,130,36,1,20,4,20,232,186,4,209,5,128,184,195,231,10,58,137,0,28,14,60,40,2,9,80,4,128,0,64,196,2,128,68,0,34,132,32,232,2,0,80,4,0,0,64,128,2,0,32,5,0,142,62,8,2,0,16,4,224,3,64,128,66,0,0,7,0,132,0,248,3,0,240,7,0,0,64,128,34,0,0,4,0,0,0,0,0,0,0,0,0,0,64,128,2,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,128,0,194,160,72,24,0,0,1,132,33,9,146,2,66,38,4,1,33,81,0,0,127,63,2,66,2,16,41,0,34,20,192,239,247,251,253,126,9,161,223,239,247,187,187,3,18,15,68,40,20,10,133,66,9,129,64,32,16,16,17,1,8,4,68,40,20,10,133,66,127,129,64,32,16,16,17,1,4,130,199,239,247,251,253,126,9,129,207,231,243,17,17,1,50,169,80,40,20,10,133,66,9,161,64,32,16,16,17,1,64,184,80,40,20,10,133,66,121,191,223,239,247,187,187,3,32,160,31,0,0,0,0,0,0,16,0,0,0,0,0,0,112,32,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,40,2,8,131,34,1,0,2,8,67,2,1,0,1,1,124,20,4,132,68,1,0,32,4,132,4,128,8,63,130,0,132,66,191,223,239,247,3,126,161,80,40,20,10,33,0,0,132,70,161,80,40,20,138,82,161,80,40,20,122,161,239,3,158,74,161,80,40,20,82,82,161,80,40,20,74,31,8,2,132,82,161,80,40,20,34,74,161,80,40,244,75,161,239,3,132,98,161,80,40,20,82,74,161,80,40,4,122,161,40,2,124,66,191,223,239,247,139,126,191,223,239,247,11,189,239,3,0,0,0,0,0,0,0,4,0,0,0,0,8,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,8,5,32,0,0,4,132,0,34,129,69,17,16,66,1,0,148,66,81,0,0,8,66,81,148,42,162,32,8,165,80,0,0,0,32,0,0,0,0,0,0,0,5,0,0,0,0,8,190,239,251,254,251,190,239,251,20,145,235,251,190,239,251,0,32,8,130,32,10,162,40,138,20,145,40,138,162,40,138,62,190,239,251,254,11,190,239,251,20,145,40,138,162,40,138,0,162,40,138,34,8,130,32,8,20,145,40,138,162,40,138,8,190,239,251,254,251,190,239,251,20,145,47,250,190,239,251,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,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,1,33,0,4,0,0,0,0,0,0,0,0,0,0,0,0,130,80,20,2,20,0,0,0,0,0,0,0,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,190,40,138,162,40,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,168,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,190,239,251,190,47,62,0,0,0,0,0,0,0,0,0,0,4,0,0,0,40,32,0,0,0,0,0,0,0,0,0,0,0,0,0,128,15,62,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,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,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,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,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,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,3,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,7,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,7,0,0,0,3,0,0,0,5,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,5,0,0,0,0,0,128,191,255,255,255,255,255,255,255,255,0,1,0,0,255,255,255,255,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,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,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,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,28,68,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,0,0,156,12,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,83,73,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,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,156,12,0,0,114,97,121,108,105,98,32,91,99,111,114,101,93,32,101,120,97,109,112,108,101,32,45,32,99,111,108,111,114,32,115,101,108,101,99,116,105,111,110,32,40,99,111,108,108,105,115,105,111,110,32,100,101,116,101,99,116,105,111,110,41,0,80,80,80,255,190,33,55,255,255,161,0,255,0,117,44,255,0,82,172,255,112,31,126,255,76,63,47,255,130,130,130,255,230,41,55,255,255,203,0,255,0,158,47,255,0,121,241,255,135,60,190,255,127,106,79,255,200,200,200,255,255,109,194,255,253,249,0,255,0,228,48,255,102,191,255,255,200,122,255,255,211,176,131,255,73,78,70,79,58,32,0,87,65,82,78,73,78,71,58,32,0,91,84,69,88,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,102,111,110,116,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,80,97,114,97,109,101,116,101,114,115,58,32,37,105,120,37,105,44,32,37,105,32,109,105,112,115,44,32,102,111,114,109,97,116,32,37,105,0,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,50,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,84,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,84,101,120,116,117,114,101,32,99,114,101,97,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,84,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,99,114,101,97,116,101,100,0,73,109,97,103,101,32,100,97,116,97,32,102,111,114,109,97,116,32,105,115,32,99,111,109,112,114,101,115,115,101,100,44,32,99,97,110,32,110,111,116,32,98,101,32,99,111,110,118,101,114,116,101,100,0,70,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,112,105,120,101,108,32,100,97,116,97,32,114,101,116,114,105,101,118,97,108,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,77,65,88,95,76,73,78,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,84,82,73,65,78,71,76,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,81,85,65,68,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,73,110,105,116,105,97,108,105,122,105,110,103,32,114,97,121,108,105,98,32,40,118,49,46,56,46,48,41,0,35,99,97,110,118,97,115,0,84,97,114,103,101,116,32,116,105,109,101,32,112,101,114,32,102,114,97,109,101,58,32,37,48,50,46,48,51,102,32,109,105,108,108,105,115,101,99,111,110,100,115,0,69,115,99,97,112,101,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,102,117,108,108,115,99,114,101,101,110,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,119,105,110,100,111,119,101,100,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,71,76,70,87,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,77,83,65,65,32,120,52,0,67,108,111,115,101,115,116,32,102,117,108,108,115,99,114,101,101,110,32,118,105,100,101,111,109,111,100,101,58,32,37,105,32,120,32,37,105,0,71,76,70,87,32,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,87,105,110,100,111,119,0,68,105,115,112,108,97,121,32,100,101,118,105,99,101,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,82,101,110,100,101,114,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,83,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,86,105,101,119,112,111,114,116,32,111,102,102,115,101,116,115,58,32,37,105,44,32,37,105,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,86,83,89,78,67,0,71,80,85,58,32,86,101,110,100,111,114,58,32,32,32,37,115,0,71,80,85,58,32,82,101,110,100,101,114,101,114,58,32,37,115,0,71,80,85,58,32,86,101,114,115,105,111,110,58,32,32,37,115,0,71,80,85,58,32,71,76,83,76,58,32,32,32,32,32,37,115,0,32,0,78,117,109,98,101,114,32,111,102,32,115,117,112,112,111,114,116,101,100,32,101,120,116,101,110,115,105,111,110,115,58,32,37,105,0,71,76,95,79,69,83,95,118,101,114,116,101,120,95,97,114,114,97,121,95,111,98,106,101,99,116,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,79,69,83,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,71,76,95,79,69,83,95,116,101,120,116,117,114,101,95,110,112,111,116,0,79,69,83,95,116,101,120,116,117,114,101,95,102,108,111,97,116,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,115,51,116,99,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,87,69,66,75,73,84,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,79,69,83,95,99,111,109,112,114,101,115,115,101,100,95,69,84,67,49,95,82,71,66,56,95,116,101,120,116,117,114,101,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,101,116,99,49,0,71,76,95,65,82,66,95,69,83,51,95,99,111,109,112,97,116,105,98,105,108,105,116,121,0,71,76,95,73,77,71,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,112,118,114,116,99,0,71,76,95,75,72,82,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,97,115,116,99,95,104,100,114,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,102,105,108,116,101,114,95,97,110,105,115,111,116,114,111,112,105,99,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,109,105,114,114,111,114,95,99,108,97,109,112,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,86,65,79,32,102,117,110,99,116,105,111,110,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,86,65,79,32,117,115,97,103,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,102,117,108,108,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,108,105,109,105,116,101,100,32,78,80,79,84,32,115,117,112,112,111,114,116,32,40,110,111,45,109,105,112,109,97,112,115,44,32,110,111,45,114,101,112,101,97,116,41,0,91,69,88,84,69,78,83,73,79,78,93,32,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,50,47,69,65,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,110,105,115,111,116,114,111,112,105,99,32,116,101,120,116,117,114,101,115,32,102,105,108,116,101,114,105,110,103,32,115,117,112,112,111,114,116,101,100,32,40,109,97,120,58,32,37,46,48,102,88,41,0,91,69,88,84,69,78,83,73,79,78,93,32,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,116,101,120,116,117,114,101,32,109,111,100,101,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,79,112,101,110,71,76,32,100,101,102,97,117,108,116,32,115,116,97,116,101,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,67,80,85,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,44,32,116,114,105,97,110,103,108,101,115,44,32,113,117,97,100,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,51,32,118,101,114,116,101,120,80,111,115,105,116,105,111,110,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,50,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,52,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,109,97,116,52,32,109,118,112,59,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,102,114,97,103,84,101,120,67,111,111,114,100,32,61,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,10,32,32,32,32,102,114,97,103,67,111,108,111,114,32,61,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,10,32,32,32,32,103,108,95,80,111,115,105,116,105,111,110,32,61,32,109,118,112,42,118,101,99,52,40,118,101,114,116,101,120,80,111,115,105,116,105,111,110,44,32,49,46,48,41,59,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,112,114,101,99,105,115,105,111,110,32,109,101,100,105,117,109,112,32,102,108,111,97,116,59,32,32,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,116,101,120,116,117,114,101,48,59,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,118,101,99,52,32,99,111,108,68,105,102,102,117,115,101,59,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,118,101,99,52,32,116,101,120,101,108,67,111,108,111,114,32,61,32,116,101,120,116,117,114,101,50,68,40,116,101,120,116,117,114,101,48,44,32,102,114,97,103,84,101,120,67,111,111,114,100,41,59,32,10,32,32,32,32,103,108,95,70,114,97,103,67,111,108,111,114,32,61,32,116,101,120,101,108,67,111,108,111,114,42,99,111,108,68,105,102,102,117,115,101,42,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,118,101,114,116,101,120,80,111,115,105,116,105,111,110,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,0,118,101,114,116,101,120,67,111,108,111,114,0,109,118,112,0,99,111,108,68,105,102,102,117,115,101,0,116,101,120,116,117,114,101,48,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,118,101,114,116,101,120,32,115,104,97,100,101,114,46,46,46,0,37,115,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,86,101,114,116,101,120,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,102,114,97,103,109,101,110,116,32,115,104,97,100,101,114,46,46,46,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,114,97,103,109,101,110,116,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,118,101,114,116,101,120,78,111,114,109,97,108,0,118,101,114,116,101,120,84,97,110,103,101,110,116,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,50,0,91,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,108,105,110,107,32,115,104,97,100,101,114,32,112,114,111,103,114,97,109,46,46,46,0,91,83,72,68,82,32,73,68,32,37,105,93,32,83,104,97,100,101,114,32,112,114,111,103,114,97,109,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,79,87,78,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,32,40,37,105,120,37,105,41,32,105,115,32,98,105,103,103,101,114,32,116,104,97,110,32,100,105,115,112,108,97,121,32,115,105,122,101,32,40,37,105,120,37,105,41,0,68,111,119,110,115,99,97,108,101,32,109,97,116,114,105,120,32,103,101,110,101,114,97,116,101,100,44,32,99,111,110,116,101,110,116,32,119,105,108,108,32,98,101,32,114,101,110,100,101,114,101,100,32,97,116,58,32,37,105,32,120,32,37,105,0,85,80,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,32,45,62,32,68,105,115,112,108,97,121,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,91,71,76,70,87,51,32,69,114,114,111,114,93,32,67,111,100,101,58,32,37,105,32,68,101,99,114,105,112,116,105,111,110,58,32,37,115,0,87,105,110,100,111,119,32,99,108,111,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,40,98,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,41,32,102,114,111,109,32,86,82,65,77,0,69,88,84,0,65,82,66,0,79,69,83,0,65,78,71,76,69,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,0,103,108,85,115,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,85,115,101,80,114,111,103,114,97,109,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,0,103,108,65,116,116,97,99,104,79,98,106,101,99,116,0,103,108,65,116,116,97,99,104,83,104,97,100,101,114,0,103,108,68,101,116,97,99,104,79,98,106,101,99,116,0,103,108,68,101,116,97,99,104,83,104,97,100,101,114,0,103,108,80,105,120,101,108,83,116,111,114,101,105,0,103,108,71,101,116,83,116,114,105,110,103,0,103,108,71,101,116,73,110,116,101,103,101,114,118,0,103,108,71,101,116,70,108,111,97,116,118,0,103,108,71,101,116,66,111,111,108,101,97,110,118,0,103,108,71,101,110,84,101,120,116,117,114,101,115,0,103,108,68,101,108,101,116,101,84,101,120,116,117,114,101,115,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,84,101,120,73,109,97,103,101,50,68,0,103,108,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,82,101,97,100,80,105,120,101,108,115,0,103,108,66,105,110,100,84,101,120,116,117,114,101,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,84,101,120,116,117,114,101,0,103,108,71,101,110,66,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,66,117,102,102,101,114,115,0,103,108,71,101,116,66,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,66,117,102,102,101,114,68,97,116,97,0,103,108,66,117,102,102,101,114,83,117,98,68,97,116,97,0,103,108,73,115,66,117,102,102,101,114,0,103,108,71,101,110,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,66,105,110,100,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,82,101,110,100,101,114,98,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,85,110,105,102,111,114,109,102,118,0,103,108,71,101,116,85,110,105,102,111,114,109,105,118,0,103,108,71,101,116,85,110,105,102,111,114,109,76,111,99,97,116,105,111,110,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,102,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,105,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,118,0,103,108,71,101,116,65,99,116,105,118,101,85,110,105,102,111,114,109,0,103,108,85,110,105,102,111,114,109,49,102,0,103,108,85,110,105,102,111,114,109,50,102,0,103,108,85,110,105,102,111,114,109,51,102,0,103,108,85,110,105,102,111,114,109,52,102,0,103,108,85,110,105,102,111,114,109,49,105,0,103,108,85,110,105,102,111,114,109,50,105,0,103,108,85,110,105,102,111,114,109,51,105,0,103,108,85,110,105,102,111,114,109,52,105,0,103,108,85,110,105,102,111,114,109,49,105,118,0,103,108,85,110,105,102,111,114,109,50,105,118,0,103,108,85,110,105,102,111,114,109,51,105,118,0,103,108,85,110,105,102,111,114,109,52,105,118,0,103,108,85,110,105,102,111,114,109,49,102,118,0,103,108,85,110,105,102,111,114,109,50,102,118,0,103,108,85,110,105,102,111,114,109,51,102,118,0,103,108,85,110,105,102,111,114,109,52,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,50,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,51,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,52,102,118,0,103,108,66,105,110,100,66,117,102,102,101,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,118,0,103,108,71,101,116,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,71,101,116,65,99,116,105,118,101,65,116,116,114,105,98,0,103,108,68,101,108,101,116,101,83,104,97,100,101,114,0,103,108,71,101,116,65,116,116,97,99,104,101,100,83,104,97,100,101,114,115,0,103,108,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,71,101,116,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,67,111,109,112,105,108,101,83,104,97,100,101,114,0,103,108,71,101,116,83,104,97,100,101,114,73,110,102,111,76,111,103,0,103,108,71,101,116,83,104,97,100,101,114,105,118,0,103,108,71,101,116,80,114,111,103,114,97,109,105,118,0,103,108,73,115,83,104,97,100,101,114,0,103,108,68,101,108,101,116,101,80,114,111,103,114,97,109,0,103,108,71,101,116,83,104,97,100,101,114,80,114,101,99,105,115,105,111,110,70,111,114,109,97,116,0,103,108,76,105,110,107,80,114,111,103,114,97,109,0,103,108,71,101,116,80,114,111,103,114,97,109,73,110,102,111,76,111,103,0,103,108,86,97,108,105,100,97,116,101,80,114,111,103,114,97,109,0,103,108,73,115,80,114,111,103,114,97,109,0,103,108,66,105,110,100,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,66,105,110,100,70,114,97,109,101,98,117,102,102,101,114,0,103,108,71,101,110,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,70,114,97,109,101,98,117,102,102,101,114,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,70,114,97,109,101,98,117,102,102,101,114,84,101,120,116,117,114,101,50,68,0,103,108,71,101,116,70,114,97,109,101,98,117,102,102,101,114,65,116,116,97,99,104,109,101,110,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,70,114,97,109,101,98,117,102,102,101,114,0,103,108,68,101,108,101,116,101,79,98,106,101,99,116,0,103,108,71,101,116,79,98,106,101,99,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,71,101,116,73,110,102,111,76,111,103,0,103,108,66,105,110,100,80,114,111,103,114,97,109,0,103,108,71,101,116,80,111,105,110,116,101,114,118,0,103,108,68,114,97,119,82,97,110,103,101,69,108,101,109,101,110,116,115,0,103,108,69,110,97,98,108,101,67,108,105,101,110,116,83,116,97,116,101,0,103,108,86,101,114,116,101,120,80,111,105,110,116,101,114,0,103,108,84,101,120,67,111,111,114,100,80,111,105,110,116,101,114,0,103,108,78,111,114,109,97,108,80,111,105,110,116,101,114,0,103,108,67,111,108,111,114,80,111,105,110,116,101,114,0,103,108,67,108,105,101,110,116,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,0,103,108,77,97,116,114,105,120,77,111,100,101,0,103,108,76,111,97,100,73,100,101,110,116,105,116,121,0,103,108,76,111,97,100,77,97,116,114,105,120,102,0,103,108,70,114,117,115,116,117,109,0,103,108], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); -/* memory initializer */ allocate([82,111,116,97,116,101,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,0,103,108,69,110,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,105,115,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,114,97,119,65,114,114,97,121,115,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,0,103,108,83,104,97,100,101,114,66,105,110,97,114,121,0,103,108,82,101,108,101,97,115,101,83,104,97,100,101,114,67,111,109,112,105,108,101,114,0,103,108,71,101,116,69,114,114,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,68,105,118,105,115,111,114,0,103,108,68,114,97,119,65,114,114,97,121,115,73,110,115,116,97,110,99,101,100,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,73,110,115,116,97,110,99,101,100,0,103,108,70,105,110,105,115,104,0,103,108,70,108,117,115,104,0,103,108,67,108,101,97,114,68,101,112,116,104,0,103,108,67,108,101,97,114,68,101,112,116,104,102,0,103,108,68,101,112,116,104,70,117,110,99,0,103,108,69,110,97,98,108,101,0,103,108,68,105,115,97,98,108,101,0,103,108,70,114,111,110,116,70,97,99,101,0,103,108,67,117,108,108,70,97,99,101,0,103,108,67,108,101,97,114,0,103,108,76,105,110,101,87,105,100,116,104,0,103,108,67,108,101,97,114,83,116,101,110,99,105,108,0,103,108,68,101,112,116,104,77,97,115,107,0,103,108,83,116,101,110,99,105,108,77,97,115,107,0,103,108,67,104,101,99,107,70,114,97,109,101,98,117,102,102,101,114,83,116,97,116,117,115,0,103,108,71,101,110,101,114,97,116,101,77,105,112,109,97,112,0,103,108,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,0,103,108,73,115,69,110,97,98,108,101,100,0,103,108,66,108,101,110,100,70,117,110,99,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,83,101,112,97,114,97,116,101,0,103,108,68,101,112,116,104,82,97,110,103,101,0,103,108,68,101,112,116,104,82,97,110,103,101,102,0,103,108,83,116,101,110,99,105,108,77,97,115,107,83,101,112,97,114,97,116,101,0,103,108,72,105,110,116,0,103,108,80,111,108,121,103,111,110,79,102,102,115,101,116,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,0,103,108,83,97,109,112,108,101,67,111,118,101,114,97,103,101,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,0,103,108,83,116,101,110,99,105,108,70,117,110,99,0,103,108,83,116,101,110,99,105,108,79,112,0,103,108,86,105,101,119,112,111,114,116,0,103,108,67,108,101,97,114,67,111,108,111,114,0,103,108,83,99,105,115,115,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,0,103,108,67,111,108,111,114,77,97,115,107,0,103,108,82,101,110,100,101,114,98,117,102,102,101,114,83,116,111,114,97,103,101,0,103,108,66,108,101,110,100,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,66,108,101,110,100,67,111,108,111,114,0,103,108,83,116,101,110,99,105,108,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,83,116,101,110,99,105,108,79,112,83,101,112,97,114,97,116,101,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,0,103,108,67,111,112,121,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,112,121,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,68,114,97,119,66,117,102,102,101,114,115,0,77,111,100,117,108,101,46,112,114,105,110,116,69,114,114,40,39,98,97,100,32,110,97,109,101,32,105,110,32,103,101,116,80,114,111,99,65,100,100,114,101,115,115,58,32,39,32,43,32,91,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,48,41,44,32,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,49,41,93,41,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,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,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,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,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,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,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,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,18,0,0,0,18,18,18,0,0,0,0,0,0,9,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,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,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,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240); - - - - - -/* no memory initializer */ -var tempDoublePtr = STATICTOP; STATICTOP += 16; - -assert(tempDoublePtr % 8 == 0); - -function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much - - HEAP8[tempDoublePtr] = HEAP8[ptr]; - - HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; - - HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; - - HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; - -} - -function copyTempDouble(ptr) { - - HEAP8[tempDoublePtr] = HEAP8[ptr]; - - HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; - - HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; - - HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; - - HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; - - HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; - - HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; - - HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; - -} - -// {{PRE_LIBRARY}} - - - - var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},tempFixedLengthArray:[],packAlignment:4,unpackAlignment:4,init:function () { - GL.miniTempBuffer = new Float32Array(GL.MINI_TEMP_BUFFER_SIZE); - for (var i = 0; i < GL.MINI_TEMP_BUFFER_SIZE; i++) { - GL.miniTempBufferViews[i] = GL.miniTempBuffer.subarray(0, i+1); - } - - // For functions such as glDrawBuffers, glInvalidateFramebuffer and glInvalidateSubFramebuffer that need to pass a short array to the WebGL API, - // create a set of short fixed-length arrays to avoid having to generate any garbage when calling those functions. - for (var i = 0; i < 32; i++) { - GL.tempFixedLengthArray.push(new Array(i)); - } - },recordError:function recordError(errorCode) { - if (!GL.lastError) { - GL.lastError = errorCode; - } - },getNewId:function (table) { - var ret = GL.counter++; - for (var i = table.length; i < ret; i++) { - table[i] = null; - } - return ret; - },MINI_TEMP_BUFFER_SIZE:256,miniTempBuffer:null,miniTempBufferViews:[0],getSource:function (shader, count, string, length) { - var source = ''; - for (var i = 0; i < count; ++i) { - var frag; - if (length) { - var len = HEAP32[(((length)+(i*4))>>2)]; - if (len < 0) { - frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); - } else { - frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)], len); - } - } else { - frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); - } - source += frag; - } - return source; - },createContext:function (canvas, webGLContextAttributes) { - if (typeof webGLContextAttributes['majorVersion'] === 'undefined' && typeof webGLContextAttributes['minorVersion'] === 'undefined') { - webGLContextAttributes['majorVersion'] = 1; - webGLContextAttributes['minorVersion'] = 0; - } - - - var ctx; - var errorInfo = '?'; - function onContextCreationError(event) { - errorInfo = event.statusMessage || errorInfo; - } - try { - canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false); - try { - if (webGLContextAttributes['majorVersion'] == 1 && webGLContextAttributes['minorVersion'] == 0) { - ctx = canvas.getContext("webgl", webGLContextAttributes) || canvas.getContext("experimental-webgl", webGLContextAttributes); - } else if (webGLContextAttributes['majorVersion'] == 2 && webGLContextAttributes['minorVersion'] == 0) { - ctx = canvas.getContext("webgl2", webGLContextAttributes); - } else { - throw 'Unsupported WebGL context version ' + majorVersion + '.' + minorVersion + '!' - } - } finally { - canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false); - } - if (!ctx) throw ':('; - } catch (e) { - Module.print('Could not create canvas: ' + [errorInfo, e, JSON.stringify(webGLContextAttributes)]); - return 0; - } - // possible GL_DEBUG entry point: ctx = wrapDebugGL(ctx); - - if (!ctx) return 0; - return GL.registerContext(ctx, webGLContextAttributes); - },registerContext:function (ctx, webGLContextAttributes) { - var handle = GL.getNewId(GL.contexts); - var context = { - handle: handle, - attributes: webGLContextAttributes, - version: webGLContextAttributes['majorVersion'], - GLctx: ctx - }; - - - // Store the created context object so that we can access the context given a canvas without having to pass the parameters again. - if (ctx.canvas) ctx.canvas.GLctxObject = context; - GL.contexts[handle] = context; - if (typeof webGLContextAttributes['enableExtensionsByDefault'] === 'undefined' || webGLContextAttributes['enableExtensionsByDefault']) { - GL.initExtensions(context); - } - return handle; - },makeContextCurrent:function (contextHandle) { - var context = GL.contexts[contextHandle]; - if (!context) return false; - GLctx = Module.ctx = context.GLctx; // Active WebGL context object. - GL.currentContext = context; // Active Emscripten GL layer context object. - return true; - },getContext:function (contextHandle) { - return GL.contexts[contextHandle]; - },deleteContext:function (contextHandle) { - if (GL.currentContext === GL.contexts[contextHandle]) GL.currentContext = null; - if (typeof JSEvents === 'object') JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); // Release all JS event handlers on the DOM element that the GL context is associated with since the context is now deleted. - if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; // Make sure the canvas object no longer refers to the context object so there are no GC surprises. - GL.contexts[contextHandle] = null; - },initExtensions:function (context) { - // If this function is called without a specific context object, init the extensions of the currently active context. - if (!context) context = GL.currentContext; - - if (context.initExtensionsDone) return; - context.initExtensionsDone = true; - - var GLctx = context.GLctx; - - context.maxVertexAttribs = GLctx.getParameter(GLctx.MAX_VERTEX_ATTRIBS); - - // Detect the presence of a few extensions manually, this GL interop layer itself will need to know if they exist. - - if (context.version < 2) { - // Extension available from Firefox 26 and Google Chrome 30 - var instancedArraysExt = GLctx.getExtension('ANGLE_instanced_arrays'); - if (instancedArraysExt) { - GLctx['vertexAttribDivisor'] = function(index, divisor) { instancedArraysExt['vertexAttribDivisorANGLE'](index, divisor); }; - GLctx['drawArraysInstanced'] = function(mode, first, count, primcount) { instancedArraysExt['drawArraysInstancedANGLE'](mode, first, count, primcount); }; - GLctx['drawElementsInstanced'] = function(mode, count, type, indices, primcount) { instancedArraysExt['drawElementsInstancedANGLE'](mode, count, type, indices, primcount); }; - } - - // Extension available from Firefox 25 and WebKit - var vaoExt = GLctx.getExtension('OES_vertex_array_object'); - if (vaoExt) { - GLctx['createVertexArray'] = function() { return vaoExt['createVertexArrayOES'](); }; - GLctx['deleteVertexArray'] = function(vao) { vaoExt['deleteVertexArrayOES'](vao); }; - GLctx['bindVertexArray'] = function(vao) { vaoExt['bindVertexArrayOES'](vao); }; - GLctx['isVertexArray'] = function(vao) { return vaoExt['isVertexArrayOES'](vao); }; - } - - var drawBuffersExt = GLctx.getExtension('WEBGL_draw_buffers'); - if (drawBuffersExt) { - GLctx['drawBuffers'] = function(n, bufs) { drawBuffersExt['drawBuffersWEBGL'](n, bufs); }; - } - } - - GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); - - // These are the 'safe' feature-enabling extensions that don't add any performance impact related to e.g. debugging, and - // should be enabled by default so that client GLES2/GL code will not need to go through extra hoops to get its stuff working. - // As new extensions are ratified at http://www.khronos.org/registry/webgl/extensions/ , feel free to add your new extensions - // here, as long as they don't produce a performance impact for users that might not be using those extensions. - // E.g. debugging-related extensions should probably be off by default. - var automaticallyEnabledExtensions = [ "OES_texture_float", "OES_texture_half_float", "OES_standard_derivatives", - "OES_vertex_array_object", "WEBGL_compressed_texture_s3tc", "WEBGL_depth_texture", - "OES_element_index_uint", "EXT_texture_filter_anisotropic", "ANGLE_instanced_arrays", - "OES_texture_float_linear", "OES_texture_half_float_linear", "WEBGL_compressed_texture_atc", - "WEBGL_compressed_texture_pvrtc", "EXT_color_buffer_half_float", "WEBGL_color_buffer_float", - "EXT_frag_depth", "EXT_sRGB", "WEBGL_draw_buffers", "WEBGL_shared_resources", - "EXT_shader_texture_lod", "EXT_color_buffer_float"]; - - function shouldEnableAutomatically(extension) { - var ret = false; - automaticallyEnabledExtensions.forEach(function(include) { - if (ext.indexOf(include) != -1) { - ret = true; - } - }); - return ret; - } - - var exts = GLctx.getSupportedExtensions(); - if (exts && exts.length > 0) { - GLctx.getSupportedExtensions().forEach(function(ext) { - if (automaticallyEnabledExtensions.indexOf(ext) != -1) { - GLctx.getExtension(ext); // Calling .getExtension enables that extension permanently, no need to store the return value to be enabled. - } - }); - } - },populateUniformTable:function (program) { - var p = GL.programs[program]; - GL.programInfos[program] = { - uniforms: {}, - maxUniformLength: 0, // This is eagerly computed below, since we already enumerate all uniforms anyway. - maxAttributeLength: -1, // This is lazily computed and cached, computed when/if first asked, "-1" meaning not computed yet. - maxUniformBlockNameLength: -1 // Lazily computed as well - }; - - var ptable = GL.programInfos[program]; - var utable = ptable.uniforms; - // A program's uniform table maps the string name of an uniform to an integer location of that uniform. - // The global GL.uniforms map maps integer locations to WebGLUniformLocations. - var numUniforms = GLctx.getProgramParameter(p, GLctx.ACTIVE_UNIFORMS); - for (var i = 0; i < numUniforms; ++i) { - var u = GLctx.getActiveUniform(p, i); - - var name = u.name; - ptable.maxUniformLength = Math.max(ptable.maxUniformLength, name.length+1); - - // Strip off any trailing array specifier we might have got, e.g. "[0]". - if (name.indexOf(']', name.length-1) !== -1) { - var ls = name.lastIndexOf('['); - name = name.slice(0, ls); - } - - // Optimize memory usage slightly: If we have an array of uniforms, e.g. 'vec3 colors[3];', then - // only store the string 'colors' in utable, and 'colors[0]', 'colors[1]' and 'colors[2]' will be parsed as 'colors'+i. - // Note that for the GL.uniforms table, we still need to fetch the all WebGLUniformLocations for all the indices. - var loc = GLctx.getUniformLocation(p, name); - if (loc != null) - { - var id = GL.getNewId(GL.uniforms); - utable[name] = [u.size, id]; - GL.uniforms[id] = loc; - - for (var j = 1; j < u.size; ++j) { - var n = name + '['+j+']'; - loc = GLctx.getUniformLocation(p, n); - id = GL.getNewId(GL.uniforms); - - GL.uniforms[id] = loc; - } - } - } - }};function _emscripten_glIsRenderbuffer(renderbuffer) { - var rb = GL.renderbuffers[renderbuffer]; - if (!rb) return 0; - return GLctx.isRenderbuffer(rb); - } - - function _emscripten_glStencilMaskSeparate(x0, x1) { GLctx['stencilMaskSeparate'](x0, x1) } - - - - function _emscripten_get_now() { abort() } - - - - function _emscripten_set_main_loop_timing(mode, value) { - Browser.mainLoop.timingMode = mode; - Browser.mainLoop.timingValue = value; - - if (!Browser.mainLoop.func) { - console.error('emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.'); - return 1; // Return non-zero on failure, can't set timing mode when there is no main loop. - } - - if (mode == 0 /*EM_TIMING_SETTIMEOUT*/) { - Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { - var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now())|0; - setTimeout(Browser.mainLoop.runner, timeUntilNextTick); // doing this each time means that on exception, we stop - }; - Browser.mainLoop.method = 'timeout'; - } else if (mode == 1 /*EM_TIMING_RAF*/) { - Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { - Browser.requestAnimationFrame(Browser.mainLoop.runner); - }; - Browser.mainLoop.method = 'rAF'; - } else if (mode == 2 /*EM_TIMING_SETIMMEDIATE*/) { - if (!window['setImmediate']) { - // Emulate setImmediate. (note: not a complete polyfill, we don't emulate clearImmediate() to keep code size to minimum, since not needed) - var setImmediates = []; - var emscriptenMainLoopMessageId = 'setimmediate'; - function Browser_setImmediate_messageHandler(event) { - if (event.source === window && event.data === emscriptenMainLoopMessageId) { - event.stopPropagation(); - setImmediates.shift()(); - } - } - window.addEventListener("message", Browser_setImmediate_messageHandler, true); - window['setImmediate'] = function Browser_emulated_setImmediate(func) { - setImmediates.push(func); - if (ENVIRONMENT_IS_WORKER) { - if (Module['setImmediates'] === undefined) Module['setImmediates'] = []; - Module['setImmediates'].push(func); - window.postMessage({target: emscriptenMainLoopMessageId}); // In --proxy-to-worker, route the message via proxyClient.js - } else window.postMessage(emscriptenMainLoopMessageId, "*"); // On the main thread, can just send the message to itself. - } - } - Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { - window['setImmediate'](Browser.mainLoop.runner); - }; - Browser.mainLoop.method = 'immediate'; - } - return 0; - }function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) { - Module['noExitRuntime'] = true; - - assert(!Browser.mainLoop.func, 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.'); - - Browser.mainLoop.func = func; - Browser.mainLoop.arg = arg; - - var browserIterationFunc; - if (typeof arg !== 'undefined') { - browserIterationFunc = function() { - Module['dynCall_vi'](func, arg); - }; - } else { - browserIterationFunc = function() { - Module['dynCall_v'](func); - }; - } - - var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; - - Browser.mainLoop.runner = function Browser_mainLoop_runner() { - if (ABORT) return; - if (Browser.mainLoop.queue.length > 0) { - var start = Date.now(); - var blocker = Browser.mainLoop.queue.shift(); - blocker.func(blocker.arg); - if (Browser.mainLoop.remainingBlockers) { - var remaining = Browser.mainLoop.remainingBlockers; - var next = remaining%1 == 0 ? remaining-1 : Math.floor(remaining); - if (blocker.counted) { - Browser.mainLoop.remainingBlockers = next; - } else { - // not counted, but move the progress along a tiny bit - next = next + 0.5; // do not steal all the next one's progress - Browser.mainLoop.remainingBlockers = (8*remaining + next)/9; - } - } - console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers); - Browser.mainLoop.updateStatus(); - - // catches pause/resume main loop from blocker execution - if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; - - setTimeout(Browser.mainLoop.runner, 0); - return; - } - - // catch pauses from non-main loop sources - if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; - - // Implement very basic swap interval control - Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; - if (Browser.mainLoop.timingMode == 1/*EM_TIMING_RAF*/ && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { - // Not the scheduled time to render this frame - skip. - Browser.mainLoop.scheduler(); - return; - } else if (Browser.mainLoop.timingMode == 0/*EM_TIMING_SETTIMEOUT*/) { - Browser.mainLoop.tickStartTime = _emscripten_get_now(); - } - - // Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize - // VBO double-buffering and reduce GPU stalls. - - - if (Browser.mainLoop.method === 'timeout' && Module.ctx) { - Module.printErr('Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!'); - Browser.mainLoop.method = ''; // just warn once per call to set main loop - } - - Browser.mainLoop.runIter(browserIterationFunc); - - checkStackCookie(); - - // catch pauses from the main loop itself - if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; - - // Queue new audio data. This is important to be right after the main loop invocation, so that we will immediately be able - // to queue the newest produced audio samples. - // TODO: Consider adding pre- and post- rAF callbacks so that GL.newRenderingFrameStarted() and SDL.audio.queueNewAudioData() - // do not need to be hardcoded into this function, but can be more generic. - if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); - - Browser.mainLoop.scheduler(); - } - - if (!noSetTiming) { - if (fps && fps > 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 1000.0 / fps); - else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, 1); // Do rAF by rendering each frame (no decimating) - - Browser.mainLoop.scheduler(); - } - - if (simulateInfiniteLoop) { - throw 'SimulateInfiniteLoop'; - } - }var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function () { - Browser.mainLoop.scheduler = null; - Browser.mainLoop.currentlyRunningMainloop++; // Incrementing this signals the previous main loop that it's now become old, and it must return. - },resume:function () { - Browser.mainLoop.currentlyRunningMainloop++; - var timingMode = Browser.mainLoop.timingMode; - var timingValue = Browser.mainLoop.timingValue; - var func = Browser.mainLoop.func; - Browser.mainLoop.func = null; - _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true /* do not set timing and call scheduler, we will do it on the next lines */); - _emscripten_set_main_loop_timing(timingMode, timingValue); - Browser.mainLoop.scheduler(); - },updateStatus:function () { - if (Module['setStatus']) { - var message = Module['statusMessage'] || 'Please wait...'; - var remaining = Browser.mainLoop.remainingBlockers; - var expected = Browser.mainLoop.expectedBlockers; - if (remaining) { - if (remaining < expected) { - Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')'); - } else { - Module['setStatus'](message); - } - } else { - Module['setStatus'](''); - } - } - },runIter:function (func) { - if (ABORT) return; - if (Module['preMainLoop']) { - var preRet = Module['preMainLoop'](); - if (preRet === false) { - return; // |return false| skips a frame - } - } - try { - func(); - } catch (e) { - if (e instanceof ExitStatus) { - return; - } else { - if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); - throw e; - } - } - if (Module['postMainLoop']) Module['postMainLoop'](); - }},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () { - if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers - - if (Browser.initted) return; - Browser.initted = true; - - try { - new Blob(); - Browser.hasBlobConstructor = true; - } catch(e) { - Browser.hasBlobConstructor = false; - console.log("warning: no blob constructor, cannot create blobs with mimetypes"); - } - Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null)); - Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined; - if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') { - console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); - Module.noImageDecoding = true; - } - - // Support for plugins that can process preloaded files. You can add more of these to - // your app by creating and appending to Module.preloadPlugins. - // - // Each plugin is asked if it can handle a file based on the file's name. If it can, - // it is given the file's raw data. When it is done, it calls a callback with the file's - // (possibly modified) data. For example, a plugin might decompress a file, or it - // might create some side data structure for use later (like an Image element, etc.). - - var imagePlugin = {}; - imagePlugin['canHandle'] = function imagePlugin_canHandle(name) { - return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); - }; - imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) { - var b = null; - if (Browser.hasBlobConstructor) { - try { - b = new Blob([byteArray], { type: Browser.getMimetype(name) }); - if (b.size !== byteArray.length) { // Safari bug #118630 - // Safari's Blob can only take an ArrayBuffer - b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) }); - } - } catch(e) { - Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder'); - } - } - if (!b) { - var bb = new Browser.BlobBuilder(); - bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range - b = bb.getBlob(); - } - var url = Browser.URLObject.createObjectURL(b); - assert(typeof url == 'string', 'createObjectURL must return a url as a string'); - var img = new Image(); - img.onload = function img_onload() { - assert(img.complete, 'Image ' + name + ' could not be decoded'); - var canvas = document.createElement('canvas'); - canvas.width = img.width; - canvas.height = img.height; - var ctx = canvas.getContext('2d'); - ctx.drawImage(img, 0, 0); - Module["preloadedImages"][name] = canvas; - Browser.URLObject.revokeObjectURL(url); - if (onload) onload(byteArray); - }; - img.onerror = function img_onerror(event) { - console.log('Image ' + url + ' could not be decoded'); - if (onerror) onerror(); - }; - img.src = url; - }; - Module['preloadPlugins'].push(imagePlugin); - - var audioPlugin = {}; - audioPlugin['canHandle'] = function audioPlugin_canHandle(name) { - return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 }; - }; - audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) { - var done = false; - function finish(audio) { - if (done) return; - done = true; - Module["preloadedAudios"][name] = audio; - if (onload) onload(byteArray); - } - function fail() { - if (done) return; - done = true; - Module["preloadedAudios"][name] = new Audio(); // empty shim - if (onerror) onerror(); - } - if (Browser.hasBlobConstructor) { - try { - var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); - } catch(e) { - return fail(); - } - var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this! - assert(typeof url == 'string', 'createObjectURL must return a url as a string'); - var audio = new Audio(); - audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926 - audio.onerror = function audio_onerror(event) { - if (done) return; - console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach'); - function encode64(data) { - var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - var PAD = '='; - var ret = ''; - var leftchar = 0; - var leftbits = 0; - for (var i = 0; i < data.length; i++) { - leftchar = (leftchar << 8) | data[i]; - leftbits += 8; - while (leftbits >= 6) { - var curr = (leftchar >> (leftbits-6)) & 0x3f; - leftbits -= 6; - ret += BASE[curr]; - } - } - if (leftbits == 2) { - ret += BASE[(leftchar&3) << 4]; - ret += PAD + PAD; - } else if (leftbits == 4) { - ret += BASE[(leftchar&0xf) << 2]; - ret += PAD; - } - return ret; - } - audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray); - finish(audio); // we don't wait for confirmation this worked - but it's worth trying - }; - audio.src = url; - // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror - Browser.safeSetTimeout(function() { - finish(audio); // try to use it even though it is not necessarily ready to play - }, 10000); - } else { - return fail(); - } - }; - Module['preloadPlugins'].push(audioPlugin); - - // Canvas event setup - - function pointerLockChange() { - Browser.pointerLock = document['pointerLockElement'] === Module['canvas'] || - document['mozPointerLockElement'] === Module['canvas'] || - document['webkitPointerLockElement'] === Module['canvas'] || - document['msPointerLockElement'] === Module['canvas']; - } - var canvas = Module['canvas']; - if (canvas) { - // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module - // Module['forcedAspectRatio'] = 4 / 3; - - canvas.requestPointerLock = canvas['requestPointerLock'] || - canvas['mozRequestPointerLock'] || - canvas['webkitRequestPointerLock'] || - canvas['msRequestPointerLock'] || - function(){}; - canvas.exitPointerLock = document['exitPointerLock'] || - document['mozExitPointerLock'] || - document['webkitExitPointerLock'] || - document['msExitPointerLock'] || - function(){}; // no-op if function does not exist - canvas.exitPointerLock = canvas.exitPointerLock.bind(document); - - document.addEventListener('pointerlockchange', pointerLockChange, false); - document.addEventListener('mozpointerlockchange', pointerLockChange, false); - document.addEventListener('webkitpointerlockchange', pointerLockChange, false); - document.addEventListener('mspointerlockchange', pointerLockChange, false); - - if (Module['elementPointerLock']) { - canvas.addEventListener("click", function(ev) { - if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { - Module['canvas'].requestPointerLock(); - ev.preventDefault(); - } - }, false); - } - } - },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) { - if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; // no need to recreate GL context if it's already been created for this canvas. - - var ctx; - var contextHandle; - if (useWebGL) { - // For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults. - var contextAttributes = { - antialias: false, - alpha: false - }; - - if (webGLContextAttributes) { - for (var attribute in webGLContextAttributes) { - contextAttributes[attribute] = webGLContextAttributes[attribute]; - } - } - - contextHandle = GL.createContext(canvas, contextAttributes); - if (contextHandle) { - ctx = GL.getContext(contextHandle).GLctx; - } - } else { - ctx = canvas.getContext('2d'); - } - - if (!ctx) return null; - - if (setInModule) { - if (!useWebGL) assert(typeof GLctx === 'undefined', 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it'); - - Module.ctx = ctx; - if (useWebGL) GL.makeContextCurrent(contextHandle); - Module.useWebGL = useWebGL; - Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() }); - Browser.init(); - } - return ctx; - },destroyContext:function (canvas, useWebGL, setInModule) {},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function (lockPointer, resizeCanvas, vrDevice) { - Browser.lockPointer = lockPointer; - Browser.resizeCanvas = resizeCanvas; - Browser.vrDevice = vrDevice; - if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true; - if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false; - if (typeof Browser.vrDevice === 'undefined') Browser.vrDevice = null; - - var canvas = Module['canvas']; - function fullscreenChange() { - Browser.isFullscreen = false; - var canvasContainer = canvas.parentNode; - if ((document['fullscreenElement'] || document['mozFullScreenElement'] || - document['msFullscreenElement'] || document['webkitFullscreenElement'] || - document['webkitCurrentFullScreenElement']) === canvasContainer) { - canvas.exitFullscreen = document['exitFullscreen'] || - document['cancelFullScreen'] || - document['mozCancelFullScreen'] || - document['msExitFullscreen'] || - document['webkitCancelFullScreen'] || - function() {}; - canvas.exitFullscreen = canvas.exitFullscreen.bind(document); - if (Browser.lockPointer) canvas.requestPointerLock(); - Browser.isFullscreen = true; - if (Browser.resizeCanvas) Browser.setFullscreenCanvasSize(); - } else { - - // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen - canvasContainer.parentNode.insertBefore(canvas, canvasContainer); - canvasContainer.parentNode.removeChild(canvasContainer); - - if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); - } - if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullscreen); - if (Module['onFullscreen']) Module['onFullscreen'](Browser.isFullscreen); - Browser.updateCanvasDimensions(canvas); - } - - if (!Browser.fullscreenHandlersInstalled) { - Browser.fullscreenHandlersInstalled = true; - document.addEventListener('fullscreenchange', fullscreenChange, false); - document.addEventListener('mozfullscreenchange', fullscreenChange, false); - document.addEventListener('webkitfullscreenchange', fullscreenChange, false); - document.addEventListener('MSFullscreenChange', fullscreenChange, false); - } - - // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root - var canvasContainer = document.createElement("div"); - canvas.parentNode.insertBefore(canvasContainer, canvas); - canvasContainer.appendChild(canvas); - - // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) - canvasContainer.requestFullscreen = canvasContainer['requestFullscreen'] || - canvasContainer['mozRequestFullScreen'] || - canvasContainer['msRequestFullscreen'] || - (canvasContainer['webkitRequestFullscreen'] ? function() { canvasContainer['webkitRequestFullscreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null) || - (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null); - - if (vrDevice) { - canvasContainer.requestFullscreen({ vrDisplay: vrDevice }); - } else { - canvasContainer.requestFullscreen(); - } - },requestFullScreen:function (lockPointer, resizeCanvas, vrDevice) { - Module.printErr('Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.'); - Browser.requestFullScreen = function(lockPointer, resizeCanvas, vrDevice) { - return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); - } - return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); - },nextRAF:0,fakeRequestAnimationFrame:function (func) { - // try to keep 60fps between calls to here - var now = Date.now(); - if (Browser.nextRAF === 0) { - Browser.nextRAF = now + 1000/60; - } else { - while (now + 2 >= Browser.nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0 - Browser.nextRAF += 1000/60; - } - } - var delay = Math.max(Browser.nextRAF - now, 0); - setTimeout(func, delay); - },requestAnimationFrame:function requestAnimationFrame(func) { - if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js) - Browser.fakeRequestAnimationFrame(func); - } else { - if (!window.requestAnimationFrame) { - window.requestAnimationFrame = window['requestAnimationFrame'] || - window['mozRequestAnimationFrame'] || - window['webkitRequestAnimationFrame'] || - window['msRequestAnimationFrame'] || - window['oRequestAnimationFrame'] || - Browser.fakeRequestAnimationFrame; - } - window.requestAnimationFrame(func); - } - },safeCallback:function (func) { - return function() { - if (!ABORT) return func.apply(null, arguments); - }; - },allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function () { - Browser.allowAsyncCallbacks = false; - },resumeAsyncCallbacks:function () { // marks future callbacks as ok to execute, and synchronously runs any remaining ones right now - Browser.allowAsyncCallbacks = true; - if (Browser.queuedAsyncCallbacks.length > 0) { - var callbacks = Browser.queuedAsyncCallbacks; - Browser.queuedAsyncCallbacks = []; - callbacks.forEach(function(func) { - func(); - }); - } - },safeRequestAnimationFrame:function (func) { - return Browser.requestAnimationFrame(function() { - if (ABORT) return; - if (Browser.allowAsyncCallbacks) { - func(); - } else { - Browser.queuedAsyncCallbacks.push(func); - } - }); - },safeSetTimeout:function (func, timeout) { - Module['noExitRuntime'] = true; - return setTimeout(function() { - if (ABORT) return; - if (Browser.allowAsyncCallbacks) { - func(); - } else { - Browser.queuedAsyncCallbacks.push(func); - } - }, timeout); - },safeSetInterval:function (func, timeout) { - Module['noExitRuntime'] = true; - return setInterval(function() { - if (ABORT) return; - if (Browser.allowAsyncCallbacks) { - func(); - } // drop it on the floor otherwise, next interval will kick in - }, timeout); - },getMimetype:function (name) { - return { - 'jpg': 'image/jpeg', - 'jpeg': 'image/jpeg', - 'png': 'image/png', - 'bmp': 'image/bmp', - 'ogg': 'audio/ogg', - 'wav': 'audio/wav', - 'mp3': 'audio/mpeg' - }[name.substr(name.lastIndexOf('.')+1)]; - },getUserMedia:function (func) { - if(!window.getUserMedia) { - window.getUserMedia = navigator['getUserMedia'] || - navigator['mozGetUserMedia']; - } - window.getUserMedia(func); - },getMovementX:function (event) { - return event['movementX'] || - event['mozMovementX'] || - event['webkitMovementX'] || - 0; - },getMovementY:function (event) { - return event['movementY'] || - event['mozMovementY'] || - event['webkitMovementY'] || - 0; - },getMouseWheelDelta:function (event) { - var delta = 0; - switch (event.type) { - case 'DOMMouseScroll': - delta = event.detail; - break; - case 'mousewheel': - delta = event.wheelDelta; - break; - case 'wheel': - delta = event['deltaY']; - break; - default: - throw 'unrecognized mouse wheel event: ' + event.type; - } - return delta; - },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup - if (Browser.pointerLock) { - // When the pointer is locked, calculate the coordinates - // based on the movement of the mouse. - // Workaround for Firefox bug 764498 - if (event.type != 'mousemove' && - ('mozMovementX' in event)) { - Browser.mouseMovementX = Browser.mouseMovementY = 0; - } else { - Browser.mouseMovementX = Browser.getMovementX(event); - Browser.mouseMovementY = Browser.getMovementY(event); - } - - // check if SDL is available - if (typeof SDL != "undefined") { - Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; - Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; - } else { - // just add the mouse delta to the current absolut mouse position - // FIXME: ideally this should be clamped against the canvas size and zero - Browser.mouseX += Browser.mouseMovementX; - Browser.mouseY += Browser.mouseMovementY; - } - } else { - // Otherwise, calculate the movement based on the changes - // in the coordinates. - var rect = Module["canvas"].getBoundingClientRect(); - var cw = Module["canvas"].width; - var ch = Module["canvas"].height; - - // Neither .scrollX or .pageXOffset are defined in a spec, but - // we prefer .scrollX because it is currently in a spec draft. - // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) - var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset); - var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset); - // If this assert lands, it's likely because the browser doesn't support scrollX or pageXOffset - // and we have no viable fallback. - assert((typeof scrollX !== 'undefined') && (typeof scrollY !== 'undefined'), 'Unable to retrieve scroll position, mouse positions likely broken.'); - - if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') { - var touch = event.touch; - if (touch === undefined) { - return; // the "touch" property is only defined in SDL - - } - var adjustedX = touch.pageX - (scrollX + rect.left); - var adjustedY = touch.pageY - (scrollY + rect.top); - - adjustedX = adjustedX * (cw / rect.width); - adjustedY = adjustedY * (ch / rect.height); - - var coords = { x: adjustedX, y: adjustedY }; - - if (event.type === 'touchstart') { - Browser.lastTouches[touch.identifier] = coords; - Browser.touches[touch.identifier] = coords; - } else if (event.type === 'touchend' || event.type === 'touchmove') { - var last = Browser.touches[touch.identifier]; - if (!last) last = coords; - Browser.lastTouches[touch.identifier] = last; - Browser.touches[touch.identifier] = coords; - } - return; - } - - var x = event.pageX - (scrollX + rect.left); - var y = event.pageY - (scrollY + rect.top); - - // the canvas might be CSS-scaled compared to its backbuffer; - // SDL-using content will want mouse coordinates in terms - // of backbuffer units. - x = x * (cw / rect.width); - y = y * (ch / rect.height); - - Browser.mouseMovementX = x - Browser.mouseX; - Browser.mouseMovementY = y - Browser.mouseY; - Browser.mouseX = x; - Browser.mouseY = y; - } - },asyncLoad:function (url, onload, onerror, noRunDep) { - var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; - Module['readAsync'](url, function(arrayBuffer) { - assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); - onload(new Uint8Array(arrayBuffer)); - if (dep) removeRunDependency(dep); - }, function(event) { - if (onerror) { - onerror(); - } else { - throw 'Loading data file "' + url + '" failed.'; - } - }); - if (dep) addRunDependency(dep); - },resizeListeners:[],updateResizeListeners:function () { - var canvas = Module['canvas']; - Browser.resizeListeners.forEach(function(listener) { - listener(canvas.width, canvas.height); - }); - },setCanvasSize:function (width, height, noUpdates) { - var canvas = Module['canvas']; - Browser.updateCanvasDimensions(canvas, width, height); - if (!noUpdates) Browser.updateResizeListeners(); - },windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function () { - // check if SDL is available - if (typeof SDL != "undefined") { - var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; - flags = flags | 0x00800000; // set SDL_FULLSCREEN flag - HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags - } - Browser.updateResizeListeners(); - },setWindowedCanvasSize:function () { - // check if SDL is available - if (typeof SDL != "undefined") { - var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; - flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag - HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags - } - Browser.updateResizeListeners(); - },updateCanvasDimensions:function (canvas, wNative, hNative) { - if (wNative && hNative) { - canvas.widthNative = wNative; - canvas.heightNative = hNative; - } else { - wNative = canvas.widthNative; - hNative = canvas.heightNative; - } - var w = wNative; - var h = hNative; - if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) { - if (w/h < Module['forcedAspectRatio']) { - w = Math.round(h * Module['forcedAspectRatio']); - } else { - h = Math.round(w / Module['forcedAspectRatio']); - } - } - if (((document['fullscreenElement'] || document['mozFullScreenElement'] || - document['msFullscreenElement'] || document['webkitFullscreenElement'] || - document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) { - var factor = Math.min(screen.width / w, screen.height / h); - w = Math.round(w * factor); - h = Math.round(h * factor); - } - if (Browser.resizeCanvas) { - if (canvas.width != w) canvas.width = w; - if (canvas.height != h) canvas.height = h; - if (typeof canvas.style != 'undefined') { - canvas.style.removeProperty( "width"); - canvas.style.removeProperty("height"); - } - } else { - if (canvas.width != wNative) canvas.width = wNative; - if (canvas.height != hNative) canvas.height = hNative; - if (typeof canvas.style != 'undefined') { - if (w != wNative || h != hNative) { - canvas.style.setProperty( "width", w + "px", "important"); - canvas.style.setProperty("height", h + "px", "important"); - } else { - canvas.style.removeProperty( "width"); - canvas.style.removeProperty("height"); - } - } - } - },wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function () { - var handle = Browser.nextWgetRequestHandle; - Browser.nextWgetRequestHandle++; - return handle; - }};var GLFW={Window:function (id, width, height, title, monitor, share) { - this.id = id; - this.x = 0; - this.y = 0; - this.fullscreen = false; // Used to determine if app in fullscreen mode - this.storedX = 0; // Used to store X before fullscreen - this.storedY = 0; // Used to store Y before fullscreen - this.width = width; - this.height = height; - this.storedWidth = width; // Used to store width before fullscreen - this.storedHeight = height; // Used to store height before fullscreen - this.title = title; - this.monitor = monitor; - this.share = share; - this.attributes = GLFW.hints; - this.inputModes = { - 0x00033001:0x00034001, // GLFW_CURSOR (GLFW_CURSOR_NORMAL) - 0x00033002:0, // GLFW_STICKY_KEYS - 0x00033003:0, // GLFW_STICKY_MOUSE_BUTTONS - }; - this.buttons = 0; - this.keys = new Array(); - this.domKeys = new Array(); - this.shouldClose = 0; - this.title = null; - this.windowPosFunc = null; // GLFWwindowposfun - this.windowSizeFunc = null; // GLFWwindowsizefun - this.windowCloseFunc = null; // GLFWwindowclosefun - this.windowRefreshFunc = null; // GLFWwindowrefreshfun - this.windowFocusFunc = null; // GLFWwindowfocusfun - this.windowIconifyFunc = null; // GLFWwindowiconifyfun - this.framebufferSizeFunc = null; // GLFWframebuffersizefun - this.mouseButtonFunc = null; // GLFWmousebuttonfun - this.cursorPosFunc = null; // GLFWcursorposfun - this.cursorEnterFunc = null; // GLFWcursorenterfun - this.scrollFunc = null; // GLFWscrollfun - this.dropFunc = null; // GLFWdropfun - this.keyFunc = null; // GLFWkeyfun - this.charFunc = null; // GLFWcharfun - this.userptr = null; - },WindowFromId:function (id) { - if (id <= 0 || !GLFW.windows) return null; - return GLFW.windows[id - 1]; - },joystickFunc:null,errorFunc:null,monitorFunc:null,active:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0},DOMToGLFWKeyCode:function (keycode) { - switch (keycode) { - // these keycodes are only defined for GLFW3, assume they are the same for GLFW2 - case 0x20:return 32; // DOM_VK_SPACE -> GLFW_KEY_SPACE - case 0xDE:return 39; // DOM_VK_QUOTE -> GLFW_KEY_APOSTROPHE - case 0xBC:return 44; // DOM_VK_COMMA -> GLFW_KEY_COMMA - case 0xAD:return 45; // DOM_VK_HYPHEN_MINUS -> GLFW_KEY_MINUS - case 0xBD:return 45; // DOM_VK_MINUS -> GLFW_KEY_MINUS - case 0xBE:return 46; // DOM_VK_PERIOD -> GLFW_KEY_PERIOD - case 0xBF:return 47; // DOM_VK_SLASH -> GLFW_KEY_SLASH - case 0x30:return 48; // DOM_VK_0 -> GLFW_KEY_0 - case 0x31:return 49; // DOM_VK_1 -> GLFW_KEY_1 - case 0x32:return 50; // DOM_VK_2 -> GLFW_KEY_2 - case 0x33:return 51; // DOM_VK_3 -> GLFW_KEY_3 - case 0x34:return 52; // DOM_VK_4 -> GLFW_KEY_4 - case 0x35:return 53; // DOM_VK_5 -> GLFW_KEY_5 - case 0x36:return 54; // DOM_VK_6 -> GLFW_KEY_6 - case 0x37:return 55; // DOM_VK_7 -> GLFW_KEY_7 - case 0x38:return 56; // DOM_VK_8 -> GLFW_KEY_8 - case 0x39:return 57; // DOM_VK_9 -> GLFW_KEY_9 - case 0x3B:return 59; // DOM_VK_SEMICOLON -> GLFW_KEY_SEMICOLON - case 0x3D:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL - case 0xBB:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL - case 0x41:return 65; // DOM_VK_A -> GLFW_KEY_A - case 0x42:return 66; // DOM_VK_B -> GLFW_KEY_B - case 0x43:return 67; // DOM_VK_C -> GLFW_KEY_C - case 0x44:return 68; // DOM_VK_D -> GLFW_KEY_D - case 0x45:return 69; // DOM_VK_E -> GLFW_KEY_E - case 0x46:return 70; // DOM_VK_F -> GLFW_KEY_F - case 0x47:return 71; // DOM_VK_G -> GLFW_KEY_G - case 0x48:return 72; // DOM_VK_H -> GLFW_KEY_H - case 0x49:return 73; // DOM_VK_I -> GLFW_KEY_I - case 0x4A:return 74; // DOM_VK_J -> GLFW_KEY_J - case 0x4B:return 75; // DOM_VK_K -> GLFW_KEY_K - case 0x4C:return 76; // DOM_VK_L -> GLFW_KEY_L - case 0x4D:return 77; // DOM_VK_M -> GLFW_KEY_M - case 0x4E:return 78; // DOM_VK_N -> GLFW_KEY_N - case 0x4F:return 79; // DOM_VK_O -> GLFW_KEY_O - case 0x50:return 80; // DOM_VK_P -> GLFW_KEY_P - case 0x51:return 81; // DOM_VK_Q -> GLFW_KEY_Q - case 0x52:return 82; // DOM_VK_R -> GLFW_KEY_R - case 0x53:return 83; // DOM_VK_S -> GLFW_KEY_S - case 0x54:return 84; // DOM_VK_T -> GLFW_KEY_T - case 0x55:return 85; // DOM_VK_U -> GLFW_KEY_U - case 0x56:return 86; // DOM_VK_V -> GLFW_KEY_V - case 0x57:return 87; // DOM_VK_W -> GLFW_KEY_W - case 0x58:return 88; // DOM_VK_X -> GLFW_KEY_X - case 0x59:return 89; // DOM_VK_Y -> GLFW_KEY_Y - case 0x5a:return 90; // DOM_VK_Z -> GLFW_KEY_Z - case 0xDB:return 91; // DOM_VK_OPEN_BRACKET -> GLFW_KEY_LEFT_BRACKET - case 0xDC:return 92; // DOM_VK_BACKSLASH -> GLFW_KEY_BACKSLASH - case 0xDD:return 93; // DOM_VK_CLOSE_BRACKET -> GLFW_KEY_RIGHT_BRACKET - case 0xC0:return 94; // DOM_VK_BACK_QUOTE -> GLFW_KEY_GRAVE_ACCENT - - - case 0x1B:return 256; // DOM_VK_ESCAPE -> GLFW_KEY_ESCAPE - case 0x0D:return 257; // DOM_VK_RETURN -> GLFW_KEY_ENTER - case 0x09:return 258; // DOM_VK_TAB -> GLFW_KEY_TAB - case 0x08:return 259; // DOM_VK_BACK -> GLFW_KEY_BACKSPACE - case 0x2D:return 260; // DOM_VK_INSERT -> GLFW_KEY_INSERT - case 0x2E:return 261; // DOM_VK_DELETE -> GLFW_KEY_DELETE - case 0x27:return 262; // DOM_VK_RIGHT -> GLFW_KEY_RIGHT - case 0x25:return 263; // DOM_VK_LEFT -> GLFW_KEY_LEFT - case 0x28:return 264; // DOM_VK_DOWN -> GLFW_KEY_DOWN - case 0x26:return 265; // DOM_VK_UP -> GLFW_KEY_UP - case 0x21:return 266; // DOM_VK_PAGE_UP -> GLFW_KEY_PAGE_UP - case 0x22:return 267; // DOM_VK_PAGE_DOWN -> GLFW_KEY_PAGE_DOWN - case 0x24:return 268; // DOM_VK_HOME -> GLFW_KEY_HOME - case 0x23:return 269; // DOM_VK_END -> GLFW_KEY_END - case 0x14:return 280; // DOM_VK_CAPS_LOCK -> GLFW_KEY_CAPS_LOCK - case 0x91:return 281; // DOM_VK_SCROLL_LOCK -> GLFW_KEY_SCROLL_LOCK - case 0x90:return 282; // DOM_VK_NUM_LOCK -> GLFW_KEY_NUM_LOCK - case 0x2C:return 283; // DOM_VK_SNAPSHOT -> GLFW_KEY_PRINT_SCREEN - case 0x13:return 284; // DOM_VK_PAUSE -> GLFW_KEY_PAUSE - case 0x70:return 290; // DOM_VK_F1 -> GLFW_KEY_F1 - case 0x71:return 291; // DOM_VK_F2 -> GLFW_KEY_F2 - case 0x72:return 292; // DOM_VK_F3 -> GLFW_KEY_F3 - case 0x73:return 293; // DOM_VK_F4 -> GLFW_KEY_F4 - case 0x74:return 294; // DOM_VK_F5 -> GLFW_KEY_F5 - case 0x75:return 295; // DOM_VK_F6 -> GLFW_KEY_F6 - case 0x76:return 296; // DOM_VK_F7 -> GLFW_KEY_F7 - case 0x77:return 297; // DOM_VK_F8 -> GLFW_KEY_F8 - case 0x78:return 298; // DOM_VK_F9 -> GLFW_KEY_F9 - case 0x79:return 299; // DOM_VK_F10 -> GLFW_KEY_F10 - case 0x7A:return 300; // DOM_VK_F11 -> GLFW_KEY_F11 - case 0x7B:return 301; // DOM_VK_F12 -> GLFW_KEY_F12 - case 0x7C:return 302; // DOM_VK_F13 -> GLFW_KEY_F13 - case 0x7D:return 303; // DOM_VK_F14 -> GLFW_KEY_F14 - case 0x7E:return 304; // DOM_VK_F15 -> GLFW_KEY_F15 - case 0x7F:return 305; // DOM_VK_F16 -> GLFW_KEY_F16 - case 0x80:return 306; // DOM_VK_F17 -> GLFW_KEY_F17 - case 0x81:return 307; // DOM_VK_F18 -> GLFW_KEY_F18 - case 0x82:return 308; // DOM_VK_F19 -> GLFW_KEY_F19 - case 0x83:return 309; // DOM_VK_F20 -> GLFW_KEY_F20 - case 0x84:return 310; // DOM_VK_F21 -> GLFW_KEY_F21 - case 0x85:return 311; // DOM_VK_F22 -> GLFW_KEY_F22 - case 0x86:return 312; // DOM_VK_F23 -> GLFW_KEY_F23 - case 0x87:return 313; // DOM_VK_F24 -> GLFW_KEY_F24 - case 0x88:return 314; // 0x88 (not used?) -> GLFW_KEY_F25 - case 0x60:return 320; // DOM_VK_NUMPAD0 -> GLFW_KEY_KP_0 - case 0x61:return 321; // DOM_VK_NUMPAD1 -> GLFW_KEY_KP_1 - case 0x62:return 322; // DOM_VK_NUMPAD2 -> GLFW_KEY_KP_2 - case 0x63:return 323; // DOM_VK_NUMPAD3 -> GLFW_KEY_KP_3 - case 0x64:return 324; // DOM_VK_NUMPAD4 -> GLFW_KEY_KP_4 - case 0x65:return 325; // DOM_VK_NUMPAD5 -> GLFW_KEY_KP_5 - case 0x66:return 326; // DOM_VK_NUMPAD6 -> GLFW_KEY_KP_6 - case 0x67:return 327; // DOM_VK_NUMPAD7 -> GLFW_KEY_KP_7 - case 0x68:return 328; // DOM_VK_NUMPAD8 -> GLFW_KEY_KP_8 - case 0x69:return 329; // DOM_VK_NUMPAD9 -> GLFW_KEY_KP_9 - case 0x6E:return 330; // DOM_VK_DECIMAL -> GLFW_KEY_KP_DECIMAL - case 0x6F:return 331; // DOM_VK_DIVIDE -> GLFW_KEY_KP_DIVIDE - case 0x6A:return 332; // DOM_VK_MULTIPLY -> GLFW_KEY_KP_MULTIPLY - case 0x6D:return 333; // DOM_VK_SUBTRACT -> GLFW_KEY_KP_SUBTRACT - case 0x6B:return 334; // DOM_VK_ADD -> GLFW_KEY_KP_ADD - // case 0x0D:return 335; // DOM_VK_RETURN -> GLFW_KEY_KP_ENTER (DOM_KEY_LOCATION_RIGHT) - // case 0x61:return 336; // DOM_VK_EQUALS -> GLFW_KEY_KP_EQUAL (DOM_KEY_LOCATION_RIGHT) - case 0x10:return 340; // DOM_VK_SHIFT -> GLFW_KEY_LEFT_SHIFT - case 0x11:return 341; // DOM_VK_CONTROL -> GLFW_KEY_LEFT_CONTROL - case 0x12:return 342; // DOM_VK_ALT -> GLFW_KEY_LEFT_ALT - case 0x5B:return 343; // DOM_VK_WIN -> GLFW_KEY_LEFT_SUPER - // case 0x10:return 344; // DOM_VK_SHIFT -> GLFW_KEY_RIGHT_SHIFT (DOM_KEY_LOCATION_RIGHT) - // case 0x11:return 345; // DOM_VK_CONTROL -> GLFW_KEY_RIGHT_CONTROL (DOM_KEY_LOCATION_RIGHT) - // case 0x12:return 346; // DOM_VK_ALT -> GLFW_KEY_RIGHT_ALT (DOM_KEY_LOCATION_RIGHT) - // case 0x5B:return 347; // DOM_VK_WIN -> GLFW_KEY_RIGHT_SUPER (DOM_KEY_LOCATION_RIGHT) - case 0x5D:return 348; // DOM_VK_CONTEXT_MENU -> GLFW_KEY_MENU - // XXX: GLFW_KEY_WORLD_1, GLFW_KEY_WORLD_2 what are these? - default:return -1; // GLFW_KEY_UNKNOWN - }; - },getModBits:function (win) { - var mod = 0; - if (win.keys[340]) mod |= 0x0001; // GLFW_MOD_SHIFT - if (win.keys[341]) mod |= 0x0002; // GLFW_MOD_CONTROL - if (win.keys[342]) mod |= 0x0004; // GLFW_MOD_ALT - if (win.keys[343]) mod |= 0x0008; // GLFW_MOD_SUPER - return mod; - },onKeyPress:function (event) { - if (!GLFW.active || !GLFW.active.charFunc) return; - if (event.ctrlKey || event.metaKey) return; - - // correct unicode charCode is only available with onKeyPress event - var charCode = event.charCode; - if (charCode == 0 || (charCode >= 0x00 && charCode <= 0x1F)) return; - - - Module['dynCall_vii'](GLFW.active.charFunc, GLFW.active.id, charCode); - },onKeyChanged:function (keyCode, status) { - if (!GLFW.active) return; - - var key = GLFW.DOMToGLFWKeyCode(keyCode); - if (key == -1) return; - - var repeat = status && GLFW.active.keys[key]; - GLFW.active.keys[key] = status; - GLFW.active.domKeys[keyCode] = status; - if (!GLFW.active.keyFunc) return; - - - if (repeat) status = 2; // GLFW_REPEAT - Module['dynCall_viiiii'](GLFW.active.keyFunc, GLFW.active.id, key, keyCode, status, GLFW.getModBits(GLFW.active)); - },onGamepadConnected:function (event) { - GLFW.refreshJoysticks(); - },onGamepadDisconnected:function (event) { - GLFW.refreshJoysticks(); - },onKeydown:function (event) { - GLFW.onKeyChanged(event.keyCode, 1); // GLFW_PRESS or GLFW_REPEAT - - // This logic comes directly from the sdl implementation. We cannot - // call preventDefault on all keydown events otherwise onKeyPress will - // not get called - if (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */) { - event.preventDefault(); - } - },onKeyup:function (event) { - GLFW.onKeyChanged(event.keyCode, 0); // GLFW_RELEASE - },onBlur:function (event) { - if (!GLFW.active) return; - - for (var i = 0; i < GLFW.active.domKeys.length; ++i) { - if (GLFW.active.domKeys[i]) { - GLFW.onKeyChanged(i, 0); // GLFW_RELEASE - } - } - },onMousemove:function (event) { - if (!GLFW.active) return; - - Browser.calculateMouseEvent(event); - - if (event.target != Module["canvas"] || !GLFW.active.cursorPosFunc) return; - - - Module['dynCall_vidd'](GLFW.active.cursorPosFunc, GLFW.active.id, Browser.mouseX, Browser.mouseY); - },DOMToGLFWMouseButton:function (event) { - // DOM and glfw have different button codes. - // See http://www.w3schools.com/jsref/event_button.asp. - var eventButton = event['button']; - if (eventButton > 0) { - if (eventButton == 1) { - eventButton = 2; - } else { - eventButton = 1; - } - } - return eventButton; - },onMouseenter:function (event) { - if (!GLFW.active) return; - - if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; - - Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 1); - },onMouseleave:function (event) { - if (!GLFW.active) return; - - if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; - - Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 0); - },onMouseButtonChanged:function (event, status) { - if (!GLFW.active) return; - - Browser.calculateMouseEvent(event); - - if (event.target != Module["canvas"]) return; - - eventButton = GLFW.DOMToGLFWMouseButton(event); - - if (status == 1) { // GLFW_PRESS - GLFW.active.buttons |= (1 << eventButton); - try { - event.target.setCapture(); - } catch (e) {} - } else { // GLFW_RELEASE - GLFW.active.buttons &= ~(1 << eventButton); - } - - if (!GLFW.active.mouseButtonFunc) return; - - - Module['dynCall_viiii'](GLFW.active.mouseButtonFunc, GLFW.active.id, eventButton, status, GLFW.getModBits(GLFW.active)); - },onMouseButtonDown:function (event) { - if (!GLFW.active) return; - GLFW.onMouseButtonChanged(event, 1); // GLFW_PRESS - },onMouseButtonUp:function (event) { - if (!GLFW.active) return; - GLFW.onMouseButtonChanged(event, 0); // GLFW_RELEASE - },onMouseWheel:function (event) { - // Note the minus sign that flips browser wheel direction (positive direction scrolls page down) to native wheel direction (positive direction is mouse wheel up) - var delta = -Browser.getMouseWheelDelta(event); - delta = (delta == 0) ? 0 : (delta > 0 ? Math.max(delta, 1) : Math.min(delta, -1)); // Quantize to integer so that minimum scroll is at least +/- 1. - GLFW.wheelPos += delta; - - if (!GLFW.active || !GLFW.active.scrollFunc || event.target != Module['canvas']) return; - - - var sx = 0; - var sy = 0; - if (event.type == 'mousewheel') { - sx = event.wheelDeltaX; - sy = event.wheelDeltaY; - } else { - sx = event.deltaX; - sy = event.deltaY; - } - - Module['dynCall_vidd'](GLFW.active.scrollFunc, GLFW.active.id, sx, sy); - - event.preventDefault(); - },onCanvasResize:function (width, height) { - if (!GLFW.active) return; - - var resizeNeeded = true; - - // If the client is requestiong fullscreen mode - if (document["fullscreen"] || document["fullScreen"] || document["mozFullScreen"] || document["webkitIsFullScreen"]) { - GLFW.active.storedX = GLFW.active.x; - GLFW.active.storedY = GLFW.active.y; - GLFW.active.storedWidth = GLFW.active.width; - GLFW.active.storedHeight = GLFW.active.height; - GLFW.active.x = GLFW.active.y = 0; - GLFW.active.width = screen.width; - GLFW.active.height = screen.height; - GLFW.active.fullscreen = true; - - // If the client is reverting from fullscreen mode - } else if (GLFW.active.fullscreen == true) { - GLFW.active.x = GLFW.active.storedX; - GLFW.active.y = GLFW.active.storedY; - GLFW.active.width = GLFW.active.storedWidth; - GLFW.active.height = GLFW.active.storedHeight; - GLFW.active.fullscreen = false; - - // If the width/height values do not match current active window sizes - } else if (GLFW.active.width != width || GLFW.active.height != height) { - GLFW.active.width = width; - GLFW.active.height = height; - } else { - resizeNeeded = false; - } - - // If any of the above conditions were true, we need to resize the canvas - if (resizeNeeded) { - // resets the canvas size to counter the aspect preservation of Browser.updateCanvasDimensions - Browser.setCanvasSize(GLFW.active.width, GLFW.active.height, true); - // TODO: Client dimensions (clientWidth/clientHeight) vs pixel dimensions (width/height) of - // the canvas should drive window and framebuffer size respectfully. - GLFW.onWindowSizeChanged(); - GLFW.onFramebufferSizeChanged(); - } - },onWindowSizeChanged:function () { - if (!GLFW.active) return; - - if (!GLFW.active.windowSizeFunc) return; - - - Module['dynCall_viii'](GLFW.active.windowSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); - },onFramebufferSizeChanged:function () { - if (!GLFW.active) return; - - if (!GLFW.active.framebufferSizeFunc) return; - - Module['dynCall_viii'](GLFW.active.framebufferSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); - },requestFullscreen:function () { - var RFS = Module["canvas"]['requestFullscreen'] || - Module["canvas"]['mozRequestFullScreen'] || - Module["canvas"]['webkitRequestFullScreen'] || - (function() {}); - RFS.apply(Module["canvas"], []); - },requestFullScreen:function () { - Module.printErr('GLFW.requestFullScreen() is deprecated. Please call GLFW.requestFullscreen instead.'); - GLFW.requestFullScreen = function() { - return GLFW.requestFullscreen(); - } - return GLFW.requestFullscreen(); - },exitFullscreen:function () { - var CFS = document['exitFullscreen'] || - document['cancelFullScreen'] || - document['mozCancelFullScreen'] || - document['webkitCancelFullScreen'] || - (function() {}); - CFS.apply(document, []); - },cancelFullScreen:function () { - Module.printErr('GLFW.cancelFullScreen() is deprecated. Please call GLFW.exitFullscreen instead.'); - GLFW.cancelFullScreen = function() { - return GLFW.exitFullscreen(); - } - return GLFW.exitFullscreen(); - },getTime:function () { - return _emscripten_get_now() / 1000; - },setWindowTitle:function (winid, title) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - win.title = Pointer_stringify(title); - if (GLFW.active.id == win.id) { - document.title = win.title; - } - },setJoystickCallback:function (cbfun) { - GLFW.joystickFunc = cbfun; - GLFW.refreshJoysticks(); - },joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function () { - // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation. - if (Browser.mainLoop.currentFrameNumber !== GLFW.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) { - GLFW.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null); - GLFW.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber; - - for (var joy = 0; joy < GLFW.lastGamepadState.length; ++joy) { - var gamepad = GLFW.lastGamepadState[joy]; - - if (gamepad) { - if (!GLFW.joys[joy]) { - console.log('glfw joystick connected:',joy); - GLFW.joys[joy] = { - id: allocate(intArrayFromString(gamepad.id), 'i8', ALLOC_NORMAL), - buttonsCount: gamepad.buttons.length, - axesCount: gamepad.axes.length, - buttons: allocate(new Array(gamepad.buttons.length), 'i8', ALLOC_NORMAL), - axes: allocate(new Array(gamepad.axes.length*4), 'float', ALLOC_NORMAL) - }; - - if (GLFW.joystickFunc) { - Module['dynCall_vii'](GLFW.joystickFunc, joy, 0x00040001); // GLFW_CONNECTED - } - } - - var data = GLFW.joys[joy]; - - for (var i = 0; i < gamepad.buttons.length; ++i) { - setValue(data.buttons + i, gamepad.buttons[i].pressed, 'i8'); - } - - for (var i = 0; i < gamepad.axes.length; ++i) { - setValue(data.axes + i*4, gamepad.axes[i], 'float'); - } - } else { - if (GLFW.joys[joy]) { - console.log('glfw joystick disconnected',joy); - - if (GLFW.joystickFunc) { - Module['dynCall_vii'](GLFW.joystickFunc, joy, 0x00040002); // GLFW_DISCONNECTED - } - - _free(GLFW.joys[joy].id); - _free(GLFW.joys[joy].buttons); - _free(GLFW.joys[joy].axes); - - delete GLFW.joys[joy]; - } - } - } - } - },setKeyCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.keyFunc = cbfun; - },setCharCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.charFunc = cbfun; - },setMouseButtonCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.mouseButtonFunc = cbfun; - },setCursorPosCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.cursorPosFunc = cbfun; - },setScrollCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.scrollFunc = cbfun; - },setDropCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.dropFunc = cbfun; - },onDrop:function (event) { - if (!GLFW.active || !GLFW.active.dropFunc) return; - if (!event.dataTransfer || !event.dataTransfer.files || event.dataTransfer.files.length == 0) return; - - event.preventDefault(); - - var filenames = allocate(new Array(event.dataTransfer.files.length*4), 'i8*', ALLOC_NORMAL); - var filenamesArray = []; - var count = event.dataTransfer.files.length; - - // Read and save the files to emscripten's FS - var written = 0; - var drop_dir = '.glfw_dropped_files'; - FS.createPath('/', drop_dir); - - function save(file) { - var path = '/' + drop_dir + '/' + file.name.replace(/\//g, '_'); - var reader = new FileReader(); - reader.onloadend = function(e) { - if (reader.readyState != 2) { // not DONE - ++written; - console.log('failed to read dropped file: '+file.name+': '+reader.error); - return; - } - - var data = e.target.result; - FS.writeFile(path, new Uint8Array(data), { encoding: 'binary' }); - if (++written === count) { - Module['dynCall_viii'](GLFW.active.dropFunc, GLFW.active.id, count, filenames); - - for (var i = 0; i < filenamesArray.length; ++i) { - _free(filenamesArray[i]); - } - _free(filenames); - } - }; - reader.readAsArrayBuffer(file); - - var filename = allocate(intArrayFromString(path), 'i8', ALLOC_NORMAL); - filenamesArray.push(filename); - setValue(filenames + i*4, filename, 'i8*'); - } - - for (var i = 0; i < count; ++i) { - save(event.dataTransfer.files[i]); - } - - return false; - },onDragover:function (event) { - if (!GLFW.active || !GLFW.active.dropFunc) return; - - event.preventDefault(); - return false; - },setWindowSizeCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowSizeFunc = cbfun; - - },setWindowCloseCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowCloseFunc = cbfun; - },setWindowRefreshCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowRefreshFunc = cbfun; - },onClickRequestPointerLock:function (e) { - if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { - Module['canvas'].requestPointerLock(); - e.preventDefault(); - } - },setInputMode:function (winid, mode, value) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - switch(mode) { - case 0x00033001: { // GLFW_CURSOR - switch(value) { - case 0x00034001: { // GLFW_CURSOR_NORMAL - win.inputModes[mode] = value; - Module['canvas'].removeEventListener('click', GLFW.onClickRequestPointerLock, true); - Module['canvas'].exitPointerLock(); - break; - } - case 0x00034002: { // GLFW_CURSOR_HIDDEN - console.log("glfwSetInputMode called with GLFW_CURSOR_HIDDEN value not implemented."); - break; - } - case 0x00034003: { // GLFW_CURSOR_DISABLED - win.inputModes[mode] = value; - Module['canvas'].addEventListener('click', GLFW.onClickRequestPointerLock, true); - Module['canvas'].requestPointerLock(); - break; - } - default: { - console.log("glfwSetInputMode called with unknown value parameter value: " + value + "."); - break; - } - } - break; - } - case 0x00033002: { // GLFW_STICKY_KEYS - console.log("glfwSetInputMode called with GLFW_STICKY_KEYS mode not implemented."); - break; - } - case 0x00033003: { // GLFW_STICKY_MOUSE_BUTTONS - console.log("glfwSetInputMode called with GLFW_STICKY_MOUSE_BUTTONS mode not implemented."); - break; - } - default: { - console.log("glfwSetInputMode called with unknown mode parameter value: " + mode + "."); - break; - } - } - },getKey:function (winid, key) { - var win = GLFW.WindowFromId(winid); - if (!win) return 0; - return win.keys[key]; - },getMouseButton:function (winid, button) { - var win = GLFW.WindowFromId(winid); - if (!win) return 0; - return (win.buttons & (1 << button)) > 0; - },getCursorPos:function (winid, x, y) { - setValue(x, Browser.mouseX, 'double'); - setValue(y, Browser.mouseY, 'double'); - },getMousePos:function (winid, x, y) { - setValue(x, Browser.mouseX, 'i32'); - setValue(y, Browser.mouseY, 'i32'); - },setCursorPos:function (winid, x, y) { - },getWindowPos:function (winid, x, y) { - var wx = 0; - var wy = 0; - - var win = GLFW.WindowFromId(winid); - if (win) { - wx = win.x; - wy = win.y; - } - - setValue(x, wx, 'i32'); - setValue(y, wy, 'i32'); - },setWindowPos:function (winid, x, y) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.x = x; - win.y = y; - },getWindowSize:function (winid, width, height) { - var ww = 0; - var wh = 0; - - var win = GLFW.WindowFromId(winid); - if (win) { - ww = win.width; - wh = win.height; - } - - setValue(width, ww, 'i32'); - setValue(height, wh, 'i32'); - },setWindowSize:function (winid, width, height) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - if (GLFW.active.id == win.id) { - if (width == screen.width && height == screen.height) { - GLFW.requestFullscreen(); - } else { - GLFW.exitFullscreen(); - Browser.setCanvasSize(width, height); - win.width = width; - win.height = height; - } - } - - if (!win.windowSizeFunc) return; - - - Module['dynCall_viii'](win.windowSizeFunc, win.id, width, height); - },createWindow:function (width, height, title, monitor, share) { - var i, id; - for (i = 0; i < GLFW.windows.length && GLFW.windows[i] !== null; i++); - if (i > 0) throw "glfwCreateWindow only supports one window at time currently"; - - // id for window - id = i + 1; - - // not valid - if (width <= 0 || height <= 0) return 0; - - if (monitor) { - GLFW.requestFullscreen(); - } else { - Browser.setCanvasSize(width, height); - } - - // Create context when there are no existing alive windows - for (i = 0; i < GLFW.windows.length && GLFW.windows[i] == null; i++); - if (i == GLFW.windows.length) { - var contextAttributes = { - antialias: (GLFW.hints[0x0002100D] > 1), // GLFW_SAMPLES - depth: (GLFW.hints[0x00021005] > 0), // GLFW_DEPTH_BITS - stencil: (GLFW.hints[0x00021006] > 0), // GLFW_STENCIL_BITS - alpha: (GLFW.hints[0x00021004] > 0) // GLFW_ALPHA_BITS - } - Module.ctx = Browser.createContext(Module['canvas'], true, true, contextAttributes); - } - - // If context creation failed, do not return a valid window - if (!Module.ctx) return 0; - - // Get non alive id - var win = new GLFW.Window(id, width, height, title, monitor, share); - - // Set window to array - if (id - 1 == GLFW.windows.length) { - GLFW.windows.push(win); - } else { - GLFW.windows[id - 1] = win; - } - - GLFW.active = win; - return win.id; - },destroyWindow:function (winid) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - if (win.windowCloseFunc) - Module['dynCall_vi'](win.windowCloseFunc, win.id); - - GLFW.windows[win.id - 1] = null; - if (GLFW.active.id == win.id) - GLFW.active = null; - - // Destroy context when no alive windows - for (var i = 0; i < GLFW.windows.length; i++) - if (GLFW.windows[i] !== null) return; - - Module.ctx = Browser.destroyContext(Module['canvas'], true, true); - },swapBuffers:function (winid) { - },GLFW2ParamToGLFW3Param:function (param) { - table = { - 0x00030001:0, // GLFW_MOUSE_CURSOR - 0x00030002:0, // GLFW_STICKY_KEYS - 0x00030003:0, // GLFW_STICKY_MOUSE_BUTTONS - 0x00030004:0, // GLFW_SYSTEM_KEYS - 0x00030005:0, // GLFW_KEY_REPEAT - 0x00030006:0, // GLFW_AUTO_POLL_EVENTS - 0x00020001:0, // GLFW_OPENED - 0x00020002:0, // GLFW_ACTIVE - 0x00020003:0, // GLFW_ICONIFIED - 0x00020004:0, // GLFW_ACCELERATED - 0x00020005:0x00021001, // GLFW_RED_BITS - 0x00020006:0x00021002, // GLFW_GREEN_BITS - 0x00020007:0x00021003, // GLFW_BLUE_BITS - 0x00020008:0x00021004, // GLFW_ALPHA_BITS - 0x00020009:0x00021005, // GLFW_DEPTH_BITS - 0x0002000A:0x00021006, // GLFW_STENCIL_BITS - 0x0002000B:0x0002100F, // GLFW_REFRESH_RATE - 0x0002000C:0x00021007, // GLFW_ACCUM_RED_BITS - 0x0002000D:0x00021008, // GLFW_ACCUM_GREEN_BITS - 0x0002000E:0x00021009, // GLFW_ACCUM_BLUE_BITS - 0x0002000F:0x0002100A, // GLFW_ACCUM_ALPHA_BITS - 0x00020010:0x0002100B, // GLFW_AUX_BUFFERS - 0x00020011:0x0002100C, // GLFW_STEREO - 0x00020012:0, // GLFW_WINDOW_NO_RESIZE - 0x00020013:0x0002100D, // GLFW_FSAA_SAMPLES - 0x00020014:0x00022002, // GLFW_OPENGL_VERSION_MAJOR - 0x00020015:0x00022003, // GLFW_OPENGL_VERSION_MINOR - 0x00020016:0x00022006, // GLFW_OPENGL_FORWARD_COMPAT - 0x00020017:0x00022007, // GLFW_OPENGL_DEBUG_CONTEXT - 0x00020018:0x00022008, // GLFW_OPENGL_PROFILE - }; - return table[param]; - }};function _glfwGetVideoModes(monitor, count) { - setValue(count, 0, 'i32'); - return 0; - } - - function _glLinkProgram(program) { - GLctx.linkProgram(GL.programs[program]); - GL.programInfos[program] = null; // uniforms no longer keep the same names after linking - GL.populateUniformTable(program); - } - - function _glBindTexture(target, texture) { - GLctx.bindTexture(target, texture ? GL.textures[texture] : null); - } - - function _emscripten_glStencilFunc(x0, x1, x2) { GLctx['stencilFunc'](x0, x1, x2) } - - function _glGetString(name_) { - if (GL.stringCache[name_]) return GL.stringCache[name_]; - var ret; - switch(name_) { - case 0x1F00 /* GL_VENDOR */: - case 0x1F01 /* GL_RENDERER */: - case 0x9245 /* UNMASKED_VENDOR_WEBGL */: - case 0x9246 /* UNMASKED_RENDERER_WEBGL */: - ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); - break; - case 0x1F02 /* GL_VERSION */: - var glVersion = GLctx.getParameter(GLctx.VERSION); - // return GLES version string corresponding to the version of the WebGL context - { - glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; - } - ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); - break; - case 0x1F03 /* GL_EXTENSIONS */: - var exts = GLctx.getSupportedExtensions(); - var gl_exts = []; - for (var i = 0; i < exts.length; ++i) { - gl_exts.push(exts[i]); - gl_exts.push("GL_" + exts[i]); - } - ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); - break; - case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: - var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); - // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' - var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; - var ver_num = glslVersion.match(ver_re); - if (ver_num !== null) { - if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits - glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; - } - ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); - break; - default: - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - return 0; - } - GL.stringCache[name_] = ret; - return ret; - } - - function _emscripten_glUniform3iv(location, count, value) { - - - GLctx.uniform3iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*12)>>2)); - } - - function _emscripten_glShaderSource(shader, count, string, length) { - var source = GL.getSource(shader, count, string, length); - - - GLctx.shaderSource(GL.shaders[shader], source); - } - - function _emscripten_glReleaseShaderCompiler() { - // NOP (as allowed by GLES 2.0 spec) - } - - function _glfwSetScrollCallback(winid, cbfun) { - GLFW.setScrollCallback(winid, cbfun); - } - - function _emscripten_glTexParameterf(x0, x1, x2) { GLctx['texParameterf'](x0, x1, x2) } - - function _emscripten_glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } - - function _glCompileShader(shader) { - GLctx.compileShader(GL.shaders[shader]); - } - - - var SYSCALLS={varargs:0,get:function (varargs) { - SYSCALLS.varargs += 4; - var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; - return ret; - },getStr:function () { - var ret = Pointer_stringify(SYSCALLS.get()); - return ret; - },get64:function () { - var low = SYSCALLS.get(), high = SYSCALLS.get(); - if (low >= 0) assert(high === 0); - else assert(high === -1); - return low; - },getZero:function () { - assert(SYSCALLS.get() === 0); - }};function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; - try { - // ioctl - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function _emscripten_glSampleCoverage(value, invert) { - GLctx.sampleCoverage(value, !!invert); - } - - function _glDeleteTextures(n, textures) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((textures)+(i*4))>>2)]; - var texture = GL.textures[id]; - if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". - GLctx.deleteTexture(texture); - texture.name = 0; - GL.textures[id] = null; - } - } - - function _emscripten_glFrustum() { - Module['printErr']('missing function: emscripten_glFrustum'); abort(-1); - } - - function _glfwSetWindowSizeCallback(winid, cbfun) { - GLFW.setWindowSizeCallback(winid, cbfun); - } - - function _emscripten_glGetTexParameterfv(target, pname, params) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAPF32[((params)>>2)]=GLctx.getTexParameter(target, pname); - } - - function _emscripten_glUniform4i(location, v0, v1, v2, v3) { - GLctx.uniform4i(GL.uniforms[location], v0, v1, v2, v3); - } - - function _emscripten_glBindRenderbuffer(target, renderbuffer) { - GLctx.bindRenderbuffer(target, renderbuffer ? GL.renderbuffers[renderbuffer] : null); - } - - function _emscripten_glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } - - - - var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,lastGamepadState:null,lastGamepadStateFrame:null,numGamepadsConnected:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,staticInit:function () { - if (typeof window !== 'undefined') { - window.addEventListener("gamepadconnected", function() { ++JSEvents.numGamepadsConnected; }); - window.addEventListener("gamepaddisconnected", function() { --JSEvents.numGamepadsConnected; }); - - // Chromium does not fire the gamepadconnected event on reload, so we need to get the number of gamepads here as a workaround. - // See https://bugs.chromium.org/p/chromium/issues/detail?id=502824 - var firstState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : null); - if (firstState) { - JSEvents.numGamepadsConnected = firstState.length; - } - } - },registerRemoveEventListeners:function () { - if (!JSEvents.removeEventListenersRegistered) { - __ATEXIT__.push(function() { - for(var i = JSEvents.eventHandlers.length-1; i >= 0; --i) { - JSEvents._removeHandler(i); - } - }); - JSEvents.removeEventListenersRegistered = true; - } - },findEventTarget:function (target) { - if (target) { - if (typeof target == "number") { - target = Pointer_stringify(target); - } - if (target == '#window') return window; - else if (target == '#document') return document; - else if (target == '#screen') return window.screen; - else if (target == '#canvas') return Module['canvas']; - - if (typeof target == 'string') return document.getElementById(target); - else return target; - } else { - // The sensible target varies between events, but use window as the default - // since DOM events mostly can default to that. Specific callback registrations - // override their own defaults. - return window; - } - },deferredCalls:[],deferCall:function (targetFunction, precedence, argsList) { - function arraysHaveEqualContent(arrA, arrB) { - if (arrA.length != arrB.length) return false; - - for(var i in arrA) { - if (arrA[i] != arrB[i]) return false; - } - return true; - } - // Test if the given call was already queued, and if so, don't add it again. - for(var i in JSEvents.deferredCalls) { - var call = JSEvents.deferredCalls[i]; - if (call.targetFunction == targetFunction && arraysHaveEqualContent(call.argsList, argsList)) { - return; - } - } - JSEvents.deferredCalls.push({ - targetFunction: targetFunction, - precedence: precedence, - argsList: argsList - }); - - JSEvents.deferredCalls.sort(function(x,y) { return x.precedence < y.precedence; }); - },removeDeferredCalls:function (targetFunction) { - for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { - if (JSEvents.deferredCalls[i].targetFunction == targetFunction) { - JSEvents.deferredCalls.splice(i, 1); - --i; - } - } - },canPerformEventHandlerRequests:function () { - return JSEvents.inEventHandler && JSEvents.currentEventHandler.allowsDeferredCalls; - },runDeferredCalls:function () { - if (!JSEvents.canPerformEventHandlerRequests()) { - return; - } - for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { - var call = JSEvents.deferredCalls[i]; - JSEvents.deferredCalls.splice(i, 1); - --i; - call.targetFunction.apply(this, call.argsList); - } - },inEventHandler:0,currentEventHandler:null,eventHandlers:[],isInternetExplorer:function () { return navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0; },removeAllHandlersOnTarget:function (target, eventTypeString) { - for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { - if (JSEvents.eventHandlers[i].target == target && - (!eventTypeString || eventTypeString == JSEvents.eventHandlers[i].eventTypeString)) { - JSEvents._removeHandler(i--); - } - } - },_removeHandler:function (i) { - var h = JSEvents.eventHandlers[i]; - h.target.removeEventListener(h.eventTypeString, h.eventListenerFunc, h.useCapture); - JSEvents.eventHandlers.splice(i, 1); - },registerOrRemoveHandler:function (eventHandler) { - var jsEventHandler = function jsEventHandler(event) { - // Increment nesting count for the event handler. - ++JSEvents.inEventHandler; - JSEvents.currentEventHandler = eventHandler; - // Process any old deferred calls the user has placed. - JSEvents.runDeferredCalls(); - // Process the actual event, calls back to user C code handler. - eventHandler.handlerFunc(event); - // Process any new deferred calls that were placed right now from this event handler. - JSEvents.runDeferredCalls(); - // Out of event handler - restore nesting count. - --JSEvents.inEventHandler; - } - - if (eventHandler.callbackfunc) { - eventHandler.eventListenerFunc = jsEventHandler; - eventHandler.target.addEventListener(eventHandler.eventTypeString, jsEventHandler, eventHandler.useCapture); - JSEvents.eventHandlers.push(eventHandler); - JSEvents.registerRemoveEventListeners(); - } else { - for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { - if (JSEvents.eventHandlers[i].target == eventHandler.target - && JSEvents.eventHandlers[i].eventTypeString == eventHandler.eventTypeString) { - JSEvents._removeHandler(i--); - } - } - } - },registerKeyEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.keyEvent) { - JSEvents.keyEvent = _malloc( 164 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - stringToUTF8(e.key ? e.key : "", JSEvents.keyEvent + 0, 32); - stringToUTF8(e.code ? e.code : "", JSEvents.keyEvent + 32, 32); - HEAP32[(((JSEvents.keyEvent)+(64))>>2)]=e.location; - HEAP32[(((JSEvents.keyEvent)+(68))>>2)]=e.ctrlKey; - HEAP32[(((JSEvents.keyEvent)+(72))>>2)]=e.shiftKey; - HEAP32[(((JSEvents.keyEvent)+(76))>>2)]=e.altKey; - HEAP32[(((JSEvents.keyEvent)+(80))>>2)]=e.metaKey; - HEAP32[(((JSEvents.keyEvent)+(84))>>2)]=e.repeat; - stringToUTF8(e.locale ? e.locale : "", JSEvents.keyEvent + 88, 32); - stringToUTF8(e.char ? e.char : "", JSEvents.keyEvent + 120, 32); - HEAP32[(((JSEvents.keyEvent)+(152))>>2)]=e.charCode; - HEAP32[(((JSEvents.keyEvent)+(156))>>2)]=e.keyCode; - HEAP32[(((JSEvents.keyEvent)+(160))>>2)]=e.which; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.keyEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: JSEvents.isInternetExplorer() ? false : true, // MSIE doesn't allow fullscreen and pointerlock requests from key handlers, others do. - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },getBoundingClientRectOrZeros:function (target) { - return target.getBoundingClientRect ? target.getBoundingClientRect() : { left: 0, top: 0 }; - },fillMouseEventData:function (eventStruct, e, target) { - HEAPF64[((eventStruct)>>3)]=JSEvents.tick(); - HEAP32[(((eventStruct)+(8))>>2)]=e.screenX; - HEAP32[(((eventStruct)+(12))>>2)]=e.screenY; - HEAP32[(((eventStruct)+(16))>>2)]=e.clientX; - HEAP32[(((eventStruct)+(20))>>2)]=e.clientY; - HEAP32[(((eventStruct)+(24))>>2)]=e.ctrlKey; - HEAP32[(((eventStruct)+(28))>>2)]=e.shiftKey; - HEAP32[(((eventStruct)+(32))>>2)]=e.altKey; - HEAP32[(((eventStruct)+(36))>>2)]=e.metaKey; - HEAP16[(((eventStruct)+(40))>>1)]=e.button; - HEAP16[(((eventStruct)+(42))>>1)]=e.buttons; - HEAP32[(((eventStruct)+(44))>>2)]=e["movementX"] || e["mozMovementX"] || e["webkitMovementX"] || (e.screenX-JSEvents.previousScreenX); - HEAP32[(((eventStruct)+(48))>>2)]=e["movementY"] || e["mozMovementY"] || e["webkitMovementY"] || (e.screenY-JSEvents.previousScreenY); - - if (Module['canvas']) { - var rect = Module['canvas'].getBoundingClientRect(); - HEAP32[(((eventStruct)+(60))>>2)]=e.clientX - rect.left; - HEAP32[(((eventStruct)+(64))>>2)]=e.clientY - rect.top; - } else { // Canvas is not initialized, return 0. - HEAP32[(((eventStruct)+(60))>>2)]=0; - HEAP32[(((eventStruct)+(64))>>2)]=0; - } - if (target) { - var rect = JSEvents.getBoundingClientRectOrZeros(target); - HEAP32[(((eventStruct)+(52))>>2)]=e.clientX - rect.left; - HEAP32[(((eventStruct)+(56))>>2)]=e.clientY - rect.top; - } else { // No specific target passed, return 0. - HEAP32[(((eventStruct)+(52))>>2)]=0; - HEAP32[(((eventStruct)+(56))>>2)]=0; - } - // wheel and mousewheel events contain wrong screenX/screenY on chrome/opera - // https://github.com/kripken/emscripten/pull/4997 - // https://bugs.chromium.org/p/chromium/issues/detail?id=699956 - if (e.type !== 'wheel' && e.type !== 'mousewheel') { - JSEvents.previousScreenX = e.screenX; - JSEvents.previousScreenY = e.screenY; - } - },registerMouseEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.mouseEvent) { - JSEvents.mouseEvent = _malloc( 72 ); - } - target = JSEvents.findEventTarget(target); - var handlerFunc = function(event) { - var e = event || window.event; - JSEvents.fillMouseEventData(JSEvents.mouseEvent, e, target); - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.mouseEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: eventTypeString != 'mousemove' && eventTypeString != 'mouseenter' && eventTypeString != 'mouseleave', // Mouse move events do not allow fullscreen/pointer lock requests to be handled in them! - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - // In IE, mousedown events don't either allow deferred calls to be run! - if (JSEvents.isInternetExplorer() && eventTypeString == 'mousedown') eventHandler.allowsDeferredCalls = false; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerWheelEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.wheelEvent) { - JSEvents.wheelEvent = _malloc( 104 ); - } - target = JSEvents.findEventTarget(target); - // The DOM Level 3 events spec event 'wheel' - var wheelHandlerFunc = function(event) { - var e = event || window.event; - JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); - HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["deltaX"]; - HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=e["deltaY"]; - HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=e["deltaZ"]; - HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=e["deltaMode"]; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - // The 'mousewheel' event as implemented in Safari 6.0.5 - var mouseWheelHandlerFunc = function(event) { - var e = event || window.event; - JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); - HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["wheelDeltaX"] || 0; - HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=-(e["wheelDeltaY"] ? e["wheelDeltaY"] : e["wheelDelta"]) /* 1. Invert to unify direction with the DOM Level 3 wheel event. 2. MSIE does not provide wheelDeltaY, so wheelDelta is used as a fallback. */; - HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=0 /* Not available */; - HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=0 /* DOM_DELTA_PIXEL */; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: true, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: (eventTypeString == 'wheel') ? wheelHandlerFunc : mouseWheelHandlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },pageScrollPos:function () { - if (window.pageXOffset > 0 || window.pageYOffset > 0) { - return [window.pageXOffset, window.pageYOffset]; - } - if (typeof document.documentElement.scrollLeft !== 'undefined' || typeof document.documentElement.scrollTop !== 'undefined') { - return [document.documentElement.scrollLeft, document.documentElement.scrollTop]; - } - return [document.body.scrollLeft|0, document.body.scrollTop|0]; - },registerUiEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.uiEvent) { - JSEvents.uiEvent = _malloc( 36 ); - } - - if (eventTypeString == "scroll" && !target) { - target = document; // By default read scroll events on document rather than window. - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - if (e.target != target) { - // Never take ui events such as scroll via a 'bubbled' route, but always from the direct element that - // was targeted. Otherwise e.g. if app logs a message in response to a page scroll, the Emscripten log - // message box could cause to scroll, generating a new (bubbled) scroll message, causing a new log print, - // causing a new scroll, etc.. - return; - } - var scrollPos = JSEvents.pageScrollPos(); - HEAP32[((JSEvents.uiEvent)>>2)]=e.detail; - HEAP32[(((JSEvents.uiEvent)+(4))>>2)]=document.body.clientWidth; - HEAP32[(((JSEvents.uiEvent)+(8))>>2)]=document.body.clientHeight; - HEAP32[(((JSEvents.uiEvent)+(12))>>2)]=window.innerWidth; - HEAP32[(((JSEvents.uiEvent)+(16))>>2)]=window.innerHeight; - HEAP32[(((JSEvents.uiEvent)+(20))>>2)]=window.outerWidth; - HEAP32[(((JSEvents.uiEvent)+(24))>>2)]=window.outerHeight; - HEAP32[(((JSEvents.uiEvent)+(28))>>2)]=scrollPos[0]; - HEAP32[(((JSEvents.uiEvent)+(32))>>2)]=scrollPos[1]; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.uiEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, // Neither scroll or resize events allow running requests inside them. - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },getNodeNameForTarget:function (target) { - if (!target) return ''; - if (target == window) return '#window'; - if (target == window.screen) return '#screen'; - return (target && target.nodeName) ? target.nodeName : ''; - },registerFocusEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.focusEvent) { - JSEvents.focusEvent = _malloc( 256 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - - var nodeName = JSEvents.getNodeNameForTarget(e.target); - var id = e.target.id ? e.target.id : ''; - stringToUTF8(nodeName, JSEvents.focusEvent + 0, 128); - stringToUTF8(id, JSEvents.focusEvent + 128, 128); - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.focusEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },tick:function () { - if (window['performance'] && window['performance']['now']) return window['performance']['now'](); - else return Date.now(); - },registerDeviceOrientationEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.deviceOrientationEvent) { - JSEvents.deviceOrientationEvent = _malloc( 40 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - - HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); - HEAPF64[(((JSEvents.deviceOrientationEvent)+(8))>>3)]=e.alpha; - HEAPF64[(((JSEvents.deviceOrientationEvent)+(16))>>3)]=e.beta; - HEAPF64[(((JSEvents.deviceOrientationEvent)+(24))>>3)]=e.gamma; - HEAP32[(((JSEvents.deviceOrientationEvent)+(32))>>2)]=e.absolute; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceOrientationEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerDeviceMotionEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.deviceMotionEvent) { - JSEvents.deviceMotionEvent = _malloc( 80 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - - HEAPF64[((JSEvents.deviceMotionEvent)>>3)]=JSEvents.tick(); - HEAPF64[(((JSEvents.deviceMotionEvent)+(8))>>3)]=e.acceleration.x; - HEAPF64[(((JSEvents.deviceMotionEvent)+(16))>>3)]=e.acceleration.y; - HEAPF64[(((JSEvents.deviceMotionEvent)+(24))>>3)]=e.acceleration.z; - HEAPF64[(((JSEvents.deviceMotionEvent)+(32))>>3)]=e.accelerationIncludingGravity.x; - HEAPF64[(((JSEvents.deviceMotionEvent)+(40))>>3)]=e.accelerationIncludingGravity.y; - HEAPF64[(((JSEvents.deviceMotionEvent)+(48))>>3)]=e.accelerationIncludingGravity.z; - HEAPF64[(((JSEvents.deviceMotionEvent)+(56))>>3)]=e.rotationRate.alpha; - HEAPF64[(((JSEvents.deviceMotionEvent)+(64))>>3)]=e.rotationRate.beta; - HEAPF64[(((JSEvents.deviceMotionEvent)+(72))>>3)]=e.rotationRate.gamma; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceMotionEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },screenOrientation:function () { - if (!window.screen) return undefined; - return window.screen.orientation || window.screen.mozOrientation || window.screen.webkitOrientation || window.screen.msOrientation; - },fillOrientationChangeEventData:function (eventStruct, e) { - var orientations = ["portrait-primary", "portrait-secondary", "landscape-primary", "landscape-secondary"]; - var orientations2 = ["portrait", "portrait", "landscape", "landscape"]; - - var orientationString = JSEvents.screenOrientation(); - var orientation = orientations.indexOf(orientationString); - if (orientation == -1) { - orientation = orientations2.indexOf(orientationString); - } - - HEAP32[((eventStruct)>>2)]=1 << orientation; - HEAP32[(((eventStruct)+(4))>>2)]=window.orientation; - },registerOrientationChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.orientationChangeEvent) { - JSEvents.orientationChangeEvent = _malloc( 8 ); - } - - if (!target) { - target = window.screen; // Orientation events need to be captured from 'window.screen' instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillOrientationChangeEventData(JSEvents.orientationChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.orientationChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - if (eventTypeString == "orientationchange" && window.screen.mozOrientation !== undefined) { - eventTypeString = "mozorientationchange"; - } - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },fullscreenEnabled:function () { - return document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled; - },fillFullscreenChangeEventData:function (eventStruct, e) { - var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; - var isFullscreen = !!fullscreenElement; - HEAP32[((eventStruct)>>2)]=isFullscreen; - HEAP32[(((eventStruct)+(4))>>2)]=JSEvents.fullscreenEnabled(); - // If transitioning to fullscreen, report info about the element that is now fullscreen. - // If transitioning to windowed mode, report info about the element that just was fullscreen. - var reportedElement = isFullscreen ? fullscreenElement : JSEvents.previousFullscreenElement; - var nodeName = JSEvents.getNodeNameForTarget(reportedElement); - var id = (reportedElement && reportedElement.id) ? reportedElement.id : ''; - stringToUTF8(nodeName, eventStruct + 8, 128); - stringToUTF8(id, eventStruct + 136, 128); - HEAP32[(((eventStruct)+(264))>>2)]=reportedElement ? reportedElement.clientWidth : 0; - HEAP32[(((eventStruct)+(268))>>2)]=reportedElement ? reportedElement.clientHeight : 0; - HEAP32[(((eventStruct)+(272))>>2)]=screen.width; - HEAP32[(((eventStruct)+(276))>>2)]=screen.height; - if (isFullscreen) { - JSEvents.previousFullscreenElement = fullscreenElement; - } - },registerFullscreenChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.fullscreenChangeEvent) { - JSEvents.fullscreenChangeEvent = _malloc( 280 ); - } - - if (!target) { - target = document; // Fullscreen change events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillFullscreenChangeEventData(JSEvents.fullscreenChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.fullscreenChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },resizeCanvasForFullscreen:function (target, strategy) { - var restoreOldStyle = __registerRestoreOldStyle(target); - var cssWidth = strategy.softFullscreen ? window.innerWidth : screen.width; - var cssHeight = strategy.softFullscreen ? window.innerHeight : screen.height; - var rect = target.getBoundingClientRect(); - var windowedCssWidth = rect.right - rect.left; - var windowedCssHeight = rect.bottom - rect.top; - var windowedRttWidth = target.width; - var windowedRttHeight = target.height; - - if (strategy.scaleMode == 3) { - __setLetterbox(target, (cssHeight - windowedCssHeight) / 2, (cssWidth - windowedCssWidth) / 2); - cssWidth = windowedCssWidth; - cssHeight = windowedCssHeight; - } else if (strategy.scaleMode == 2) { - if (cssWidth*windowedRttHeight < windowedRttWidth*cssHeight) { - var desiredCssHeight = windowedRttHeight * cssWidth / windowedRttWidth; - __setLetterbox(target, (cssHeight - desiredCssHeight) / 2, 0); - cssHeight = desiredCssHeight; - } else { - var desiredCssWidth = windowedRttWidth * cssHeight / windowedRttHeight; - __setLetterbox(target, 0, (cssWidth - desiredCssWidth) / 2); - cssWidth = desiredCssWidth; - } - } - - // If we are adding padding, must choose a background color or otherwise Chrome will give the - // padding a default white color. Do it only if user has not customized their own background color. - if (!target.style.backgroundColor) target.style.backgroundColor = 'black'; - // IE11 does the same, but requires the color to be set in the document body. - if (!document.body.style.backgroundColor) document.body.style.backgroundColor = 'black'; // IE11 - // Firefox always shows black letterboxes independent of style color. - - target.style.width = cssWidth + 'px'; - target.style.height = cssHeight + 'px'; - - if (strategy.filteringMode == 1) { - target.style.imageRendering = 'optimizeSpeed'; - target.style.imageRendering = '-moz-crisp-edges'; - target.style.imageRendering = '-o-crisp-edges'; - target.style.imageRendering = '-webkit-optimize-contrast'; - target.style.imageRendering = 'optimize-contrast'; - target.style.imageRendering = 'crisp-edges'; - target.style.imageRendering = 'pixelated'; - } - - var dpiScale = (strategy.canvasResolutionScaleMode == 2) ? window.devicePixelRatio : 1; - if (strategy.canvasResolutionScaleMode != 0) { - target.width = cssWidth * dpiScale; - target.height = cssHeight * dpiScale; - if (target.GLctxObject) target.GLctxObject.GLctx.viewport(0, 0, target.width, target.height); - } - return restoreOldStyle; - },requestFullscreen:function (target, strategy) { - // EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT + EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE is a mode where no extra logic is performed to the DOM elements. - if (strategy.scaleMode != 0 || strategy.canvasResolutionScaleMode != 0) { - JSEvents.resizeCanvasForFullscreen(target, strategy); - } - - if (target.requestFullscreen) { - target.requestFullscreen(); - } else if (target.msRequestFullscreen) { - target.msRequestFullscreen(); - } else if (target.mozRequestFullScreen) { - target.mozRequestFullScreen(); - } else if (target.mozRequestFullscreen) { - target.mozRequestFullscreen(); - } else if (target.webkitRequestFullscreen) { - target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); - } else { - if (typeof JSEvents.fullscreenEnabled() === 'undefined') { - return -1; - } else { - return -3; - } - } - - if (strategy.canvasResizedCallback) { - Module['dynCall_iiii'](strategy.canvasResizedCallback, 37, 0, strategy.canvasResizedCallbackUserData); - } - - return 0; - },fillPointerlockChangeEventData:function (eventStruct, e) { - var pointerLockElement = document.pointerLockElement || document.mozPointerLockElement || document.webkitPointerLockElement || document.msPointerLockElement; - var isPointerlocked = !!pointerLockElement; - HEAP32[((eventStruct)>>2)]=isPointerlocked; - var nodeName = JSEvents.getNodeNameForTarget(pointerLockElement); - var id = (pointerLockElement && pointerLockElement.id) ? pointerLockElement.id : ''; - stringToUTF8(nodeName, eventStruct + 4, 128); - stringToUTF8(id, eventStruct + 132, 128); - },registerPointerlockChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.pointerlockChangeEvent) { - JSEvents.pointerlockChangeEvent = _malloc( 260 ); - } - - if (!target) { - target = document; // Pointer lock change events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillPointerlockChangeEventData(JSEvents.pointerlockChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.pointerlockChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerPointerlockErrorEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!target) { - target = document; // Pointer lock events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },requestPointerLock:function (target) { - if (target.requestPointerLock) { - target.requestPointerLock(); - } else if (target.mozRequestPointerLock) { - target.mozRequestPointerLock(); - } else if (target.webkitRequestPointerLock) { - target.webkitRequestPointerLock(); - } else if (target.msRequestPointerLock) { - target.msRequestPointerLock(); - } else { - // document.body is known to accept pointer lock, so use that to differentiate if the user passed a bad element, - // or if the whole browser just doesn't support the feature. - if (document.body.requestPointerLock || document.body.mozRequestPointerLock || document.body.webkitRequestPointerLock || document.body.msRequestPointerLock) { - return -3; - } else { - return -1; - } - } - return 0; - },fillVisibilityChangeEventData:function (eventStruct, e) { - var visibilityStates = [ "hidden", "visible", "prerender", "unloaded" ]; - var visibilityState = visibilityStates.indexOf(document.visibilityState); - - HEAP32[((eventStruct)>>2)]=document.hidden; - HEAP32[(((eventStruct)+(4))>>2)]=visibilityState; - },registerVisibilityChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.visibilityChangeEvent) { - JSEvents.visibilityChangeEvent = _malloc( 8 ); - } - - if (!target) { - target = document; // Visibility change events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillVisibilityChangeEventData(JSEvents.visibilityChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.visibilityChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerTouchEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.touchEvent) { - JSEvents.touchEvent = _malloc( 1684 ); - } - - target = JSEvents.findEventTarget(target); - - var handlerFunc = function(event) { - var e = event || window.event; - - var touches = {}; - for(var i = 0; i < e.touches.length; ++i) { - var touch = e.touches[i]; - touches[touch.identifier] = touch; - } - for(var i = 0; i < e.changedTouches.length; ++i) { - var touch = e.changedTouches[i]; - touches[touch.identifier] = touch; - touch.changed = true; - } - for(var i = 0; i < e.targetTouches.length; ++i) { - var touch = e.targetTouches[i]; - touches[touch.identifier].onTarget = true; - } - - var ptr = JSEvents.touchEvent; - HEAP32[(((ptr)+(4))>>2)]=e.ctrlKey; - HEAP32[(((ptr)+(8))>>2)]=e.shiftKey; - HEAP32[(((ptr)+(12))>>2)]=e.altKey; - HEAP32[(((ptr)+(16))>>2)]=e.metaKey; - ptr += 20; // Advance to the start of the touch array. - var canvasRect = Module['canvas'] ? Module['canvas'].getBoundingClientRect() : undefined; - var targetRect = JSEvents.getBoundingClientRectOrZeros(target); - var numTouches = 0; - for(var i in touches) { - var t = touches[i]; - HEAP32[((ptr)>>2)]=t.identifier; - HEAP32[(((ptr)+(4))>>2)]=t.screenX; - HEAP32[(((ptr)+(8))>>2)]=t.screenY; - HEAP32[(((ptr)+(12))>>2)]=t.clientX; - HEAP32[(((ptr)+(16))>>2)]=t.clientY; - HEAP32[(((ptr)+(20))>>2)]=t.pageX; - HEAP32[(((ptr)+(24))>>2)]=t.pageY; - HEAP32[(((ptr)+(28))>>2)]=t.changed; - HEAP32[(((ptr)+(32))>>2)]=t.onTarget; - if (canvasRect) { - HEAP32[(((ptr)+(44))>>2)]=t.clientX - canvasRect.left; - HEAP32[(((ptr)+(48))>>2)]=t.clientY - canvasRect.top; - } else { - HEAP32[(((ptr)+(44))>>2)]=0; - HEAP32[(((ptr)+(48))>>2)]=0; - } - HEAP32[(((ptr)+(36))>>2)]=t.clientX - targetRect.left; - HEAP32[(((ptr)+(40))>>2)]=t.clientY - targetRect.top; - - ptr += 52; - - if (++numTouches >= 32) { - break; - } - } - HEAP32[((JSEvents.touchEvent)>>2)]=numTouches; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.touchEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: eventTypeString == 'touchstart' || eventTypeString == 'touchend', - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },fillGamepadEventData:function (eventStruct, e) { - HEAPF64[((eventStruct)>>3)]=e.timestamp; - for(var i = 0; i < e.axes.length; ++i) { - HEAPF64[(((eventStruct+i*8)+(16))>>3)]=e.axes[i]; - } - for(var i = 0; i < e.buttons.length; ++i) { - if (typeof(e.buttons[i]) === 'object') { - HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i].value; - } else { - HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i]; - } - } - for(var i = 0; i < e.buttons.length; ++i) { - if (typeof(e.buttons[i]) === 'object') { - HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i].pressed; - } else { - HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i] == 1.0; - } - } - HEAP32[(((eventStruct)+(1296))>>2)]=e.connected; - HEAP32[(((eventStruct)+(1300))>>2)]=e.index; - HEAP32[(((eventStruct)+(8))>>2)]=e.axes.length; - HEAP32[(((eventStruct)+(12))>>2)]=e.buttons.length; - stringToUTF8(e.id, eventStruct + 1304, 64); - stringToUTF8(e.mapping, eventStruct + 1368, 64); - },registerGamepadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.gamepadEvent) { - JSEvents.gamepadEvent = _malloc( 1432 ); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillGamepadEventData(JSEvents.gamepadEvent, e.gamepad); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.gamepadEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: true, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerBeforeUnloadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - var handlerFunc = function(event) { - var e = event || window.event; - - var confirmationMessage = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); - - if (confirmationMessage) { - confirmationMessage = Pointer_stringify(confirmationMessage); - } - if (confirmationMessage) { - e.preventDefault(); - e.returnValue = confirmationMessage; - return confirmationMessage; - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },battery:function () { return navigator.battery || navigator.mozBattery || navigator.webkitBattery; },fillBatteryEventData:function (eventStruct, e) { - HEAPF64[((eventStruct)>>3)]=e.chargingTime; - HEAPF64[(((eventStruct)+(8))>>3)]=e.dischargingTime; - HEAPF64[(((eventStruct)+(16))>>3)]=e.level; - HEAP32[(((eventStruct)+(24))>>2)]=e.charging; - },registerBatteryEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.batteryEvent) { - JSEvents.batteryEvent = _malloc( 32 ); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillBatteryEventData(JSEvents.batteryEvent, JSEvents.battery()); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.batteryEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerWebGlEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!target) { - target = Module['canvas']; - } - var handlerFunc = function(event) { - var e = event || window.event; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - }};function __emscripten_sample_gamepad_data() { - // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. - if (!JSEvents.numGamepadsConnected) return; - - // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation. - if (Browser.mainLoop.currentFrameNumber !== JSEvents.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) { - JSEvents.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null); - JSEvents.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber; - } - }function _emscripten_get_gamepad_status(index, gamepadState) { - __emscripten_sample_gamepad_data(); - if (!JSEvents.lastGamepadState) return -1; - - // INVALID_PARAM is returned on a Gamepad index that never was there. - if (index < 0 || index >= JSEvents.lastGamepadState.length) return -5; - - // NO_DATA is returned on a Gamepad index that was removed. - // For previously disconnected gamepads there should be an empty slot (null/undefined/false) at the index. - // This is because gamepads must keep their original position in the array. - // For example, removing the first of two gamepads produces [null/undefined/false, gamepad]. - if (!JSEvents.lastGamepadState[index]) return -7; - - JSEvents.fillGamepadEventData(gamepadState, JSEvents.lastGamepadState[index]); - return 0; - } - - function _emscripten_glCopyTexImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } - - function _emscripten_glTexParameterfv(target, pname, params) { - var param = HEAPF32[((params)>>2)]; - GLctx.texParameterf(target, pname, param); - } - - function _emscripten_glLinkProgram(program) { - GLctx.linkProgram(GL.programs[program]); - GL.programInfos[program] = null; // uniforms no longer keep the same names after linking - GL.populateUniformTable(program); - } - - function _emscripten_glUniform3f(location, v0, v1, v2) { - GLctx.uniform3f(GL.uniforms[location], v0, v1, v2); - } - - function _emscripten_glGetObjectParameterivARB() { - Module['printErr']('missing function: emscripten_glGetObjectParameterivARB'); abort(-1); - } - - function _emscripten_glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } - - function _emscripten_glUniform3i(location, v0, v1, v2) { - GLctx.uniform3i(GL.uniforms[location], v0, v1, v2); - } - - function _emscripten_glStencilOp(x0, x1, x2) { GLctx['stencilOp'](x0, x1, x2) } - - function _glCreateShader(shaderType) { - var id = GL.getNewId(GL.shaders); - GL.shaders[id] = GLctx.createShader(shaderType); - return id; - } - - function _glUniform1i(location, v0) { - GLctx.uniform1i(GL.uniforms[location], v0); - } - - function _emscripten_glBindAttribLocation(program, index, name) { - name = Pointer_stringify(name); - GLctx.bindAttribLocation(GL.programs[program], index, name); - } - - function _glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { - GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); - } - - function _glDisable(x0) { GLctx['disable'](x0) } - - function _emscripten_glEnableVertexAttribArray(index) { - GLctx.enableVertexAttribArray(index); - } - - - - function _glfwMakeContextCurrent(winid) {} - - function _emscripten_set_touchcancel_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 25, "touchcancel"); - return 0; - } - - function ___lock() {} - - function _emscripten_glBlendFuncSeparate(x0, x1, x2, x3) { GLctx['blendFuncSeparate'](x0, x1, x2, x3) } - - function _glCullFace(x0) { GLctx['cullFace'](x0) } - - function _emscripten_glGetVertexAttribPointerv(index, pname, pointer) { - if (!pointer) { - // GLES2 specification does not specify how to behave if pointer is a null pointer. Since calling this function does not make sense - // if pointer == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((pointer)>>2)]=GLctx.getVertexAttribOffset(index, pname); - } - - function _emscripten_glVertexAttrib3f(x0, x1, x2, x3) { GLctx['vertexAttrib3f'](x0, x1, x2, x3) } - - function _emscripten_glEnable(x0) { GLctx['enable'](x0) } - - function _emscripten_glNormalPointer() { - Module['printErr']('missing function: emscripten_glNormalPointer'); abort(-1); - } - - - var EGL={errorCode:12288,defaultDisplayInitialized:false,currentContext:0,currentReadSurface:0,currentDrawSurface:0,stringCache:{},setErrorCode:function (code) { - EGL.errorCode = code; - },chooseConfig:function (display, attribList, config, config_size, numConfigs) { - if (display != 62000 /* Magic ID for Emscripten 'default display' */) { - EGL.setErrorCode(0x3008 /* EGL_BAD_DISPLAY */); - return 0; - } - // TODO: read attribList. - if ((!config || !config_size) && !numConfigs) { - EGL.setErrorCode(0x300C /* EGL_BAD_PARAMETER */); - return 0; - } - if (numConfigs) { - HEAP32[((numConfigs)>>2)]=1; // Total number of supported configs: 1. - } - if (config && config_size > 0) { - HEAP32[((config)>>2)]=62002; - } - - EGL.setErrorCode(0x3000 /* EGL_SUCCESS */); - return 1; - }};function _eglGetProcAddress(name_) { - return _emscripten_GetProcAddress(name_); - } - - function _glDeleteProgram(id) { - if (!id) return; - var program = GL.programs[id]; - if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteProgram(program); - program.name = 0; - GL.programs[id] = null; - GL.programInfos[id] = null; - } - - function _emscripten_get_pointerlock_status(pointerlockStatus) { - if (pointerlockStatus) JSEvents.fillPointerlockChangeEventData(pointerlockStatus); - if (!document.body || (!document.body.requestPointerLock && !document.body.mozRequestPointerLock && !document.body.webkitRequestPointerLock && !document.body.msRequestPointerLock)) { - return -1; - } - return 0; - } - - function _glAttachShader(program, shader) { - GLctx.attachShader(GL.programs[program], - GL.shaders[shader]); - } - - function _glfwGetPrimaryMonitor() { - return 1; - } - - - function emscriptenWebGLGetVertexAttrib(index, pname, params, type) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if params == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - var data = GLctx.getVertexAttrib(index, pname); - if (pname == 0x889F/*VERTEX_ATTRIB_ARRAY_BUFFER_BINDING*/) { - HEAP32[((params)>>2)]=data["name"]; - } else if (typeof data == 'number' || typeof data == 'boolean') { - switch (type) { - case 'Integer': HEAP32[((params)>>2)]=data; break; - case 'Float': HEAPF32[((params)>>2)]=data; break; - case 'FloatToInteger': HEAP32[((params)>>2)]=Math.fround(data); break; - default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; - } - } else { - for (var i = 0; i < data.length; i++) { - switch (type) { - case 'Integer': HEAP32[(((params)+(i*4))>>2)]=data[i]; break; - case 'Float': HEAPF32[(((params)+(i*4))>>2)]=data[i]; break; - case 'FloatToInteger': HEAP32[(((params)+(i*4))>>2)]=Math.fround(data[i]); break; - default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; - } - } - } - }function _emscripten_glGetVertexAttribfv(index, pname, params) { - // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), - // otherwise the results are undefined. (GLES3 spec 6.1.12) - emscriptenWebGLGetVertexAttrib(index, pname, params, 'Float'); - } - - function _emscripten_set_touchstart_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 22, "touchstart"); - return 0; - } - - function _emscripten_glDeleteShader(id) { - if (!id) return; - var shader = GL.shaders[id]; - if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteShader(shader); - GL.shaders[id] = null; - } - - function _emscripten_glVertexPointer(){ throw 'Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } - - function _emscripten_glDeleteBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((buffers)+(i*4))>>2)]; - var buffer = GL.buffers[id]; - - // From spec: "glDeleteBuffers silently ignores 0's and names that do not - // correspond to existing buffer objects." - if (!buffer) continue; - - GLctx.deleteBuffer(buffer); - buffer.name = 0; - GL.buffers[id] = null; - - if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; - if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; - } - } - - function _emscripten_glTexParameteriv(target, pname, params) { - var param = HEAP32[((params)>>2)]; - GLctx.texParameteri(target, pname, param); - } - - function _glDrawElements(mode, count, type, indices) { - - GLctx.drawElements(mode, count, type, indices); - - } - - function _glfwTerminate() { - window.removeEventListener("gamepadconnected", GLFW.onGamepadConnected, true); - window.removeEventListener("gamepaddisconnected", GLFW.onGamepadDisconnected, true); - window.removeEventListener("keydown", GLFW.onKeydown, true); - window.removeEventListener("keypress", GLFW.onKeyPress, true); - window.removeEventListener("keyup", GLFW.onKeyup, true); - window.removeEventListener("blur", GLFW.onBlur, true); - Module["canvas"].removeEventListener("mousemove", GLFW.onMousemove, true); - Module["canvas"].removeEventListener("mousedown", GLFW.onMouseButtonDown, true); - Module["canvas"].removeEventListener("mouseup", GLFW.onMouseButtonUp, true); - Module["canvas"].removeEventListener('wheel', GLFW.onMouseWheel, true); - Module["canvas"].removeEventListener('mousewheel', GLFW.onMouseWheel, true); - Module["canvas"].removeEventListener('mouseenter', GLFW.onMouseenter, true); - Module["canvas"].removeEventListener('mouseleave', GLFW.onMouseleave, true); - Module["canvas"].removeEventListener('drop', GLFW.onDrop, true); - Module["canvas"].removeEventListener('dragover', GLFW.onDragover, true); - - - Module["canvas"].width = Module["canvas"].height = 1; - GLFW.windows = null; - GLFW.active = null; - } - - function _emscripten_glUniformMatrix2fv(location, count, transpose, value) { - - - var view; - if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[4*count-1]; - for (var i = 0; i < 4*count; i += 4) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); - } - GLctx.uniformMatrix2fv(GL.uniforms[location], !!transpose, view); - } - - function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; - try { - // close - var stream = SYSCALLS.getStreamFromFD(); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function _llvm_stacksave() { - var self = _llvm_stacksave; - if (!self.LLVM_SAVEDSTACKS) { - self.LLVM_SAVEDSTACKS = []; - } - self.LLVM_SAVEDSTACKS.push(Runtime.stackSave()); - return self.LLVM_SAVEDSTACKS.length-1; - } - - function _emscripten_glGetVertexAttribiv(index, pname, params) { - // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), - // otherwise the results are undefined. (GLES3 spec 6.1.12) - emscriptenWebGLGetVertexAttrib(index, pname, params, 'FloatToInteger'); - } - - function _emscripten_glUniformMatrix4fv(location, count, transpose, value) { - - - var view; - if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[16*count-1]; - for (var i = 0; i < 16*count; i += 16) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; - view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; - view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; - view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; - view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; - view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; - view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; - view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; - view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; - view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; - view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; - view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); - } - GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); - } - - function _emscripten_glDrawArraysInstanced(mode, first, count, primcount) { - GLctx['drawArraysInstanced'](mode, first, count, primcount); - } - - function _emscripten_glEnableClientState() { - Module['printErr']('missing function: emscripten_glEnableClientState'); abort(-1); - } - - function _emscripten_glGetPointerv() { - Module['printErr']('missing function: emscripten_glGetPointerv'); abort(-1); - } - - function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; - try { - // llseek - var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); - // NOTE: offset_high is unused - Emscripten's off_t is 32-bit - var offset = offset_low; - FS.llseek(stream, offset, whence); - HEAP32[((result)>>2)]=stream.position; - if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; - try { - // writev - // hack to support printf in NO_FILESYSTEM - var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); - var ret = 0; - if (!___syscall146.buffer) { - ___syscall146.buffers = [null, [], []]; // 1 => stdout, 2 => stderr - ___syscall146.printChar = function(stream, curr) { - var buffer = ___syscall146.buffers[stream]; - assert(buffer); - if (curr === 0 || curr === 10) { - (stream === 1 ? Module['print'] : Module['printErr'])(UTF8ArrayToString(buffer, 0)); - buffer.length = 0; - } else { - buffer.push(curr); - } - }; - } - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAP32[(((iov)+(i*8))>>2)]; - var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; - for (var j = 0; j < len; j++) { - ___syscall146.printChar(stream, HEAPU8[ptr+j]); - } - ret += len; - } - return ret; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function _emscripten_glUniform1i(location, v0) { - GLctx.uniform1i(GL.uniforms[location], v0); - } - - function _emscripten_glStencilMask(x0) { GLctx['stencilMask'](x0) } - - function _emscripten_glStencilFuncSeparate(x0, x1, x2, x3) { GLctx['stencilFuncSeparate'](x0, x1, x2, x3) } - - - - - - function _emscripten_set_touchend_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 23, "touchend"); - return 0; - } - - function _glUseProgram(program) { - GLctx.useProgram(program ? GL.programs[program] : null); - } - - function _emscripten_glDisableVertexAttribArray(index) { - GLctx.disableVertexAttribArray(index); - } - - function _emscripten_glVertexAttrib1f(x0, x1) { GLctx['vertexAttrib1f'](x0, x1) } - - function _emscripten_glFinish() { GLctx['finish']() } - - function _glDrawArrays(mode, first, count) { - - GLctx.drawArrays(mode, first, count); - - } - - function _emscripten_glDepthFunc(x0) { GLctx['depthFunc'](x0) } - - function _emscripten_get_num_gamepads() { - // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. - if (!JSEvents.numGamepadsConnected) return 0; - - __emscripten_sample_gamepad_data(); - if (!JSEvents.lastGamepadState) return -1; - return JSEvents.lastGamepadState.length; - } - - function _emscripten_glUniform4iv(location, count, value) { - - - GLctx.uniform4iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*16)>>2)); - } - - function _glClear(x0) { GLctx['clear'](x0) } - - function _emscripten_glLoadIdentity(){ throw 'Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } - - function _emscripten_glUniform3fv(location, count, value) { - - - var view; - if (3*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[3*count-1]; - for (var i = 0; i < 3*count; i += 3) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*12)>>2); - } - GLctx.uniform3fv(GL.uniforms[location], view); - } - - function _emscripten_glIsTexture(texture) { - var texture = GL.textures[texture]; - if (!texture) return 0; - return GLctx.isTexture(texture); - } - - function _glEnableVertexAttribArray(index) { - GLctx.enableVertexAttribArray(index); - } - - function _emscripten_glAttachShader(program, shader) { - GLctx.attachShader(GL.programs[program], - GL.shaders[shader]); - } - - function _glUniform4f(location, v0, v1, v2, v3) { - GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); - } - - function _emscripten_request_pointerlock(target, deferUntilInEventHandler) { - if (!target) target = '#canvas'; - target = JSEvents.findEventTarget(target); - if (!target) return -4; - if (!target.requestPointerLock && !target.mozRequestPointerLock && !target.webkitRequestPointerLock && !target.msRequestPointerLock) { - return -1; - } - - var canPerformRequests = JSEvents.canPerformEventHandlerRequests(); - - // Queue this function call if we're not currently in an event handler and the user saw it appropriate to do so. - if (!canPerformRequests) { - if (deferUntilInEventHandler) { - JSEvents.deferCall(JSEvents.requestPointerLock, 2 /* priority below fullscreen */, [target]); - return 1; - } else { - return -2; - } - } - - return JSEvents.requestPointerLock(target); - } - - - - var cttz_i8 = allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0], "i8", ALLOC_STATIC); - - function _glfwCreateWindow(width, height, title, monitor, share) { - return GLFW.createWindow(width, height, title, monitor, share); - } - - function _glfwDefaultWindowHints() { - GLFW.hints = GLFW.defaultHints; - } - - function _emscripten_glClearStencil(x0) { GLctx['clearStencil'](x0) } - - function _emscripten_glDetachShader(program, shader) { - GLctx.detachShader(GL.programs[program], - GL.shaders[shader]); - } - - function _emscripten_glDeleteVertexArrays(n, vaos) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((vaos)+(i*4))>>2)]; - GLctx['deleteVertexArray'](GL.vaos[id]); - GL.vaos[id] = null; - } - } - - function _glfwInit() { - if (GLFW.windows) return 1; // GL_TRUE - - GLFW.initialTime = GLFW.getTime(); - GLFW.hints = GLFW.defaultHints; - GLFW.windows = new Array() - GLFW.active = null; - - window.addEventListener("gamepadconnected", GLFW.onGamepadConnected, true); - window.addEventListener("gamepaddisconnected", GLFW.onGamepadDisconnected, true); - window.addEventListener("keydown", GLFW.onKeydown, true); - window.addEventListener("keypress", GLFW.onKeyPress, true); - window.addEventListener("keyup", GLFW.onKeyup, true); - window.addEventListener("blur", GLFW.onBlur, true); - Module["canvas"].addEventListener("mousemove", GLFW.onMousemove, true); - Module["canvas"].addEventListener("mousedown", GLFW.onMouseButtonDown, true); - Module["canvas"].addEventListener("mouseup", GLFW.onMouseButtonUp, true); - Module["canvas"].addEventListener('wheel', GLFW.onMouseWheel, true); - Module["canvas"].addEventListener('mousewheel', GLFW.onMouseWheel, true); - Module["canvas"].addEventListener('mouseenter', GLFW.onMouseenter, true); - Module["canvas"].addEventListener('mouseleave', GLFW.onMouseleave, true); - Module["canvas"].addEventListener('drop', GLFW.onDrop, true); - Module["canvas"].addEventListener('dragover', GLFW.onDragover, true); - - Browser.resizeListeners.push(function(width, height) { - GLFW.onCanvasResize(width, height); - }); - return 1; // GL_TRUE - } - - function _emscripten_glGetTexParameteriv(target, pname, params) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((params)>>2)]=GLctx.getTexParameter(target, pname); - } - - function _glfwSwapBuffers(winid) { - GLFW.swapBuffers(winid); - } - - function _emscripten_glGenerateMipmap(x0) { GLctx['generateMipmap'](x0) } - - function _emscripten_glCullFace(x0) { GLctx['cullFace'](x0) } - - function _emscripten_glUniform4f(location, v0, v1, v2, v3) { - GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); - } - - function _glDisableVertexAttribArray(index) { - GLctx.disableVertexAttribArray(index); - } - - function _emscripten_glUseProgram(program) { - GLctx.useProgram(program ? GL.programs[program] : null); - } - - function _emscripten_glHint(x0, x1) { GLctx['hint'](x0, x1) } - - function _emscripten_glUniform2fv(location, count, value) { - - - var view; - if (2*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[2*count-1]; - for (var i = 0; i < 2*count; i += 2) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*8)>>2); - } - GLctx.uniform2fv(GL.uniforms[location], view); - } - - function _glfwSwapInterval(interval) { - interval = Math.abs(interval); // GLFW uses negative values to enable GLX_EXT_swap_control_tear, which we don't have, so just treat negative and positive the same. - if (interval == 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 0); - else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, interval); - } - - function _glGetShaderInfoLog(shader, maxLength, length, infoLog) { - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _emscripten_glMatrixMode(){ throw 'Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } - - function _abort() { - Module['abort'](); - } - - function _emscripten_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) { - GLctx.framebufferRenderbuffer(target, attachment, renderbuffertarget, - GL.renderbuffers[renderbuffer]); - } - - function _emscripten_glDeleteFramebuffers(n, framebuffers) { - for (var i = 0; i < n; ++i) { - var id = HEAP32[(((framebuffers)+(i*4))>>2)]; - var framebuffer = GL.framebuffers[id]; - if (!framebuffer) continue; // GL spec: "glDeleteFramebuffers silently ignores 0s and names that do not correspond to existing framebuffer objects". - GLctx.deleteFramebuffer(framebuffer); - framebuffer.name = 0; - GL.framebuffers[id] = null; - } - } - - function _emscripten_glIsBuffer(buffer) { - var b = GL.buffers[buffer]; - if (!b) return 0; - return GLctx.isBuffer(b); - } - - function _emscripten_glUniform2iv(location, count, value) { - - - GLctx.uniform2iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*8)>>2)); - } - - function _emscripten_glVertexAttrib1fv(index, v) { - - GLctx.vertexAttrib1f(index, HEAPF32[v>>2]); - } - - function _glEnable(x0) { GLctx['enable'](x0) } - - - - function emscriptenWebGLComputeImageSize(width, height, sizePerPixel, alignment) { - function roundedToNextMultipleOf(x, y) { - return Math.floor((x + y - 1) / y) * y - } - var plainRowSize = width * sizePerPixel; - var alignedRowSize = roundedToNextMultipleOf(plainRowSize, alignment); - return (height <= 0) ? 0 : - ((height - 1) * alignedRowSize + plainRowSize); - }function emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) { - var sizePerPixel; - var numChannels; - switch(format) { - case 0x1906 /* GL_ALPHA */: - case 0x1909 /* GL_LUMINANCE */: - case 0x1902 /* GL_DEPTH_COMPONENT */: - numChannels = 1; - break; - case 0x190A /* GL_LUMINANCE_ALPHA */: - numChannels = 2; - break; - case 0x1907 /* GL_RGB */: - case 0x8C40 /* GL_SRGB_EXT */: - numChannels = 3; - break; - case 0x1908 /* GL_RGBA */: - case 0x8C42 /* GL_SRGB_ALPHA_EXT */: - numChannels = 4; - break; - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return null; - } - switch (type) { - case 0x1401 /* GL_UNSIGNED_BYTE */: - sizePerPixel = numChannels*1; - break; - case 0x1403 /* GL_UNSIGNED_SHORT */: - case 0x8D61 /* GL_HALF_FLOAT_OES */: - sizePerPixel = numChannels*2; - break; - case 0x1405 /* GL_UNSIGNED_INT */: - case 0x1406 /* GL_FLOAT */: - sizePerPixel = numChannels*4; - break; - case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: - sizePerPixel = 4; - break; - case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: - case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: - case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: - sizePerPixel = 2; - break; - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return null; - } - var bytes = emscriptenWebGLComputeImageSize(width, height, sizePerPixel, GL.unpackAlignment); - switch(type) { - case 0x1401 /* GL_UNSIGNED_BYTE */: - return HEAPU8.subarray((pixels),(pixels+bytes)); - case 0x1406 /* GL_FLOAT */: - return HEAPF32.subarray((pixels)>>2,(pixels+bytes)>>2); - case 0x1405 /* GL_UNSIGNED_INT */: - case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: - return HEAPU32.subarray((pixels)>>2,(pixels+bytes)>>2); - case 0x1403 /* GL_UNSIGNED_SHORT */: - case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: - case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: - case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: - case 0x8D61 /* GL_HALF_FLOAT_OES */: - return HEAPU16.subarray((pixels)>>1,(pixels+bytes)>>1); - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return null; - } - }function _emscripten_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) { - var pixelData = null; - if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, 0); - GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData); - } - - function _emscripten_glPolygonOffset(x0, x1) { GLctx['polygonOffset'](x0, x1) } - - var _emscripten_asm_const_int=true; - - function _emscripten_glUniform2f(location, v0, v1) { - GLctx.uniform2f(GL.uniforms[location], v0, v1); - } - - function _glGetAttribLocation(program, name) { - program = GL.programs[program]; - name = Pointer_stringify(name); - return GLctx.getAttribLocation(program, name); - } - - function _glfwWindowHint(target, hint) { - GLFW.hints[target] = hint; - } - - function _emscripten_glUniform2i(location, v0, v1) { - GLctx.uniform2i(GL.uniforms[location], v0, v1); - } - - function _glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } - - function _glCreateProgram() { - var id = GL.getNewId(GL.programs); - var program = GLctx.createProgram(); - program.name = id; - GL.programs[id] = program; - return id; - } - - function _emscripten_glDeleteRenderbuffers(n, renderbuffers) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((renderbuffers)+(i*4))>>2)]; - var renderbuffer = GL.renderbuffers[id]; - if (!renderbuffer) continue; // GL spec: "glDeleteRenderbuffers silently ignores 0s and names that do not correspond to existing renderbuffer objects". - GLctx.deleteRenderbuffer(renderbuffer); - renderbuffer.name = 0; - GL.renderbuffers[id] = null; - } - } - - function _emscripten_glGetBufferParameteriv(target, value, data) { - if (!data) { - // GLES2 specification does not specify how to behave if data is a null pointer. Since calling this function does not make sense - // if data == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((data)>>2)]=GLctx.getBufferParameter(target, value); - } - - - function emscriptenWebGLGetUniform(program, location, params, type) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if params == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - var data = GLctx.getUniform(GL.programs[program], GL.uniforms[location]); - if (typeof data == 'number' || typeof data == 'boolean') { - switch (type) { - case 'Integer': HEAP32[((params)>>2)]=data; break; - case 'Float': HEAPF32[((params)>>2)]=data; break; - default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; - } - } else { - for (var i = 0; i < data.length; i++) { - switch (type) { - case 'Integer': HEAP32[(((params)+(i*4))>>2)]=data[i]; break; - case 'Float': HEAPF32[(((params)+(i*4))>>2)]=data[i]; break; - default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; - } - } - } - }function _emscripten_glGetUniformiv(program, location, params) { - emscriptenWebGLGetUniform(program, location, params, 'Integer'); - } - - function _emscripten_glDepthMask(flag) { - GLctx.depthMask(!!flag); - } - - - function _emscripten_glDepthRangef(x0, x1) { GLctx['depthRange'](x0, x1) } - - function _emscripten_glDepthRange(x0, x1) { GLctx['depthRange'](x0, x1) } - - function _emscripten_set_fullscreenchange_callback(target, userData, useCapture, callbackfunc) { - if (typeof JSEvents.fullscreenEnabled() === 'undefined') return -1; - if (!target) target = document; - else { - target = JSEvents.findEventTarget(target); - if (!target) return -4; - } - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "fullscreenchange"); - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "mozfullscreenchange"); - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "webkitfullscreenchange"); - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "msfullscreenchange"); - return 0; - } - - function _emscripten_glGetShaderPrecisionFormat(shaderType, precisionType, range, precision) { - var result = GLctx.getShaderPrecisionFormat(shaderType, precisionType); - HEAP32[((range)>>2)]=result.rangeMin; - HEAP32[(((range)+(4))>>2)]=result.rangeMax; - HEAP32[((precision)>>2)]=result.precision; - } - - function _emscripten_glUniform1fv(location, count, value) { - - - var view; - if (count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[count-1]; - for (var i = 0; i < count; ++i) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*4)>>2); - } - GLctx.uniform1fv(GL.uniforms[location], view); - } - - function _glfwSetMouseButtonCallback(winid, cbfun) { - GLFW.setMouseButtonCallback(winid, cbfun); - } - - function _emscripten_set_gamepaddisconnected_callback(userData, useCapture, callbackfunc) { - if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; - JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 27, "gamepaddisconnected"); - return 0; - } - - function _emscripten_glBindProgramARB() { - Module['printErr']('missing function: emscripten_glBindProgramARB'); abort(-1); - } - - function _emscripten_glBindTexture(target, texture) { - GLctx.bindTexture(target, texture ? GL.textures[texture] : null); - } - - function _emscripten_glCheckFramebufferStatus(x0) { return GLctx['checkFramebufferStatus'](x0) } - - function _emscripten_glDeleteProgram(id) { - if (!id) return; - var program = GL.programs[id]; - if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteProgram(program); - program.name = 0; - GL.programs[id] = null; - GL.programInfos[id] = null; - } - - function _emscripten_glDisable(x0) { GLctx['disable'](x0) } - - function _emscripten_glVertexAttrib3fv(index, v) { - - GLctx.vertexAttrib3f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2]); - } - - function _glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } - - function _emscripten_glGetActiveAttrib(program, index, bufSize, length, size, type, name) { - program = GL.programs[program]; - var info = GLctx.getActiveAttrib(program, index); - if (!info) return; // If an error occurs, nothing will be written to length, size and type and name. - - if (bufSize > 0 && name) { - var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - - if (size) HEAP32[((size)>>2)]=info.size; - if (type) HEAP32[((type)>>2)]=info.type; - } - - function _emscripten_glIsFramebuffer(framebuffer) { - var fb = GL.framebuffers[framebuffer]; - if (!fb) return 0; - return GLctx.isFramebuffer(fb); - } - - function _emscripten_glLineWidth(x0) { GLctx['lineWidth'](x0) } - - function _glfwGetCursorPos(winid, x, y) { - GLFW.getCursorPos(winid, x, y); - } - - function _emscripten_glGetString(name_) { - if (GL.stringCache[name_]) return GL.stringCache[name_]; - var ret; - switch(name_) { - case 0x1F00 /* GL_VENDOR */: - case 0x1F01 /* GL_RENDERER */: - case 0x9245 /* UNMASKED_VENDOR_WEBGL */: - case 0x9246 /* UNMASKED_RENDERER_WEBGL */: - ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); - break; - case 0x1F02 /* GL_VERSION */: - var glVersion = GLctx.getParameter(GLctx.VERSION); - // return GLES version string corresponding to the version of the WebGL context - { - glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; - } - ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); - break; - case 0x1F03 /* GL_EXTENSIONS */: - var exts = GLctx.getSupportedExtensions(); - var gl_exts = []; - for (var i = 0; i < exts.length; ++i) { - gl_exts.push(exts[i]); - gl_exts.push("GL_" + exts[i]); - } - ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); - break; - case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: - var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); - // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' - var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; - var ver_num = glslVersion.match(ver_re); - if (ver_num !== null) { - if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits - glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; - } - ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); - break; - default: - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - return 0; - } - GL.stringCache[name_] = ret; - return ret; - } - - function _emscripten_glGetAttribLocation(program, name) { - program = GL.programs[program]; - name = Pointer_stringify(name); - return GLctx.getAttribLocation(program, name); - } - - function _emscripten_glRotatef() { - Module['printErr']('missing function: emscripten_glRotatef'); abort(-1); - } - - - function emscriptenWebGLGet(name_, p, type) { - // Guard against user passing a null pointer. - // Note that GLES2 spec does not say anything about how passing a null pointer should be treated. - // Testing on desktop core GL 3, the application crashes on glGetIntegerv to a null pointer, but - // better to report an error instead of doing anything random. - if (!p) { - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - var ret = undefined; - switch(name_) { // Handle a few trivial GLES values - case 0x8DFA: // GL_SHADER_COMPILER - ret = 1; - break; - case 0x8DF8: // GL_SHADER_BINARY_FORMATS - if (type !== 'Integer' && type !== 'Integer64') { - GL.recordError(0x0500); // GL_INVALID_ENUM - } - return; // Do not write anything to the out pointer, since no binary formats are supported. - case 0x8DF9: // GL_NUM_SHADER_BINARY_FORMATS - ret = 0; - break; - case 0x86A2: // GL_NUM_COMPRESSED_TEXTURE_FORMATS - // WebGL doesn't have GL_NUM_COMPRESSED_TEXTURE_FORMATS (it's obsolete since GL_COMPRESSED_TEXTURE_FORMATS returns a JS array that can be queried for length), - // so implement it ourselves to allow C++ GLES2 code get the length. - var formats = GLctx.getParameter(0x86A3 /*GL_COMPRESSED_TEXTURE_FORMATS*/); - ret = formats.length; - break; - } - - if (ret === undefined) { - var result = GLctx.getParameter(name_); - switch (typeof(result)) { - case "number": - ret = result; - break; - case "boolean": - ret = result ? 1 : 0; - break; - case "string": - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - case "object": - if (result === null) { - // null is a valid result for some (e.g., which buffer is bound - perhaps nothing is bound), but otherwise - // can mean an invalid name_, which we need to report as an error - switch(name_) { - case 0x8894: // ARRAY_BUFFER_BINDING - case 0x8B8D: // CURRENT_PROGRAM - case 0x8895: // ELEMENT_ARRAY_BUFFER_BINDING - case 0x8CA6: // FRAMEBUFFER_BINDING - case 0x8CA7: // RENDERBUFFER_BINDING - case 0x8069: // TEXTURE_BINDING_2D - case 0x8514: { // TEXTURE_BINDING_CUBE_MAP - ret = 0; - break; - } - default: { - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - } - } - } else if (result instanceof Float32Array || - result instanceof Uint32Array || - result instanceof Int32Array || - result instanceof Array) { - for (var i = 0; i < result.length; ++i) { - switch (type) { - case 'Integer': HEAP32[(((p)+(i*4))>>2)]=result[i]; break; - case 'Float': HEAPF32[(((p)+(i*4))>>2)]=result[i]; break; - case 'Boolean': HEAP8[(((p)+(i))>>0)]=result[i] ? 1 : 0; break; - default: throw 'internal glGet error, bad type: ' + type; - } - } - return; - } else if (result instanceof WebGLBuffer || - result instanceof WebGLProgram || - result instanceof WebGLFramebuffer || - result instanceof WebGLRenderbuffer || - result instanceof WebGLTexture) { - ret = result.name | 0; - } else { - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - } - break; - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - } - } - - switch (type) { - case 'Integer64': (tempI64 = [ret>>>0,(tempDouble=ret,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((p)>>2)]=tempI64[0],HEAP32[(((p)+(4))>>2)]=tempI64[1]); break; - case 'Integer': HEAP32[((p)>>2)]=ret; break; - case 'Float': HEAPF32[((p)>>2)]=ret; break; - case 'Boolean': HEAP8[((p)>>0)]=ret ? 1 : 0; break; - default: throw 'internal glGet error, bad type: ' + type; - } - }function _emscripten_glGetIntegerv(name_, p) { - emscriptenWebGLGet(name_, p, 'Integer'); - } - - function _emscripten_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) { - var result = GLctx.getFramebufferAttachmentParameter(target, attachment, pname); - HEAP32[((params)>>2)]=result; - } - - function _llvm_stackrestore(p) { - var self = _llvm_stacksave; - var ret = self.LLVM_SAVEDSTACKS[p]; - self.LLVM_SAVEDSTACKS.splice(p, 1); - Runtime.stackRestore(ret); - } - - function _glfwSetWindowShouldClose(winid, value) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.shouldClose = value; - } - - function _emscripten_glClientActiveTexture() { - Module['printErr']('missing function: emscripten_glClientActiveTexture'); abort(-1); - } - - function _glGenBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var buffer = GLctx.createBuffer(); - if (!buffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.buffers); - buffer.name = id; - GL.buffers[id] = buffer; - HEAP32[(((buffers)+(i*4))>>2)]=id; - } - } - - - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.set(HEAPU8.subarray(src, src+num), dest); - return dest; - } - - function _emscripten_glGetShaderInfoLog(shader, maxLength, length, infoLog) { - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _glfwGetTime() { - return GLFW.getTime() - GLFW.initialTime; - } - - function _emscripten_glGetRenderbufferParameteriv(target, pname, params) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if params == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((params)>>2)]=GLctx.getRenderbufferParameter(target, pname); - } - - function _emscripten_glStencilOpSeparate(x0, x1, x2, x3) { GLctx['stencilOpSeparate'](x0, x1, x2, x3) } - - function _emscripten_glReadPixels(x, y, width, height, format, type, pixels) { - var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, format); - if (!pixelData) { - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - return; - } - GLctx.readPixels(x, y, width, height, format, type, pixelData); - } - - function _emscripten_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) { - GLctx['compressedTexSubImage2D'](target, level, xoffset, yoffset, width, height, format, data ? HEAPU8.subarray((data),(data+imageSize)) : null); - } - - function _emscripten_glGetError() { - // First return any GL error generated by the emscripten library_gl.js interop layer. - if (GL.lastError) { - var error = GL.lastError; - GL.lastError = 0/*GL_NO_ERROR*/; - return error; - } else { // If there were none, return the GL error from the browser GL context. - return GLctx.getError(); - } - } - - function _emscripten_glFramebufferTexture2D(target, attachment, textarget, texture, level) { - GLctx.framebufferTexture2D(target, attachment, textarget, - GL.textures[texture], level); - } - - function _emscripten_glIsEnabled(x0) { return GLctx['isEnabled'](x0) } - - function _glClearDepthf(x0) { GLctx['clearDepth'](x0) } - - function _glGenTextures(n, textures) { - for (var i = 0; i < n; i++) { - var texture = GLctx.createTexture(); - if (!texture) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. - while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.textures); - texture.name = id; - GL.textures[id] = texture; - HEAP32[(((textures)+(i*4))>>2)]=id; - } - } - - function _emscripten_glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) } - - function _glDepthFunc(x0) { GLctx['depthFunc'](x0) } - - - - function _emscripten_glClearDepthf(x0) { GLctx['clearDepth'](x0) } - - function _emscripten_glClear(x0) { GLctx['clear'](x0) } - - function _emscripten_glBindBuffer(target, buffer) { - var bufferObj = buffer ? GL.buffers[buffer] : null; - - - GLctx.bindBuffer(target, bufferObj); - } - - function _emscripten_glGetUniformfv(program, location, params) { - emscriptenWebGLGetUniform(program, location, params, 'Float'); - } - - function _glGetProgramiv(program, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - if (program >= GL.counter) { - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - return; - } - - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { - HEAP32[((p)>>2)]=ptable.maxUniformLength; - } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { - if (ptable.maxAttributeLength == -1) { - var program = GL.programs[program]; - var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); - ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. - for (var i = 0; i < numAttribs; ++i) { - var activeAttrib = GLctx.getActiveAttrib(program, i); - ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxAttributeLength; - } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { - if (ptable.maxUniformBlockNameLength == -1) { - var program = GL.programs[program]; - var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); - ptable.maxUniformBlockNameLength = 0; - for (var i = 0; i < numBlocks; ++i) { - var activeBlockName = GLctx.getActiveUniformBlockName(program, i); - ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; - } else { - HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); - } - } - - function _glVertexAttribPointer(index, size, type, normalized, stride, ptr) { - GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); - } - - function _emscripten_exit_pointerlock() { - // Make sure no queued up calls will fire after this. - JSEvents.removeDeferredCalls(JSEvents.requestPointerLock); - - if (document.exitPointerLock) { - document.exitPointerLock(); - } else if (document.msExitPointerLock) { - document.msExitPointerLock(); - } else if (document.mozExitPointerLock) { - document.mozExitPointerLock(); - } else if (document.webkitExitPointerLock) { - document.webkitExitPointerLock(); - } else { - return -1; - } - return 0; - } - - function _glGetUniformLocation(program, name) { - name = Pointer_stringify(name); - - var arrayOffset = 0; - // If user passed an array accessor "[index]", parse the array index off the accessor. - if (name.indexOf(']', name.length-1) !== -1) { - var ls = name.lastIndexOf('['); - var arrayIndex = name.slice(ls+1, -1); - if (arrayIndex.length > 0) { - arrayOffset = parseInt(arrayIndex); - if (arrayOffset < 0) { - return -1; - } - } - name = name.slice(0, ls); - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - return -1; - } - var utable = ptable.uniforms; - var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] - if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. - return uniformInfo[1]+arrayOffset; - } else { - return -1; - } - } - - function _emscripten_glGetAttachedShaders(program, maxCount, count, shaders) { - var result = GLctx.getAttachedShaders(GL.programs[program]); - var len = result.length; - if (len > maxCount) { - len = maxCount; - } - HEAP32[((count)>>2)]=len; - for (var i = 0; i < len; ++i) { - var id = GL.shaders.indexOf(result[i]); - assert(id !== -1, 'shader not bound to local id'); - HEAP32[(((shaders)+(i*4))>>2)]=id; - } - } - - function _emscripten_glGenRenderbuffers(n, renderbuffers) { - for (var i = 0; i < n; i++) { - var renderbuffer = GLctx.createRenderbuffer(); - if (!renderbuffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((renderbuffers)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.renderbuffers); - renderbuffer.name = id; - GL.renderbuffers[id] = renderbuffer; - HEAP32[(((renderbuffers)+(i*4))>>2)]=id; - } - } - - function _emscripten_glFrontFace(x0) { GLctx['frontFace'](x0) } - - function _emscripten_glActiveTexture(x0) { GLctx['activeTexture'](x0) } - - function _emscripten_glUniform1iv(location, count, value) { - - - GLctx.uniform1iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*4)>>2)); - } - - function _emscripten_glTexCoordPointer() { - Module['printErr']('missing function: emscripten_glTexCoordPointer'); abort(-1); - } - - function _emscripten_glGetInfoLogARB() { - Module['printErr']('missing function: emscripten_glGetInfoLogARB'); abort(-1); - } - - - function __exit(status) { - // void _exit(int status); - // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html - Module['exit'](status); - }function _exit(status) { - __exit(status); - } - - function _emscripten_glRenderbufferStorage(x0, x1, x2, x3) { GLctx['renderbufferStorage'](x0, x1, x2, x3) } - - function _emscripten_glCopyTexSubImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexSubImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } - - function _glfwSetCursorPosCallback(winid, cbfun) { - GLFW.setCursorPosCallback(winid, cbfun); - } - - function _glBindAttribLocation(program, index, name) { - name = Pointer_stringify(name); - GLctx.bindAttribLocation(GL.programs[program], index, name); - } - - function _emscripten_glShaderBinary() { - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - } - - function _emscripten_glIsProgram(program) { - var program = GL.programs[program]; - if (!program) return 0; - return GLctx.isProgram(program); - } - - function _emscripten_glBlendColor(x0, x1, x2, x3) { GLctx['blendColor'](x0, x1, x2, x3) } - - function _emscripten_glGetShaderiv(shader, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B88) { // GL_SHADER_SOURCE_LENGTH - var source = GLctx.getShaderSource(GL.shaders[shader]); - var sourceLength = (source === null || source.length == 0) ? 0 : source.length + 1; - HEAP32[((p)>>2)]=sourceLength; - } else { - HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); - } - } - - function _emscripten_glUniformMatrix3fv(location, count, transpose, value) { - - - var view; - if (9*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[9*count-1]; - for (var i = 0; i < 9*count; i += 9) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; - view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; - view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; - view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; - view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*36)>>2); - } - GLctx.uniformMatrix3fv(GL.uniforms[location], !!transpose, view); - } - - function _emscripten_glVertexAttrib2f(x0, x1, x2) { GLctx['vertexAttrib2f'](x0, x1, x2) } - - function _emscripten_glUniform4fv(location, count, value) { - - - var view; - if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[4*count-1]; - for (var i = 0; i < 4*count; i += 4) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); - } - GLctx.uniform4fv(GL.uniforms[location], view); - } - - function _glBufferSubData(target, offset, size, data) { - GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); - } - - function _emscripten_glGenFramebuffers(n, ids) { - for (var i = 0; i < n; ++i) { - var framebuffer = GLctx.createFramebuffer(); - if (!framebuffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((ids)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.framebuffers); - framebuffer.name = id; - GL.framebuffers[id] = framebuffer; - HEAP32[(((ids)+(i*4))>>2)]=id; - } - } - - function _glGetShaderiv(shader, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B88) { // GL_SHADER_SOURCE_LENGTH - var source = GLctx.getShaderSource(GL.shaders[shader]); - var sourceLength = (source === null || source.length == 0) ? 0 : source.length + 1; - HEAP32[((p)>>2)]=sourceLength; - } else { - HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); - } - } - - function _emscripten_glBlendEquationSeparate(x0, x1) { GLctx['blendEquationSeparate'](x0, x1) } - - function _glfwSetWindowIconifyCallback(winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowIconifyFunc = cbfun; - } - - function _emscripten_glDrawRangeElements() { - Module['printErr']('missing function: emscripten_glDrawRangeElements'); abort(-1); - } - - function _emscripten_glGenTextures(n, textures) { - for (var i = 0; i < n; i++) { - var texture = GLctx.createTexture(); - if (!texture) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. - while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.textures); - texture.name = id; - GL.textures[id] = texture; - HEAP32[(((textures)+(i*4))>>2)]=id; - } - } - - function _emscripten_glVertexAttrib2fv(index, v) { - - GLctx.vertexAttrib2f(index, HEAPF32[v>>2], HEAPF32[v+4>>2]); - } - - function _emscripten_glGetActiveUniform(program, index, bufSize, length, size, type, name) { - program = GL.programs[program]; - var info = GLctx.getActiveUniform(program, index); - if (!info) return; // If an error occurs, nothing will be written to length, size, type and name. - - if (bufSize > 0 && name) { - var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - - if (size) HEAP32[((size)>>2)]=info.size; - if (type) HEAP32[((type)>>2)]=info.type; - } - - - - function _emscripten_glDeleteObjectARB() { - Module['printErr']('missing function: emscripten_glDeleteObjectARB'); abort(-1); - } - - function _emscripten_set_touchmove_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 24, "touchmove"); - return 0; - } - - function _emscripten_glUniform1f(location, v0) { - GLctx.uniform1f(GL.uniforms[location], v0); - } - - function _emscripten_glVertexAttribPointer(index, size, type, normalized, stride, ptr) { - GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); - } - - function _glShaderSource(shader, count, string, length) { - var source = GL.getSource(shader, count, string, length); - - - GLctx.shaderSource(GL.shaders[shader], source); - } - - function _emscripten_glDrawArrays(mode, first, count) { - - GLctx.drawArrays(mode, first, count); - - } - - function _emscripten_glGenBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var buffer = GLctx.createBuffer(); - if (!buffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.buffers); - buffer.name = id; - GL.buffers[id] = buffer; - HEAP32[(((buffers)+(i*4))>>2)]=id; - } - } - - function _emscripten_glClearDepth(x0) { GLctx['clearDepth'](x0) } - - function _emscripten_set_keypress_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerKeyEventCallback(target, userData, useCapture, callbackfunc, 1, "keypress"); - return 0; - } - - function _glfwSetCharCallback(winid, cbfun) { - GLFW.setCharCallback(winid, cbfun); - } - - function _emscripten_glGetUniformLocation(program, name) { - name = Pointer_stringify(name); - - var arrayOffset = 0; - // If user passed an array accessor "[index]", parse the array index off the accessor. - if (name.indexOf(']', name.length-1) !== -1) { - var ls = name.lastIndexOf('['); - var arrayIndex = name.slice(ls+1, -1); - if (arrayIndex.length > 0) { - arrayOffset = parseInt(arrayIndex); - if (arrayOffset < 0) { - return -1; - } - } - name = name.slice(0, ls); - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - return -1; - } - var utable = ptable.uniforms; - var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] - if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. - return uniformInfo[1]+arrayOffset; - } else { - return -1; - } - } - - function _glActiveTexture(x0) { GLctx['activeTexture'](x0) } - - function _glBindBuffer(target, buffer) { - var bufferObj = buffer ? GL.buffers[buffer] : null; - - - GLctx.bindBuffer(target, bufferObj); - } - - function _emscripten_glVertexAttrib4fv(index, v) { - - GLctx.vertexAttrib4f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2], HEAPF32[v+12>>2]); - } - - function _emscripten_glScissor(x0, x1, x2, x3) { GLctx['scissor'](x0, x1, x2, x3) } - - function _glfwSetCursorEnterCallback(winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.cursorEnterFunc = cbfun; - } - - - - function _glBufferData(target, size, data, usage) { - if (!data) { - GLctx.bufferData(target, size, usage); - } else { - GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); - } - } - - function _emscripten_glIsShader(shader) { - var s = GL.shaders[shader]; - if (!s) return 0; - return GLctx.isShader(s); - } - - function _emscripten_glDrawBuffers(n, bufs) { - - var bufArray = GL.tempFixedLengthArray[n]; - for (var i = 0; i < n; i++) { - bufArray[i] = HEAP32[(((bufs)+(i*4))>>2)]; - } - - GLctx['drawBuffers'](bufArray); - } - - function _glGetFloatv(name_, p) { - emscriptenWebGLGet(name_, p, 'Float'); - } - - function _emscripten_glBindFramebuffer(target, framebuffer) { - GLctx.bindFramebuffer(target, framebuffer ? GL.framebuffers[framebuffer] : null); - } - - function _emscripten_glBlendEquation(x0) { GLctx['blendEquation'](x0) } - - function _emscripten_glBufferSubData(target, offset, size, data) { - GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); - } - - function _emscripten_glBufferData(target, size, data, usage) { - if (!data) { - GLctx.bufferData(target, size, usage); - } else { - GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); - } - } - - - function ___setErrNo(value) { - if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; - else Module.printErr('failed to set errno from JS'); - return value; - } - - - - function _emscripten_glGetShaderSource(shader, bufSize, length, source) { - var result = GLctx.getShaderSource(GL.shaders[shader]); - if (!result) return; // If an error occurs, nothing will be written to length or source. - if (bufSize > 0 && source) { - var numBytesWrittenExclNull = stringToUTF8(result, source, bufSize); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - - - function _glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } - - function _glfwSetKeyCallback(winid, cbfun) { - GLFW.setKeyCallback(winid, cbfun); - } - - function _emscripten_set_gamepadconnected_callback(userData, useCapture, callbackfunc) { - if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; - JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 26, "gamepadconnected"); - return 0; - } - - function _emscripten_glGetFloatv(name_, p) { - emscriptenWebGLGet(name_, p, 'Float'); - } - - function _glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { - - var pixelData = null; - if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); - GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); - } - - function _glGetProgramInfoLog(program, maxLength, length, infoLog) { - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _emscripten_glVertexAttribDivisor(index, divisor) { - GLctx['vertexAttribDivisor'](index, divisor); - } - - function _emscripten_glDrawElementsInstanced(mode, count, type, indices, primcount) { - GLctx['drawElementsInstanced'](mode, count, type, indices, primcount); - } - - function _emscripten_glDrawElements(mode, count, type, indices) { - - GLctx.drawElements(mode, count, type, indices); - - } - - function _glDeleteBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((buffers)+(i*4))>>2)]; - var buffer = GL.buffers[id]; - - // From spec: "glDeleteBuffers silently ignores 0's and names that do not - // correspond to existing buffer objects." - if (!buffer) continue; - - GLctx.deleteBuffer(buffer); - buffer.name = 0; - GL.buffers[id] = null; - - if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; - if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; - } - } - - function _emscripten_glCreateProgram() { - var id = GL.getNewId(GL.programs); - var program = GLctx.createProgram(); - program.name = id; - GL.programs[id] = program; - return id; - } - - function _emscripten_glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { - GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); - } - - function _emscripten_glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } - - function _emscripten_glBindVertexArray(vao) { - GLctx['bindVertexArray'](GL.vaos[vao]); - } - - function _emscripten_glLoadMatrixf() { - Module['printErr']('missing function: emscripten_glLoadMatrixf'); abort(-1); - } - - function _glDeleteShader(id) { - if (!id) return; - var shader = GL.shaders[id]; - if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteShader(shader); - GL.shaders[id] = null; - } - - function _emscripten_glGetProgramiv(program, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - if (program >= GL.counter) { - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - return; - } - - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { - HEAP32[((p)>>2)]=ptable.maxUniformLength; - } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { - if (ptable.maxAttributeLength == -1) { - var program = GL.programs[program]; - var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); - ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. - for (var i = 0; i < numAttribs; ++i) { - var activeAttrib = GLctx.getActiveAttrib(program, i); - ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxAttributeLength; - } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { - if (ptable.maxUniformBlockNameLength == -1) { - var program = GL.programs[program]; - var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); - ptable.maxUniformBlockNameLength = 0; - for (var i = 0; i < numBlocks; ++i) { - var activeBlockName = GLctx.getActiveUniformBlockName(program, i); - ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; - } else { - HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); - } - } - - function _emscripten_glGetProgramInfoLog(program, maxLength, length, infoLog) { - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _emscripten_glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { - - var pixelData = null; - if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); - GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); - } - - function _glPixelStorei(pname, param) { - if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { - GL.packAlignment = param; - } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { - GL.unpackAlignment = param; - } - GLctx.pixelStorei(pname, param); - } - - function ___unlock() {} - - function _emscripten_glColorPointer() { - Module['printErr']('missing function: emscripten_glColorPointer'); abort(-1); - } - - function _glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } - - function _glfwDestroyWindow(winid) { - return GLFW.destroyWindow(winid); - } - - function _emscripten_glFlush() { GLctx['flush']() } - - function _glfwSetErrorCallback(cbfun) { - GLFW.errorFunc = cbfun; - } - - function _emscripten_glCreateShader(shaderType) { - var id = GL.getNewId(GL.shaders); - GL.shaders[id] = GLctx.createShader(shaderType); - return id; - } - - function _glUniformMatrix4fv(location, count, transpose, value) { - - - var view; - if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[16*count-1]; - for (var i = 0; i < 16*count; i += 16) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; - view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; - view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; - view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; - view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; - view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; - view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; - view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; - view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; - view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; - view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; - view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); - } - GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); - } - - function _emscripten_glValidateProgram(program) { - GLctx.validateProgram(GL.programs[program]); - } - - function _emscripten_set_click_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerMouseEventCallback(target, userData, useCapture, callbackfunc, 4, "click"); - return 0; - } - - function _glFrontFace(x0) { GLctx['frontFace'](x0) } - - function _emscripten_glColorMask(red, green, blue, alpha) { - GLctx.colorMask(!!red, !!green, !!blue, !!alpha); - } - - function _emscripten_glPixelStorei(pname, param) { - if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { - GL.packAlignment = param; - } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { - GL.unpackAlignment = param; - } - GLctx.pixelStorei(pname, param); - } - - function _emscripten_glDeleteTextures(n, textures) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((textures)+(i*4))>>2)]; - var texture = GL.textures[id]; - if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". - GLctx.deleteTexture(texture); - texture.name = 0; - GL.textures[id] = null; - } - } - - function _emscripten_glGenVertexArrays(n, arrays) { - - for (var i = 0; i < n; i++) { - var vao = GLctx['createVertexArray'](); - if (!vao) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((arrays)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.vaos); - vao.name = id; - GL.vaos[id] = vao; - HEAP32[(((arrays)+(i*4))>>2)]=id; - } - } - - function _time(ptr) { - var ret = (Date.now()/1000)|0; - if (ptr) { - HEAP32[((ptr)>>2)]=ret; - } - return ret; - } - - function _emscripten_glGetBooleanv(name_, p) { - emscriptenWebGLGet(name_, p, 'Boolean'); - } - - function _emscripten_glCompileShader(shader) { - GLctx.compileShader(GL.shaders[shader]); - } -var GLctx; GL.init(); -if (ENVIRONMENT_IS_NODE) { - _emscripten_get_now = function _emscripten_get_now_actual() { - var t = process['hrtime'](); - return t[0] * 1e3 + t[1] / 1e6; - }; - } else if (typeof dateNow !== 'undefined') { - _emscripten_get_now = dateNow; - } else if (typeof self === 'object' && self['performance'] && typeof self['performance']['now'] === 'function') { - _emscripten_get_now = function() { return self['performance']['now'](); }; - } else if (typeof performance === 'object' && typeof performance['now'] === 'function') { - _emscripten_get_now = function() { return performance['now'](); }; - } else { - _emscripten_get_now = Date.now; - }; -Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."); Module["requestFullScreen"] = Module["requestFullscreen"]; Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice) }; - Module["requestFullscreen"] = function Module_requestFullscreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice) }; - Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) }; - Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) }; - Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() }; - Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() }; - Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() } - Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) }; -JSEvents.staticInit();; -/* flush anything remaining in the buffer during shutdown */ __ATEXIT__.push(function() { var fflush = Module["_fflush"]; if (fflush) fflush(0); var printChar = ___syscall146.printChar; if (!printChar) return; var buffers = ___syscall146.buffers; if (buffers[1].length) printChar(1, 10); if (buffers[2].length) printChar(2, 10); });; -DYNAMICTOP_PTR = allocate(1, "i32", ALLOC_STATIC); - -STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); - -STACK_MAX = STACK_BASE + TOTAL_STACK; - -DYNAMIC_BASE = Runtime.alignMemory(STACK_MAX); - -HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; - -staticSealed = true; // seal the static portion of memory - -assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); - - -function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vd(x) { Module["printErr"]("Invalid function pointer called with signature 'vd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vid(x) { Module["printErr"]("Invalid function pointer called with signature 'vid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viddd(x) { Module["printErr"]("Invalid function pointer called with signature 'viddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vidd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vidddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdi(x) { Module["printErr"]("Invalid function pointer called with signature 'vdi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdddddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viid(x) { Module["printErr"]("Invalid function pointer called with signature 'viid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function invoke_viiiii(index,a1,a2,a3,a4,a5) { - try { - Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vd(index,a1) { - try { - Module["dynCall_vd"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vid(index,a1,a2) { - try { - Module["dynCall_vid"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vi(index,a1) { - try { - Module["dynCall_vi"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vii(index,a1,a2) { - try { - Module["dynCall_vii"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_ii(index,a1) { - try { - return Module["dynCall_ii"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viddd(index,a1,a2,a3,a4) { - try { - Module["dynCall_viddd"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vidd(index,a1,a2,a3) { - try { - Module["dynCall_vidd"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_iiii(index,a1,a2,a3) { - try { - return Module["dynCall_iiii"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { - try { - Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { - try { - Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viii(index,a1,a2,a3) { - try { - Module["dynCall_viii"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vidddd(index,a1,a2,a3,a4,a5) { - try { - Module["dynCall_vidddd"](index,a1,a2,a3,a4,a5); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdi(index,a1,a2) { - try { - Module["dynCall_vdi"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { - try { - Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { - try { - Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_iii(index,a1,a2) { - try { - return Module["dynCall_iii"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_i(index) { - try { - return Module["dynCall_i"](index); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdddddd(index,a1,a2,a3,a4,a5,a6) { - try { - Module["dynCall_vdddddd"](index,a1,a2,a3,a4,a5,a6); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdddd(index,a1,a2,a3,a4) { - try { - Module["dynCall_vdddd"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdd(index,a1,a2) { - try { - Module["dynCall_vdd"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_v(index) { - try { - Module["dynCall_v"](index); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viid(index,a1,a2,a3) { - try { - Module["dynCall_viid"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiii(index,a1,a2,a3,a4) { - try { - Module["dynCall_viiii"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; - -Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vd": nullFunc_vd, "nullFunc_vid": nullFunc_vid, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viddd": nullFunc_viddd, "nullFunc_vidd": nullFunc_vidd, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiiiiii": nullFunc_viiiiiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_viii": nullFunc_viii, "nullFunc_vidddd": nullFunc_vidddd, "nullFunc_vdi": nullFunc_vdi, "nullFunc_viiiiiii": nullFunc_viiiiiii, "nullFunc_viiiiiiiii": nullFunc_viiiiiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_i": nullFunc_i, "nullFunc_vdddddd": nullFunc_vdddddd, "nullFunc_vdddd": nullFunc_vdddd, "nullFunc_vdd": nullFunc_vdd, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_viiii": nullFunc_viiii, "invoke_viiiii": invoke_viiiii, "invoke_vd": invoke_vd, "invoke_vid": invoke_vid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viddd": invoke_viddd, "invoke_vidd": invoke_vidd, "invoke_iiii": invoke_iiii, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viii": invoke_viii, "invoke_vidddd": invoke_vidddd, "invoke_vdi": invoke_vdi, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiii": invoke_viiiiiiiii, "invoke_iii": invoke_iii, "invoke_i": invoke_i, "invoke_vdddddd": invoke_vdddddd, "invoke_vdddd": invoke_vdddd, "invoke_vdd": invoke_vdd, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_viiii": invoke_viiii, "_emscripten_glGetTexParameterfv": _emscripten_glGetTexParameterfv, "_glUseProgram": _glUseProgram, "_emscripten_glShaderSource": _emscripten_glShaderSource, "_glfwCreateWindow": _glfwCreateWindow, "_emscripten_glReleaseShaderCompiler": _emscripten_glReleaseShaderCompiler, "_emscripten_glBlendFuncSeparate": _emscripten_glBlendFuncSeparate, "_emscripten_glVertexAttribPointer": _emscripten_glVertexAttribPointer, "_emscripten_glGetIntegerv": _emscripten_glGetIntegerv, "_emscripten_glCullFace": _emscripten_glCullFace, "_emscripten_glIsProgram": _emscripten_glIsProgram, "_emscripten_glStencilMaskSeparate": _emscripten_glStencilMaskSeparate, "_emscripten_glViewport": _emscripten_glViewport, "_emscripten_glFrontFace": _emscripten_glFrontFace, "_glDeleteProgram": _glDeleteProgram, "_emscripten_glUniform3fv": _emscripten_glUniform3fv, "_emscripten_glPolygonOffset": _emscripten_glPolygonOffset, "_emscripten_glUseProgram": _emscripten_glUseProgram, "_emscripten_glBlendColor": _emscripten_glBlendColor, "_glBindBuffer": _glBindBuffer, "_emscripten_glDepthFunc": _emscripten_glDepthFunc, "_glGetShaderInfoLog": _glGetShaderInfoLog, "_emscripten_set_fullscreenchange_callback": _emscripten_set_fullscreenchange_callback, "_emscripten_set_touchmove_callback": _emscripten_set_touchmove_callback, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_glDisable": _glDisable, "_glBlendFunc": _glBlendFunc, "_emscripten_glDisableVertexAttribArray": _emscripten_glDisableVertexAttribArray, "_glGetAttribLocation": _glGetAttribLocation, "_glDisableVertexAttribArray": _glDisableVertexAttribArray, "_glCreateShader": _glCreateShader, "_emscripten_glReadPixels": _emscripten_glReadPixels, "_emscripten_glSampleCoverage": _emscripten_glSampleCoverage, "_emscripten_glVertexPointer": _emscripten_glVertexPointer, "_emscripten_set_touchstart_callback": _emscripten_set_touchstart_callback, "emscriptenWebGLComputeImageSize": emscriptenWebGLComputeImageSize, "_emscripten_glGetBooleanv": _emscripten_glGetBooleanv, "_emscripten_glGetShaderSource": _emscripten_glGetShaderSource, "_glUniform4f": _glUniform4f, "_llvm_stacksave": _llvm_stacksave, "_emscripten_glUniform1i": _emscripten_glUniform1i, "_emscripten_glStencilFuncSeparate": _emscripten_glStencilFuncSeparate, "_emscripten_glLoadMatrixf": _emscripten_glLoadMatrixf, "_emscripten_glGenBuffers": _emscripten_glGenBuffers, "_emscripten_glDeleteObjectARB": _emscripten_glDeleteObjectARB, "_glfwSetWindowSizeCallback": _glfwSetWindowSizeCallback, "_emscripten_glGetShaderPrecisionFormat": _emscripten_glGetShaderPrecisionFormat, "_glfwInit": _glfwInit, "_glGenBuffers": _glGenBuffers, "_glShaderSource": _glShaderSource, "_emscripten_glGetString": _emscripten_glGetString, "_emscripten_glIsFramebuffer": _emscripten_glIsFramebuffer, "_emscripten_glIsEnabled": _emscripten_glIsEnabled, "_emscripten_glScissor": _emscripten_glScissor, "_emscripten_glVertexAttrib4fv": _emscripten_glVertexAttrib4fv, "_emscripten_glFramebufferTexture2D": _emscripten_glFramebufferTexture2D, "_emscripten_glTexParameteriv": _emscripten_glTexParameteriv, "_emscripten_glBindProgramARB": _emscripten_glBindProgramARB, "_emscripten_glStencilOpSeparate": _emscripten_glStencilOpSeparate, "_emscripten_glFramebufferRenderbuffer": _emscripten_glFramebufferRenderbuffer, "___syscall140": ___syscall140, "_glfwSetErrorCallback": _glfwSetErrorCallback, "_glfwDefaultWindowHints": _glfwDefaultWindowHints, "_glfwDestroyWindow": _glfwDestroyWindow, "_emscripten_glVertexAttrib1f": _emscripten_glVertexAttrib1f, "_emscripten_glGetActiveAttrib": _emscripten_glGetActiveAttrib, "_emscripten_glAttachShader": _emscripten_glAttachShader, "_glVertexAttribPointer": _glVertexAttribPointer, "_emscripten_glUniform2i": _emscripten_glUniform2i, "_emscripten_glUniform2f": _emscripten_glUniform2f, "_emscripten_glTexParameterfv": _emscripten_glTexParameterfv, "_emscripten_glUniformMatrix2fv": _emscripten_glUniformMatrix2fv, "_glGetProgramInfoLog": _glGetProgramInfoLog, "_glfwSetScrollCallback": _glfwSetScrollCallback, "_emscripten_glTexParameterf": _emscripten_glTexParameterf, "_emscripten_glGetAttachedShaders": _emscripten_glGetAttachedShaders, "_emscripten_glGenTextures": _emscripten_glGenTextures, "_emscripten_glTexParameteri": _emscripten_glTexParameteri, "_llvm_stackrestore": _llvm_stackrestore, "_glfwMakeContextCurrent": _glfwMakeContextCurrent, "_emscripten_glClear": _emscripten_glClear, "_glDrawElements": _glDrawElements, "_glBufferSubData": _glBufferSubData, "_emscripten_glValidateProgram": _emscripten_glValidateProgram, "_emscripten_glVertexAttrib2fv": _emscripten_glVertexAttrib2fv, "_glViewport": _glViewport, "_emscripten_glUniform4iv": _emscripten_glUniform4iv, "_emscripten_glGetTexParameteriv": _emscripten_glGetTexParameteriv, "___setErrNo": ___setErrNo, "_eglGetProcAddress": _eglGetProcAddress, "_emscripten_glBindAttribLocation": _emscripten_glBindAttribLocation, "_glDeleteTextures": _glDeleteTextures, "_glDepthFunc": _glDepthFunc, "_emscripten_glClientActiveTexture": _emscripten_glClientActiveTexture, "_emscripten_glVertexAttrib2f": _emscripten_glVertexAttrib2f, "_emscripten_glFlush": _emscripten_glFlush, "_emscripten_glCheckFramebufferStatus": _emscripten_glCheckFramebufferStatus, "_emscripten_glGenerateMipmap": _emscripten_glGenerateMipmap, "_emscripten_glGetError": _emscripten_glGetError, "_emscripten_glClearDepthf": _emscripten_glClearDepthf, "_emscripten_glBufferData": _emscripten_glBufferData, "_emscripten_glUniform3i": _emscripten_glUniform3i, "_emscripten_glRotatef": _emscripten_glRotatef, "_emscripten_glDeleteShader": _emscripten_glDeleteShader, "_glEnable": _glEnable, "_glGenTextures": _glGenTextures, "_emscripten_glMatrixMode": _emscripten_glMatrixMode, "_glGetString": _glGetString, "_emscripten_glClearStencil": _emscripten_glClearStencil, "_emscripten_glGetUniformLocation": _emscripten_glGetUniformLocation, "emscriptenWebGLGet": emscriptenWebGLGet, "_emscripten_glEnableVertexAttribArray": _emscripten_glEnableVertexAttribArray, "_emscripten_glGetAttribLocation": _emscripten_glGetAttribLocation, "_emscripten_get_now": _emscripten_get_now, "_emscripten_glNormalPointer": _emscripten_glNormalPointer, "_glAttachShader": _glAttachShader, "_emscripten_glTexCoordPointer": _emscripten_glTexCoordPointer, "_emscripten_glEnable": _emscripten_glEnable, "_glCreateProgram": _glCreateProgram, "_glUniformMatrix4fv": _glUniformMatrix4fv, "_emscripten_glClearDepth": _emscripten_glClearDepth, "___lock": ___lock, "emscriptenWebGLGetTexPixelData": emscriptenWebGLGetTexPixelData, "___syscall6": ___syscall6, "_emscripten_glIsBuffer": _emscripten_glIsBuffer, "_emscripten_glVertexAttrib3f": _emscripten_glVertexAttrib3f, "_time": _time, "___syscall146": ___syscall146, "_glfwSetMouseButtonCallback": _glfwSetMouseButtonCallback, "_emscripten_glBlendEquationSeparate": _emscripten_glBlendEquationSeparate, "_exit": _exit, "_emscripten_glEnableClientState": _emscripten_glEnableClientState, "_emscripten_glUniform4i": _emscripten_glUniform4i, "_emscripten_glDrawRangeElements": _emscripten_glDrawRangeElements, "_glCullFace": _glCullFace, "_emscripten_glGetPointerv": _emscripten_glGetPointerv, "_emscripten_set_keypress_callback": _emscripten_set_keypress_callback, "__emscripten_sample_gamepad_data": __emscripten_sample_gamepad_data, "_emscripten_get_gamepad_status": _emscripten_get_gamepad_status, "_emscripten_glUniform4f": _emscripten_glUniform4f, "_emscripten_glUniform2fv": _emscripten_glUniform2fv, "_glfwGetVideoModes": _glfwGetVideoModes, "_emscripten_set_click_callback": _emscripten_set_click_callback, "_emscripten_glFinish": _emscripten_glFinish, "_emscripten_glShaderBinary": _emscripten_glShaderBinary, "_emscripten_glDrawElements": _emscripten_glDrawElements, "_emscripten_glBlendFunc": _emscripten_glBlendFunc, "_emscripten_get_num_gamepads": _emscripten_get_num_gamepads, "_glCompressedTexImage2D": _glCompressedTexImage2D, "_emscripten_glUniform1iv": _emscripten_glUniform1iv, "_emscripten_glGetVertexAttribPointerv": _emscripten_glGetVertexAttribPointerv, "_glClearDepthf": _glClearDepthf, "_emscripten_glCompressedTexSubImage2D": _emscripten_glCompressedTexSubImage2D, "emscriptenWebGLGetUniform": emscriptenWebGLGetUniform, "_emscripten_glGenRenderbuffers": _emscripten_glGenRenderbuffers, "_emscripten_glDeleteVertexArrays": _emscripten_glDeleteVertexArrays, "_glfwSetWindowShouldClose": _glfwSetWindowShouldClose, "_emscripten_glUniform1fv": _emscripten_glUniform1fv, "_emscripten_glGetActiveUniform": _emscripten_glGetActiveUniform, "_glBindTexture": _glBindTexture, "_emscripten_glUniform3iv": _emscripten_glUniform3iv, "_emscripten_glUniform2iv": _emscripten_glUniform2iv, "_emscripten_glHint": _emscripten_glHint, "_glfwSetCharCallback": _glfwSetCharCallback, "emscriptenWebGLGetVertexAttrib": emscriptenWebGLGetVertexAttrib, "_glGetFloatv": _glGetFloatv, "_emscripten_glDeleteProgram": _emscripten_glDeleteProgram, "_emscripten_glDeleteRenderbuffers": _emscripten_glDeleteRenderbuffers, "_emscripten_glDrawElementsInstanced": _emscripten_glDrawElementsInstanced, "_emscripten_glVertexAttrib4f": _emscripten_glVertexAttrib4f, "_glDrawArrays": _glDrawArrays, "_emscripten_glTexSubImage2D": _emscripten_glTexSubImage2D, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_glPixelStorei": _emscripten_glPixelStorei, "_glCompileShader": _glCompileShader, "_emscripten_get_pointerlock_status": _emscripten_get_pointerlock_status, "_emscripten_glUniformMatrix3fv": _emscripten_glUniformMatrix3fv, "_emscripten_glColorPointer": _emscripten_glColorPointer, "_emscripten_glGetBufferParameteriv": _emscripten_glGetBufferParameteriv, "_glActiveTexture": _glActiveTexture, "_emscripten_request_pointerlock": _emscripten_request_pointerlock, "_emscripten_set_gamepaddisconnected_callback": _emscripten_set_gamepaddisconnected_callback, "_emscripten_asm_const_iii": _emscripten_asm_const_iii, "_emscripten_glDepthMask": _emscripten_glDepthMask, "_glfwSetWindowIconifyCallback": _glfwSetWindowIconifyCallback, "_emscripten_glDrawBuffers": _emscripten_glDrawBuffers, "_glfwTerminate": _glfwTerminate, "_glFrontFace": _glFrontFace, "_emscripten_glGetObjectParameterivARB": _emscripten_glGetObjectParameterivARB, "_emscripten_exit_pointerlock": _emscripten_exit_pointerlock, "_glfwSwapInterval": _glfwSwapInterval, "_glUniform1i": _glUniform1i, "_glEnableVertexAttribArray": _glEnableVertexAttribArray, "_emscripten_glStencilFunc": _emscripten_glStencilFunc, "_abort": _abort, "_emscripten_glGetUniformiv": _emscripten_glGetUniformiv, "_glDeleteBuffers": _glDeleteBuffers, "_glBufferData": _glBufferData, "_glTexImage2D": _glTexImage2D, "_emscripten_glGetShaderiv": _emscripten_glGetShaderiv, "_glfwSetKeyCallback": _glfwSetKeyCallback, "_emscripten_glGenFramebuffers": _emscripten_glGenFramebuffers, "_emscripten_glUniformMatrix4fv": _emscripten_glUniformMatrix4fv, "_emscripten_glLoadIdentity": _emscripten_glLoadIdentity, "_glDeleteShader": _glDeleteShader, "_emscripten_glUniform1f": _emscripten_glUniform1f, "_glGetProgramiv": _glGetProgramiv, "_emscripten_glBindFramebuffer": _emscripten_glBindFramebuffer, "_emscripten_glIsRenderbuffer": _emscripten_glIsRenderbuffer, "_glfwGetTime": _glfwGetTime, "_emscripten_glRenderbufferStorage": _emscripten_glRenderbufferStorage, "_emscripten_set_gamepadconnected_callback": _emscripten_set_gamepadconnected_callback, "_emscripten_glGetVertexAttribiv": _emscripten_glGetVertexAttribiv, "_emscripten_glBindVertexArray": _emscripten_glBindVertexArray, "_emscripten_glDrawArraysInstanced": _emscripten_glDrawArraysInstanced, "_emscripten_set_touchcancel_callback": _emscripten_set_touchcancel_callback, "_emscripten_glCreateShader": _emscripten_glCreateShader, "_emscripten_glStencilMask": _emscripten_glStencilMask, "_emscripten_glDeleteTextures": _emscripten_glDeleteTextures, "_emscripten_glBindRenderbuffer": _emscripten_glBindRenderbuffer, "_glfwGetPrimaryMonitor": _glfwGetPrimaryMonitor, "_glLinkProgram": _glLinkProgram, "_emscripten_glVertexAttribDivisor": _emscripten_glVertexAttribDivisor, "_emscripten_set_touchend_callback": _emscripten_set_touchend_callback, "_emscripten_glGetUniformfv": _emscripten_glGetUniformfv, "_emscripten_glGetVertexAttribfv": _emscripten_glGetVertexAttribfv, "_emscripten_glGetRenderbufferParameteriv": _emscripten_glGetRenderbufferParameteriv, "_emscripten_glDeleteFramebuffers": _emscripten_glDeleteFramebuffers, "_glGetShaderiv": _glGetShaderiv, "_emscripten_glVertexAttrib3fv": _emscripten_glVertexAttrib3fv, "_glGetUniformLocation": _glGetUniformLocation, "_emscripten_glGetInfoLogARB": _emscripten_glGetInfoLogARB, "_emscripten_glCompileShader": _emscripten_glCompileShader, "_glClear": _glClear, "_emscripten_glFrustum": _emscripten_glFrustum, "_emscripten_glDisable": _emscripten_glDisable, "_emscripten_glDepthRangef": _emscripten_glDepthRangef, "__exit": __exit, "_emscripten_glLineWidth": _emscripten_glLineWidth, "_emscripten_glUniform3f": _emscripten_glUniform3f, "_emscripten_glGetShaderInfoLog": _emscripten_glGetShaderInfoLog, "_emscripten_glStencilOp": _emscripten_glStencilOp, "_glBindAttribLocation": _glBindAttribLocation, "_glPixelStorei": _glPixelStorei, "_emscripten_glColorMask": _emscripten_glColorMask, "_emscripten_glLinkProgram": _emscripten_glLinkProgram, "_emscripten_glBlendEquation": _emscripten_glBlendEquation, "_emscripten_glIsTexture": _emscripten_glIsTexture, "_emscripten_glGetProgramiv": _emscripten_glGetProgramiv, "_emscripten_glVertexAttrib1fv": _emscripten_glVertexAttrib1fv, "_emscripten_glBindTexture": _emscripten_glBindTexture, "_emscripten_glGetFramebufferAttachmentParameteriv": _emscripten_glGetFramebufferAttachmentParameteriv, "_glfwGetCursorPos": _glfwGetCursorPos, "_emscripten_glActiveTexture": _emscripten_glActiveTexture, "_emscripten_glDeleteBuffers": _emscripten_glDeleteBuffers, "___syscall54": ___syscall54, "___unlock": ___unlock, "_emscripten_glBufferSubData": _emscripten_glBufferSubData, "_glfwSwapBuffers": _glfwSwapBuffers, "_emscripten_glDepthRange": _emscripten_glDepthRange, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_emscripten_glGetProgramInfoLog": _emscripten_glGetProgramInfoLog, "_glfwWindowHint": _glfwWindowHint, "_emscripten_glIsShader": _emscripten_glIsShader, "_emscripten_glUniform4fv": _emscripten_glUniform4fv, "_emscripten_glGenVertexArrays": _emscripten_glGenVertexArrays, "_emscripten_glDrawArrays": _emscripten_glDrawArrays, "_emscripten_glCompressedTexImage2D": _emscripten_glCompressedTexImage2D, "_emscripten_glClearColor": _emscripten_glClearColor, "_emscripten_glCreateProgram": _emscripten_glCreateProgram, "_emscripten_glCopyTexSubImage2D": _emscripten_glCopyTexSubImage2D, "_glTexParameteri": _glTexParameteri, "_emscripten_glBindBuffer": _emscripten_glBindBuffer, "_emscripten_glGetFloatv": _emscripten_glGetFloatv, "_emscripten_glDetachShader": _emscripten_glDetachShader, "_glClearColor": _glClearColor, "_glfwSetCursorPosCallback": _glfwSetCursorPosCallback, "_glfwSetCursorEnterCallback": _glfwSetCursorEnterCallback, "_emscripten_glCopyTexImage2D": _emscripten_glCopyTexImage2D, "_emscripten_glTexImage2D": _emscripten_glTexImage2D, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "cttz_i8": cttz_i8 }; -// EMSCRIPTEN_START_ASM -var asm = (function(global, env, buffer) { -'use asm'; - - - var HEAP8 = new global.Int8Array(buffer); - var HEAP16 = new global.Int16Array(buffer); - var HEAP32 = new global.Int32Array(buffer); - var HEAPU8 = new global.Uint8Array(buffer); - var HEAPU16 = new global.Uint16Array(buffer); - var HEAPU32 = new global.Uint32Array(buffer); - var HEAPF32 = new global.Float32Array(buffer); - var HEAPF64 = new global.Float64Array(buffer); - - var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0; - var tempDoublePtr=env.tempDoublePtr|0; - var ABORT=env.ABORT|0; - var STACKTOP=env.STACKTOP|0; - var STACK_MAX=env.STACK_MAX|0; - var cttz_i8=env.cttz_i8|0; - - var __THREW__ = 0; - var threwValue = 0; - var setjmpId = 0; - var undef = 0; - var nan = global.NaN, inf = global.Infinity; - var tempInt = 0, tempBigInt = 0, tempBigIntS = 0, tempValue = 0, tempDouble = 0.0; - var tempRet0 = 0; - - var Math_floor=global.Math.floor; - var Math_abs=global.Math.abs; - var Math_sqrt=global.Math.sqrt; - var Math_pow=global.Math.pow; - var Math_cos=global.Math.cos; - var Math_sin=global.Math.sin; - var Math_tan=global.Math.tan; - var Math_acos=global.Math.acos; - var Math_asin=global.Math.asin; - var Math_atan=global.Math.atan; - var Math_atan2=global.Math.atan2; - var Math_exp=global.Math.exp; - var Math_log=global.Math.log; - var Math_ceil=global.Math.ceil; - var Math_imul=global.Math.imul; - var Math_min=global.Math.min; - var Math_max=global.Math.max; - var Math_clz32=global.Math.clz32; - var abort=env.abort; - var assert=env.assert; - var enlargeMemory=env.enlargeMemory; - var getTotalMemory=env.getTotalMemory; - var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory; - var abortStackOverflow=env.abortStackOverflow; - var nullFunc_viiiii=env.nullFunc_viiiii; - var nullFunc_vd=env.nullFunc_vd; - var nullFunc_vid=env.nullFunc_vid; - var nullFunc_vi=env.nullFunc_vi; - var nullFunc_vii=env.nullFunc_vii; - var nullFunc_ii=env.nullFunc_ii; - var nullFunc_viddd=env.nullFunc_viddd; - var nullFunc_vidd=env.nullFunc_vidd; - var nullFunc_iiii=env.nullFunc_iiii; - var nullFunc_viiiiiiii=env.nullFunc_viiiiiiii; - var nullFunc_viiiiii=env.nullFunc_viiiiii; - var nullFunc_viii=env.nullFunc_viii; - var nullFunc_vidddd=env.nullFunc_vidddd; - var nullFunc_vdi=env.nullFunc_vdi; - var nullFunc_viiiiiii=env.nullFunc_viiiiiii; - var nullFunc_viiiiiiiii=env.nullFunc_viiiiiiiii; - var nullFunc_iii=env.nullFunc_iii; - var nullFunc_i=env.nullFunc_i; - var nullFunc_vdddddd=env.nullFunc_vdddddd; - var nullFunc_vdddd=env.nullFunc_vdddd; - var nullFunc_vdd=env.nullFunc_vdd; - var nullFunc_v=env.nullFunc_v; - var nullFunc_viid=env.nullFunc_viid; - var nullFunc_viiii=env.nullFunc_viiii; - var invoke_viiiii=env.invoke_viiiii; - var invoke_vd=env.invoke_vd; - var invoke_vid=env.invoke_vid; - var invoke_vi=env.invoke_vi; - var invoke_vii=env.invoke_vii; - var invoke_ii=env.invoke_ii; - var invoke_viddd=env.invoke_viddd; - var invoke_vidd=env.invoke_vidd; - var invoke_iiii=env.invoke_iiii; - var invoke_viiiiiiii=env.invoke_viiiiiiii; - var invoke_viiiiii=env.invoke_viiiiii; - var invoke_viii=env.invoke_viii; - var invoke_vidddd=env.invoke_vidddd; - var invoke_vdi=env.invoke_vdi; - var invoke_viiiiiii=env.invoke_viiiiiii; - var invoke_viiiiiiiii=env.invoke_viiiiiiiii; - var invoke_iii=env.invoke_iii; - var invoke_i=env.invoke_i; - var invoke_vdddddd=env.invoke_vdddddd; - var invoke_vdddd=env.invoke_vdddd; - var invoke_vdd=env.invoke_vdd; - var invoke_v=env.invoke_v; - var invoke_viid=env.invoke_viid; - var invoke_viiii=env.invoke_viiii; - var _emscripten_glGetTexParameterfv=env._emscripten_glGetTexParameterfv; - var _glUseProgram=env._glUseProgram; - var _emscripten_glShaderSource=env._emscripten_glShaderSource; - var _glfwCreateWindow=env._glfwCreateWindow; - var _emscripten_glReleaseShaderCompiler=env._emscripten_glReleaseShaderCompiler; - var _emscripten_glBlendFuncSeparate=env._emscripten_glBlendFuncSeparate; - var _emscripten_glVertexAttribPointer=env._emscripten_glVertexAttribPointer; - var _emscripten_glGetIntegerv=env._emscripten_glGetIntegerv; - var _emscripten_glCullFace=env._emscripten_glCullFace; - var _emscripten_glIsProgram=env._emscripten_glIsProgram; - var _emscripten_glStencilMaskSeparate=env._emscripten_glStencilMaskSeparate; - var _emscripten_glViewport=env._emscripten_glViewport; - var _emscripten_glFrontFace=env._emscripten_glFrontFace; - var _glDeleteProgram=env._glDeleteProgram; - var _emscripten_glUniform3fv=env._emscripten_glUniform3fv; - var _emscripten_glPolygonOffset=env._emscripten_glPolygonOffset; - var _emscripten_glUseProgram=env._emscripten_glUseProgram; - var _emscripten_glBlendColor=env._emscripten_glBlendColor; - var _glBindBuffer=env._glBindBuffer; - var _emscripten_glDepthFunc=env._emscripten_glDepthFunc; - var _glGetShaderInfoLog=env._glGetShaderInfoLog; - var _emscripten_set_fullscreenchange_callback=env._emscripten_set_fullscreenchange_callback; - var _emscripten_set_touchmove_callback=env._emscripten_set_touchmove_callback; - var _emscripten_set_main_loop_timing=env._emscripten_set_main_loop_timing; - var _glDisable=env._glDisable; - var _glBlendFunc=env._glBlendFunc; - var _emscripten_glDisableVertexAttribArray=env._emscripten_glDisableVertexAttribArray; - var _glGetAttribLocation=env._glGetAttribLocation; - var _glDisableVertexAttribArray=env._glDisableVertexAttribArray; - var _glCreateShader=env._glCreateShader; - var _emscripten_glReadPixels=env._emscripten_glReadPixels; - var _emscripten_glSampleCoverage=env._emscripten_glSampleCoverage; - var _emscripten_glVertexPointer=env._emscripten_glVertexPointer; - var _emscripten_set_touchstart_callback=env._emscripten_set_touchstart_callback; - var emscriptenWebGLComputeImageSize=env.emscriptenWebGLComputeImageSize; - var _emscripten_glGetBooleanv=env._emscripten_glGetBooleanv; - var _emscripten_glGetShaderSource=env._emscripten_glGetShaderSource; - var _glUniform4f=env._glUniform4f; - var _llvm_stacksave=env._llvm_stacksave; - var _emscripten_glUniform1i=env._emscripten_glUniform1i; - var _emscripten_glStencilFuncSeparate=env._emscripten_glStencilFuncSeparate; - var _emscripten_glLoadMatrixf=env._emscripten_glLoadMatrixf; - var _emscripten_glGenBuffers=env._emscripten_glGenBuffers; - var _emscripten_glDeleteObjectARB=env._emscripten_glDeleteObjectARB; - var _glfwSetWindowSizeCallback=env._glfwSetWindowSizeCallback; - var _emscripten_glGetShaderPrecisionFormat=env._emscripten_glGetShaderPrecisionFormat; - var _glfwInit=env._glfwInit; - var _glGenBuffers=env._glGenBuffers; - var _glShaderSource=env._glShaderSource; - var _emscripten_glGetString=env._emscripten_glGetString; - var _emscripten_glIsFramebuffer=env._emscripten_glIsFramebuffer; - var _emscripten_glIsEnabled=env._emscripten_glIsEnabled; - var _emscripten_glScissor=env._emscripten_glScissor; - var _emscripten_glVertexAttrib4fv=env._emscripten_glVertexAttrib4fv; - var _emscripten_glFramebufferTexture2D=env._emscripten_glFramebufferTexture2D; - var _emscripten_glTexParameteriv=env._emscripten_glTexParameteriv; - var _emscripten_glBindProgramARB=env._emscripten_glBindProgramARB; - var _emscripten_glStencilOpSeparate=env._emscripten_glStencilOpSeparate; - var _emscripten_glFramebufferRenderbuffer=env._emscripten_glFramebufferRenderbuffer; - var ___syscall140=env.___syscall140; - var _glfwSetErrorCallback=env._glfwSetErrorCallback; - var _glfwDefaultWindowHints=env._glfwDefaultWindowHints; - var _glfwDestroyWindow=env._glfwDestroyWindow; - var _emscripten_glVertexAttrib1f=env._emscripten_glVertexAttrib1f; - var _emscripten_glGetActiveAttrib=env._emscripten_glGetActiveAttrib; - var _emscripten_glAttachShader=env._emscripten_glAttachShader; - var _glVertexAttribPointer=env._glVertexAttribPointer; - var _emscripten_glUniform2i=env._emscripten_glUniform2i; - var _emscripten_glUniform2f=env._emscripten_glUniform2f; - var _emscripten_glTexParameterfv=env._emscripten_glTexParameterfv; - var _emscripten_glUniformMatrix2fv=env._emscripten_glUniformMatrix2fv; - var _glGetProgramInfoLog=env._glGetProgramInfoLog; - var _glfwSetScrollCallback=env._glfwSetScrollCallback; - var _emscripten_glTexParameterf=env._emscripten_glTexParameterf; - var _emscripten_glGetAttachedShaders=env._emscripten_glGetAttachedShaders; - var _emscripten_glGenTextures=env._emscripten_glGenTextures; - var _emscripten_glTexParameteri=env._emscripten_glTexParameteri; - var _llvm_stackrestore=env._llvm_stackrestore; - var _glfwMakeContextCurrent=env._glfwMakeContextCurrent; - var _emscripten_glClear=env._emscripten_glClear; - var _glDrawElements=env._glDrawElements; - var _glBufferSubData=env._glBufferSubData; - var _emscripten_glValidateProgram=env._emscripten_glValidateProgram; - var _emscripten_glVertexAttrib2fv=env._emscripten_glVertexAttrib2fv; - var _glViewport=env._glViewport; - var _emscripten_glUniform4iv=env._emscripten_glUniform4iv; - var _emscripten_glGetTexParameteriv=env._emscripten_glGetTexParameteriv; - var ___setErrNo=env.___setErrNo; - var _eglGetProcAddress=env._eglGetProcAddress; - var _emscripten_glBindAttribLocation=env._emscripten_glBindAttribLocation; - var _glDeleteTextures=env._glDeleteTextures; - var _glDepthFunc=env._glDepthFunc; - var _emscripten_glClientActiveTexture=env._emscripten_glClientActiveTexture; - var _emscripten_glVertexAttrib2f=env._emscripten_glVertexAttrib2f; - var _emscripten_glFlush=env._emscripten_glFlush; - var _emscripten_glCheckFramebufferStatus=env._emscripten_glCheckFramebufferStatus; - var _emscripten_glGenerateMipmap=env._emscripten_glGenerateMipmap; - var _emscripten_glGetError=env._emscripten_glGetError; - var _emscripten_glClearDepthf=env._emscripten_glClearDepthf; - var _emscripten_glBufferData=env._emscripten_glBufferData; - var _emscripten_glUniform3i=env._emscripten_glUniform3i; - var _emscripten_glRotatef=env._emscripten_glRotatef; - var _emscripten_glDeleteShader=env._emscripten_glDeleteShader; - var _glEnable=env._glEnable; - var _glGenTextures=env._glGenTextures; - var _emscripten_glMatrixMode=env._emscripten_glMatrixMode; - var _glGetString=env._glGetString; - var _emscripten_glClearStencil=env._emscripten_glClearStencil; - var _emscripten_glGetUniformLocation=env._emscripten_glGetUniformLocation; - var emscriptenWebGLGet=env.emscriptenWebGLGet; - var _emscripten_glEnableVertexAttribArray=env._emscripten_glEnableVertexAttribArray; - var _emscripten_glGetAttribLocation=env._emscripten_glGetAttribLocation; - var _emscripten_get_now=env._emscripten_get_now; - var _emscripten_glNormalPointer=env._emscripten_glNormalPointer; - var _glAttachShader=env._glAttachShader; - var _emscripten_glTexCoordPointer=env._emscripten_glTexCoordPointer; - var _emscripten_glEnable=env._emscripten_glEnable; - var _glCreateProgram=env._glCreateProgram; - var _glUniformMatrix4fv=env._glUniformMatrix4fv; - var _emscripten_glClearDepth=env._emscripten_glClearDepth; - var ___lock=env.___lock; - var emscriptenWebGLGetTexPixelData=env.emscriptenWebGLGetTexPixelData; - var ___syscall6=env.___syscall6; - var _emscripten_glIsBuffer=env._emscripten_glIsBuffer; - var _emscripten_glVertexAttrib3f=env._emscripten_glVertexAttrib3f; - var _time=env._time; - var ___syscall146=env.___syscall146; - var _glfwSetMouseButtonCallback=env._glfwSetMouseButtonCallback; - var _emscripten_glBlendEquationSeparate=env._emscripten_glBlendEquationSeparate; - var _exit=env._exit; - var _emscripten_glEnableClientState=env._emscripten_glEnableClientState; - var _emscripten_glUniform4i=env._emscripten_glUniform4i; - var _emscripten_glDrawRangeElements=env._emscripten_glDrawRangeElements; - var _glCullFace=env._glCullFace; - var _emscripten_glGetPointerv=env._emscripten_glGetPointerv; - var _emscripten_set_keypress_callback=env._emscripten_set_keypress_callback; - var __emscripten_sample_gamepad_data=env.__emscripten_sample_gamepad_data; - var _emscripten_get_gamepad_status=env._emscripten_get_gamepad_status; - var _emscripten_glUniform4f=env._emscripten_glUniform4f; - var _emscripten_glUniform2fv=env._emscripten_glUniform2fv; - var _glfwGetVideoModes=env._glfwGetVideoModes; - var _emscripten_set_click_callback=env._emscripten_set_click_callback; - var _emscripten_glFinish=env._emscripten_glFinish; - var _emscripten_glShaderBinary=env._emscripten_glShaderBinary; - var _emscripten_glDrawElements=env._emscripten_glDrawElements; - var _emscripten_glBlendFunc=env._emscripten_glBlendFunc; - var _emscripten_get_num_gamepads=env._emscripten_get_num_gamepads; - var _glCompressedTexImage2D=env._glCompressedTexImage2D; - var _emscripten_glUniform1iv=env._emscripten_glUniform1iv; - var _emscripten_glGetVertexAttribPointerv=env._emscripten_glGetVertexAttribPointerv; - var _glClearDepthf=env._glClearDepthf; - var _emscripten_glCompressedTexSubImage2D=env._emscripten_glCompressedTexSubImage2D; - var emscriptenWebGLGetUniform=env.emscriptenWebGLGetUniform; - var _emscripten_glGenRenderbuffers=env._emscripten_glGenRenderbuffers; - var _emscripten_glDeleteVertexArrays=env._emscripten_glDeleteVertexArrays; - var _glfwSetWindowShouldClose=env._glfwSetWindowShouldClose; - var _emscripten_glUniform1fv=env._emscripten_glUniform1fv; - var _emscripten_glGetActiveUniform=env._emscripten_glGetActiveUniform; - var _glBindTexture=env._glBindTexture; - var _emscripten_glUniform3iv=env._emscripten_glUniform3iv; - var _emscripten_glUniform2iv=env._emscripten_glUniform2iv; - var _emscripten_glHint=env._emscripten_glHint; - var _glfwSetCharCallback=env._glfwSetCharCallback; - var emscriptenWebGLGetVertexAttrib=env.emscriptenWebGLGetVertexAttrib; - var _glGetFloatv=env._glGetFloatv; - var _emscripten_glDeleteProgram=env._emscripten_glDeleteProgram; - var _emscripten_glDeleteRenderbuffers=env._emscripten_glDeleteRenderbuffers; - var _emscripten_glDrawElementsInstanced=env._emscripten_glDrawElementsInstanced; - var _emscripten_glVertexAttrib4f=env._emscripten_glVertexAttrib4f; - var _glDrawArrays=env._glDrawArrays; - var _emscripten_glTexSubImage2D=env._emscripten_glTexSubImage2D; - var _emscripten_memcpy_big=env._emscripten_memcpy_big; - var _emscripten_glPixelStorei=env._emscripten_glPixelStorei; - var _glCompileShader=env._glCompileShader; - var _emscripten_get_pointerlock_status=env._emscripten_get_pointerlock_status; - var _emscripten_glUniformMatrix3fv=env._emscripten_glUniformMatrix3fv; - var _emscripten_glColorPointer=env._emscripten_glColorPointer; - var _emscripten_glGetBufferParameteriv=env._emscripten_glGetBufferParameteriv; - var _glActiveTexture=env._glActiveTexture; - var _emscripten_request_pointerlock=env._emscripten_request_pointerlock; - var _emscripten_set_gamepaddisconnected_callback=env._emscripten_set_gamepaddisconnected_callback; - var _emscripten_asm_const_iii=env._emscripten_asm_const_iii; - var _emscripten_glDepthMask=env._emscripten_glDepthMask; - var _glfwSetWindowIconifyCallback=env._glfwSetWindowIconifyCallback; - var _emscripten_glDrawBuffers=env._emscripten_glDrawBuffers; - var _glfwTerminate=env._glfwTerminate; - var _glFrontFace=env._glFrontFace; - var _emscripten_glGetObjectParameterivARB=env._emscripten_glGetObjectParameterivARB; - var _emscripten_exit_pointerlock=env._emscripten_exit_pointerlock; - var _glfwSwapInterval=env._glfwSwapInterval; - var _glUniform1i=env._glUniform1i; - var _glEnableVertexAttribArray=env._glEnableVertexAttribArray; - var _emscripten_glStencilFunc=env._emscripten_glStencilFunc; - var _abort=env._abort; - var _emscripten_glGetUniformiv=env._emscripten_glGetUniformiv; - var _glDeleteBuffers=env._glDeleteBuffers; - var _glBufferData=env._glBufferData; - var _glTexImage2D=env._glTexImage2D; - var _emscripten_glGetShaderiv=env._emscripten_glGetShaderiv; - var _glfwSetKeyCallback=env._glfwSetKeyCallback; - var _emscripten_glGenFramebuffers=env._emscripten_glGenFramebuffers; - var _emscripten_glUniformMatrix4fv=env._emscripten_glUniformMatrix4fv; - var _emscripten_glLoadIdentity=env._emscripten_glLoadIdentity; - var _glDeleteShader=env._glDeleteShader; - var _emscripten_glUniform1f=env._emscripten_glUniform1f; - var _glGetProgramiv=env._glGetProgramiv; - var _emscripten_glBindFramebuffer=env._emscripten_glBindFramebuffer; - var _emscripten_glIsRenderbuffer=env._emscripten_glIsRenderbuffer; - var _glfwGetTime=env._glfwGetTime; - var _emscripten_glRenderbufferStorage=env._emscripten_glRenderbufferStorage; - var _emscripten_set_gamepadconnected_callback=env._emscripten_set_gamepadconnected_callback; - var _emscripten_glGetVertexAttribiv=env._emscripten_glGetVertexAttribiv; - var _emscripten_glBindVertexArray=env._emscripten_glBindVertexArray; - var _emscripten_glDrawArraysInstanced=env._emscripten_glDrawArraysInstanced; - var _emscripten_set_touchcancel_callback=env._emscripten_set_touchcancel_callback; - var _emscripten_glCreateShader=env._emscripten_glCreateShader; - var _emscripten_glStencilMask=env._emscripten_glStencilMask; - var _emscripten_glDeleteTextures=env._emscripten_glDeleteTextures; - var _emscripten_glBindRenderbuffer=env._emscripten_glBindRenderbuffer; - var _glfwGetPrimaryMonitor=env._glfwGetPrimaryMonitor; - var _glLinkProgram=env._glLinkProgram; - var _emscripten_glVertexAttribDivisor=env._emscripten_glVertexAttribDivisor; - var _emscripten_set_touchend_callback=env._emscripten_set_touchend_callback; - var _emscripten_glGetUniformfv=env._emscripten_glGetUniformfv; - var _emscripten_glGetVertexAttribfv=env._emscripten_glGetVertexAttribfv; - var _emscripten_glGetRenderbufferParameteriv=env._emscripten_glGetRenderbufferParameteriv; - var _emscripten_glDeleteFramebuffers=env._emscripten_glDeleteFramebuffers; - var _glGetShaderiv=env._glGetShaderiv; - var _emscripten_glVertexAttrib3fv=env._emscripten_glVertexAttrib3fv; - var _glGetUniformLocation=env._glGetUniformLocation; - var _emscripten_glGetInfoLogARB=env._emscripten_glGetInfoLogARB; - var _emscripten_glCompileShader=env._emscripten_glCompileShader; - var _glClear=env._glClear; - var _emscripten_glFrustum=env._emscripten_glFrustum; - var _emscripten_glDisable=env._emscripten_glDisable; - var _emscripten_glDepthRangef=env._emscripten_glDepthRangef; - var __exit=env.__exit; - var _emscripten_glLineWidth=env._emscripten_glLineWidth; - var _emscripten_glUniform3f=env._emscripten_glUniform3f; - var _emscripten_glGetShaderInfoLog=env._emscripten_glGetShaderInfoLog; - var _emscripten_glStencilOp=env._emscripten_glStencilOp; - var _glBindAttribLocation=env._glBindAttribLocation; - var _glPixelStorei=env._glPixelStorei; - var _emscripten_glColorMask=env._emscripten_glColorMask; - var _emscripten_glLinkProgram=env._emscripten_glLinkProgram; - var _emscripten_glBlendEquation=env._emscripten_glBlendEquation; - var _emscripten_glIsTexture=env._emscripten_glIsTexture; - var _emscripten_glGetProgramiv=env._emscripten_glGetProgramiv; - var _emscripten_glVertexAttrib1fv=env._emscripten_glVertexAttrib1fv; - var _emscripten_glBindTexture=env._emscripten_glBindTexture; - var _emscripten_glGetFramebufferAttachmentParameteriv=env._emscripten_glGetFramebufferAttachmentParameteriv; - var _glfwGetCursorPos=env._glfwGetCursorPos; - var _emscripten_glActiveTexture=env._emscripten_glActiveTexture; - var _emscripten_glDeleteBuffers=env._emscripten_glDeleteBuffers; - var ___syscall54=env.___syscall54; - var ___unlock=env.___unlock; - var _emscripten_glBufferSubData=env._emscripten_glBufferSubData; - var _glfwSwapBuffers=env._glfwSwapBuffers; - var _emscripten_glDepthRange=env._emscripten_glDepthRange; - var _emscripten_set_main_loop=env._emscripten_set_main_loop; - var _emscripten_glGetProgramInfoLog=env._emscripten_glGetProgramInfoLog; - var _glfwWindowHint=env._glfwWindowHint; - var _emscripten_glIsShader=env._emscripten_glIsShader; - var _emscripten_glUniform4fv=env._emscripten_glUniform4fv; - var _emscripten_glGenVertexArrays=env._emscripten_glGenVertexArrays; - var _emscripten_glDrawArrays=env._emscripten_glDrawArrays; - var _emscripten_glCompressedTexImage2D=env._emscripten_glCompressedTexImage2D; - var _emscripten_glClearColor=env._emscripten_glClearColor; - var _emscripten_glCreateProgram=env._emscripten_glCreateProgram; - var _emscripten_glCopyTexSubImage2D=env._emscripten_glCopyTexSubImage2D; - var _glTexParameteri=env._glTexParameteri; - var _emscripten_glBindBuffer=env._emscripten_glBindBuffer; - var _emscripten_glGetFloatv=env._emscripten_glGetFloatv; - var _emscripten_glDetachShader=env._emscripten_glDetachShader; - var _glClearColor=env._glClearColor; - var _glfwSetCursorPosCallback=env._glfwSetCursorPosCallback; - var _glfwSetCursorEnterCallback=env._glfwSetCursorEnterCallback; - var _emscripten_glCopyTexImage2D=env._emscripten_glCopyTexImage2D; - var _emscripten_glTexImage2D=env._emscripten_glTexImage2D; - var tempFloat = 0.0; - -// EMSCRIPTEN_START_FUNCS - -function stackAlloc(size) { - size = size|0; - var ret = 0; - ret = STACKTOP; - STACKTOP = (STACKTOP + size)|0; - STACKTOP = (STACKTOP + 15)&-16; - if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0); - - return ret|0; -} -function stackSave() { - return STACKTOP|0; -} -function stackRestore(top) { - top = top|0; - STACKTOP = top; -} -function establishStackSpace(stackBase, stackMax) { - stackBase = stackBase|0; - stackMax = stackMax|0; - STACKTOP = stackBase; - STACK_MAX = stackMax; -} - -function setThrew(threw, value) { - threw = threw|0; - value = value|0; - if ((__THREW__|0) == 0) { - __THREW__ = threw; - threwValue = value; - } -} - -function setTempRet0(value) { - value = value|0; - tempRet0 = value; -} -function getTempRet0() { - return tempRet0|0; -} - -function _main() { - var $$014 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $tmp11 = 0, $tmp13 = 0, dest = 0, label = 0, sp = 0, src = 0; - var stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); - $0 = sp; - $1 = HEAP32[2]|0; - $2 = HEAP32[3]|0; - _InitWindow($1,$2,3356); - dest=$0; src=3418; stop=dest+84|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); - HEAP32[3513] = $0; - $$014 = 0; - while(1) { - $3 = (($$014|0) % 7)&-1; - $tmp11 = ($3*110)|0; - $4 = (($tmp11) + 20)|0; - $5 = (14056 + ($$014<<4)|0); - HEAP32[$5>>2] = $4; - $6 = (($$014|0) / 7)&-1; - $tmp13 = ($6*110)|0; - $7 = (($tmp13) + 40)|0; - $8 = (((14056 + ($$014<<4)|0)) + 4|0); - HEAP32[$8>>2] = $7; - $9 = (((14056 + ($$014<<4)|0)) + 8|0); - HEAP32[$9>>2] = 100; - $10 = (((14056 + ($$014<<4)|0)) + 12|0); - HEAP32[$10>>2] = 100; - $11 = (($$014) + 1)|0; - $exitcond = ($11|0)==(21); - if ($exitcond) { - break; - } else { - $$014 = $11; - } - } - _emscripten_set_main_loop((1|0),0,1); - _CloseWindow(); - STACKTOP = sp;return 0; -} -function _UpdateDrawFrame() { - var $$02224 = 0, $$023 = 0, $$byval_copy2 = 0, $$byval_copy7 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0; - var $6 = 0, $60 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond25 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $$byval_copy7 = sp + 24|0; - $$byval_copy2 = sp + 8|0; - $0 = sp; - $1 = sp + 56|0; - $2 = sp + 52|0; - $3 = sp + 48|0; - $4 = sp + 44|0; - $5 = sp + 40|0; - _GetMousePosition($0); - $6 = $0; - $7 = $6; - $8 = HEAP32[$7>>2]|0; - $9 = (($6) + 4)|0; - $10 = $9; - $11 = HEAP32[$10>>2]|0; - $12 = 14392; - $13 = $12; - HEAP32[$13>>2] = $8; - $14 = (($12) + 4)|0; - $15 = $14; - HEAP32[$15>>2] = $11; - $$02224 = 0; - while(1) { - $31 = (14056 + ($$02224<<4)|0); - ;HEAP32[$$byval_copy2>>2]=HEAP32[14392>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[14392+4>>2]|0; - ;HEAP32[$$byval_copy7>>2]=HEAP32[$31>>2]|0;HEAP32[$$byval_copy7+4>>2]=HEAP32[$31+4>>2]|0;HEAP32[$$byval_copy7+8>>2]=HEAP32[$31+8>>2]|0;HEAP32[$$byval_copy7+12>>2]=HEAP32[$31+12>>2]|0; - $32 = (_CheckCollisionPointRec($$byval_copy2,$$byval_copy7)|0); - $33 = ($32|0)==(0); - $34 = HEAP32[3513]|0; - $35 = (((($34) + ($$02224<<2)|0)) + 3|0); - if ($33) { - HEAP8[$35>>0] = -1; - } else { - HEAP8[$35>>0] = 120; - $36 = (_IsMouseButtonPressed(0)|0); - $37 = ($36|0)==(0); - $38 = (13968 + ($$02224<<2)|0); - if (!($37)) { - $39 = HEAP32[$38>>2]|0; - $40 = ($39|0)==(0); - $41 = $40&1; - HEAP32[$38>>2] = $41; - } - } - $42 = (($$02224) + 1)|0; - $exitcond25 = ($42|0)==(21); - if ($exitcond25) { - break; - } else { - $$02224 = $42; - } - } - _BeginDrawing(); - HEAP8[$1>>0] = -11; - $16 = ((($1)) + 1|0); - HEAP8[$16>>0] = -11; - $17 = ((($1)) + 2|0); - HEAP8[$17>>0] = -11; - $18 = ((($1)) + 3|0); - HEAP8[$18>>0] = -1; - ;HEAP8[$$byval_copy7>>0]=HEAP8[$1>>0]|0;HEAP8[$$byval_copy7+1>>0]=HEAP8[$1+1>>0]|0;HEAP8[$$byval_copy7+2>>0]=HEAP8[$1+2>>0]|0;HEAP8[$$byval_copy7+3>>0]=HEAP8[$1+3>>0]|0; - _ClearBackground($$byval_copy7); - $19 = ((($2)) + 1|0); - $20 = ((($2)) + 2|0); - $21 = ((($2)) + 3|0); - $22 = ((($3)) + 1|0); - $23 = ((($3)) + 2|0); - $24 = ((($3)) + 3|0); - $25 = ((($4)) + 1|0); - $26 = ((($4)) + 2|0); - $27 = ((($4)) + 3|0); - $28 = ((($5)) + 1|0); - $29 = ((($5)) + 2|0); - $30 = ((($5)) + 3|0); - $$023 = 0; - while(1) { - $43 = (14056 + ($$023<<4)|0); - $44 = HEAP32[3513]|0; - $45 = (($44) + ($$023<<2)|0); - ;HEAP32[$$byval_copy2>>2]=HEAP32[$43>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$43+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$43+8>>2]|0;HEAP32[$$byval_copy2+12>>2]=HEAP32[$43+12>>2]|0; - ;HEAP8[$$byval_copy7>>0]=HEAP8[$45>>0]|0;HEAP8[$$byval_copy7+1>>0]=HEAP8[$45+1>>0]|0;HEAP8[$$byval_copy7+2>>0]=HEAP8[$45+2>>0]|0;HEAP8[$$byval_copy7+3>>0]=HEAP8[$45+3>>0]|0; - _DrawRectangleRec($$byval_copy2,$$byval_copy7); - $46 = (13968 + ($$023<<2)|0); - $47 = HEAP32[$46>>2]|0; - $48 = ($47|0)==(0); - if (!($48)) { - $49 = HEAP32[$43>>2]|0; - $50 = (((14056 + ($$023<<4)|0)) + 4|0); - $51 = HEAP32[$50>>2]|0; - HEAP8[$2>>0] = -11; - HEAP8[$19>>0] = -11; - HEAP8[$20>>0] = -11; - HEAP8[$21>>0] = -1; - ;HEAP8[$$byval_copy7>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy7+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy7+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy7+3>>0]=HEAP8[$2+3>>0]|0; - _DrawRectangle($49,$51,100,10,$$byval_copy7); - $52 = HEAP32[$43>>2]|0; - $53 = HEAP32[$50>>2]|0; - HEAP8[$3>>0] = -11; - HEAP8[$22>>0] = -11; - HEAP8[$23>>0] = -11; - HEAP8[$24>>0] = -1; - ;HEAP8[$$byval_copy7>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy7+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy7+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy7+3>>0]=HEAP8[$3+3>>0]|0; - _DrawRectangle($52,$53,10,100,$$byval_copy7); - $54 = HEAP32[$43>>2]|0; - $55 = (($54) + 90)|0; - $56 = HEAP32[$50>>2]|0; - HEAP8[$4>>0] = -11; - HEAP8[$25>>0] = -11; - HEAP8[$26>>0] = -11; - HEAP8[$27>>0] = -1; - ;HEAP8[$$byval_copy7>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy7+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy7+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy7+3>>0]=HEAP8[$4+3>>0]|0; - _DrawRectangle($55,$56,10,100,$$byval_copy7); - $57 = HEAP32[$43>>2]|0; - $58 = HEAP32[$50>>2]|0; - $59 = (($58) + 90)|0; - HEAP8[$5>>0] = -11; - HEAP8[$28>>0] = -11; - HEAP8[$29>>0] = -11; - HEAP8[$30>>0] = -1; - ;HEAP8[$$byval_copy7>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy7+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy7+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy7+3>>0]=HEAP8[$5+3>>0]|0; - _DrawRectangle($57,$59,100,10,$$byval_copy7); - } - $60 = (($$023) + 1)|0; - $exitcond = ($60|0)==(21); - if ($exitcond) { - break; - } else { - $$023 = $60; - } - } - _EndDrawing(); - STACKTOP = sp;return; -} -function _TraceLog($0,$1,$varargs) { - $0 = $0|0; - $1 = $1|0; - $varargs = $varargs|0; - var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $endptr = 0, $strlen = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = sp; - switch ($0|0) { - case 0: { - ;HEAP8[13696>>0]=HEAP8[3502>>0]|0;HEAP8[13696+1>>0]=HEAP8[3502+1>>0]|0;HEAP8[13696+2>>0]=HEAP8[3502+2>>0]|0;HEAP8[13696+3>>0]=HEAP8[3502+3>>0]|0;HEAP8[13696+4>>0]=HEAP8[3502+4>>0]|0;HEAP8[13696+5>>0]=HEAP8[3502+5>>0]|0;HEAP8[13696+6>>0]=HEAP8[3502+6>>0]|0; - break; - } - case 2: { - $3 = 13696; - $4 = $3; - HEAP32[$4>>2] = 1330795077; - $5 = (($3) + 4)|0; - $6 = $5; - HEAP32[$6>>2] = 2112082; - break; - } - case 1: { - dest=13696; src=3509; stop=dest+10|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); - break; - } - case 3: { - $7 = 13696; - $8 = $7; - HEAP32[$8>>2] = 1430406468; - $9 = (($7) + 4)|0; - $10 = $9; - HEAP32[$10>>2] = 2112071; - break; - } - default: { - } - } - (_strcat(13696,$1)|0); - $strlen = (_strlen(13696)|0); - $endptr = (13696 + ($strlen)|0); - HEAP8[$endptr>>0]=10&255;HEAP8[$endptr+1>>0]=10>>8; - HEAP32[$2>>2] = $varargs; - $11 = ($0|0)==(3); - if ($11) { - STACKTOP = sp;return; - } - (_vprintf(13696,$2)|0); - $12 = ($0|0)==(2); - if ($12) { - _exit(1); - // unreachable; - } else { - STACKTOP = sp;return; - } -} -function _LoadDefaultFont() { - var $$ = 0, $$0101 = 0, $$090100 = 0, $$09299 = 0, $$095104 = 0, $$096103 = 0, $$097102 = 0, $$191 = 0, $$193 = 0, $$byval_copy1 = 0, $$lcssa = 0, $$sroa$0$0$$sroa_idx = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; - var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $$byval_copy1 = sp + 44|0; - $vararg_buffer = sp; - $0 = sp + 4|0; - $1 = sp + 24|0; - HEAP32[(14424)>>2] = 224; - $2 = (_malloc(65536)|0); - _memset(($2|0),0,65536)|0; - $$095104 = 0;$$096103 = 0; - while(1) { - $3 = (16 + ($$095104<<2)|0); - $4 = HEAP32[$3>>2]|0; - $$097102 = 31; - while(1) { - $16 = 1 << $$097102; - $17 = $4 & $16; - $18 = ($17|0)==(0); - if (!($18)) { - $19 = (($$097102) + ($$096103))|0; - $$sroa$0$0$$sroa_idx = (($2) + ($19<<2)|0); - HEAP8[$$sroa$0$0$$sroa_idx>>0]=-1&255;HEAP8[$$sroa$0$0$$sroa_idx+1>>0]=(-1>>8)&255;HEAP8[$$sroa$0$0$$sroa_idx+2>>0]=(-1>>16)&255;HEAP8[$$sroa$0$0$$sroa_idx+3>>0]=-1>>24; - } - $20 = (($$097102) + -1)|0; - $21 = ($$097102|0)>(0); - if ($21) { - $$097102 = $20; - } else { - break; - } - } - $12 = (($$095104) + 1)|0; - $13 = ($$095104|0)>(511); - $$ = $13 ? 0 : $12; - $14 = (($$096103) + 32)|0; - $15 = ($14|0)<(16384); - if ($15) { - $$095104 = $$;$$096103 = $14; - } else { - break; - } - } - _LoadImageEx($0,$2,128,128); - _ImageFormat($0,2); - _free($2); - ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; - _LoadTextureFromImage($1,$$byval_copy1); - ;HEAP32[14400>>2]=HEAP32[$1>>2]|0;HEAP32[14400+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[14400+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[14400+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[14400+16>>2]=HEAP32[$1+16>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; - _UnloadImage($$byval_copy1); - $5 = HEAP32[(14424)>>2]|0; - $6 = $5 << 5; - $7 = (_malloc($6)|0); - HEAP32[(14428)>>2] = $7; - $8 = ($5|0)>(0); - if (!($8)) { - $$lcssa = $7; - $22 = ((($$lcssa)) + 16|0); - $23 = HEAP32[$22>>2]|0; - HEAP32[(14420)>>2] = $23; - $24 = HEAP32[3600]|0; - HEAP32[$vararg_buffer>>2] = $24; - _TraceLog(0,3519,$vararg_buffer); - STACKTOP = sp;return; - } - $9 = HEAP32[(14404)>>2]|0; - $10 = HEAP32[(14424)>>2]|0; - $11 = HEAP32[(14428)>>2]|0; - $$0101 = 0;$$090100 = 1;$$09299 = 0;$27 = $7; - while(1) { - $25 = (($$0101) + 32)|0; - $26 = (($27) + ($$0101<<5)|0); - HEAP32[$26>>2] = $25; - $28 = (((($27) + ($$0101<<5)|0)) + 4|0); - HEAP32[$28>>2] = $$090100; - $29 = ($$09299*11)|0; - $30 = (($29) + 1)|0; - $31 = (((($27) + ($$0101<<5)|0)) + 8|0); - HEAP32[$31>>2] = $30; - $32 = (2064 + ($$0101<<2)|0); - $33 = HEAP32[$32>>2]|0; - $34 = (((($27) + ($$0101<<5)|0)) + 12|0); - HEAP32[$34>>2] = $33; - $35 = (((($27) + ($$0101<<5)|0)) + 16|0); - HEAP32[$35>>2] = 10; - $36 = (($$090100) + 1)|0; - $37 = (($36) + ($33))|0; - $38 = ($37|0)<($9|0); - $39 = (($$09299) + 1)|0; - if ($38) { - $$191 = $37;$$193 = $$09299; - } else { - $40 = ($39*11)|0; - $41 = (($40) + 1)|0; - $42 = (($33) + 2)|0; - HEAP32[$28>>2] = 1; - HEAP32[$31>>2] = $41; - $$191 = $42;$$193 = $39; - } - $43 = (((($27) + ($$0101<<5)|0)) + 20|0); - HEAP32[$43>>2] = 0; - $44 = (((($27) + ($$0101<<5)|0)) + 24|0); - HEAP32[$44>>2] = 0; - $45 = (((($27) + ($$0101<<5)|0)) + 28|0); - HEAP32[$45>>2] = 0; - $46 = (($$0101) + 1)|0; - $47 = ($46|0)<($10|0); - if ($47) { - $$0101 = $46;$$090100 = $$191;$$09299 = $$193;$27 = $11; - } else { - $$lcssa = $11; - break; - } - } - $22 = ((($$lcssa)) + 16|0); - $23 = HEAP32[$22>>2]|0; - HEAP32[(14420)>>2] = $23; - $24 = HEAP32[3600]|0; - HEAP32[$vararg_buffer>>2] = $24; - _TraceLog(0,3519,$vararg_buffer); - STACKTOP = sp;return; -} -function _LoadImageEx($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$03334 = 0, $$035 = 0, $$sroa$12$0$$sroa_idx21 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$9$0$$sroa_idx18 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = $2 << 2; - $5 = Math_imul($4, $3)|0; - $6 = (_malloc($5)|0); - $7 = ($5|0)>(0); - if ($7) { - $8 = (($5) + -1)|0; - $9 = $8 >>> 2; - $$03334 = 0;$$035 = 0; - while(1) { - $10 = (($1) + ($$03334<<2)|0); - $11 = HEAP8[$10>>0]|0; - $12 = (($6) + ($$035)|0); - HEAP8[$12>>0] = $11; - $13 = (((($1) + ($$03334<<2)|0)) + 1|0); - $14 = HEAP8[$13>>0]|0; - $15 = $$035 | 1; - $16 = (($6) + ($15)|0); - HEAP8[$16>>0] = $14; - $17 = (((($1) + ($$03334<<2)|0)) + 2|0); - $18 = HEAP8[$17>>0]|0; - $19 = $$035 | 2; - $20 = (($6) + ($19)|0); - HEAP8[$20>>0] = $18; - $21 = (((($1) + ($$03334<<2)|0)) + 3|0); - $22 = HEAP8[$21>>0]|0; - $23 = $$035 | 3; - $24 = (($6) + ($23)|0); - HEAP8[$24>>0] = $22; - $25 = (($$03334) + 1)|0; - $26 = (($$035) + 4)|0; - $exitcond = ($$03334|0)==($9|0); - if ($exitcond) { - break; - } else { - $$03334 = $25;$$035 = $26; - } - } - } - HEAP32[$0>>2] = $6; - $$sroa$9$0$$sroa_idx18 = ((($0)) + 4|0); - HEAP32[$$sroa$9$0$$sroa_idx18>>2] = $2; - $$sroa$12$0$$sroa_idx21 = ((($0)) + 8|0); - HEAP32[$$sroa$12$0$$sroa_idx21>>2] = $3; - $$sroa$15$0$$sroa_idx24 = ((($0)) + 12|0); - HEAP32[$$sroa$15$0$$sroa_idx24>>2] = 1; - $$sroa$16$0$$sroa_idx26 = ((($0)) + 16|0); - HEAP32[$$sroa$16$0$$sroa_idx26>>2] = 7; - return; -} -function _ImageFormat($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0166199 = 0, $$0167197 = 0, $$0168195 = 0, $$0169192 = 0, $$0170190 = 0, $$0171188 = 0, $$0172189 = 0, $$0202 = 0, $$1194 = 0, $$2201 = 0, $$byval_copy = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0, $106 = 0, $107 = 0; - var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0; - var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0; - var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0; - var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $178 = 0, $179 = 0, $18 = 0; - var $180 = 0, $181 = 0.0, $182 = 0.0, $183 = 0.0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0.0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0; - var $199 = 0, $2 = 0, $20 = 0.0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0; - var $216 = 0, $217 = 0, $218 = 0.0, $219 = 0.0, $22 = 0, $220 = 0.0, $221 = 0, $222 = 0, $223 = 0, $224 = 0.0, $225 = 0.0, $226 = 0.0, $227 = 0, $228 = 0, $229 = 0, $23 = 0.0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0; - var $234 = 0, $235 = 0, $236 = 0.0, $237 = 0.0, $238 = 0.0, $239 = 0, $24 = 0.0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0.0, $250 = 0, $251 = 0; - var $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0; - var $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0.0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0; - var $289 = 0, $29 = 0.0, $290 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0; - var $63 = 0.0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0; - var $or$cond = 0, $roundf = 0.0, $roundf173 = 0.0, $roundf174 = 0.0, $roundf175 = 0.0, $roundf176 = 0.0, $roundf177 = 0.0, $roundf178 = 0.0, $roundf179 = 0.0, $roundf180 = 0.0, $roundf181 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $$byval_copy = sp + 4|0; - $vararg_buffer = sp; - $2 = ((($0)) + 16|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)==($1|0); - if ($4) { - STACKTOP = sp;return; - } - $5 = ($3|0)<(9); - $6 = ($1|0)<(9); - $or$cond = $6 & $5; - if (!($or$cond)) { - _TraceLog(1,3945,$vararg_buffer); - STACKTOP = sp;return; - } - ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; - $7 = (_GetImageData($$byval_copy)|0); - $8 = HEAP32[$0>>2]|0; - _free($8); - HEAP32[$2>>2] = $1; - switch ($1|0) { - case 1: { - $9 = ((($0)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($0)) + 8|0); - $12 = HEAP32[$11>>2]|0; - $13 = Math_imul($12, $10)|0; - $14 = (_malloc($13)|0); - HEAP32[$0>>2] = $14; - $15 = Math_imul($12, $10)|0; - $16 = ($15|0)>(0); - if ($16) { - $$0171188 = 0; - while(1) { - $17 = (($7) + ($$0171188<<2)|0); - $18 = HEAP8[$17>>0]|0; - $19 = (+($18&255)); - $20 = $19 * 0.29899999499320984; - $21 = (((($7) + ($$0171188<<2)|0)) + 1|0); - $22 = HEAP8[$21>>0]|0; - $23 = (+($22&255)); - $24 = $23 * 0.58700001239776611; - $25 = $20 + $24; - $26 = (((($7) + ($$0171188<<2)|0)) + 2|0); - $27 = HEAP8[$26>>0]|0; - $28 = (+($27&255)); - $29 = $28 * 0.11400000005960464; - $30 = $25 + $29; - $31 = (~~(($30))&255); - $32 = HEAP32[$0>>2]|0; - $33 = (($32) + ($$0171188)|0); - HEAP8[$33>>0] = $31; - $34 = (($$0171188) + 1)|0; - $35 = HEAP32[$9>>2]|0; - $36 = HEAP32[$11>>2]|0; - $37 = Math_imul($36, $35)|0; - $38 = ($34|0)<($37|0); - if ($38) { - $$0171188 = $34; - } else { - break; - } - } - } - break; - } - case 2: { - $39 = ((($0)) + 4|0); - $40 = HEAP32[$39>>2]|0; - $41 = ((($0)) + 8|0); - $42 = HEAP32[$41>>2]|0; - $43 = $40 << 1; - $44 = Math_imul($43, $42)|0; - $45 = (_malloc($44)|0); - HEAP32[$0>>2] = $45; - $46 = HEAP32[$39>>2]|0; - $47 = $46 << 1; - $48 = Math_imul($47, $42)|0; - $49 = ($48|0)>(0); - if ($49) { - $$0170190 = 0;$$0172189 = 0; - while(1) { - $50 = (($7) + ($$0172189<<2)|0); - $51 = HEAP8[$50>>0]|0; - $52 = (+($51&255)); - $53 = $52 * 0.29899999499320984; - $54 = (((($7) + ($$0172189<<2)|0)) + 1|0); - $55 = HEAP8[$54>>0]|0; - $56 = (+($55&255)); - $57 = $56 * 0.58700001239776611; - $58 = $53 + $57; - $59 = (((($7) + ($$0172189<<2)|0)) + 2|0); - $60 = HEAP8[$59>>0]|0; - $61 = (+($60&255)); - $62 = $61 * 0.11400000005960464; - $63 = $58 + $62; - $64 = (~~(($63))&255); - $65 = HEAP32[$0>>2]|0; - $66 = (($65) + ($$0170190)|0); - HEAP8[$66>>0] = $64; - $67 = (((($7) + ($$0172189<<2)|0)) + 3|0); - $68 = HEAP8[$67>>0]|0; - $69 = HEAP32[$0>>2]|0; - $70 = $$0170190 | 1; - $71 = (($69) + ($70)|0); - HEAP8[$71>>0] = $68; - $72 = (($$0172189) + 1)|0; - $73 = (($$0170190) + 2)|0; - $74 = HEAP32[$39>>2]|0; - $75 = HEAP32[$41>>2]|0; - $76 = $74 << 1; - $77 = Math_imul($76, $75)|0; - $78 = ($73|0)<($77|0); - if ($78) { - $$0170190 = $73;$$0172189 = $72; - } else { - break; - } - } - } - break; - } - case 3: { - $79 = ((($0)) + 4|0); - $80 = HEAP32[$79>>2]|0; - $81 = ((($0)) + 8|0); - $82 = HEAP32[$81>>2]|0; - $83 = $80 << 1; - $84 = Math_imul($83, $82)|0; - $85 = (_malloc($84)|0); - HEAP32[$0>>2] = $85; - $86 = HEAP32[$79>>2]|0; - $87 = Math_imul($82, $86)|0; - $88 = ($87|0)>(0); - if ($88) { - $89 = HEAP8[$7>>0]|0; - $90 = (+($89&255)); - $91 = $90 * 31.0; - $92 = $91 / 255.0; - $roundf179 = (+_roundf((+$92))); - $93 = (~~(($roundf179))&255); - $94 = ((($7)) + 1|0); - $95 = HEAP8[$94>>0]|0; - $96 = (+($95&255)); - $97 = $96 * 63.0; - $98 = $97 / 255.0; - $roundf180 = (+_roundf((+$98))); - $99 = (~~(($roundf180))&255); - $100 = ((($7)) + 2|0); - $101 = HEAP8[$100>>0]|0; - $102 = (+($101&255)); - $103 = $102 * 31.0; - $104 = $103 / 255.0; - $roundf181 = (+_roundf((+$104))); - $105 = (~~(($roundf181))&255); - $106 = $93&255; - $107 = $106 << 11; - $108 = $99&255; - $109 = $108 << 5; - $110 = $109 | $107; - $111 = $105&255; - $112 = $110 | $111; - $113 = $112&65535; - $114 = HEAP32[$0>>2]|0; - $115 = HEAP32[$79>>2]|0; - $116 = HEAP32[$81>>2]|0; - $117 = Math_imul($116, $115)|0; - $$0169192 = 0; - while(1) { - $118 = (($114) + ($$0169192<<1)|0); - HEAP16[$118>>1] = $113; - $119 = (($$0169192) + 1)|0; - $120 = ($119|0)<($117|0); - if ($120) { - $$0169192 = $119; - } else { - break; - } - } - } - break; - } - case 4: { - $121 = ((($0)) + 4|0); - $122 = HEAP32[$121>>2]|0; - $123 = ((($0)) + 8|0); - $124 = HEAP32[$123>>2]|0; - $125 = ($122*3)|0; - $126 = Math_imul($125, $124)|0; - $127 = (_malloc($126)|0); - HEAP32[$0>>2] = $127; - $128 = HEAP32[$121>>2]|0; - $129 = ($128*3)|0; - $130 = Math_imul($129, $124)|0; - $131 = ($130|0)>(0); - if ($131) { - $$0168195 = 0;$$1194 = 0; - while(1) { - $132 = (($7) + ($$1194<<2)|0); - $133 = HEAP8[$132>>0]|0; - $134 = HEAP32[$0>>2]|0; - $135 = (($134) + ($$0168195)|0); - HEAP8[$135>>0] = $133; - $136 = (((($7) + ($$1194<<2)|0)) + 1|0); - $137 = HEAP8[$136>>0]|0; - $138 = HEAP32[$0>>2]|0; - $139 = (($$0168195) + 1)|0; - $140 = (($138) + ($139)|0); - HEAP8[$140>>0] = $137; - $141 = (((($7) + ($$1194<<2)|0)) + 2|0); - $142 = HEAP8[$141>>0]|0; - $143 = HEAP32[$0>>2]|0; - $144 = (($$0168195) + 2)|0; - $145 = (($143) + ($144)|0); - HEAP8[$145>>0] = $142; - $146 = (($$1194) + 1)|0; - $147 = (($$0168195) + 3)|0; - $148 = HEAP32[$121>>2]|0; - $149 = HEAP32[$123>>2]|0; - $150 = ($148*3)|0; - $151 = Math_imul($150, $149)|0; - $152 = ($147|0)<($151|0); - if ($152) { - $$0168195 = $147;$$1194 = $146; - } else { - break; - } - } - } - break; - } - case 5: { - $153 = ((($0)) + 4|0); - $154 = HEAP32[$153>>2]|0; - $155 = ((($0)) + 8|0); - $156 = HEAP32[$155>>2]|0; - $157 = $154 << 1; - $158 = Math_imul($157, $156)|0; - $159 = (_malloc($158)|0); - HEAP32[$0>>2] = $159; - $160 = HEAP32[$153>>2]|0; - $161 = Math_imul($156, $160)|0; - $162 = ($161|0)>(0); - if ($162) { - $163 = HEAP32[$0>>2]|0; - $164 = HEAP32[$153>>2]|0; - $165 = HEAP32[$155>>2]|0; - $166 = Math_imul($165, $164)|0; - $$0167197 = 0; - while(1) { - $167 = (($7) + ($$0167197<<2)|0); - $168 = HEAP8[$167>>0]|0; - $169 = (+($168&255)); - $170 = $169 * 31.0; - $171 = $170 / 255.0; - $roundf176 = (+_roundf((+$171))); - $172 = (~~(($roundf176))&255); - $173 = (((($7) + ($$0167197<<2)|0)) + 1|0); - $174 = HEAP8[$173>>0]|0; - $175 = (+($174&255)); - $176 = $175 * 31.0; - $177 = $176 / 255.0; - $roundf177 = (+_roundf((+$177))); - $178 = (~~(($roundf177))&255); - $179 = (((($7) + ($$0167197<<2)|0)) + 2|0); - $180 = HEAP8[$179>>0]|0; - $181 = (+($180&255)); - $182 = $181 * 31.0; - $183 = $182 / 255.0; - $roundf178 = (+_roundf((+$183))); - $184 = (~~(($roundf178))&255); - $185 = (((($7) + ($$0167197<<2)|0)) + 3|0); - $186 = HEAP8[$185>>0]|0; - $187 = ($186&255)>(50); - $188 = $172&255; - $189 = $188 << 11; - $190 = $178&255; - $191 = $190 << 6; - $192 = $191 | $189; - $193 = $184&255; - $194 = $193 << 1; - $195 = $192 | $194; - $196 = $187&1; - $197 = $195 | $196; - $198 = $197&65535; - $199 = (($163) + ($$0167197<<1)|0); - HEAP16[$199>>1] = $198; - $200 = (($$0167197) + 1)|0; - $201 = ($200|0)<($166|0); - if ($201) { - $$0167197 = $200; - } else { - break; - } - } - } - break; - } - case 6: { - $202 = ((($0)) + 4|0); - $203 = HEAP32[$202>>2]|0; - $204 = ((($0)) + 8|0); - $205 = HEAP32[$204>>2]|0; - $206 = $203 << 1; - $207 = Math_imul($206, $205)|0; - $208 = (_malloc($207)|0); - HEAP32[$0>>2] = $208; - $209 = HEAP32[$202>>2]|0; - $210 = Math_imul($205, $209)|0; - $211 = ($210|0)>(0); - if ($211) { - $212 = HEAP32[$0>>2]|0; - $213 = HEAP32[$202>>2]|0; - $214 = HEAP32[$204>>2]|0; - $215 = Math_imul($214, $213)|0; - $$0166199 = 0; - while(1) { - $216 = (($7) + ($$0166199<<2)|0); - $217 = HEAP8[$216>>0]|0; - $218 = (+($217&255)); - $219 = $218 * 15.0; - $220 = $219 / 255.0; - $roundf = (+_roundf((+$220))); - $221 = (~~(($roundf))&255); - $222 = (((($7) + ($$0166199<<2)|0)) + 1|0); - $223 = HEAP8[$222>>0]|0; - $224 = (+($223&255)); - $225 = $224 * 15.0; - $226 = $225 / 255.0; - $roundf173 = (+_roundf((+$226))); - $227 = (~~(($roundf173))&255); - $228 = (((($7) + ($$0166199<<2)|0)) + 2|0); - $229 = HEAP8[$228>>0]|0; - $230 = (+($229&255)); - $231 = $230 * 15.0; - $232 = $231 / 255.0; - $roundf174 = (+_roundf((+$232))); - $233 = (~~(($roundf174))&255); - $234 = (((($7) + ($$0166199<<2)|0)) + 3|0); - $235 = HEAP8[$234>>0]|0; - $236 = (+($235&255)); - $237 = $236 * 15.0; - $238 = $237 / 255.0; - $roundf175 = (+_roundf((+$238))); - $239 = (~~(($roundf175))&255); - $240 = $221&255; - $241 = $240 << 12; - $242 = $227&255; - $243 = $242 << 8; - $244 = $243 | $241; - $245 = $233&255; - $246 = $245 << 4; - $247 = $244 | $246; - $248 = $239&255; - $249 = $247 | $248; - $250 = $249&65535; - $251 = (($212) + ($$0166199<<1)|0); - HEAP16[$251>>1] = $250; - $252 = (($$0166199) + 1)|0; - $253 = ($252|0)<($215|0); - if ($253) { - $$0166199 = $252; - } else { - break; - } - } - } - break; - } - case 7: { - $254 = ((($0)) + 4|0); - $255 = HEAP32[$254>>2]|0; - $256 = ((($0)) + 8|0); - $257 = HEAP32[$256>>2]|0; - $258 = $255 << 2; - $259 = Math_imul($258, $257)|0; - $260 = (_malloc($259)|0); - HEAP32[$0>>2] = $260; - $261 = HEAP32[$254>>2]|0; - $262 = $261 << 2; - $263 = Math_imul($262, $257)|0; - $264 = ($263|0)>(0); - if ($264) { - $$0202 = 0;$$2201 = 0; - while(1) { - $265 = (($7) + ($$2201<<2)|0); - $266 = HEAP8[$265>>0]|0; - $267 = HEAP32[$0>>2]|0; - $268 = (($267) + ($$0202)|0); - HEAP8[$268>>0] = $266; - $269 = (((($7) + ($$2201<<2)|0)) + 1|0); - $270 = HEAP8[$269>>0]|0; - $271 = HEAP32[$0>>2]|0; - $272 = $$0202 | 1; - $273 = (($271) + ($272)|0); - HEAP8[$273>>0] = $270; - $274 = (((($7) + ($$2201<<2)|0)) + 2|0); - $275 = HEAP8[$274>>0]|0; - $276 = HEAP32[$0>>2]|0; - $277 = $$0202 | 2; - $278 = (($276) + ($277)|0); - HEAP8[$278>>0] = $275; - $279 = (((($7) + ($$2201<<2)|0)) + 3|0); - $280 = HEAP8[$279>>0]|0; - $281 = HEAP32[$0>>2]|0; - $282 = $$0202 | 3; - $283 = (($281) + ($282)|0); - HEAP8[$283>>0] = $280; - $284 = (($$2201) + 1)|0; - $285 = (($$0202) + 4)|0; - $286 = HEAP32[$254>>2]|0; - $287 = HEAP32[$256>>2]|0; - $288 = $286 << 2; - $289 = Math_imul($288, $287)|0; - $290 = ($285|0)<($289|0); - if ($290) { - $$0202 = $285;$$2201 = $284; - } else { - break; - } - } - } - break; - } - default: { - } - } - _free($7); - STACKTOP = sp;return; -} -function _LoadTextureFromImage($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$sroa$10$0$$sroa_idx6 = 0, $$sroa$12$0$$sroa_idx8 = 0, $$sroa$6$0$$sroa_idx2 = 0, $$sroa$8$0$$sroa_idx4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0; - var $vararg_ptr4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $2 = HEAP32[$1>>2]|0; - $3 = ((($1)) + 4|0); - $4 = HEAP32[$3>>2]|0; - $5 = ((($1)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = ((($1)) + 16|0); - $8 = HEAP32[$7>>2]|0; - $9 = ((($1)) + 12|0); - $10 = HEAP32[$9>>2]|0; - $11 = (_rlLoadTexture($2,$4,$6,$8,$10)|0); - $12 = HEAP32[$3>>2]|0; - $13 = HEAP32[$5>>2]|0; - HEAP32[$vararg_buffer>>2] = $11; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $12; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $13; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $10; - $vararg_ptr4 = ((($vararg_buffer)) + 16|0); - HEAP32[$vararg_ptr4>>2] = $8; - _TraceLog(3,3564,$vararg_buffer); - HEAP32[$0>>2] = $11; - $$sroa$6$0$$sroa_idx2 = ((($0)) + 4|0); - HEAP32[$$sroa$6$0$$sroa_idx2>>2] = $12; - $$sroa$8$0$$sroa_idx4 = ((($0)) + 8|0); - HEAP32[$$sroa$8$0$$sroa_idx4>>2] = $13; - $$sroa$10$0$$sroa_idx6 = ((($0)) + 12|0); - HEAP32[$$sroa$10$0$$sroa_idx6>>2] = $10; - $$sroa$12$0$$sroa_idx8 = ((($0)) + 16|0); - HEAP32[$$sroa$12$0$$sroa_idx8>>2] = $8; - STACKTOP = sp;return; -} -function _UnloadImage($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - $2 = ($1|0)==(0|0); - if ($2) { - return; - } - _free($1); - return; -} -function _rlLoadTexture($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0 = 0, $$off = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond101 = 0, $or$cond7 = 0, $or$cond97 = 0, $or$cond99 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer15 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0; - var $vararg_buffer9 = 0, $vararg_ptr13 = 0, $vararg_ptr14 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $vararg_buffer15 = sp + 64|0; - $vararg_buffer11 = sp + 48|0; - $vararg_buffer9 = sp + 40|0; - $vararg_buffer7 = sp + 32|0; - $vararg_buffer5 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $5 = sp + 68|0; - _glBindTexture(3553,0); - HEAP32[$5>>2] = 0; - $6 = HEAP32[3608]|0; - $7 = ($6|0)==(0); - $$off = (($3) + -9)|0; - $8 = ($$off>>>0)<(4); - $or$cond = $8 & $7; - if ($or$cond) { - _TraceLog(1,3614,$vararg_buffer); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $9 = HEAP32[3609]|0; - $10 = ($9|0)==(0); - $11 = ($3|0)==(13); - $or$cond7 = $11 & $10; - if ($or$cond7) { - _TraceLog(1,3658,$vararg_buffer1); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $12 = HEAP32[3610]|0; - $13 = ($12|0)==(0); - $14 = $3 | 1; - $15 = ($14|0)==(15); - $or$cond97 = $15 & $13; - if ($or$cond97) { - _TraceLog(1,3703,$vararg_buffer3); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $16 = HEAP32[3611]|0; - $17 = ($16|0)==(0); - $18 = ($14|0)==(17); - $or$cond99 = $18 & $17; - if ($or$cond99) { - _TraceLog(1,3748,$vararg_buffer5); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $19 = HEAP32[3612]|0; - $20 = ($19|0)==(0); - $21 = ($14|0)==(19); - $or$cond101 = $21 & $20; - if ($or$cond101) { - _TraceLog(1,3793,$vararg_buffer7); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - _glGenTextures(1,($5|0)); - $22 = HEAP32[$5>>2]|0; - _glBindTexture(3553,($22|0)); - do { - switch ($3|0) { - case 1: { - _glTexImage2D(3553,0,6409,($1|0),($2|0),0,6409,5121,($0|0)); - break; - } - case 2: { - _glTexImage2D(3553,0,6410,($1|0),($2|0),0,6410,5121,($0|0)); - break; - } - case 3: { - _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,33635,($0|0)); - break; - } - case 4: { - _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,5121,($0|0)); - break; - } - case 5: { - _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32820,($0|0)); - break; - } - case 6: { - _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32819,($0|0)); - break; - } - case 7: { - _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,5121,($0|0)); - break; - } - case 8: { - $23 = HEAP32[3613]|0; - $24 = ($23|0)==(0); - if (!($24)) { - _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,5126,($0|0)); - } - break; - } - case 9: { - $25 = HEAP32[3608]|0; - $26 = ($25|0)==(0); - if (!($26)) { - _LoadTextureCompressed($0,$1,$2,33776,$4); - } - break; - } - case 10: { - $27 = HEAP32[3608]|0; - $28 = ($27|0)==(0); - if (!($28)) { - _LoadTextureCompressed($0,$1,$2,33777,$4); - } - break; - } - case 11: { - $29 = HEAP32[3608]|0; - $30 = ($29|0)==(0); - if (!($30)) { - _LoadTextureCompressed($0,$1,$2,33778,$4); - } - break; - } - case 12: { - $31 = HEAP32[3608]|0; - $32 = ($31|0)==(0); - if (!($32)) { - _LoadTextureCompressed($0,$1,$2,33779,$4); - } - break; - } - case 13: { - $33 = HEAP32[3609]|0; - $34 = ($33|0)==(0); - if (!($34)) { - _LoadTextureCompressed($0,$1,$2,36196,$4); - } - break; - } - case 14: { - $35 = HEAP32[3610]|0; - $36 = ($35|0)==(0); - if (!($36)) { - _LoadTextureCompressed($0,$1,$2,37492,$4); - } - break; - } - case 15: { - $37 = HEAP32[3610]|0; - $38 = ($37|0)==(0); - if (!($38)) { - _LoadTextureCompressed($0,$1,$2,37496,$4); - } - break; - } - case 16: { - $39 = HEAP32[3611]|0; - $40 = ($39|0)==(0); - if (!($40)) { - _LoadTextureCompressed($0,$1,$2,35840,$4); - } - break; - } - case 17: { - $41 = HEAP32[3611]|0; - $42 = ($41|0)==(0); - if (!($42)) { - _LoadTextureCompressed($0,$1,$2,35842,$4); - } - break; - } - case 18: { - $43 = HEAP32[3612]|0; - $44 = ($43|0)==(0); - if (!($44)) { - _LoadTextureCompressed($0,$1,$2,37808,$4); - } - break; - } - case 19: { - $45 = HEAP32[3612]|0; - $46 = ($45|0)==(0); - if (!($46)) { - _LoadTextureCompressed($0,$1,$2,37815,$4); - } - break; - } - default: { - _TraceLog(1,3838,$vararg_buffer9); - } - } - } while(0); - $47 = HEAP32[3614]|0; - $48 = ($47|0)==(0); - if ($48) { - _glTexParameteri(3553,10242,33071); - _glTexParameteri(3553,10243,33071); - } else { - _glTexParameteri(3553,10242,10497); - _glTexParameteri(3553,10243,10497); - } - _glTexParameteri(3553,10240,9728); - _glTexParameteri(3553,10241,9728); - _glBindTexture(3553,0); - $49 = HEAP32[$5>>2]|0; - $50 = ($49|0)==(0); - if ($50) { - _TraceLog(1,3916,$vararg_buffer15); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } else { - HEAP32[$vararg_buffer11>>2] = $49; - $vararg_ptr13 = ((($vararg_buffer11)) + 4|0); - HEAP32[$vararg_ptr13>>2] = $1; - $vararg_ptr14 = ((($vararg_buffer11)) + 8|0); - HEAP32[$vararg_ptr14>>2] = $2; - _TraceLog(0,3867,$vararg_buffer11); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - return (0)|0; -} -function _LoadTextureCompressed($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$ = 0, $$03645 = 0, $$03744 = 0, $$038 = 0, $$03943 = 0, $$046 = 0, $$140 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond42 = 0, label = 0, sp = 0; - sp = STACKTOP; - _glPixelStorei(3317,1); - switch ($3|0) { - case 33776: case 33777: case 36196: case 37492: { - $$038 = 8; - break; - } - default: { - $$038 = 16; - } - } - $5 = ($4|0)<(1); - $6 = $1 | $2; - $7 = ($6|0)==(0); - $or$cond42 = $5 | $7; - if ($or$cond42) { - return; - } else { - $$03645 = 0;$$03744 = 0;$$03943 = $2;$$046 = $1; - } - while(1) { - $8 = (($$046) + 3)|0; - $9 = (($8|0) / 4)&-1; - $10 = (($$03943) + 3)|0; - $11 = (($10|0) / 4)&-1; - $12 = Math_imul($11, $$038)|0; - $13 = Math_imul($12, $9)|0; - $14 = (($0) + ($$03744)|0); - _glCompressedTexImage2D(3553,($$03645|0),($3|0),($$046|0),($$03943|0),0,($13|0),($14|0)); - $15 = (($13) + ($$03744))|0; - $16 = (($$046|0) / 2)&-1; - $17 = (($$03943|0) / 2)&-1; - $18 = ($$046|0)<(2); - $$ = $18 ? 1 : $16; - $19 = ($$03943|0)<(2); - $$140 = $19 ? 1 : $17; - $20 = (($$03645) + 1)|0; - $21 = ($20|0)>=($4|0); - $22 = $$ | $$140; - $23 = ($22|0)==(0); - $or$cond = $21 | $23; - if ($or$cond) { - break; - } else { - $$03645 = $20;$$03744 = $15;$$03943 = $$140;$$046 = $$; - } - } - return; -} -function _GetImageData($0) { - $0 = $0|0; - var $$0104105 = 0, $$0106 = 0, $$1 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; - var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; - var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0.0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0.0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; - var $97 = 0.0, $98 = 0.0, $99 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = ((($0)) + 4|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 8|0); - $4 = HEAP32[$3>>2]|0; - $5 = $2 << 2; - $6 = Math_imul($5, $4)|0; - $7 = (_malloc($6)|0); - $8 = HEAP32[$1>>2]|0; - $9 = Math_imul($4, $8)|0; - $10 = ($9|0)>(0); - if (!($10)) { - STACKTOP = sp;return ($7|0); - } - $11 = ((($0)) + 16|0); - $12 = HEAP32[$11>>2]|0; - $13 = HEAP32[$0>>2]|0; - $$0104105 = 0;$$0106 = 0; - while(1) { - switch ($12|0) { - case 1: { - $14 = (($13) + ($$0106)|0); - $15 = HEAP8[$14>>0]|0; - $16 = (($7) + ($$0104105<<2)|0); - HEAP8[$16>>0] = $15; - $17 = HEAP8[$14>>0]|0; - $18 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$18>>0] = $17; - $19 = HEAP8[$14>>0]|0; - $20 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$20>>0] = $19; - $21 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$21>>0] = -1; - $22 = (($$0106) + 1)|0; - $$1 = $22; - break; - } - case 2: { - $23 = (($13) + ($$0106)|0); - $24 = HEAP8[$23>>0]|0; - $25 = (($7) + ($$0104105<<2)|0); - HEAP8[$25>>0] = $24; - $26 = HEAP8[$23>>0]|0; - $27 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$27>>0] = $26; - $28 = HEAP8[$23>>0]|0; - $29 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$29>>0] = $28; - $30 = (($$0106) + 1)|0; - $31 = (($13) + ($30)|0); - $32 = HEAP8[$31>>0]|0; - $33 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$33>>0] = $32; - $34 = (($$0106) + 2)|0; - $$1 = $34; - break; - } - case 5: { - $35 = (($13) + ($$0106<<1)|0); - $36 = HEAP16[$35>>1]|0; - $37 = $36&65535; - $38 = $37 >>> 11; - $39 = (+($38|0)); - $40 = $39 * 8.0; - $41 = (~~(($40))&255); - $42 = (($7) + ($$0104105<<2)|0); - HEAP8[$42>>0] = $41; - $43 = $37 >>> 6; - $44 = $43 & 31; - $45 = (+($44|0)); - $46 = $45 * 8.0; - $47 = (~~(($46))&255); - $48 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$48>>0] = $47; - $49 = $37 >>> 1; - $50 = $49 & 31; - $51 = (+($50|0)); - $52 = $51 * 8.0; - $53 = (~~(($52))&255); - $54 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$54>>0] = $53; - $55 = $37 & 1; - $56 = (0 - ($55))|0; - $57 = $56&255; - $58 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$58>>0] = $57; - $59 = (($$0106) + 1)|0; - $$1 = $59; - break; - } - case 3: { - $60 = (($13) + ($$0106<<1)|0); - $61 = HEAP16[$60>>1]|0; - $62 = $61&65535; - $63 = $62 >>> 11; - $64 = (+($63|0)); - $65 = $64 * 8.0; - $66 = (~~(($65))&255); - $67 = (($7) + ($$0104105<<2)|0); - HEAP8[$67>>0] = $66; - $68 = $62 >>> 5; - $69 = $68 & 63; - $70 = (+($69|0)); - $71 = $70 * 4.0; - $72 = (~~(($71))&255); - $73 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$73>>0] = $72; - $74 = $62 & 31; - $75 = (+($74|0)); - $76 = $75 * 8.0; - $77 = (~~(($76))&255); - $78 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$78>>0] = $77; - $79 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$79>>0] = -1; - $80 = (($$0106) + 1)|0; - $$1 = $80; - break; - } - case 6: { - $81 = (($13) + ($$0106<<1)|0); - $82 = HEAP16[$81>>1]|0; - $83 = $82&65535; - $84 = $83 >>> 12; - $85 = (+($84|0)); - $86 = $85 * 17.0; - $87 = (~~(($86))&255); - $88 = (($7) + ($$0104105<<2)|0); - HEAP8[$88>>0] = $87; - $89 = $83 >>> 8; - $90 = $89 & 15; - $91 = (+($90|0)); - $92 = $91 * 17.0; - $93 = (~~(($92))&255); - $94 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$94>>0] = $93; - $95 = $83 >>> 4; - $96 = $95 & 15; - $97 = (+($96|0)); - $98 = $97 * 17.0; - $99 = (~~(($98))&255); - $100 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$100>>0] = $99; - $101 = $83 & 15; - $102 = (+($101|0)); - $103 = $102 * 17.0; - $104 = (~~(($103))&255); - $105 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$105>>0] = $104; - $106 = (($$0106) + 1)|0; - $$1 = $106; - break; - } - case 7: { - $107 = (($13) + ($$0106)|0); - $108 = HEAP8[$107>>0]|0; - $109 = (($7) + ($$0104105<<2)|0); - HEAP8[$109>>0] = $108; - $110 = (($$0106) + 1)|0; - $111 = (($13) + ($110)|0); - $112 = HEAP8[$111>>0]|0; - $113 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$113>>0] = $112; - $114 = (($$0106) + 2)|0; - $115 = (($13) + ($114)|0); - $116 = HEAP8[$115>>0]|0; - $117 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$117>>0] = $116; - $118 = (($$0106) + 3)|0; - $119 = (($13) + ($118)|0); - $120 = HEAP8[$119>>0]|0; - $121 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$121>>0] = $120; - $122 = (($$0106) + 4)|0; - $$1 = $122; - break; - } - case 4: { - $123 = (($13) + ($$0106)|0); - $124 = HEAP8[$123>>0]|0; - $125 = (($7) + ($$0104105<<2)|0); - HEAP8[$125>>0] = $124; - $126 = (($$0106) + 1)|0; - $127 = (($13) + ($126)|0); - $128 = HEAP8[$127>>0]|0; - $129 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$129>>0] = $128; - $130 = (($$0106) + 2)|0; - $131 = (($13) + ($130)|0); - $132 = HEAP8[$131>>0]|0; - $133 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$133>>0] = $132; - $134 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$134>>0] = -1; - $135 = (($$0106) + 3)|0; - $$1 = $135; - break; - } - default: { - _TraceLog(1,3999,$vararg_buffer); - $$1 = $$0106; - } - } - $136 = (($$0104105) + 1)|0; - $137 = HEAP32[$1>>2]|0; - $138 = HEAP32[$3>>2]|0; - $139 = Math_imul($138, $137)|0; - $140 = ($136|0)<($139|0); - if ($140) { - $$0104105 = $136;$$0106 = $$1; - } else { - break; - } - } - STACKTOP = sp;return ($7|0); -} -function _UnloadDefaultFont() { - var $$byval_copy = 0, $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $$byval_copy = sp; - ;HEAP32[$$byval_copy>>2]=HEAP32[14400>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[14400+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[14400+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[14400+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[14400+16>>2]|0; - _UnloadTexture($$byval_copy); - $0 = HEAP32[(14428)>>2]|0; - _free($0); - STACKTOP = sp;return; -} -function _UnloadTexture($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = HEAP32[$0>>2]|0; - $2 = ($1|0)==(0); - if ($2) { - STACKTOP = sp;return; - } - _rlDeleteTextures($1); - $3 = HEAP32[$0>>2]|0; - HEAP32[$vararg_buffer>>2] = $3; - _TraceLog(0,4045,$vararg_buffer); - STACKTOP = sp;return; -} -function _rlDeleteTextures($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - HEAP32[$1>>2] = $0; - $2 = ($0|0)==(0); - if (!($2)) { - _glDeleteTextures(1,($1|0)); - } - STACKTOP = sp;return; -} -function _rlEnableTexture($0) { - $0 = $0|0; - var $$pr = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[3664]|0; - $2 = HEAP32[3662]|0; - $3 = (($2) + -1)|0; - $4 = (((($1) + (($3*144)|0)|0)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = ($5|0)==($0|0); - if ($6) { - return; - } - $7 = (($1) + (($3*144)|0)|0); - $8 = HEAP32[$7>>2]|0; - $9 = ($8|0)>(0); - $10 = (($2) + 1)|0; - if ($9) { - HEAP32[3662] = $10; - $12 = $10; - } else { - $$pr = HEAP32[3662]|0; - $12 = $$pr; - } - $11 = ($12|0)>(255); - if ($11) { - _rlglDraw(); - HEAP32[3662] = 1; - } - $13 = HEAP32[3664]|0; - $14 = HEAP32[3662]|0; - $15 = (($14) + -1)|0; - $16 = (((($13) + (($15*144)|0)|0)) + 8|0); - HEAP32[$16>>2] = $0; - $17 = (($13) + (($15*144)|0)|0); - HEAP32[$17>>2] = 0; - return; -} -function _rlBegin($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - HEAP32[4110] = $0; - return; -} -function _rlColor4ub($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$sink37 = 0, $$sink38 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = HEAP32[4110]|0; - switch ($4|0) { - case 1: { - $$sink37 = (14668);$$sink38 = (14680); - break; - } - case 4: { - $$sink37 = (14716);$$sink38 = (14728); - break; - } - case 7: { - $$sink37 = (14476);$$sink38 = (14488); - break; - } - default: { - return; - } - } - $5 = HEAP32[$$sink38>>2]|0; - $6 = HEAP32[$$sink37>>2]|0; - $7 = $6 << 2; - $8 = (($5) + ($7)|0); - HEAP8[$8>>0] = $0; - $9 = HEAP32[$$sink38>>2]|0; - $10 = HEAP32[$$sink37>>2]|0; - $11 = $10 << 2; - $12 = $11 | 1; - $13 = (($9) + ($12)|0); - HEAP8[$13>>0] = $1; - $14 = HEAP32[$$sink38>>2]|0; - $15 = HEAP32[$$sink37>>2]|0; - $16 = $15 << 2; - $17 = $16 | 2; - $18 = (($14) + ($17)|0); - HEAP8[$18>>0] = $2; - $19 = HEAP32[$$sink38>>2]|0; - $20 = HEAP32[$$sink37>>2]|0; - $21 = $20 << 2; - $22 = $21 | 3; - $23 = (($19) + ($22)|0); - HEAP8[$23>>0] = $3; - $24 = HEAP32[$$sink37>>2]|0; - $25 = (($24) + 1)|0; - HEAP32[$$sink37>>2] = $25; - return; -} -function _rlNormal3f($0,$1,$2) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function _rlTexCoord2f($0,$1) { - $0 = +$0; - $1 = +$1; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP32[4110]|0; - $3 = ($2|0)==(7); - if (!($3)) { - return; - } - $4 = HEAP32[(14484)>>2]|0; - $5 = HEAP32[(14472)>>2]|0; - $6 = $5 << 1; - $7 = (($4) + ($6<<2)|0); - HEAPF32[$7>>2] = $0; - $8 = $6 | 1; - $9 = (($4) + ($8<<2)|0); - HEAPF32[$9>>2] = $1; - $10 = (($5) + 1)|0; - HEAP32[(14472)>>2] = $10; - return; -} -function _rlVertex2f($0,$1) { - $0 = +$0; - $1 = +$1; - var $2 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = +HEAPF32[740]; - _rlVertex3f($0,$1,$2); - return; -} -function _rlEnd() { - var $$03956 = 0, $$04052 = 0, $$04154 = 0, $$04248 = 0, $$04347 = 0, $$byval_copy = 0, $$promoted = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0; - var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0; - var $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0; - var $146 = 0, $147 = 0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond60 = 0, $exitcond63 = 0; - var $scevgep = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $$byval_copy = sp; - $0 = HEAP32[4107]|0; - $1 = ($0|0)==(0); - if (!($1)) { - $2 = HEAP32[4108]|0; - $3 = ($2|0)>(0); - if ($3) { - $$03956 = 0; - while(1) { - $6 = HEAP32[4109]|0; - $7 = (($6) + (($$03956*12)|0)|0); - $8 = HEAP32[4106]|0; - dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _Vector3Transform($7,$$byval_copy); - $9 = (($$03956) + 1)|0; - $5 = HEAP32[4108]|0; - $10 = ($9|0)<($5|0); - if ($10) { - $$03956 = $9; - } else { - break; - } - } - HEAP32[4107] = 0; - $4 = ($5|0)>(0); - if ($4) { - $$04154 = 0; - while(1) { - $11 = HEAP32[4109]|0; - $12 = (($11) + (($$04154*12)|0)|0); - $13 = +HEAPF32[$12>>2]; - $14 = (((($11) + (($$04154*12)|0)|0)) + 4|0); - $15 = +HEAPF32[$14>>2]; - $16 = (((($11) + (($$04154*12)|0)|0)) + 8|0); - $17 = +HEAPF32[$16>>2]; - _rlVertex3f($13,$15,$17); - $18 = (($$04154) + 1)|0; - $19 = HEAP32[4108]|0; - $20 = ($18|0)<($19|0); - if ($20) { - $$04154 = $18; - } else { - break; - } - } - } - } else { - HEAP32[4107] = 0; - } - HEAP32[4108] = 0; - } - $21 = HEAP32[4110]|0; - switch ($21|0) { - case 1: { - $22 = HEAP32[3665]|0; - $23 = HEAP32[(14668)>>2]|0; - $24 = ($22|0)==($23|0); - if ($24) { - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - } - $25 = (($22) - ($23))|0; - $26 = ($25|0)>(0); - if ($26) { - $$04347 = 0; - } else { - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - } - while(1) { - $27 = HEAP32[(14680)>>2]|0; - $28 = HEAP32[(14668)>>2]|0; - $29 = $28 << 2; - $30 = (($29) + -4)|0; - $31 = (($27) + ($30)|0); - $32 = HEAP8[$31>>0]|0; - $33 = (($27) + ($29)|0); - HEAP8[$33>>0] = $32; - $34 = HEAP32[(14680)>>2]|0; - $35 = HEAP32[(14668)>>2]|0; - $36 = $35 << 2; - $37 = (($36) + -3)|0; - $38 = (($34) + ($37)|0); - $39 = HEAP8[$38>>0]|0; - $40 = $36 | 1; - $41 = (($34) + ($40)|0); - HEAP8[$41>>0] = $39; - $42 = HEAP32[(14680)>>2]|0; - $43 = HEAP32[(14668)>>2]|0; - $44 = $43 << 2; - $45 = (($44) + -2)|0; - $46 = (($42) + ($45)|0); - $47 = HEAP8[$46>>0]|0; - $48 = $44 | 2; - $49 = (($42) + ($48)|0); - HEAP8[$49>>0] = $47; - $50 = HEAP32[(14680)>>2]|0; - $51 = HEAP32[(14668)>>2]|0; - $52 = $51 << 2; - $53 = (($52) + -1)|0; - $54 = (($50) + ($53)|0); - $55 = HEAP8[$54>>0]|0; - $56 = $52 | 3; - $57 = (($50) + ($56)|0); - HEAP8[$57>>0] = $55; - $58 = HEAP32[(14668)>>2]|0; - $59 = (($58) + 1)|0; - HEAP32[(14668)>>2] = $59; - $60 = (($$04347) + 1)|0; - $exitcond = ($60|0)==($25|0); - if ($exitcond) { - break; - } else { - $$04347 = $60; - } - } - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - break; - } - case 4: { - $61 = HEAP32[3677]|0; - $62 = HEAP32[(14716)>>2]|0; - $63 = ($61|0)==($62|0); - if ($63) { - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - } - $64 = (($61) - ($62))|0; - $65 = ($64|0)>(0); - if ($65) { - $$04248 = 0; - } else { - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - } - while(1) { - $66 = HEAP32[(14728)>>2]|0; - $67 = HEAP32[(14716)>>2]|0; - $68 = $67 << 2; - $69 = (($68) + -4)|0; - $70 = (($66) + ($69)|0); - $71 = HEAP8[$70>>0]|0; - $72 = (($66) + ($68)|0); - HEAP8[$72>>0] = $71; - $73 = HEAP32[(14728)>>2]|0; - $74 = HEAP32[(14716)>>2]|0; - $75 = $74 << 2; - $76 = (($75) + -3)|0; - $77 = (($73) + ($76)|0); - $78 = HEAP8[$77>>0]|0; - $79 = $75 | 1; - $80 = (($73) + ($79)|0); - HEAP8[$80>>0] = $78; - $81 = HEAP32[(14728)>>2]|0; - $82 = HEAP32[(14716)>>2]|0; - $83 = $82 << 2; - $84 = (($83) + -2)|0; - $85 = (($81) + ($84)|0); - $86 = HEAP8[$85>>0]|0; - $87 = $83 | 2; - $88 = (($81) + ($87)|0); - HEAP8[$88>>0] = $86; - $89 = HEAP32[(14728)>>2]|0; - $90 = HEAP32[(14716)>>2]|0; - $91 = $90 << 2; - $92 = (($91) + -1)|0; - $93 = (($89) + ($92)|0); - $94 = HEAP8[$93>>0]|0; - $95 = $91 | 3; - $96 = (($89) + ($95)|0); - HEAP8[$96>>0] = $94; - $97 = HEAP32[(14716)>>2]|0; - $98 = (($97) + 1)|0; - HEAP32[(14716)>>2] = $98; - $99 = (($$04248) + 1)|0; - $exitcond60 = ($99|0)==($64|0); - if ($exitcond60) { - break; - } else { - $$04248 = $99; - } - } - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - break; - } - case 7: { - $100 = HEAP32[3617]|0; - $101 = HEAP32[(14476)>>2]|0; - $102 = ($100|0)==($101|0); - if (!($102)) { - $103 = (($100) - ($101))|0; - $104 = ($103|0)>(0); - if ($104) { - $$04052 = 0; - while(1) { - $105 = HEAP32[(14488)>>2]|0; - $106 = HEAP32[(14476)>>2]|0; - $107 = $106 << 2; - $108 = (($107) + -4)|0; - $109 = (($105) + ($108)|0); - $110 = HEAP8[$109>>0]|0; - $111 = (($105) + ($107)|0); - HEAP8[$111>>0] = $110; - $112 = HEAP32[(14488)>>2]|0; - $113 = HEAP32[(14476)>>2]|0; - $114 = $113 << 2; - $115 = (($114) + -3)|0; - $116 = (($112) + ($115)|0); - $117 = HEAP8[$116>>0]|0; - $118 = $114 | 1; - $119 = (($112) + ($118)|0); - HEAP8[$119>>0] = $117; - $120 = HEAP32[(14488)>>2]|0; - $121 = HEAP32[(14476)>>2]|0; - $122 = $121 << 2; - $123 = (($122) + -2)|0; - $124 = (($120) + ($123)|0); - $125 = HEAP8[$124>>0]|0; - $126 = $122 | 2; - $127 = (($120) + ($126)|0); - HEAP8[$127>>0] = $125; - $128 = HEAP32[(14488)>>2]|0; - $129 = HEAP32[(14476)>>2]|0; - $130 = $129 << 2; - $131 = (($130) + -1)|0; - $132 = (($128) + ($131)|0); - $133 = HEAP8[$132>>0]|0; - $134 = $130 | 3; - $135 = (($128) + ($134)|0); - HEAP8[$135>>0] = $133; - $136 = HEAP32[(14476)>>2]|0; - $137 = (($136) + 1)|0; - HEAP32[(14476)>>2] = $137; - $138 = (($$04052) + 1)|0; - $exitcond63 = ($138|0)==($103|0); - if ($exitcond63) { - break; - } else { - $$04052 = $138; - } - } - } - } - $139 = HEAP32[3617]|0; - $140 = HEAP32[(14472)>>2]|0; - $141 = ($139|0)>($140|0); - if (!($141)) { - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - } - $142 = HEAP32[(14484)>>2]|0; - $$promoted = HEAP32[(14472)>>2]|0; - $143 = $$promoted << 1; - $scevgep = (($142) + ($143<<2)|0); - $144 = (($139) - ($140))|0; - $145 = $144 << 3; - _memset(($scevgep|0),0,($145|0))|0; - $146 = (($139) + ($$promoted))|0; - $147 = (($146) - ($140))|0; - HEAP32[(14472)>>2] = $147; - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - break; - } - default: { - $148 = +HEAPF32[740]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[740] = $149; - STACKTOP = sp;return; - } - } -} -function _rlDisableTexture() { - var $0 = 0, $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[3617]|0; - $1 = ($0|0)>(4095); - if (!($1)) { - return; - } - _rlglDraw(); - return; -} -function _rlglDraw() { - var label = 0, sp = 0; - sp = STACKTOP; - _UpdateBuffersDefault(); - _DrawBuffersDefault(); - return; -} -function _UpdateBuffersDefault() { - var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[3665]|0; - $1 = ($0|0)>(0); - if ($1) { - $2 = HEAP32[3722]|0; - $3 = ($2|0)==(0); - if (!($3)) { - $4 = HEAP32[3723]|0; - $5 = HEAP32[(14688)>>2]|0; - FUNCTION_TABLE_vi[$4 & 31]($5); - } - $6 = HEAP32[(14692)>>2]|0; - _glBindBuffer(34962,($6|0)); - $7 = HEAP32[3665]|0; - $8 = ($7*12)|0; - $9 = HEAP32[(14672)>>2]|0; - _glBufferSubData(34962,0,($8|0),($9|0)); - $10 = HEAP32[(14696)>>2]|0; - _glBindBuffer(34962,($10|0)); - $11 = HEAP32[(14668)>>2]|0; - $12 = $11 << 2; - $13 = HEAP32[(14680)>>2]|0; - _glBufferSubData(34962,0,($12|0),($13|0)); - } - $14 = HEAP32[3677]|0; - $15 = ($14|0)>(0); - if ($15) { - $16 = HEAP32[3722]|0; - $17 = ($16|0)==(0); - if (!($17)) { - $18 = HEAP32[3723]|0; - $19 = HEAP32[(14736)>>2]|0; - FUNCTION_TABLE_vi[$18 & 31]($19); - } - $20 = HEAP32[(14740)>>2]|0; - _glBindBuffer(34962,($20|0)); - $21 = HEAP32[3677]|0; - $22 = ($21*12)|0; - $23 = HEAP32[(14720)>>2]|0; - _glBufferSubData(34962,0,($22|0),($23|0)); - $24 = HEAP32[(14744)>>2]|0; - _glBindBuffer(34962,($24|0)); - $25 = HEAP32[(14716)>>2]|0; - $26 = $25 << 2; - $27 = HEAP32[(14728)>>2]|0; - _glBufferSubData(34962,0,($26|0),($27|0)); - } - $28 = HEAP32[3617]|0; - $29 = ($28|0)>(0); - if ($29) { - $30 = HEAP32[3722]|0; - $31 = ($30|0)==(0); - if (!($31)) { - $32 = HEAP32[3723]|0; - $33 = HEAP32[(14496)>>2]|0; - FUNCTION_TABLE_vi[$32 & 31]($33); - } - $34 = HEAP32[(14500)>>2]|0; - _glBindBuffer(34962,($34|0)); - $35 = HEAP32[3617]|0; - $36 = ($35*12)|0; - $37 = HEAP32[(14480)>>2]|0; - _glBufferSubData(34962,0,($36|0),($37|0)); - $38 = HEAP32[(14504)>>2]|0; - _glBindBuffer(34962,($38|0)); - $39 = HEAP32[3617]|0; - $40 = $39 << 3; - $41 = HEAP32[(14484)>>2]|0; - _glBufferSubData(34962,0,($40|0),($41|0)); - $42 = HEAP32[(14508)>>2]|0; - _glBindBuffer(34962,($42|0)); - $43 = HEAP32[3617]|0; - $44 = $43 << 2; - $45 = HEAP32[(14488)>>2]|0; - _glBufferSubData(34962,0,($44|0),($45|0)); - } - $46 = HEAP32[3722]|0; - $47 = ($46|0)==(0); - if ($47) { - return; - } - $48 = HEAP32[3723]|0; - FUNCTION_TABLE_vi[$48 & 31](0); - return; -} -function _DrawBuffersDefault() { - var $$ = 0, $$02830 = 0, $$02932 = 0, $$031 = 0, $$byval_copy2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; - var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; - var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; - var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; - var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0; - var $modelview$byval_copy = 0, $or$cond = 0, $or$cond3 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 320|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(320|0); - $$byval_copy2 = sp + 256|0; - $modelview$byval_copy = sp + 192|0; - $0 = sp + 128|0; - $1 = sp + 64|0; - $2 = sp; - dest=$0; src=14516; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$1; src=14580; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $3 = HEAP32[3661]|0; - $4 = ($3|0)!=(0); - $$ = $4 ? 2 : 1; - $$02932 = 0; - while(1) { - if ($4) { - dest=$modelview$byval_copy; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy2; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _SetStereoView($$02932,$modelview$byval_copy,$$byval_copy2); - } - $8 = HEAP32[3665]|0; - $9 = ($8|0)>(0); - $10 = HEAP32[3677]|0; - $11 = ($10|0)>(0); - $or$cond = $9 | $11; - $12 = HEAP32[3617]|0; - $13 = ($12|0)>(0); - $or$cond3 = $or$cond | $13; - if ($or$cond3) { - $14 = HEAP32[3689]|0; - _glUseProgram(($14|0)); - dest=$modelview$byval_copy; src=14580; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy2; src=14516; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($2,$modelview$byval_copy,$$byval_copy2); - $15 = HEAP32[(14784)>>2]|0; - dest=$$byval_copy2; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $16 = (_MatrixToFloat($$byval_copy2)|0); - _glUniformMatrix4fv(($15|0),1,0,($16|0)); - $17 = HEAP32[(14804)>>2]|0; - _glUniform4f(($17|0),1.0,1.0,1.0,1.0); - $18 = HEAP32[(14816)>>2]|0; - _glUniform1i(($18|0),0); - } - $19 = HEAP32[3665]|0; - $20 = ($19|0)>(0); - if ($20) { - _glActiveTexture(33984); - $21 = HEAP32[3663]|0; - _glBindTexture(3553,($21|0)); - $22 = HEAP32[3722]|0; - $23 = ($22|0)==(0); - if ($23) { - $26 = HEAP32[(14692)>>2]|0; - _glBindBuffer(34962,($26|0)); - $27 = HEAP32[(14760)>>2]|0; - _glVertexAttribPointer(($27|0),3,5126,0,0,(0|0)); - $28 = HEAP32[(14760)>>2]|0; - _glEnableVertexAttribArray(($28|0)); - $29 = HEAP32[(14696)>>2]|0; - _glBindBuffer(34962,($29|0)); - $30 = HEAP32[(14780)>>2]|0; - _glVertexAttribPointer(($30|0),4,5121,1,0,(0|0)); - $31 = HEAP32[(14780)>>2]|0; - _glEnableVertexAttribArray(($31|0)); - } else { - $24 = HEAP32[3723]|0; - $25 = HEAP32[(14688)>>2]|0; - FUNCTION_TABLE_vi[$24 & 31]($25); - } - $32 = HEAP32[3665]|0; - _glDrawArrays(1,0,($32|0)); - $33 = HEAP32[3722]|0; - $34 = ($33|0)==(0); - if ($34) { - _glBindBuffer(34962,0); - } - _glBindTexture(3553,0); - } - $35 = HEAP32[3677]|0; - $36 = ($35|0)>(0); - if ($36) { - _glActiveTexture(33984); - $37 = HEAP32[3663]|0; - _glBindTexture(3553,($37|0)); - $38 = HEAP32[3722]|0; - $39 = ($38|0)==(0); - if ($39) { - $42 = HEAP32[(14740)>>2]|0; - _glBindBuffer(34962,($42|0)); - $43 = HEAP32[(14760)>>2]|0; - _glVertexAttribPointer(($43|0),3,5126,0,0,(0|0)); - $44 = HEAP32[(14760)>>2]|0; - _glEnableVertexAttribArray(($44|0)); - $45 = HEAP32[(14744)>>2]|0; - _glBindBuffer(34962,($45|0)); - $46 = HEAP32[(14780)>>2]|0; - _glVertexAttribPointer(($46|0),4,5121,1,0,(0|0)); - $47 = HEAP32[(14780)>>2]|0; - _glEnableVertexAttribArray(($47|0)); - } else { - $40 = HEAP32[3723]|0; - $41 = HEAP32[(14736)>>2]|0; - FUNCTION_TABLE_vi[$40 & 31]($41); - } - $48 = HEAP32[3677]|0; - _glDrawArrays(4,0,($48|0)); - $49 = HEAP32[3722]|0; - $50 = ($49|0)==(0); - if ($50) { - _glBindBuffer(34962,0); - } - _glBindTexture(3553,0); - } - $51 = HEAP32[3617]|0; - $52 = ($51|0)>(0); - if ($52) { - $53 = HEAP32[3722]|0; - $54 = ($53|0)==(0); - if ($54) { - $57 = HEAP32[(14500)>>2]|0; - _glBindBuffer(34962,($57|0)); - $58 = HEAP32[(14760)>>2]|0; - _glVertexAttribPointer(($58|0),3,5126,0,0,(0|0)); - $59 = HEAP32[(14760)>>2]|0; - _glEnableVertexAttribArray(($59|0)); - $60 = HEAP32[(14504)>>2]|0; - _glBindBuffer(34962,($60|0)); - $61 = HEAP32[(14764)>>2]|0; - _glVertexAttribPointer(($61|0),2,5126,0,0,(0|0)); - $62 = HEAP32[(14764)>>2]|0; - _glEnableVertexAttribArray(($62|0)); - $63 = HEAP32[(14508)>>2]|0; - _glBindBuffer(34962,($63|0)); - $64 = HEAP32[(14780)>>2]|0; - _glVertexAttribPointer(($64|0),4,5121,1,0,(0|0)); - $65 = HEAP32[(14780)>>2]|0; - _glEnableVertexAttribArray(($65|0)); - $66 = HEAP32[(14512)>>2]|0; - _glBindBuffer(34963,($66|0)); - } else { - $55 = HEAP32[3723]|0; - $56 = HEAP32[(14496)>>2]|0; - FUNCTION_TABLE_vi[$55 & 31]($56); - } - $67 = HEAP32[3662]|0; - $68 = ($67|0)>(0); - if ($68) { - $$02830 = 0;$$031 = 0; - while(1) { - $71 = HEAP32[3664]|0; - $72 = (($71) + (($$031*144)|0)|0); - $73 = HEAP32[$72>>2]|0; - $74 = (($73|0) / 4)&-1; - $75 = ($74*6)|0; - _glActiveTexture(33984); - $76 = HEAP32[3664]|0; - $77 = (((($76) + (($$031*144)|0)|0)) + 8|0); - $78 = HEAP32[$77>>2]|0; - _glBindTexture(3553,($78|0)); - $79 = $$02830 << 1; - $80 = $79; - _glDrawElements(4,($75|0),5123,($80|0)); - $81 = HEAP32[3664]|0; - $82 = (($81) + (($$031*144)|0)|0); - $83 = HEAP32[$82>>2]|0; - $84 = (($83|0) / 4)&-1; - $85 = ($84*6)|0; - $86 = (($85) + ($$02830))|0; - $87 = (($$031) + 1)|0; - $88 = HEAP32[3662]|0; - $89 = ($87|0)<($88|0); - if ($89) { - $$02830 = $86;$$031 = $87; - } else { - break; - } - } - } - $69 = HEAP32[3722]|0; - $70 = ($69|0)==(0); - if ($70) { - _glBindBuffer(34962,0); - _glBindBuffer(34963,0); - } - _glBindTexture(3553,0); - } - $90 = HEAP32[3722]|0; - $91 = ($90|0)==(0); - if (!($91)) { - $92 = HEAP32[3723]|0; - FUNCTION_TABLE_vi[$92 & 31](0); - } - _glUseProgram(0); - $93 = (($$02932) + 1)|0; - $94 = ($93|0)<($$|0); - if ($94) { - $$02932 = $93; - } else { - break; - } - } - HEAP32[3662] = 1; - $5 = HEAP32[3663]|0; - $6 = HEAP32[3664]|0; - $7 = ((($6)) + 8|0); - HEAP32[$7>>2] = $5; - HEAP32[$6>>2] = 0; - HEAP32[3665] = 0; - HEAP32[(14668)>>2] = 0; - HEAP32[3677] = 0; - HEAP32[(14716)>>2] = 0; - HEAP32[3617] = 0; - HEAP32[(14472)>>2] = 0; - HEAP32[(14476)>>2] = 0; - HEAPF32[740] = -1.0; - dest=14516; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=14580; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _SetStereoView($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $$byval_copy3 = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy3 = sp + 192|0; - $$byval_copy = sp + 64|0; - $3 = sp; - $4 = sp + 128|0; - dest=$3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $5 = HEAP32[3740]|0; - $6 = Math_imul($5, $0)|0; - $7 = (($6|0) / 2)&-1; - $8 = (($5|0) / 2)&-1; - $9 = HEAP32[3741]|0; - _rlViewport($7,0,$8,$9); - $10 = (15272 + ($0<<6)|0); - dest=$$byval_copy; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy3; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($4,$$byval_copy,$$byval_copy3); - $11 = (15144 + ($0<<6)|0); - dest=$3; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _SetMatrixModelview($$byval_copy3); - dest=$$byval_copy3; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _SetMatrixProjection($$byval_copy3); - STACKTOP = sp;return; -} -function _MatrixMultiply($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0.0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0; - var $104 = 0.0, $105 = 0, $106 = 0.0, $107 = 0.0, $108 = 0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0; - var $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0; - var $140 = 0.0, $141 = 0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0; - var $159 = 0.0, $16 = 0.0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0; - var $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0; - var $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0; - var $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0; - var $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0; - var $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $3 = +HEAPF32[$1>>2]; - $4 = +HEAPF32[$2>>2]; - $5 = $3 * $4; - $6 = ((($1)) + 16|0); - $7 = +HEAPF32[$6>>2]; - $8 = ((($2)) + 4|0); - $9 = +HEAPF32[$8>>2]; - $10 = $7 * $9; - $11 = $5 + $10; - $12 = ((($1)) + 32|0); - $13 = +HEAPF32[$12>>2]; - $14 = ((($2)) + 8|0); - $15 = +HEAPF32[$14>>2]; - $16 = $13 * $15; - $17 = $11 + $16; - $18 = ((($1)) + 48|0); - $19 = +HEAPF32[$18>>2]; - $20 = ((($2)) + 12|0); - $21 = +HEAPF32[$20>>2]; - $22 = $19 * $21; - $23 = $17 + $22; - $24 = ((($2)) + 16|0); - $25 = +HEAPF32[$24>>2]; - $26 = $3 * $25; - $27 = ((($2)) + 20|0); - $28 = +HEAPF32[$27>>2]; - $29 = $7 * $28; - $30 = $26 + $29; - $31 = ((($2)) + 24|0); - $32 = +HEAPF32[$31>>2]; - $33 = $13 * $32; - $34 = $30 + $33; - $35 = ((($2)) + 28|0); - $36 = +HEAPF32[$35>>2]; - $37 = $19 * $36; - $38 = $34 + $37; - $39 = ((($2)) + 32|0); - $40 = +HEAPF32[$39>>2]; - $41 = $3 * $40; - $42 = ((($2)) + 36|0); - $43 = +HEAPF32[$42>>2]; - $44 = $7 * $43; - $45 = $41 + $44; - $46 = ((($2)) + 40|0); - $47 = +HEAPF32[$46>>2]; - $48 = $13 * $47; - $49 = $45 + $48; - $50 = ((($2)) + 44|0); - $51 = +HEAPF32[$50>>2]; - $52 = $19 * $51; - $53 = $49 + $52; - $54 = ((($2)) + 48|0); - $55 = +HEAPF32[$54>>2]; - $56 = $3 * $55; - $57 = ((($2)) + 52|0); - $58 = +HEAPF32[$57>>2]; - $59 = $7 * $58; - $60 = $56 + $59; - $61 = ((($2)) + 56|0); - $62 = +HEAPF32[$61>>2]; - $63 = $13 * $62; - $64 = $60 + $63; - $65 = ((($2)) + 60|0); - $66 = +HEAPF32[$65>>2]; - $67 = $19 * $66; - $68 = $64 + $67; - $69 = ((($1)) + 4|0); - $70 = +HEAPF32[$69>>2]; - $71 = $4 * $70; - $72 = ((($1)) + 20|0); - $73 = +HEAPF32[$72>>2]; - $74 = $9 * $73; - $75 = $71 + $74; - $76 = ((($1)) + 36|0); - $77 = +HEAPF32[$76>>2]; - $78 = $15 * $77; - $79 = $75 + $78; - $80 = ((($1)) + 52|0); - $81 = +HEAPF32[$80>>2]; - $82 = $21 * $81; - $83 = $79 + $82; - $84 = $25 * $70; - $85 = $28 * $73; - $86 = $84 + $85; - $87 = $32 * $77; - $88 = $86 + $87; - $89 = $36 * $81; - $90 = $88 + $89; - $91 = $40 * $70; - $92 = $43 * $73; - $93 = $91 + $92; - $94 = $47 * $77; - $95 = $93 + $94; - $96 = $51 * $81; - $97 = $95 + $96; - $98 = $55 * $70; - $99 = $58 * $73; - $100 = $98 + $99; - $101 = $62 * $77; - $102 = $100 + $101; - $103 = $66 * $81; - $104 = $102 + $103; - $105 = ((($1)) + 8|0); - $106 = +HEAPF32[$105>>2]; - $107 = $4 * $106; - $108 = ((($1)) + 24|0); - $109 = +HEAPF32[$108>>2]; - $110 = $9 * $109; - $111 = $107 + $110; - $112 = ((($1)) + 40|0); - $113 = +HEAPF32[$112>>2]; - $114 = $15 * $113; - $115 = $111 + $114; - $116 = ((($1)) + 56|0); - $117 = +HEAPF32[$116>>2]; - $118 = $21 * $117; - $119 = $115 + $118; - $120 = $25 * $106; - $121 = $28 * $109; - $122 = $120 + $121; - $123 = $32 * $113; - $124 = $122 + $123; - $125 = $36 * $117; - $126 = $124 + $125; - $127 = $40 * $106; - $128 = $43 * $109; - $129 = $127 + $128; - $130 = $47 * $113; - $131 = $129 + $130; - $132 = $51 * $117; - $133 = $131 + $132; - $134 = $55 * $106; - $135 = $58 * $109; - $136 = $134 + $135; - $137 = $62 * $113; - $138 = $136 + $137; - $139 = $66 * $117; - $140 = $138 + $139; - $141 = ((($1)) + 12|0); - $142 = +HEAPF32[$141>>2]; - $143 = $4 * $142; - $144 = ((($1)) + 28|0); - $145 = +HEAPF32[$144>>2]; - $146 = $9 * $145; - $147 = $143 + $146; - $148 = ((($1)) + 44|0); - $149 = +HEAPF32[$148>>2]; - $150 = $15 * $149; - $151 = $147 + $150; - $152 = ((($1)) + 60|0); - $153 = +HEAPF32[$152>>2]; - $154 = $21 * $153; - $155 = $151 + $154; - $156 = $25 * $142; - $157 = $28 * $145; - $158 = $156 + $157; - $159 = $32 * $149; - $160 = $158 + $159; - $161 = $36 * $153; - $162 = $160 + $161; - $163 = $40 * $142; - $164 = $43 * $145; - $165 = $163 + $164; - $166 = $47 * $149; - $167 = $165 + $166; - $168 = $51 * $153; - $169 = $167 + $168; - $170 = $55 * $142; - $171 = $58 * $145; - $172 = $170 + $171; - $173 = $62 * $149; - $174 = $172 + $173; - $175 = $66 * $153; - $176 = $174 + $175; - HEAPF32[$0>>2] = $23; - $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $83; - $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $119; - $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); - HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = $155; - $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); - HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $38; - $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); - HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $90; - $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); - HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $126; - $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); - HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = $162; - $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); - HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $53; - $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); - HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $97; - $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); - HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $133; - $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); - HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = $169; - $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); - HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $68; - $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); - HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $104; - $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); - HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $140; - $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); - HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = $176; - return; -} -function _MatrixToFloat($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - HEAP32[3724] = $1; - $2 = ((($0)) + 16|0); - $3 = HEAP32[$2>>2]|0; - HEAP32[(14900)>>2] = $3; - $4 = ((($0)) + 32|0); - $5 = HEAP32[$4>>2]|0; - HEAP32[(14904)>>2] = $5; - $6 = ((($0)) + 48|0); - $7 = HEAP32[$6>>2]|0; - HEAP32[(14908)>>2] = $7; - $8 = ((($0)) + 4|0); - $9 = HEAP32[$8>>2]|0; - HEAP32[(14912)>>2] = $9; - $10 = ((($0)) + 20|0); - $11 = HEAP32[$10>>2]|0; - HEAP32[(14916)>>2] = $11; - $12 = ((($0)) + 36|0); - $13 = HEAP32[$12>>2]|0; - HEAP32[(14920)>>2] = $13; - $14 = ((($0)) + 52|0); - $15 = HEAP32[$14>>2]|0; - HEAP32[(14924)>>2] = $15; - $16 = ((($0)) + 8|0); - $17 = HEAP32[$16>>2]|0; - HEAP32[(14928)>>2] = $17; - $18 = ((($0)) + 24|0); - $19 = HEAP32[$18>>2]|0; - HEAP32[(14932)>>2] = $19; - $20 = ((($0)) + 40|0); - $21 = HEAP32[$20>>2]|0; - HEAP32[(14936)>>2] = $21; - $22 = ((($0)) + 56|0); - $23 = HEAP32[$22>>2]|0; - HEAP32[(14940)>>2] = $23; - $24 = ((($0)) + 12|0); - $25 = HEAP32[$24>>2]|0; - HEAP32[(14944)>>2] = $25; - $26 = ((($0)) + 28|0); - $27 = HEAP32[$26>>2]|0; - HEAP32[(14948)>>2] = $27; - $28 = ((($0)) + 44|0); - $29 = HEAP32[$28>>2]|0; - HEAP32[(14952)>>2] = $29; - $30 = ((($0)) + 60|0); - $31 = HEAP32[$30>>2]|0; - HEAP32[(14956)>>2] = $31; - return (14896|0); -} -function _rlViewport($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var label = 0, sp = 0; - sp = STACKTOP; - _glViewport(($0|0),($1|0),($2|0),($3|0)); - return; -} -function _SetMatrixModelview($0) { - $0 = $0|0; - var dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - dest=14580; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - return; -} -function _SetMatrixProjection($0) { - $0 = $0|0; - var dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - dest=14516; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - return; -} -function _Vector3Transform($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0; - var $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0.0; - var $47 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = +HEAPF32[$0>>2]; - $3 = ((($0)) + 4|0); - $4 = +HEAPF32[$3>>2]; - $5 = ((($0)) + 8|0); - $6 = +HEAPF32[$5>>2]; - $7 = +HEAPF32[$1>>2]; - $8 = $2 * $7; - $9 = ((($1)) + 4|0); - $10 = +HEAPF32[$9>>2]; - $11 = $4 * $10; - $12 = $8 + $11; - $13 = ((($1)) + 8|0); - $14 = +HEAPF32[$13>>2]; - $15 = $6 * $14; - $16 = $12 + $15; - $17 = ((($1)) + 12|0); - $18 = +HEAPF32[$17>>2]; - $19 = $18 + $16; - HEAPF32[$0>>2] = $19; - $20 = ((($1)) + 16|0); - $21 = +HEAPF32[$20>>2]; - $22 = $2 * $21; - $23 = ((($1)) + 20|0); - $24 = +HEAPF32[$23>>2]; - $25 = $4 * $24; - $26 = $22 + $25; - $27 = ((($1)) + 24|0); - $28 = +HEAPF32[$27>>2]; - $29 = $6 * $28; - $30 = $26 + $29; - $31 = ((($1)) + 28|0); - $32 = +HEAPF32[$31>>2]; - $33 = $32 + $30; - HEAPF32[$3>>2] = $33; - $34 = ((($1)) + 32|0); - $35 = +HEAPF32[$34>>2]; - $36 = $2 * $35; - $37 = ((($1)) + 36|0); - $38 = +HEAPF32[$37>>2]; - $39 = $4 * $38; - $40 = $36 + $39; - $41 = ((($1)) + 40|0); - $42 = +HEAPF32[$41>>2]; - $43 = $6 * $42; - $44 = $40 + $43; - $45 = ((($1)) + 44|0); - $46 = +HEAPF32[$45>>2]; - $47 = $46 + $44; - HEAPF32[$5>>2] = $47; - return; -} -function _rlVertex3f($0,$1,$2) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $3 = HEAP32[4107]|0; - $4 = ($3|0)==(0); - if (!($4)) { - $5 = HEAP32[4109]|0; - $6 = HEAP32[4108]|0; - $7 = (($5) + (($6*12)|0)|0); - HEAPF32[$7>>2] = $0; - $8 = (((($5) + (($6*12)|0)|0)) + 4|0); - HEAPF32[$8>>2] = $1; - $9 = (((($5) + (($6*12)|0)|0)) + 8|0); - HEAPF32[$9>>2] = $2; - $10 = (($6) + 1)|0; - HEAP32[4108] = $10; - STACKTOP = sp;return; - } - $11 = HEAP32[4110]|0; - switch ($11|0) { - case 1: { - $12 = HEAP32[3665]|0; - $13 = ($12|0)<(2048); - if ($13) { - $14 = HEAP32[(14672)>>2]|0; - $15 = ($12*3)|0; - $16 = (($14) + ($15<<2)|0); - HEAPF32[$16>>2] = $0; - $17 = (($15) + 1)|0; - $18 = (($14) + ($17<<2)|0); - HEAPF32[$18>>2] = $1; - $19 = (($15) + 2)|0; - $20 = (($14) + ($19<<2)|0); - HEAPF32[$20>>2] = $2; - $21 = (($12) + 1)|0; - HEAP32[3665] = $21; - STACKTOP = sp;return; - } else { - _TraceLog(2,4095,$vararg_buffer); - STACKTOP = sp;return; - } - break; - } - case 4: { - $22 = HEAP32[3677]|0; - $23 = ($22|0)<(6144); - if ($23) { - $24 = HEAP32[(14720)>>2]|0; - $25 = ($22*3)|0; - $26 = (($24) + ($25<<2)|0); - HEAPF32[$26>>2] = $0; - $27 = (($25) + 1)|0; - $28 = (($24) + ($27<<2)|0); - HEAPF32[$28>>2] = $1; - $29 = (($25) + 2)|0; - $30 = (($24) + ($29<<2)|0); - HEAPF32[$30>>2] = $2; - $31 = (($22) + 1)|0; - HEAP32[3677] = $31; - STACKTOP = sp;return; - } else { - _TraceLog(2,4120,$vararg_buffer1); - STACKTOP = sp;return; - } - break; - } - case 7: { - $32 = HEAP32[3617]|0; - $33 = ($32|0)<(4096); - if ($33) { - $34 = HEAP32[(14480)>>2]|0; - $35 = ($32*3)|0; - $36 = (($34) + ($35<<2)|0); - HEAPF32[$36>>2] = $0; - $37 = (($35) + 1)|0; - $38 = (($34) + ($37<<2)|0); - HEAPF32[$38>>2] = $1; - $39 = (($35) + 2)|0; - $40 = (($34) + ($39<<2)|0); - HEAPF32[$40>>2] = $2; - $41 = (($32) + 1)|0; - HEAP32[3617] = $41; - $42 = HEAP32[3664]|0; - $43 = HEAP32[3662]|0; - $44 = (($43) + -1)|0; - $45 = (($42) + (($44*144)|0)|0); - $46 = HEAP32[$45>>2]|0; - $47 = (($46) + 1)|0; - HEAP32[$45>>2] = $47; - STACKTOP = sp;return; - } else { - _TraceLog(2,4149,$vararg_buffer3); - STACKTOP = sp;return; - } - break; - } - default: { - STACKTOP = sp;return; - } - } -} -function _MatrixIdentity($0) { - $0 = $0|0; - var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF32[$0>>2] = 1.0; - $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); - ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; - $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); - HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = 1.0; - $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); - ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; - $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); - HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = 1.0; - $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); - ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; - $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); - HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; - return; -} -function _rlLoadIdentity() { - var $0 = 0, $1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $0 = sp; - $1 = HEAP32[4106]|0; - _MatrixIdentity($0); - dest=$1; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _rlGetVersion() { - var label = 0, sp = 0; - sp = STACKTOP; - return 4; -} -function _MatrixScale($0,$1,$2,$3) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF32[$0>>2] = $1; - $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); - ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; - $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); - HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = $2; - $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); - ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; - $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); - HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = $3; - $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); - ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; - $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); - HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; - return; -} -function _GetTextureDefault($0) { - $0 = $0|0; - var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[3663]|0; - HEAP32[$0>>2] = $1; - $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); - HEAP32[$$sroa$4$0$$sroa_idx2>>2] = 1; - $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); - HEAP32[$$sroa$5$0$$sroa_idx4>>2] = 1; - $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); - HEAP32[$$sroa$6$0$$sroa_idx6>>2] = 1; - $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); - HEAP32[$$sroa$7$0$$sroa_idx8>>2] = 7; - return; -} -function _rlVertex2i($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0.0, $3 = 0.0, $4 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (+($0|0)); - $3 = (+($1|0)); - $4 = +HEAPF32[740]; - _rlVertex3f($2,$3,$4); - return; -} -function _DrawRectangle($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $$byval_copy2 = sp + 32|0; - $$byval_copy1 = sp + 24|0; - $$byval_copy = sp + 16|0; - $5 = sp + 8|0; - $6 = sp; - $7 = (+($0|0)); - HEAPF32[$5>>2] = $7; - $8 = ((($5)) + 4|0); - $9 = (+($1|0)); - HEAPF32[$8>>2] = $9; - $10 = (+($2|0)); - HEAPF32[$6>>2] = $10; - $11 = ((($6)) + 4|0); - $12 = (+($3|0)); - HEAPF32[$11>>2] = $12; - ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$5+4>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$6+4>>2]|0; - ;HEAP8[$$byval_copy2>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$4+3>>0]|0; - _DrawRectangleV($$byval_copy,$$byval_copy1,$$byval_copy2); - STACKTOP = sp;return; -} -function _DrawRectangleV($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0; - var $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0.0, $36 = 0, $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0, $64 = 0.0, $65 = 0.0; - var $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $3 = sp; - $4 = (_rlGetVersion()|0); - $5 = ($4|0)==(1); - if ($5) { - _rlBegin(4); - $6 = HEAP8[$2>>0]|0; - $7 = ((($2)) + 1|0); - $8 = HEAP8[$7>>0]|0; - $9 = ((($2)) + 2|0); - $10 = HEAP8[$9>>0]|0; - $11 = ((($2)) + 3|0); - $12 = HEAP8[$11>>0]|0; - _rlColor4ub($6,$8,$10,$12); - $13 = +HEAPF32[$0>>2]; - $14 = (~~(($13))); - $15 = ((($0)) + 4|0); - $16 = +HEAPF32[$15>>2]; - $17 = (~~(($16))); - _rlVertex2i($14,$17); - $18 = ((($1)) + 4|0); - $19 = +HEAPF32[$18>>2]; - $20 = $16 + $19; - $21 = (~~(($20))); - _rlVertex2i($14,$21); - $22 = +HEAPF32[$0>>2]; - $23 = +HEAPF32[$1>>2]; - $24 = $22 + $23; - $25 = (~~(($24))); - $26 = +HEAPF32[$15>>2]; - $27 = +HEAPF32[$18>>2]; - $28 = $26 + $27; - $29 = (~~(($28))); - _rlVertex2i($25,$29); - $30 = +HEAPF32[$0>>2]; - $31 = (~~(($30))); - $32 = +HEAPF32[$15>>2]; - $33 = (~~(($32))); - _rlVertex2i($31,$33); - $34 = +HEAPF32[$1>>2]; - $35 = $30 + $34; - $36 = (~~(($35))); - $37 = +HEAPF32[$18>>2]; - $38 = $32 + $37; - $39 = (~~(($38))); - _rlVertex2i($36,$39); - $40 = +HEAPF32[$0>>2]; - $41 = +HEAPF32[$1>>2]; - $42 = $40 + $41; - $43 = (~~(($42))); - $44 = +HEAPF32[$15>>2]; - $45 = (~~(($44))); - _rlVertex2i($43,$45); - _rlEnd(); - STACKTOP = sp;return; - } - $46 = (_rlGetVersion()|0); - $47 = ($46|0)==(2); - if (!($47)) { - $48 = (_rlGetVersion()|0); - $49 = ($48|0)==(3); - if (!($49)) { - $50 = (_rlGetVersion()|0); - $51 = ($50|0)==(4); - if (!($51)) { - STACKTOP = sp;return; - } - } - } - _GetTextureDefault($3); - $52 = HEAP32[$3>>2]|0; - _rlEnableTexture($52); - _rlBegin(7); - $53 = HEAP8[$2>>0]|0; - $54 = ((($2)) + 1|0); - $55 = HEAP8[$54>>0]|0; - $56 = ((($2)) + 2|0); - $57 = HEAP8[$56>>0]|0; - $58 = ((($2)) + 3|0); - $59 = HEAP8[$58>>0]|0; - _rlColor4ub($53,$55,$57,$59); - _rlTexCoord2f(0.0,0.0); - $60 = +HEAPF32[$0>>2]; - $61 = ((($0)) + 4|0); - $62 = +HEAPF32[$61>>2]; - _rlVertex2f($60,$62); - _rlTexCoord2f(0.0,1.0); - $63 = ((($1)) + 4|0); - $64 = +HEAPF32[$63>>2]; - $65 = $62 + $64; - _rlVertex2f($60,$65); - _rlTexCoord2f(1.0,1.0); - $66 = +HEAPF32[$0>>2]; - $67 = +HEAPF32[$1>>2]; - $68 = $66 + $67; - $69 = +HEAPF32[$61>>2]; - $70 = +HEAPF32[$63>>2]; - $71 = $69 + $70; - _rlVertex2f($68,$71); - _rlTexCoord2f(1.0,0.0); - $72 = +HEAPF32[$0>>2]; - $73 = +HEAPF32[$1>>2]; - $74 = $72 + $73; - $75 = +HEAPF32[$61>>2]; - _rlVertex2f($74,$75); - _rlEnd(); - _rlDisableTexture(); - STACKTOP = sp;return; -} -function _DrawRectangleRec($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp; - $2 = HEAP32[$0>>2]|0; - $3 = ((($0)) + 4|0); - $4 = HEAP32[$3>>2]|0; - $5 = ((($0)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = ((($0)) + 12|0); - $8 = HEAP32[$7>>2]|0; - ;HEAP8[$$byval_copy>>0]=HEAP8[$1>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$1+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$1+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$1+3>>0]|0; - _DrawRectangle($2,$4,$6,$8,$$byval_copy); - STACKTOP = sp;return; -} -function _CheckCollisionPointRec($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0.0, $20 = 0.0, $21 = 0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = +HEAPF32[$0>>2]; - $3 = HEAP32[$1>>2]|0; - $4 = (+($3|0)); - $5 = !($2 >= $4); - if ($5) { - $$0 = 0; - return ($$0|0); - } - $6 = ((($1)) + 8|0); - $7 = HEAP32[$6>>2]|0; - $8 = (($7) + ($3))|0; - $9 = (+($8|0)); - $10 = !($2 <= $9); - if ($10) { - $$0 = 0; - return ($$0|0); - } - $11 = ((($0)) + 4|0); - $12 = +HEAPF32[$11>>2]; - $13 = ((($1)) + 4|0); - $14 = HEAP32[$13>>2]|0; - $15 = (+($14|0)); - $16 = !($12 >= $15); - if ($16) { - $$0 = 0; - return ($$0|0); - } - $17 = ((($1)) + 12|0); - $18 = HEAP32[$17>>2]|0; - $19 = (($18) + ($14))|0; - $20 = (+($19|0)); - $21 = !($12 <= $20); - if ($21) { - $$0 = 0; - return ($$0|0); - } - $$0 = 1; - return ($$0|0); -} -function _Vector2Distance($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = +HEAPF32[$0>>2]; - $3 = +HEAPF32[$1>>2]; - $4 = $2 - $3; - $5 = $4 * $4; - $6 = ((($0)) + 4|0); - $7 = +HEAPF32[$6>>2]; - $8 = ((($1)) + 4|0); - $9 = +HEAPF32[$8>>2]; - $10 = $7 - $9; - $11 = $10 * $10; - $12 = $5 + $11; - $13 = (+Math_sqrt((+$12))); - return (+$13); -} -function _Vector2Angle($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($1)) + 4|0); - $3 = +HEAPF32[$2>>2]; - $4 = ((($0)) + 4|0); - $5 = +HEAPF32[$4>>2]; - $6 = $3 - $5; - $7 = +HEAPF32[$1>>2]; - $8 = +HEAPF32[$0>>2]; - $9 = $7 - $8; - $10 = (+Math_atan2((+$6),(+$9))); - $11 = $10 * 57.2957763671875; - $12 = $11 < 0.0; - $13 = $11 + 360.0; - $$0 = $12 ? $13 : $11; - return (+$$0); -} -function _Vector3Zero($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF32[$0>>2] = 0.0; - $1 = ((($0)) + 4|0); - HEAPF32[$1>>2] = 0.0; - $2 = ((($0)) + 8|0); - HEAPF32[$2>>2] = 0.0; - return; -} -function _MatrixOrtho($0,$1,$2,$3,$4,$5,$6) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - $4 = +$4; - $5 = +$5; - $6 = +$6; - var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; - var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0; - var sp = 0; - sp = STACKTOP; - $7 = $2 - $1; - $8 = $7; - $9 = $4 - $3; - $10 = $9; - $11 = $6 - $5; - $12 = $11; - $13 = 2.0 / $8; - $14 = 2.0 / $10; - $15 = -2.0 / $12; - $16 = $1 + $2; - $17 = -$16; - $18 = $8; - $19 = $17 / $18; - $20 = $19; - $21 = $3 + $4; - $22 = -$21; - $23 = $10; - $24 = $22 / $23; - $25 = $24; - $26 = $5 + $6; - $27 = -$26; - $28 = $12; - $29 = $27 / $28; - $30 = $29; - HEAPF32[$0>>2] = $13; - $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; - $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = 0.0; - $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); - HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = $20; - $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); - HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; - $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); - HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $14; - $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); - HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = 0.0; - $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); - HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = $25; - $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); - HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; - $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); - HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; - $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); - HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $15; - $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); - HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $30; - $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); - HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; - $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); - HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; - $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); - HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = 0.0; - $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); - HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 1.0; - return; -} -function _ProcessGestureEvent($0) { - $0 = $0|0; - var $$$sink = 0, $$sink = 0, $$sink10 = 0, $$sink11 = 0, $$sink16 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0.0, $111 = 0.0; - var $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; - var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; - var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0; - var $167 = 0.0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0.0, $174 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0; - var $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $moveDownPosition$byval_copy11 = 0; - var $moveDownPosition2$byval_copy12 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $moveDownPosition2$byval_copy12 = sp + 8|0; - $moveDownPosition$byval_copy11 = sp; - $1 = ((($0)) + 4|0); - $2 = HEAP32[$1>>2]|0; - HEAP32[4148] = $2; - $3 = ($2|0)<(2); - $4 = HEAP32[$0>>2]|0; - $5 = ($4|0)==(1); - if (!($3)) { - if ($5) { - $88 = ((($0)) + 24|0); - $89 = $88; - $90 = $89; - $91 = HEAP32[$90>>2]|0; - $92 = (($89) + 4)|0; - $93 = $92; - $94 = HEAP32[$93>>2]|0; - $95 = 13832; - $96 = $95; - HEAP32[$96>>2] = $91; - $97 = (($95) + 4)|0; - $98 = $97; - HEAP32[$98>>2] = $94; - $99 = ((($0)) + 32|0); - $100 = $99; - $101 = $100; - $102 = HEAP32[$101>>2]|0; - $103 = (($100) + 4)|0; - $104 = $103; - $105 = HEAP32[$104>>2]|0; - $106 = 13872; - $107 = $106; - HEAP32[$107>>2] = $102; - $108 = (($106) + 4)|0; - $109 = $108; - HEAP32[$109>>2] = $105; - $110 = +HEAPF32[3468]; - $111 = +HEAPF32[3458]; - $112 = $110 - $111; - HEAPF32[3470] = $112; - $113 = +HEAPF32[(13876)>>2]; - $114 = +HEAPF32[(13836)>>2]; - $115 = $113 - $114; - HEAPF32[(13884)>>2] = $115; - HEAP32[4147] = 4; - STACKTOP = sp;return; - } - switch ($4|0) { - case 2: { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13864>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13864+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13888>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13888+4>>2]|0; - $116 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - HEAPF32[4153] = $116; - $117 = 13864; - $118 = $117; - $119 = HEAP32[$118>>2]|0; - $120 = (($117) + 4)|0; - $121 = $120; - $122 = HEAP32[$121>>2]|0; - $123 = 13832; - $124 = $123; - HEAP32[$124>>2] = $119; - $125 = (($123) + 4)|0; - $126 = $125; - HEAP32[$126>>2] = $122; - $127 = 13888; - $128 = $127; - $129 = HEAP32[$128>>2]|0; - $130 = (($127) + 4)|0; - $131 = $130; - $132 = HEAP32[$131>>2]|0; - $133 = 13872; - $134 = $133; - HEAP32[$134>>2] = $129; - $135 = (($133) + 4)|0; - $136 = $135; - HEAP32[$136>>2] = $132; - $137 = ((($0)) + 24|0); - $138 = $137; - $139 = $138; - $140 = HEAP32[$139>>2]|0; - $141 = (($138) + 4)|0; - $142 = $141; - $143 = HEAP32[$142>>2]|0; - $144 = 13864; - $145 = $144; - HEAP32[$145>>2] = $140; - $146 = (($144) + 4)|0; - $147 = $146; - HEAP32[$147>>2] = $143; - $148 = ((($0)) + 32|0); - $149 = $148; - $150 = $149; - $151 = HEAP32[$150>>2]|0; - $152 = (($149) + 4)|0; - $153 = $152; - $154 = HEAP32[$153>>2]|0; - $155 = 13888; - $156 = $155; - HEAP32[$156>>2] = $151; - $157 = (($155) + 4)|0; - $158 = $157; - HEAP32[$158>>2] = $154; - $159 = +HEAPF32[3472]; - $160 = +HEAPF32[3466]; - $161 = $159 - $160; - HEAPF32[3470] = $161; - $162 = +HEAPF32[(13892)>>2]; - $163 = +HEAPF32[(13868)>>2]; - $164 = $162 - $163; - HEAPF32[(13884)>>2] = $164; - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13832>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13832+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13864>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13864+4>>2]|0; - $165 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $166 = !($165 >= 0.004999999888241291); - if ($166) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13872>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13872+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13888>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13888+4>>2]|0; - $167 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $168 = !($167 >= 0.004999999888241291); - if ($168) { - $$sink16 = 4; - } else { - label = 29; - } - } else { - label = 29; - } - if ((label|0) == 29) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13864>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13864+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13888>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13888+4>>2]|0; - $169 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $170 = +HEAPF32[4153]; - $171 = $169 - $170; - $172 = $171 < 0.0; - $$sink11 = $172 ? 256 : 512; - $$sink16 = $$sink11; - } - HEAP32[4147] = $$sink16; - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13864>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13864+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13888>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13888+4>>2]|0; - $173 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $174 = 360.0 - $173; - HEAPF32[4154] = $174; - STACKTOP = sp;return; - break; - } - case 0: { - HEAPF32[4153] = 0.0; - HEAPF32[4154] = 0.0; - HEAPF32[3470] = 0.0; - HEAPF32[(13884)>>2] = 0.0; - HEAP32[4148] = 0; - HEAP32[4147] = 0; - STACKTOP = sp;return; - break; - } - default: { - STACKTOP = sp;return; - } - } - } - if ($5) { - $6 = HEAP32[4149]|0; - $7 = (($6) + 1)|0; - HEAP32[4149] = $7; - $8 = HEAP32[4147]|0; - $9 = ($8|0)==(0); - $10 = ($6|0)>(0); - $or$cond = $10 & $9; - if ($or$cond) { - $11 = ((($0)) + 24|0); - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13832>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13832+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[$11>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[$11+4>>2]|0; - $12 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $13 = $12 < 0.029999999329447746; - if ($13) { - HEAP32[4147] = 2; - HEAP32[4149] = 0; - } else { - label = 6; - } - } else { - label = 6; - } - if ((label|0) == 6) { - HEAP32[4149] = 1; - HEAP32[4147] = 1; - } - $14 = ((($0)) + 24|0); - $15 = $14; - $16 = $15; - $17 = HEAP32[$16>>2]|0; - $18 = (($15) + 4)|0; - $19 = $18; - $20 = HEAP32[$19>>2]|0; - $21 = 13832; - $22 = $21; - HEAP32[$22>>2] = $17; - $23 = (($21) + 4)|0; - $24 = $23; - HEAP32[$24>>2] = $20; - $25 = 13840; - $26 = $25; - HEAP32[$26>>2] = $17; - $27 = (($25) + 4)|0; - $28 = $27; - HEAP32[$28>>2] = $20; - $29 = 13848; - $30 = $29; - HEAP32[$30>>2] = $17; - $31 = (($29) + 4)|0; - $32 = $31; - HEAP32[$32>>2] = $20; - $33 = ((($0)) + 8|0); - $34 = HEAP32[$33>>2]|0; - HEAP32[741] = $34; - HEAPF32[3464] = 0.0; - HEAPF32[(13860)>>2] = 0.0; - STACKTOP = sp;return; - } - switch ($4|0) { - case 0: { - $35 = HEAP32[4147]|0; - $36 = ($35|0)==(8); - if ($36) { - $37 = ((($0)) + 24|0); - $38 = $37; - $39 = $38; - $40 = HEAP32[$39>>2]|0; - $41 = (($38) + 4)|0; - $42 = $41; - $43 = HEAP32[$42>>2]|0; - $44 = 13848; - $45 = $44; - HEAP32[$45>>2] = $40; - $46 = (($44) + 4)|0; - $47 = $46; - HEAP32[$47>>2] = $43; - } - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13832>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13832+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13848>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13848+4>>2]|0; - $48 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $49 = $48 / 0.0; - HEAPF32[4150] = $49; - HEAP32[4151] = 0; - $50 = $49 > 5.0000002374872565E-4; - if ($50) { - $51 = HEAP32[741]|0; - $52 = ((($0)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ($51|0)==($53|0); - if ($54) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13832>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13832+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13848>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13848+4>>2]|0; - $55 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $56 = 360.0 - $55; - HEAPF32[4152] = $56; - $57 = $56 < 30.0; - $58 = $56 > 330.0; - $or$cond3 = $57 | $58; - if ($or$cond3) { - $$sink10 = 16; - } else { - $59 = $56 > 30.0; - $60 = $56 < 120.0; - $or$cond5 = $59 & $60; - if ($or$cond5) { - $$sink10 = 64; - } else { - $61 = $56 > 120.0; - $62 = $56 < 210.0; - $or$cond7 = $61 & $62; - $63 = $56 > 210.0; - $64 = $56 < 300.0; - $or$cond9 = $63 & $64; - $$sink = $or$cond9 ? 128 : 0; - $$$sink = $or$cond7 ? 32 : $$sink; - $$sink10 = $$$sink; - } - } - } else { - label = 16; - } - } else { - label = 16; - } - if ((label|0) == 16) { - HEAPF32[4150] = 0.0; - HEAPF32[4152] = 0.0; - $$sink10 = 0; - } - HEAP32[4147] = $$sink10; - HEAPF32[3460] = 0.0; - HEAPF32[(13844)>>2] = 0.0; - HEAP32[4148] = 0; - STACKTOP = sp;return; - break; - } - case 2: { - $65 = HEAP32[4151]|0; - $66 = ($65|0)==(0); - if ($66) { - HEAP32[4151] = 1; - } - $67 = ((($0)) + 24|0); - $68 = $67; - $69 = $68; - $70 = HEAP32[$69>>2]|0; - $71 = (($68) + 4)|0; - $72 = $71; - $73 = HEAP32[$72>>2]|0; - $74 = 13864; - $75 = $74; - HEAP32[$75>>2] = $70; - $76 = (($74) + 4)|0; - $77 = $76; - HEAP32[$77>>2] = $73; - $78 = HEAP32[4147]|0; - $79 = ($78|0)==(4); - if ($79) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13832>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13832+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13864>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13864+4>>2]|0; - $80 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $81 = !($80 >= 0.014999999664723873); - if (!($81)) { - HEAP32[4147] = 8; - } - } - $82 = +HEAPF32[3466]; - $83 = +HEAPF32[3460]; - $84 = $82 - $83; - HEAPF32[3464] = $84; - $85 = +HEAPF32[(13868)>>2]; - $86 = +HEAPF32[(13844)>>2]; - $87 = $85 - $86; - HEAPF32[(13860)>>2] = $87; - STACKTOP = sp;return; - break; - } - default: { - STACKTOP = sp;return; - } - } -} -function _UpdateGestures() { - var $$off = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4147]|0; - $$off = (($0) + -1)|0; - $1 = ($$off>>>0)<(2); - $2 = HEAP32[4148]|0; - $3 = ($2|0)<(2); - $or$cond3 = $1 & $3; - if ($or$cond3) { - HEAP32[4147] = 4; - } - $4 = HEAP32[4147]|0; - $5 = (($4) + -16)|0; - $6 = $5 >>> 4; - $7 = $5 << 28; - $8 = $6 | $7; - switch ($8|0) { - case 0: case 1: case 3: case 7: { - break; - } - default: { - return; - } - } - HEAP32[4147] = 0; - return; -} -function _GetMousePosition($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = 13896; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - $4 = (($1) + 4)|0; - $5 = $4; - $6 = HEAP32[$5>>2]|0; - $7 = $0; - $8 = $7; - HEAP32[$8>>2] = $3; - $9 = (($7) + 4)|0; - $10 = $9; - HEAP32[$10>>2] = $6; - return; -} -function _InitWindow($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - _TraceLog(0,4174,$vararg_buffer); - HEAP32[4158] = $2; - _InitGraphicsDevice($0,$1); - _LoadDefaultFont(); - _InitTimer(); - (_emscripten_set_fullscreenchange_callback((0|0),(0|0),1,(3|0))|0); - (_emscripten_set_keypress_callback((4203|0),(0|0),1,(4|0))|0); - (_emscripten_set_click_callback((4203|0),(0|0),1,(5|0))|0); - (_emscripten_set_touchstart_callback((4203|0),(0|0),1,(6|0))|0); - (_emscripten_set_touchend_callback((4203|0),(0|0),1,(6|0))|0); - (_emscripten_set_touchmove_callback((4203|0),(0|0),1,(6|0))|0); - (_emscripten_set_touchcancel_callback((4203|0),(0|0),1,(6|0))|0); - (_emscripten_set_gamepadconnected_callback((0|0),1,(7|0))|0); - (_emscripten_set_gamepaddisconnected_callback((0|0),1,(7|0))|0); - $3 = HEAP32[4159]|0; - $4 = (+($3|0)); - $5 = $4 * 0.5; - HEAPF32[3474] = $5; - $6 = HEAP32[4160]|0; - $7 = (+($6|0)); - $8 = $7 * 0.5; - HEAPF32[(13900)>>2] = $8; - $9 = HEAP32[4161]|0; - $10 = ($9|0)==(0); - if ($10) { - STACKTOP = sp;return; - } - _SetTargetFPS(60); - _LogoAnimation(); - STACKTOP = sp;return; -} -function _InitGraphicsDevice($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$015 = 0, $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0.0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer18 = 0, $vararg_buffer22 = 0, $vararg_buffer3 = 0, $vararg_buffer6 = 0, $vararg_buffer8 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr21 = 0, $vararg_ptr5 = 0, dest = 0; - var label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $vararg_buffer22 = sp + 64|0; - $vararg_buffer18 = sp + 56|0; - $vararg_buffer14 = sp + 48|0; - $vararg_buffer10 = sp + 40|0; - $vararg_buffer8 = sp + 32|0; - $vararg_buffer6 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 72|0; - $3 = sp + 140|0; - HEAP32[4159] = $0; - HEAP32[4160] = $1; - _MatrixIdentity($2); - dest=16664; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - (_glfwSetErrorCallback((1|0))|0); - $4 = (_glfwInit()|0); - $5 = ($4|0)==(0); - if ($5) { - _TraceLog(2,4398,$vararg_buffer); - } - $6 = HEAP32[4159]|0; - HEAP32[4182] = $6; - $7 = HEAP32[4160]|0; - HEAP32[4183] = $7; - _glfwDefaultWindowHints(); - $8 = HEAP8[17476]|0; - $9 = $8 & 4; - $10 = ($9<<24>>24)==(0); - if ($10) { - _glfwWindowHint(131075,0); - } else { - _glfwWindowHint(131075,1); - } - $11 = HEAP8[17476]|0; - $12 = $11 & 8; - $13 = ($12<<24>>24)==(0); - if (!($13)) { - _glfwWindowHint(131077,1); - } - $14 = HEAP8[17476]|0; - $15 = $14 & 32; - $16 = ($15<<24>>24)==(0); - if (!($16)) { - _glfwWindowHint(135181,4); - _TraceLog(0,4424,$vararg_buffer1); - } - $17 = (_rlGetVersion()|0); - $18 = ($17|0)==(2); - if ($18) { - _glfwWindowHint(139266,2); - _glfwWindowHint(139267,1); - } else { - $19 = (_rlGetVersion()|0); - $20 = ($19|0)==(3); - if ($20) { - _glfwWindowHint(139266,3); - _glfwWindowHint(139267,3); - _glfwWindowHint(139272,204801); - _glfwWindowHint(139270,0); - } - } - $21 = HEAP32[4184]|0; - $22 = ($21|0)==(0); - if ($22) { - $47 = HEAP32[4159]|0; - $48 = HEAP32[4160]|0; - $49 = HEAP32[4158]|0; - $50 = (_glfwCreateWindow(($47|0),($48|0),($49|0),(0|0),(0|0))|0); - HEAP32[4156] = $50; - $51 = HEAP32[4159]|0; - HEAP32[4185] = $51; - $52 = HEAP32[4160]|0; - HEAP32[4186] = $52; - $54 = $50; - } else { - $23 = (_glfwGetPrimaryMonitor()|0); - $24 = (_glfwGetVideoModes(($23|0),($$byval_copy|0))|0); - $25 = HEAP32[$$byval_copy>>2]|0; - $26 = ($25|0)>(0); - L22: do { - if ($26) { - $27 = HEAP32[4159]|0; - $28 = HEAP32[$$byval_copy>>2]|0; - $29 = HEAP32[4160]|0; - $$015 = 0; - while(1) { - $30 = (($24) + (($$015*24)|0)|0); - $31 = HEAP32[$30>>2]|0; - $32 = ($31|0)<($27|0); - if (!($32)) { - $33 = (((($24) + (($$015*24)|0)|0)) + 4|0); - $34 = HEAP32[$33>>2]|0; - $35 = ($34|0)<($29|0); - if (!($35)) { - break; - } - } - $36 = (($$015) + 1)|0; - $37 = ($36|0)<($28|0); - if ($37) { - $$015 = $36; - } else { - break L22; - } - } - HEAP32[4182] = $31; - HEAP32[4183] = $34; - } - } while(0); - $38 = HEAP32[4182]|0; - $39 = HEAP32[4183]|0; - HEAP32[$vararg_buffer3>>2] = $38; - $vararg_ptr5 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr5>>2] = $39; - _TraceLog(1,4449,$vararg_buffer3); - $40 = HEAP32[4182]|0; - $41 = HEAP32[4183]|0; - _SetupFramebufferSize($40,$41); - $42 = HEAP32[4182]|0; - $43 = HEAP32[4183]|0; - $44 = HEAP32[4158]|0; - $45 = (_glfwGetPrimaryMonitor()|0); - $46 = (_glfwCreateWindow(($42|0),($43|0),($44|0),($45|0),(0|0))|0); - HEAP32[4156] = $46; - $54 = $46; - } - $53 = ($54|0)==(0|0); - if ($53) { - _glfwTerminate(); - _TraceLog(2,4487,$vararg_buffer6); - } else { - _TraceLog(0,4520,$vararg_buffer8); - $55 = HEAP32[4185]|0; - $56 = HEAP32[4186]|0; - HEAP32[$vararg_buffer10>>2] = $55; - $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); - HEAP32[$vararg_ptr13>>2] = $56; - _TraceLog(0,4560,$vararg_buffer10); - $57 = HEAP32[4159]|0; - $58 = HEAP32[4160]|0; - HEAP32[$vararg_buffer14>>2] = $57; - $vararg_ptr17 = ((($vararg_buffer14)) + 4|0); - HEAP32[$vararg_ptr17>>2] = $58; - _TraceLog(0,4581,$vararg_buffer14); - $59 = HEAP32[4187]|0; - $60 = HEAP32[4188]|0; - HEAP32[$vararg_buffer18>>2] = $59; - $vararg_ptr21 = ((($vararg_buffer18)) + 4|0); - HEAP32[$vararg_ptr21>>2] = $60; - _TraceLog(0,4602,$vararg_buffer18); - } - $61 = HEAP32[4156]|0; - (_glfwSetWindowSizeCallback(($61|0),(1|0))|0); - $62 = HEAP32[4156]|0; - (_glfwSetCursorEnterCallback(($62|0),(2|0))|0); - $63 = HEAP32[4156]|0; - (_glfwSetKeyCallback(($63|0),(1|0))|0); - $64 = HEAP32[4156]|0; - (_glfwSetMouseButtonCallback(($64|0),(1|0))|0); - $65 = HEAP32[4156]|0; - (_glfwSetCursorPosCallback(($65|0),(1|0))|0); - $66 = HEAP32[4156]|0; - (_glfwSetCharCallback(($66|0),(3|0))|0); - $67 = HEAP32[4156]|0; - (_glfwSetScrollCallback(($67|0),(2|0))|0); - $68 = HEAP32[4156]|0; - (_glfwSetWindowIconifyCallback(($68|0),(4|0))|0); - $69 = HEAP32[4156]|0; - _glfwMakeContextCurrent(($69|0)); - _glfwSwapInterval(0); - $70 = HEAP8[17476]|0; - $71 = $70 & 64; - $72 = ($71<<24>>24)==(0); - if ($72) { - $73 = HEAP32[4159]|0; - $74 = HEAP32[4160]|0; - _rlglInit($73,$74); - _SetupViewport(); - _rlMatrixMode(5889); - _rlLoadIdentity(); - $75 = HEAP32[4185]|0; - $76 = HEAP32[4187]|0; - $77 = (($75) - ($76))|0; - $78 = (+($77|0)); - $79 = HEAP32[4186]|0; - $80 = HEAP32[4188]|0; - $81 = (($79) - ($80))|0; - $82 = (+($81|0)); - _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); - _rlMatrixMode(5888); - _rlLoadIdentity(); - HEAP8[$3>>0] = -11; - $83 = ((($3)) + 1|0); - HEAP8[$83>>0] = -11; - $84 = ((($3)) + 2|0); - HEAP8[$84>>0] = -11; - $85 = ((($3)) + 3|0); - HEAP8[$85>>0] = -1; - ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; - _ClearBackground($$byval_copy); - STACKTOP = sp;return; - } - _glfwSwapInterval(1); - _TraceLog(0,4627,$vararg_buffer22); - $73 = HEAP32[4159]|0; - $74 = HEAP32[4160]|0; - _rlglInit($73,$74); - _SetupViewport(); - _rlMatrixMode(5889); - _rlLoadIdentity(); - $75 = HEAP32[4185]|0; - $76 = HEAP32[4187]|0; - $77 = (($75) - ($76))|0; - $78 = (+($77|0)); - $79 = HEAP32[4186]|0; - $80 = HEAP32[4188]|0; - $81 = (($79) - ($80))|0; - $82 = (+($81|0)); - _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); - _rlMatrixMode(5888); - _rlLoadIdentity(); - HEAP8[$3>>0] = -11; - $83 = ((($3)) + 1|0); - HEAP8[$83>>0] = -11; - $84 = ((($3)) + 2|0); - HEAP8[$84>>0] = -11; - $85 = ((($3)) + 3|0); - HEAP8[$85>>0] = -1; - ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; - _ClearBackground($$byval_copy); - STACKTOP = sp;return; -} -function _InitTimer() { - var $0 = 0, $1 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_time((0|0))|0); - _srand($0); - $1 = (+_GetTime()); - HEAPF64[1741] = $1; - return; -} -function _EmscriptenFullscreenChangeCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer4 = sp + 16|0; - $vararg_buffer = sp; - $3 = HEAP32[$1>>2]|0; - $4 = ($3|0)==(0); - $5 = ((($1)) + 264|0); - $6 = HEAP32[$5>>2]|0; - $7 = ((($1)) + 268|0); - $8 = HEAP32[$7>>2]|0; - $9 = ((($1)) + 272|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($1)) + 276|0); - $12 = HEAP32[$11>>2]|0; - if ($4) { - HEAP32[$vararg_buffer4>>2] = $6; - $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); - HEAP32[$vararg_ptr7>>2] = $8; - $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); - HEAP32[$vararg_ptr8>>2] = $10; - $vararg_ptr9 = ((($vararg_buffer4)) + 12|0); - HEAP32[$vararg_ptr9>>2] = $12; - _TraceLog(0,4331,$vararg_buffer4); - STACKTOP = sp;return 0; - } else { - HEAP32[$vararg_buffer>>2] = $6; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $8; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $10; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $12; - _TraceLog(0,4262,$vararg_buffer); - STACKTOP = sp;return 0; - } - return (0)|0; -} -function _EmscriptenKeyboardCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(1); - if (!($3)) { - return 0; - } - $4 = ((($1)) + 32|0); - $5 = (_strcmp($4,4255)|0); - $6 = ($5|0)==(0); - if (!($6)) { - return 0; - } - (_emscripten_exit_pointerlock()|0); - return 0; -} -function _EmscriptenMouseCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $3 = sp; - $4 = ($0|0)==(4); - $5 = HEAP32[4155]|0; - $6 = ($5|0)!=(0); - $or$cond = $4 & $6; - if (!($or$cond)) { - STACKTOP = sp;return 0; - } - (_emscripten_get_pointerlock_status(($3|0))|0); - $7 = HEAP32[$3>>2]|0; - $8 = ($7|0)==(0); - if ($8) { - (_emscripten_request_pointerlock((0|0),1)|0); - } else { - (_emscripten_exit_pointerlock()|0); - (_emscripten_get_pointerlock_status(($3|0))|0); - } - HEAP32[4155] = 0; - STACKTOP = sp;return 0; -} -function _EmscriptenTouchCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $$sink = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$03$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx2 = 0, $$sroa$24$0$$sroa_idx5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0.0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0.0, $6 = 0; - var $60 = 0.0, $61 = 0.0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $$byval_copy = sp + 56|0; - $3 = sp; - switch ($0|0) { - case 22: { - $$sink = 1; - label = 4; - break; - } - case 23: { - $$sink = 0; - label = 4; - break; - } - case 24: { - $$sink = 2; - label = 4; - break; - } - default: { - } - } - if ((label|0) == 4) { - HEAP32[$3>>2] = $$sink; - } - $4 = HEAP32[$1>>2]|0; - $5 = ((($3)) + 4|0); - HEAP32[$5>>2] = $4; - $6 = ((($1)) + 20|0); - $7 = HEAP32[$6>>2]|0; - $8 = ((($3)) + 8|0); - HEAP32[$8>>2] = $7; - $9 = ((($1)) + 72|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($3)) + 12|0); - HEAP32[$11>>2] = $10; - $12 = ((($1)) + 56|0); - $13 = HEAP32[$12>>2]|0; - $14 = (+($13|0)); - $15 = ((($1)) + 60|0); - $16 = HEAP32[$15>>2]|0; - $17 = (+($16|0)); - $$sroa$03$0$$sroa_idx = ((($3)) + 24|0); - HEAPF32[$$sroa$03$0$$sroa_idx>>2] = $14; - $$sroa$24$0$$sroa_idx5 = ((($3)) + 28|0); - HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $17; - $18 = ((($1)) + 108|0); - $19 = HEAP32[$18>>2]|0; - $20 = (+($19|0)); - $21 = ((($1)) + 112|0); - $22 = HEAP32[$21>>2]|0; - $23 = (+($22|0)); - $$sroa$0$0$$sroa_idx = ((($3)) + 32|0); - HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $20; - $$sroa$2$0$$sroa_idx2 = ((($3)) + 36|0); - HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $23; - $24 = ((($3)) + 24|0); - $25 = $24; - $26 = $25; - $27 = HEAP32[$26>>2]|0; - $28 = (($25) + 4)|0; - $29 = $28; - $30 = HEAP32[$29>>2]|0; - $31 = 13912; - $32 = $31; - HEAP32[$32>>2] = $27; - $33 = (($31) + 4)|0; - $34 = $33; - HEAP32[$34>>2] = $30; - $35 = ((($3)) + 32|0); - $36 = $35; - $37 = $36; - $38 = HEAP32[$37>>2]|0; - $39 = (($36) + 4)|0; - $40 = $39; - $41 = HEAP32[$40>>2]|0; - $42 = (13920); - $43 = $42; - HEAP32[$43>>2] = $38; - $44 = (($42) + 4)|0; - $45 = $44; - HEAP32[$45>>2] = $41; - $46 = (_GetScreenWidth()|0); - $47 = (+($46|0)); - $48 = +HEAPF32[$24>>2]; - $49 = $48 / $47; - HEAPF32[$24>>2] = $49; - $50 = (_GetScreenHeight()|0); - $51 = (+($50|0)); - $52 = +HEAPF32[$$sroa$24$0$$sroa_idx5>>2]; - $53 = $52 / $51; - HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $53; - $54 = (_GetScreenWidth()|0); - $55 = (+($54|0)); - $56 = +HEAPF32[$35>>2]; - $57 = $56 / $55; - HEAPF32[$35>>2] = $57; - $58 = (_GetScreenHeight()|0); - $59 = (+($58|0)); - $60 = +HEAPF32[$$sroa$2$0$$sroa_idx2>>2]; - $61 = $60 / $59; - HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $61; - dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _ProcessGestureEvent($$byval_copy); - STACKTOP = sp;return 1; -} -function _EmscriptenGamepadCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$sink = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($1)) + 1296|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)==(0); - if ($5) { - label = 3; - } else { - $6 = ((($1)) + 1300|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)<(4); - if ($8) { - $$sink = 1; - } else { - label = 3; - } - } - if ((label|0) == 3) { - $$sink = 0; - } - $9 = ((($1)) + 1300|0); - $10 = HEAP32[$9>>2]|0; - $11 = (16648 + ($10<<2)|0); - HEAP32[$11>>2] = $$sink; - return 0; -} -function _SetTargetFPS($0) { - $0 = $0|0; - var $$ = 0.0, $$op = 0.0, $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = ($0|0)<(1); - $2 = (+($0|0)); - $3 = 1.0 / $2; - $$ = $1 ? 0.0 : $3; - HEAPF64[1738] = $$; - $4 = $3; - $$op = $4 * 1000.0; - $5 = $$op; - $6 = $1 ? 0.0 : $5; - HEAPF64[$vararg_buffer>>3] = $6; - _TraceLog(0,4211,$vararg_buffer); - STACKTOP = sp;return; -} -function _LogoAnimation() { - var label = 0, sp = 0; - sp = STACKTOP; - HEAP32[4161] = 0; - return; -} -function _GetScreenWidth() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4159]|0; - return ($0|0); -} -function _GetScreenHeight() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4160]|0; - return ($0|0); -} -function _GetTime() { - var $0 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (+_glfwGetTime()); - return (+$0); -} -function _ErrorCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - HEAP32[$vararg_buffer>>2] = $0; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $1; - _TraceLog(1,8183,$vararg_buffer); - STACKTOP = sp;return; -} -function _SetupFramebufferSize($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$sink = 0, $$sink1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0; - var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0.0; - var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, $or$cond = 0, $roundf = 0.0, $roundf38 = 0.0, $roundf39 = 0.0, $roundf40 = 0.0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr2 = 0; - var $vararg_ptr3 = 0, $vararg_ptr7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $vararg_buffer8 = sp + 24|0; - $vararg_buffer4 = sp + 16|0; - $vararg_buffer = sp; - $2 = sp + 40|0; - $3 = HEAP32[4159]|0; - $4 = ($3|0)>($0|0); - if (!($4)) { - $5 = HEAP32[4160]|0; - $6 = ($5|0)>($1|0); - if (!($6)) { - $30 = ($3|0)<($0|0); - $31 = ($5|0)<($1|0); - $or$cond = $30 | $31; - if (!($or$cond)) { - HEAP32[4185] = $3; - HEAP32[4186] = $5; - HEAP32[4187] = 0; - HEAP32[4188] = 0; - STACKTOP = sp;return; - } - HEAP32[$vararg_buffer8>>2] = $3; - $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); - HEAP32[$vararg_ptr11>>2] = $5; - $vararg_ptr12 = ((($vararg_buffer8)) + 8|0); - HEAP32[$vararg_ptr12>>2] = $0; - $vararg_ptr13 = ((($vararg_buffer8)) + 12|0); - HEAP32[$vararg_ptr13>>2] = $1; - _TraceLog(0,8117,$vararg_buffer8); - $32 = (+($0|0)); - $33 = (+($1|0)); - $34 = $32 / $33; - $35 = HEAP32[4159]|0; - $36 = (+($35|0)); - $37 = HEAP32[4160]|0; - $38 = (+($37|0)); - $39 = $36 / $38; - $40 = !($34 <= $39); - if ($40) { - $44 = $34 * $38; - $roundf = (+_roundf((+$44))); - $45 = (~~(($roundf))); - HEAP32[4185] = $45; - HEAP32[4186] = $37; - $46 = (($45) - ($35))|0; - HEAP32[4187] = $46; - $$sink1 = 0; - } else { - HEAP32[4185] = $35; - $41 = $36 / $34; - $roundf38 = (+_roundf((+$41))); - $42 = (~~(($roundf38))); - HEAP32[4186] = $42; - HEAP32[4187] = 0; - $43 = (($42) - ($37))|0; - $$sink1 = $43; - } - HEAP32[4188] = $$sink1; - STACKTOP = sp;return; - } - } - $7 = HEAP32[4160]|0; - HEAP32[$vararg_buffer>>2] = $3; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $7; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $0; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $1; - _TraceLog(1,7974,$vararg_buffer); - $8 = (+($0|0)); - $9 = HEAP32[4159]|0; - $10 = (+($9|0)); - $11 = $8 / $10; - $12 = (+($1|0)); - $13 = HEAP32[4160]|0; - $14 = (+($13|0)); - $15 = $12 / $14; - $16 = !($11 <= $15); - if ($16) { - $22 = $10 * $15; - $roundf39 = (+_roundf((+$22))); - $23 = (~~(($roundf39))); - HEAP32[4185] = $23; - HEAP32[4186] = $1; - $24 = (($0) - ($23))|0; - HEAP32[4187] = $24; - $$sink = 0; - } else { - HEAP32[4185] = $0; - $17 = HEAP32[4160]|0; - $18 = (+($17|0)); - $19 = $11 * $18; - $roundf40 = (+_roundf((+$19))); - $20 = (~~(($roundf40))); - HEAP32[4186] = $20; - HEAP32[4187] = 0; - $21 = (($1) - ($20))|0; - $$sink = $21; - } - HEAP32[4188] = $$sink; - $25 = HEAP32[4185]|0; - $26 = (+($25|0)); - $27 = HEAP32[4159]|0; - $28 = (+($27|0)); - $29 = $26 / $28; - _MatrixScale($2,$29,$29,$29); - dest=16664; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - HEAP32[4185] = $0; - HEAP32[4186] = $1; - HEAP32[$vararg_buffer4>>2] = $0; - $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); - HEAP32[$vararg_ptr7>>2] = $1; - _TraceLog(1,8052,$vararg_buffer4); - STACKTOP = sp;return; -} -function _WindowSizeCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0.0, $4 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - _rlViewport(0,0,$1,$2); - _rlMatrixMode(5889); - _rlLoadIdentity(); - $3 = (+($1|0)); - $4 = (+($2|0)); - _rlOrtho(0.0,$3,$4,0.0,0.0,1.0); - _rlMatrixMode(5888); - _rlLoadIdentity(); - _rlClearScreenBuffers(); - HEAP32[4159] = $1; - HEAP32[4160] = $2; - HEAP32[4185] = $1; - HEAP32[4186] = $2; - return; -} -function _CursorEnterCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function _KeyCallback($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = HEAP32[743]|0; - $6 = ($5|0)==($1|0); - $7 = ($3|0)==(1); - $or$cond = $7 & $6; - if ($or$cond) { - _glfwSetWindowShouldClose(($0|0),1); - return; - } - $8 = $3&255; - $9 = (17483 + ($1)|0); - HEAP8[$9>>0] = $8; - if (!($7)) { - return; - } - HEAP32[742] = $1; - return; -} -function _MouseButtonCallback($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0; - var $28 = 0.0, $29 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $$byval_copy = sp + 64|0; - $4 = sp + 8|0; - $5 = sp; - $6 = $2&255; - $7 = (17477 + ($1)|0); - HEAP8[$7>>0] = $6; - $8 = (_IsMouseButtonPressed(0)|0); - $9 = ($8|0)==(0); - if ($9) { - $10 = (_IsMouseButtonReleased(0)|0); - $11 = ($10|0)==(0); - if (!($11)) { - $$sink = 0; - label = 3; - } - } else { - $$sink = 1; - label = 3; - } - if ((label|0) == 3) { - HEAP32[$4>>2] = $$sink; - } - $12 = ((($4)) + 8|0); - HEAP32[$12>>2] = 0; - $13 = ((($4)) + 4|0); - HEAP32[$13>>2] = 1; - $14 = ((($4)) + 24|0); - _GetMousePosition($5); - $15 = $5; - $16 = $15; - $17 = HEAP32[$16>>2]|0; - $18 = (($15) + 4)|0; - $19 = $18; - $20 = HEAP32[$19>>2]|0; - $21 = $14; - $22 = $21; - HEAP32[$22>>2] = $17; - $23 = (($21) + 4)|0; - $24 = $23; - HEAP32[$24>>2] = $20; - $25 = (_GetScreenWidth()|0); - $26 = (+($25|0)); - $27 = +HEAPF32[$14>>2]; - $28 = $27 / $26; - HEAPF32[$14>>2] = $28; - $29 = (_GetScreenHeight()|0); - $30 = (+($29|0)); - $31 = ((($4)) + 28|0); - $32 = +HEAPF32[$31>>2]; - $33 = $32 / $30; - HEAPF32[$31>>2] = $33; - dest=$$byval_copy; src=$4; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _ProcessGestureEvent($$byval_copy); - STACKTOP = sp;return; -} -function _MouseCursorPosCallback($0,$1,$2) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - var $$byval_copy = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $$byval_copy = sp + 56|0; - $3 = sp; - HEAP32[$3>>2] = 2; - $4 = ((($3)) + 8|0); - HEAP32[$4>>2] = 0; - $5 = ((($3)) + 4|0); - HEAP32[$5>>2] = 1; - $6 = $1; - $7 = $2; - $$sroa$0$0$$sroa_idx = ((($3)) + 24|0); - HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $6; - $$sroa$2$0$$sroa_idx1 = ((($3)) + 28|0); - HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $7; - $8 = ((($3)) + 24|0); - $9 = $8; - $10 = $9; - $11 = HEAP32[$10>>2]|0; - $12 = (($9) + 4)|0; - $13 = $12; - $14 = HEAP32[$13>>2]|0; - $15 = 13912; - $16 = $15; - HEAP32[$16>>2] = $11; - $17 = (($15) + 4)|0; - $18 = $17; - HEAP32[$18>>2] = $14; - $19 = (_GetScreenWidth()|0); - $20 = (+($19|0)); - $21 = +HEAPF32[$8>>2]; - $22 = $21 / $20; - HEAPF32[$8>>2] = $22; - $23 = (_GetScreenHeight()|0); - $24 = (+($23|0)); - $25 = +HEAPF32[$$sroa$2$0$$sroa_idx1>>2]; - $26 = $25 / $24; - HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $26; - dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _ProcessGestureEvent($$byval_copy); - STACKTOP = sp;return; -} -function _CharCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - HEAP32[742] = $1; - return; -} -function _ScrollCallback($0,$1,$2) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - var $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (~~(($2))); - HEAP32[4191] = $3; - return; -} -function _WindowIconifyCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$sink = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)!=(0); - $$sink = $2&1; - HEAP32[4190] = $$sink; - return; -} -function _rlglInit($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$06066 = 0, $$06167 = 0, $$06268 = 0, $$063 = 0, $$sink64 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0.0, $73 = 0.0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $9 = 0, $exitcond = 0, $exitcond70 = 0, $exitcond71 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0; - var $vararg_buffer19 = 0, $vararg_buffer21 = 0, $vararg_buffer23 = 0, $vararg_buffer25 = 0, $vararg_buffer27 = 0, $vararg_buffer29 = 0, $vararg_buffer31 = 0, $vararg_buffer34 = 0, $vararg_buffer36 = 0, $vararg_buffer39 = 0, $vararg_buffer4 = 0, $vararg_buffer41 = 0, $vararg_buffer7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 2528|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2528|0); - $vararg_buffer41 = sp + 2184|0; - $vararg_buffer39 = sp + 2176|0; - $vararg_buffer36 = sp + 2168|0; - $vararg_buffer34 = sp + 2160|0; - $vararg_buffer31 = sp + 2152|0; - $vararg_buffer29 = sp + 2144|0; - $vararg_buffer27 = sp + 2136|0; - $vararg_buffer25 = sp + 2128|0; - $vararg_buffer23 = sp + 2120|0; - $vararg_buffer21 = sp + 2112|0; - $vararg_buffer19 = sp + 2104|0; - $vararg_buffer17 = sp + 2096|0; - $vararg_buffer15 = sp + 2088|0; - $vararg_buffer13 = sp + 2080|0; - $vararg_buffer10 = sp + 2072|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer4 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 2396|0; - $3 = sp + 2384|0; - $4 = sp + 2320|0; - $5 = sp + 2256|0; - $6 = sp + 2192|0; - $7 = (_glGetString(7936)|0); - HEAP32[$vararg_buffer>>2] = $7; - _TraceLog(0,4650,$vararg_buffer); - $8 = (_glGetString(7937)|0); - HEAP32[$vararg_buffer1>>2] = $8; - _TraceLog(0,4668,$vararg_buffer1); - $9 = (_glGetString(7938)|0); - HEAP32[$vararg_buffer4>>2] = $9; - _TraceLog(0,4686,$vararg_buffer4); - $10 = (_glGetString(35724)|0); - HEAP32[$vararg_buffer7>>2] = $10; - _TraceLog(0,4704,$vararg_buffer7); - $11 = (_glGetString(7939)|0); - $12 = (_strlen($11)|0); - $13 = (($12) + 1)|0; - $14 = (_malloc($13)|0); - _memcpy(($14|0),($11|0),($13|0))|0; - $$063 = 0;$$sink64 = $14; - while(1) { - $15 = (_strtok($$sink64,4722)|0); - $16 = (($vararg_buffer7) + ($$063<<2)|0); - HEAP32[$16>>2] = $15; - $17 = ($15|0)==(0|0); - $18 = (($$063) + 1)|0; - if ($17) { - break; - } else { - $$063 = $18;$$sink64 = 0; - } - } - _free($14); - $19 = (($$063) + -1)|0; - HEAP32[$vararg_buffer10>>2] = $19; - _TraceLog(0,4724,$vararg_buffer10); - $20 = ($$063|0)>(1); - if ($20) { - $$06268 = 0; - while(1) { - $23 = (($vararg_buffer7) + ($$06268<<2)|0); - $24 = HEAP32[$23>>2]|0; - $25 = (_strcmp($24,4759)|0); - $26 = ($25|0)==(0); - if ($26) { - HEAP32[3722] = 1; - $27 = (_eglGetProcAddress((4786|0))|0); - HEAP32[4145] = $27; - $28 = (_eglGetProcAddress((4807|0))|0); - HEAP32[3723] = $28; - $29 = (_eglGetProcAddress((4828|0))|0); - HEAP32[4146] = $29; - } - $30 = (_strcmp($24,4852)|0); - $31 = ($30|0)==(0); - if ($31) { - HEAP32[3614] = 1; - } - $32 = (_strcmp($24,4872)|0); - $33 = ($32|0)==(0); - if ($33) { - HEAP32[3613] = 1; - } - $34 = (_strcmp($24,4890)|0); - $35 = ($34|0)==(0); - if ($35) { - label = 14; - } else { - $36 = HEAP32[$23>>2]|0; - $37 = (_strcmp($36,4922)|0); - $38 = ($37|0)==(0); - if ($38) { - label = 14; - } else { - $39 = (_strcmp($36,4955)|0); - $40 = ($39|0)==(0); - if ($40) { - label = 14; - } - } - } - if ((label|0) == 14) { - label = 0; - HEAP32[3608] = 1; - } - $41 = HEAP32[$23>>2]|0; - $42 = (_strcmp($41,4995)|0); - $43 = ($42|0)==(0); - if ($43) { - label = 17; - } else { - $44 = (_strcmp($41,5031)|0); - $45 = ($44|0)==(0); - if ($45) { - label = 17; - } - } - if ((label|0) == 17) { - label = 0; - HEAP32[3609] = 1; - } - $46 = (_strcmp($41,5064)|0); - $47 = ($46|0)==(0); - if ($47) { - HEAP32[3610] = 1; - } - $48 = HEAP32[$23>>2]|0; - $49 = (_strcmp($48,5089)|0); - $50 = ($49|0)==(0); - if ($50) { - HEAP32[3611] = 1; - } - $51 = (_strcmp($48,5122)|0); - $52 = ($51|0)==(0); - if ($52) { - HEAP32[3612] = 1; - } - $53 = (_strcmp($48,5158)|0); - $54 = ($53|0)==(0); - if ($54) { - HEAP32[4189] = 1; - _glGetFloatv(34047,(14464|0)); - } - $55 = (_strcmp($48,5192)|0); - $56 = ($55|0)==(0); - if ($56) { - HEAP32[3615] = 1; - } - $57 = (($$06268) + 1)|0; - $exitcond71 = ($57|0)==($19|0); - if ($exitcond71) { - break; - } else { - $$06268 = $57; - } - } - } - $21 = HEAP32[3722]|0; - $22 = ($21|0)==(0); - if ($22) { - _TraceLog(1,5295,$vararg_buffer15); - } else { - _TraceLog(0,5220,$vararg_buffer13); - } - $58 = HEAP32[3614]|0; - $59 = ($58|0)==(0); - if ($59) { - _TraceLog(1,5431,$vararg_buffer19); - } else { - _TraceLog(0,5356,$vararg_buffer17); - } - $60 = HEAP32[3608]|0; - $61 = ($60|0)==(0); - if (!($61)) { - _TraceLog(0,5523,$vararg_buffer21); - } - $62 = HEAP32[3609]|0; - $63 = ($62|0)==(0); - if (!($63)) { - _TraceLog(0,5569,$vararg_buffer23); - } - $64 = HEAP32[3610]|0; - $65 = ($64|0)==(0); - if (!($65)) { - _TraceLog(0,5616,$vararg_buffer25); - } - $66 = HEAP32[3611]|0; - $67 = ($66|0)==(0); - if (!($67)) { - _TraceLog(0,5667,$vararg_buffer27); - } - $68 = HEAP32[3612]|0; - $69 = ($68|0)==(0); - if (!($69)) { - _TraceLog(0,5714,$vararg_buffer29); - } - $70 = HEAP32[4189]|0; - $71 = ($70|0)==(0); - if (!($71)) { - $72 = +HEAPF32[3616]; - $73 = $72; - HEAPF64[$vararg_buffer31>>3] = $73; - _TraceLog(0,5761,$vararg_buffer31); - } - $74 = HEAP32[3615]|0; - $75 = ($74|0)==(0); - if (!($75)) { - _TraceLog(0,5827,$vararg_buffer34); - } - HEAP32[$vararg_buffer10>>2] = -1; - $76 = (_rlLoadTexture($vararg_buffer10,1,1,7,1)|0); - HEAP32[3663] = $76; - $77 = ($76|0)==(0); - if ($77) { - _TraceLog(1,5931,$vararg_buffer39); - } else { - HEAP32[$vararg_buffer36>>2] = $76; - _TraceLog(0,5880,$vararg_buffer36); - } - _LoadShaderDefault($2); - _memcpy((16448|0),($2|0),132)|0; - _memcpy((14756|0),($2|0),132)|0; - _LoadBuffersDefault(); - $78 = (_malloc(49152)|0); - HEAP32[4109] = $78; - $$06167 = 0; - while(1) { - $80 = HEAP32[4109]|0; - $81 = (($80) + (($$06167*12)|0)|0); - _Vector3Zero($3); - ;HEAP32[$81>>2]=HEAP32[$3>>2]|0;HEAP32[$81+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$81+8>>2]=HEAP32[$3+8>>2]|0; - $82 = (($$06167) + 1)|0; - $exitcond70 = ($82|0)==(4096); - if ($exitcond70) { - break; - } else { - $$06167 = $82; - } - } - $79 = (_malloc(36864)|0); - HEAP32[3664] = $79; - $$06066 = 0; - while(1) { - $83 = (((($79) + (($$06066*144)|0)|0)) + 8|0); - HEAP32[$83>>2] = 0; - $84 = (($79) + (($$06066*144)|0)|0); - HEAP32[$84>>2] = 0; - $85 = (($$06066) + 1)|0; - $exitcond = ($85|0)==(256); - if ($exitcond) { - break; - } else { - $$06066 = $85; - } - } - HEAP32[3662] = 1; - $86 = HEAP32[3663]|0; - $87 = ((($79)) + 8|0); - HEAP32[$87>>2] = $86; - HEAP32[4110] = 4; - _MatrixIdentity($4); - dest=15400; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15464); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15528); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15592); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15656); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15720); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15784); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15848); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15912); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15976); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(16040); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(16104); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(16168); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(16232); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(16296); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(16360); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($5); - dest=14516; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($6); - dest=14580; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - HEAP32[4106] = 14580; - _glDepthFunc(515); - _glDisable(2929); - _glBlendFunc(770,771); - _glEnable(3042); - _glCullFace(1029); - _glFrontFace(2305); - _glEnable(2884); - _glClearColor(0.0,0.0,0.0,1.0); - _glClearDepthf(1.0); - _glClear(16640); - HEAP32[3740] = $0; - HEAP32[3741] = $1; - _TraceLog(0,5970,$vararg_buffer41); - STACKTOP = sp;return; -} -function _SetupViewport() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4187]|0; - $1 = (($0|0) / 2)&-1; - $2 = HEAP32[4188]|0; - $3 = (($2|0) / 2)&-1; - $4 = HEAP32[4185]|0; - $5 = (($4) - ($0))|0; - $6 = HEAP32[4186]|0; - $7 = (($6) - ($2))|0; - _rlViewport($1,$3,$5,$7); - return; -} -function _rlMatrixMode($0) { - $0 = $0|0; - var $modelview$sink = 0, label = 0, sp = 0; - sp = STACKTOP; - switch ($0|0) { - case 5889: { - $modelview$sink = 14516; - label = 3; - break; - } - case 5888: { - $modelview$sink = 14580; - label = 3; - break; - } - default: { - } - } - if ((label|0) == 3) { - HEAP32[4106] = $modelview$sink; - } - HEAP32[4111] = $0; - return; -} -function _rlOrtho($0,$1,$2,$3,$4,$5) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - $4 = +$4; - $5 = +$5; - var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy1 = sp + 192|0; - $$byval_copy = sp + 128|0; - $6 = sp + 64|0; - $7 = sp; - _MatrixOrtho($6,$0,$1,$2,$3,$4,$5); - $8 = HEAP32[4106]|0; - dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($7,$$byval_copy,$$byval_copy1); - dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _ClearBackground($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP8[$0>>0]|0; - $2 = ((($0)) + 1|0); - $3 = HEAP8[$2>>0]|0; - $4 = ((($0)) + 2|0); - $5 = HEAP8[$4>>0]|0; - $6 = ((($0)) + 3|0); - $7 = HEAP8[$6>>0]|0; - _rlClearColor($1,$3,$5,$7); - return; -} -function _rlClearColor($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0.0, $11 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $4 = (+($0&255)); - $5 = $4 / 255.0; - $6 = (+($1&255)); - $7 = $6 / 255.0; - $8 = (+($2&255)); - $9 = $8 / 255.0; - $10 = (+($3&255)); - $11 = $10 / 255.0; - _glClearColor((+$5),(+$7),(+$9),(+$11)); - return; -} -function _LoadShaderDefault($0) { - $0 = $0|0; - var $$sroa$12$0 = 0, $$sroa$12$0$$sroa_idx9 = 0, $$sroa$13$0 = 0, $$sroa$13$0$$sroa_idx11 = 0, $$sroa$14 = 0, $$sroa$14$0$$sroa_idx = 0, $$sroa$1415$0 = 0, $$sroa$1415$0$$sroa_idx16 = 0, $$sroa$15$0 = 0, $$sroa$15$0$$sroa_idx18 = 0, $$sroa$16 = 0, $$sroa$16$0$$sroa_idx = 0, $$sroa$1622$0 = 0, $$sroa$1622$0$$sroa_idx23 = 0, $$sroa$1727$0 = 0, $$sroa$1727$0$$sroa_idx28 = 0, $$sroa$18 = 0, $$sroa$18$0$$sroa_idx = 0, $1 = 0, $10 = 0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1040|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1040|0); - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $$sroa$14 = sp + 96|0; - $$sroa$16 = sp + 80|0; - $$sroa$18 = sp + 12|0; - $1 = sp + 549|0; - $2 = sp + 108|0; - _memcpy(($1|0),(6546|0),483)|0; - _memcpy(($2|0),(7029|0),441)|0; - $3 = (_LoadShaderProgram($1,$2)|0); - $4 = ($3|0)==(0); - if ($4) { - HEAP32[$vararg_buffer1>>2] = $3; - _TraceLog(1,7584,$vararg_buffer1); - $$sroa$12$0 = 0;$$sroa$13$0 = 0;$$sroa$1415$0 = 0;$$sroa$15$0 = 0;$$sroa$1622$0 = 0;$$sroa$1727$0 = 0; - } else { - HEAP32[$vararg_buffer>>2] = $3; - _TraceLog(0,7470,$vararg_buffer); - $5 = (_glGetAttribLocation(($3|0),(7518|0))|0); - $6 = (_glGetAttribLocation(($3|0),(7533|0))|0); - $7 = (_glGetAttribLocation(($3|0),(7548|0))|0); - $8 = (_glGetUniformLocation(($3|0),(7560|0))|0); - $9 = (_glGetUniformLocation(($3|0),(7564|0))|0); - $10 = (_glGetUniformLocation(($3|0),(7575|0))|0); - $$sroa$12$0 = $5;$$sroa$13$0 = $6;$$sroa$1415$0 = $7;$$sroa$15$0 = $8;$$sroa$1622$0 = $9;$$sroa$1727$0 = $10; - } - HEAP32[$0>>2] = $3; - $$sroa$12$0$$sroa_idx9 = ((($0)) + 4|0); - HEAP32[$$sroa$12$0$$sroa_idx9>>2] = $$sroa$12$0; - $$sroa$13$0$$sroa_idx11 = ((($0)) + 8|0); - HEAP32[$$sroa$13$0$$sroa_idx11>>2] = $$sroa$13$0; - $$sroa$14$0$$sroa_idx = ((($0)) + 12|0); - ;HEAP32[$$sroa$14$0$$sroa_idx>>2]=HEAP32[$$sroa$14>>2]|0;HEAP32[$$sroa$14$0$$sroa_idx+4>>2]=HEAP32[$$sroa$14+4>>2]|0;HEAP32[$$sroa$14$0$$sroa_idx+8>>2]=HEAP32[$$sroa$14+8>>2]|0; - $$sroa$1415$0$$sroa_idx16 = ((($0)) + 24|0); - HEAP32[$$sroa$1415$0$$sroa_idx16>>2] = $$sroa$1415$0; - $$sroa$15$0$$sroa_idx18 = ((($0)) + 28|0); - HEAP32[$$sroa$15$0$$sroa_idx18>>2] = $$sroa$15$0; - $$sroa$16$0$$sroa_idx = ((($0)) + 32|0); - ;HEAP32[$$sroa$16$0$$sroa_idx>>2]=HEAP32[$$sroa$16>>2]|0;HEAP32[$$sroa$16$0$$sroa_idx+4>>2]=HEAP32[$$sroa$16+4>>2]|0;HEAP32[$$sroa$16$0$$sroa_idx+8>>2]=HEAP32[$$sroa$16+8>>2]|0;HEAP32[$$sroa$16$0$$sroa_idx+12>>2]=HEAP32[$$sroa$16+12>>2]|0; - $$sroa$1622$0$$sroa_idx23 = ((($0)) + 48|0); - HEAP32[$$sroa$1622$0$$sroa_idx23>>2] = $$sroa$1622$0; - $$sroa$1727$0$$sroa_idx28 = ((($0)) + 60|0); - HEAP32[$$sroa$1727$0$$sroa_idx28>>2] = $$sroa$1727$0; - $$sroa$18$0$$sroa_idx = ((($0)) + 64|0); - dest=$$sroa$18$0$$sroa_idx; src=$$sroa$18; stop=dest+68|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _LoadBuffersDefault() { - var $$05365 = 0, $$05467 = 0, $$05770 = 0, $$05972 = 0, $$066 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; - var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; - var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; - var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; - var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond75 = 0, $exitcond78 = 0, $exitcond80 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer17 = 0; - var $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, $vararg_ptr20 = 0, $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $vararg_buffer17 = sp + 48|0; - $vararg_buffer14 = sp + 40|0; - $vararg_buffer10 = sp + 32|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $0 = (_malloc(24576)|0); - HEAP32[(14672)>>2] = $0; - $1 = (_malloc(8192)|0); - HEAP32[(14680)>>2] = $1; - HEAP32[(14676)>>2] = 0; - HEAP32[(14684)>>2] = 0; - _memset(($0|0),0,24576)|0; - $$05972 = 0; - while(1) { - $2 = HEAP32[(14680)>>2]|0; - $3 = (($2) + ($$05972)|0); - HEAP8[$3>>0] = 0; - $4 = (($$05972) + 1)|0; - $exitcond80 = ($4|0)==(8192); - if ($exitcond80) { - break; - } else { - $$05972 = $4; - } - } - HEAP32[3665] = 0; - HEAP32[(14668)>>2] = 0; - HEAP32[(14664)>>2] = 0; - $5 = (_malloc(73728)|0); - HEAP32[(14720)>>2] = $5; - $6 = (_malloc(24576)|0); - HEAP32[(14728)>>2] = $6; - HEAP32[(14724)>>2] = 0; - HEAP32[(14732)>>2] = 0; - _memset(($5|0),0,73728)|0; - $$05770 = 0; - while(1) { - $7 = HEAP32[(14728)>>2]|0; - $8 = (($7) + ($$05770)|0); - HEAP8[$8>>0] = 0; - $9 = (($$05770) + 1)|0; - $exitcond78 = ($9|0)==(24576); - if ($exitcond78) { - break; - } else { - $$05770 = $9; - } - } - HEAP32[3677] = 0; - HEAP32[(14716)>>2] = 0; - HEAP32[(14712)>>2] = 0; - $10 = (_malloc(49152)|0); - HEAP32[(14480)>>2] = $10; - $11 = (_malloc(32768)|0); - HEAP32[(14484)>>2] = $11; - $12 = (_malloc(16384)|0); - HEAP32[(14488)>>2] = $12; - $13 = (_malloc(12288)|0); - HEAP32[(14492)>>2] = $13; - $14 = HEAP32[(14480)>>2]|0; - _memset(($14|0),0,49152)|0; - $15 = HEAP32[(14484)>>2]|0; - _memset(($15|0),0,32768)|0; - $$05467 = 0; - while(1) { - $17 = HEAP32[(14488)>>2]|0; - $18 = (($17) + ($$05467)|0); - HEAP8[$18>>0] = 0; - $19 = (($$05467) + 1)|0; - $exitcond75 = ($19|0)==(16384); - if ($exitcond75) { - break; - } else { - $$05467 = $19; - } - } - $16 = HEAP32[(14492)>>2]|0; - $$05365 = 0;$$066 = 0; - while(1) { - $22 = $$05365 << 2; - $23 = $22&65535; - $24 = (($16) + ($$066<<1)|0); - HEAP16[$24>>1] = $23; - $25 = $22 | 1; - $26 = $25&65535; - $27 = $$066 | 1; - $28 = (($16) + ($27<<1)|0); - HEAP16[$28>>1] = $26; - $29 = $22 | 2; - $30 = $29&65535; - $31 = (($$066) + 2)|0; - $32 = (($16) + ($31<<1)|0); - HEAP16[$32>>1] = $30; - $33 = (($$066) + 3)|0; - $34 = (($16) + ($33<<1)|0); - HEAP16[$34>>1] = $23; - $35 = (($$066) + 4)|0; - $36 = (($16) + ($35<<1)|0); - HEAP16[$36>>1] = $30; - $37 = $22 | 3; - $38 = $37&65535; - $39 = (($$066) + 5)|0; - $40 = (($16) + ($39<<1)|0); - HEAP16[$40>>1] = $38; - $41 = (($$05365) + 1)|0; - $42 = (($$066) + 6)|0; - $exitcond = ($41|0)==(1024); - if ($exitcond) { - break; - } else { - $$05365 = $41;$$066 = $42; - } - } - HEAP32[3617] = 0; - HEAP32[(14472)>>2] = 0; - HEAP32[(14476)>>2] = 0; - _TraceLog(0,6017,$vararg_buffer); - $20 = HEAP32[3722]|0; - $21 = ($20|0)==(0); - if (!($21)) { - $43 = HEAP32[4145]|0; - FUNCTION_TABLE_vii[$43 & 63](1,(14688)); - $44 = HEAP32[3723]|0; - $45 = HEAP32[(14688)>>2]|0; - FUNCTION_TABLE_vi[$44 & 31]($45); - } - _glGenBuffers(2,((14692)|0)); - $46 = HEAP32[(14692)>>2]|0; - _glBindBuffer(34962,($46|0)); - $47 = HEAP32[(14672)>>2]|0; - _glBufferData(34962,24576,($47|0),35048); - $48 = HEAP32[(14760)>>2]|0; - _glEnableVertexAttribArray(($48|0)); - $49 = HEAP32[(14760)>>2]|0; - _glVertexAttribPointer(($49|0),3,5126,0,0,(0|0)); - _glGenBuffers(2,((14696)|0)); - $50 = HEAP32[(14696)>>2]|0; - _glBindBuffer(34962,($50|0)); - $51 = HEAP32[(14680)>>2]|0; - _glBufferData(34962,8192,($51|0),35048); - $52 = HEAP32[(14780)>>2]|0; - _glEnableVertexAttribArray(($52|0)); - $53 = HEAP32[(14780)>>2]|0; - _glVertexAttribPointer(($53|0),4,5121,1,0,(0|0)); - $54 = HEAP32[3722]|0; - $55 = ($54|0)==(0); - if ($55) { - $57 = HEAP32[(14692)>>2]|0; - $58 = HEAP32[(14696)>>2]|0; - HEAP32[$vararg_buffer3>>2] = $57; - $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr6>>2] = $58; - _TraceLog(0,6155,$vararg_buffer3); - } else { - $56 = HEAP32[(14688)>>2]|0; - HEAP32[$vararg_buffer1>>2] = $56; - _TraceLog(0,6090,$vararg_buffer1); - } - $59 = HEAP32[3722]|0; - $60 = ($59|0)==(0); - if (!($60)) { - $61 = HEAP32[4145]|0; - FUNCTION_TABLE_vii[$61 & 63](1,(14736)); - $62 = HEAP32[3723]|0; - $63 = HEAP32[(14736)>>2]|0; - FUNCTION_TABLE_vi[$62 & 31]($63); - } - _glGenBuffers(1,((14740)|0)); - $64 = HEAP32[(14740)>>2]|0; - _glBindBuffer(34962,($64|0)); - $65 = HEAP32[(14720)>>2]|0; - _glBufferData(34962,73728,($65|0),35048); - $66 = HEAP32[(14760)>>2]|0; - _glEnableVertexAttribArray(($66|0)); - $67 = HEAP32[(14760)>>2]|0; - _glVertexAttribPointer(($67|0),3,5126,0,0,(0|0)); - _glGenBuffers(1,((14744)|0)); - $68 = HEAP32[(14744)>>2]|0; - _glBindBuffer(34962,($68|0)); - $69 = HEAP32[(14728)>>2]|0; - _glBufferData(34962,24576,($69|0),35048); - $70 = HEAP32[(14780)>>2]|0; - _glEnableVertexAttribArray(($70|0)); - $71 = HEAP32[(14780)>>2]|0; - _glVertexAttribPointer(($71|0),4,5121,1,0,(0|0)); - $72 = HEAP32[3722]|0; - $73 = ($72|0)==(0); - if ($73) { - $75 = HEAP32[(14740)>>2]|0; - $76 = HEAP32[(14744)>>2]|0; - HEAP32[$vararg_buffer10>>2] = $75; - $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); - HEAP32[$vararg_ptr13>>2] = $76; - _TraceLog(0,6301,$vararg_buffer10); - } else { - $74 = HEAP32[(14736)>>2]|0; - HEAP32[$vararg_buffer7>>2] = $74; - _TraceLog(0,6232,$vararg_buffer7); - } - $77 = HEAP32[3722]|0; - $78 = ($77|0)==(0); - if (!($78)) { - $79 = HEAP32[4145]|0; - FUNCTION_TABLE_vii[$79 & 63](1,(14496)); - $80 = HEAP32[3723]|0; - $81 = HEAP32[(14496)>>2]|0; - FUNCTION_TABLE_vi[$80 & 31]($81); - } - _glGenBuffers(1,((14500)|0)); - $82 = HEAP32[(14500)>>2]|0; - _glBindBuffer(34962,($82|0)); - $83 = HEAP32[(14480)>>2]|0; - _glBufferData(34962,49152,($83|0),35048); - $84 = HEAP32[(14760)>>2]|0; - _glEnableVertexAttribArray(($84|0)); - $85 = HEAP32[(14760)>>2]|0; - _glVertexAttribPointer(($85|0),3,5126,0,0,(0|0)); - _glGenBuffers(1,((14504)|0)); - $86 = HEAP32[(14504)>>2]|0; - _glBindBuffer(34962,($86|0)); - $87 = HEAP32[(14484)>>2]|0; - _glBufferData(34962,32768,($87|0),35048); - $88 = HEAP32[(14764)>>2]|0; - _glEnableVertexAttribArray(($88|0)); - $89 = HEAP32[(14764)>>2]|0; - _glVertexAttribPointer(($89|0),2,5126,0,0,(0|0)); - _glGenBuffers(1,((14508)|0)); - $90 = HEAP32[(14508)>>2]|0; - _glBindBuffer(34962,($90|0)); - $91 = HEAP32[(14488)>>2]|0; - _glBufferData(34962,16384,($91|0),35048); - $92 = HEAP32[(14780)>>2]|0; - _glEnableVertexAttribArray(($92|0)); - $93 = HEAP32[(14780)>>2]|0; - _glVertexAttribPointer(($93|0),4,5121,1,0,(0|0)); - _glGenBuffers(1,((14512)|0)); - $94 = HEAP32[(14512)>>2]|0; - _glBindBuffer(34963,($94|0)); - $95 = HEAP32[(14492)>>2]|0; - _glBufferData(34963,12288,($95|0),35044); - $96 = HEAP32[3722]|0; - $97 = ($96|0)==(0); - if ($97) { - $99 = HEAP32[(14500)>>2]|0; - $100 = HEAP32[(14504)>>2]|0; - $101 = HEAP32[(14508)>>2]|0; - $102 = HEAP32[(14512)>>2]|0; - HEAP32[$vararg_buffer17>>2] = $99; - $vararg_ptr20 = ((($vararg_buffer17)) + 4|0); - HEAP32[$vararg_ptr20>>2] = $100; - $vararg_ptr21 = ((($vararg_buffer17)) + 8|0); - HEAP32[$vararg_ptr21>>2] = $101; - $vararg_ptr22 = ((($vararg_buffer17)) + 12|0); - HEAP32[$vararg_ptr22>>2] = $102; - _TraceLog(0,6447,$vararg_buffer17); - } else { - $98 = HEAP32[(14496)>>2]|0; - HEAP32[$vararg_buffer14>>2] = $98; - _TraceLog(0,6382,$vararg_buffer14); - } - $103 = HEAP32[3722]|0; - $104 = ($103|0)==(0); - if ($104) { - STACKTOP = sp;return; - } - $105 = HEAP32[3723]|0; - FUNCTION_TABLE_vi[$105 & 31](0); - STACKTOP = sp;return; -} -function _LoadShaderProgram($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$alloca_mul = 0, $$alloca_mul34 = 0, $$alloca_mul36 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer22 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); - $vararg_buffer22 = sp + 64|0; - $vararg_buffer19 = sp + 56|0; - $vararg_buffer16 = sp + 48|0; - $vararg_buffer13 = sp + 40|0; - $vararg_buffer10 = sp + 32|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer4 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 80|0; - $3 = sp + 76|0; - $4 = sp + 72|0; - $5 = sp + 68|0; - $6 = (_glCreateShader(35633)|0); - $7 = (_glCreateShader(35632)|0); - HEAP32[$2>>2] = $0; - HEAP32[$3>>2] = $1; - _glShaderSource(($6|0),1,($2|0),(0|0)); - _glShaderSource(($7|0),1,($3|0),(0|0)); - HEAP32[$4>>2] = 0; - _glCompileShader(($6|0)); - _glGetShaderiv(($6|0),35713,($4|0)); - $8 = HEAP32[$4>>2]|0; - $9 = ($8|0)==(1); - if ($9) { - HEAP32[$vararg_buffer4>>2] = $6; - _TraceLog(0,7684,$vararg_buffer4); - } else { - HEAP32[$vararg_buffer>>2] = $6; - _TraceLog(1,7632,$vararg_buffer); - HEAP32[$vararg_buffer>>2] = 0; - _glGetShaderiv(($6|0),35716,($vararg_buffer|0)); - $10 = HEAP32[$vararg_buffer>>2]|0; - $11 = (_llvm_stacksave()|0); - $$alloca_mul = $10; - $12 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);; - $13 = HEAP32[$vararg_buffer>>2]|0; - _glGetShaderInfoLog(($6|0),($13|0),($5|0),($12|0)); - HEAP32[$vararg_buffer1>>2] = $12; - _TraceLog(0,7681,$vararg_buffer1); - _llvm_stackrestore(($11|0)); - } - _glCompileShader(($7|0)); - _glGetShaderiv(($7|0),35713,($4|0)); - $14 = HEAP32[$4>>2]|0; - $15 = ($14|0)==(1); - if ($15) { - HEAP32[$vararg_buffer13>>2] = $7; - _TraceLog(0,7785,$vararg_buffer13); - } else { - HEAP32[$vararg_buffer7>>2] = $7; - _TraceLog(1,7734,$vararg_buffer7); - HEAP32[$vararg_buffer7>>2] = 0; - _glGetShaderiv(($7|0),35716,($vararg_buffer7|0)); - $16 = HEAP32[$vararg_buffer7>>2]|0; - $17 = (_llvm_stacksave()|0); - $$alloca_mul34 = $16; - $18 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul34)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul34)|0)+15)&-16)|0);; - $19 = HEAP32[$vararg_buffer7>>2]|0; - _glGetShaderInfoLog(($7|0),($19|0),($5|0),($18|0)); - HEAP32[$vararg_buffer10>>2] = $18; - _TraceLog(0,7681,$vararg_buffer10); - _llvm_stackrestore(($17|0)); - } - $20 = (_glCreateProgram()|0); - _glAttachShader(($20|0),($6|0)); - _glAttachShader(($20|0),($7|0)); - _glBindAttribLocation(($20|0),0,(7518|0)); - _glBindAttribLocation(($20|0),1,(7533|0)); - _glBindAttribLocation(($20|0),2,(7837|0)); - _glBindAttribLocation(($20|0),3,(7548|0)); - _glBindAttribLocation(($20|0),4,(7850|0)); - _glBindAttribLocation(($20|0),5,(7864|0)); - _glLinkProgram(($20|0)); - _glGetProgramiv(($20|0),35714,($4|0)); - $21 = HEAP32[$4>>2]|0; - $22 = ($21|0)==(0); - if ($22) { - HEAP32[$vararg_buffer16>>2] = $20; - _TraceLog(1,7880,$vararg_buffer16); - HEAP32[$vararg_buffer16>>2] = 0; - _glGetProgramiv(($20|0),35716,($vararg_buffer16|0)); - $23 = HEAP32[$vararg_buffer16>>2]|0; - $24 = (_llvm_stacksave()|0); - $$alloca_mul36 = $23; - $25 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul36)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul36)|0)+15)&-16)|0);; - $26 = HEAP32[$vararg_buffer16>>2]|0; - _glGetProgramInfoLog(($20|0),($26|0),($5|0),($25|0)); - HEAP32[$vararg_buffer19>>2] = $25; - _TraceLog(0,7681,$vararg_buffer19); - _glDeleteProgram(($20|0)); - _llvm_stackrestore(($24|0)); - $$0 = 0; - _glDeleteShader(($6|0)); - _glDeleteShader(($7|0)); - STACKTOP = sp;return ($$0|0); - } else { - HEAP32[$vararg_buffer22>>2] = $20; - _TraceLog(0,7926,$vararg_buffer22); - $$0 = $20; - _glDeleteShader(($6|0)); - _glDeleteShader(($7|0)); - STACKTOP = sp;return ($$0|0); - } - return (0)|0; -} -function _IsMouseButtonPressed($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (17477 + ($0)|0); - $2 = HEAP8[$1>>0]|0; - $3 = (17480 + ($0)|0); - $4 = HEAP8[$3>>0]|0; - $5 = ($2<<24>>24)!=($4<<24>>24); - $6 = ($2<<24>>24)==(1); - $or$cond = $6 & $5; - $$0 = $or$cond&1; - return ($$0|0); -} -function _IsMouseButtonReleased($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (17477 + ($0)|0); - $2 = HEAP8[$1>>0]|0; - $3 = (17480 + ($0)|0); - $4 = HEAP8[$3>>0]|0; - $5 = ($2<<24>>24)!=($4<<24>>24); - $6 = ($2<<24>>24)==(0); - $or$cond = $6 & $5; - $$0 = $or$cond&1; - return ($$0|0); -} -function _rlClearScreenBuffers() { - var label = 0, sp = 0; - sp = STACKTOP; - _glClear(16640); - return; -} -function _CloseWindow() { - var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - _UnloadDefaultFont(); - _rlglClose(); - $0 = HEAP32[4156]|0; - _glfwDestroyWindow(($0|0)); - _glfwTerminate(); - _TraceLog(0,8221,$vararg_buffer); - STACKTOP = sp;return; -} -function _rlglClose() { - var $0 = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - _UnloadShaderDefault(); - _UnloadBuffersDefault(); - _glDeleteTextures(1,(14652|0)); - $0 = HEAP32[3663]|0; - HEAP32[$vararg_buffer>>2] = $0; - _TraceLog(0,8248,$vararg_buffer); - $1 = HEAP32[3664]|0; - _free($1); - STACKTOP = sp;return; -} -function _UnloadShaderDefault() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - _glUseProgram(0); - $0 = HEAP32[4112]|0; - _glDeleteProgram(($0|0)); - return; -} -function _UnloadBuffersDefault() { - var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[3722]|0; - $1 = ($0|0)==(0); - if (!($1)) { - $2 = HEAP32[3723]|0; - FUNCTION_TABLE_vi[$2 & 31](0); - } - _glDisableVertexAttribArray(0); - _glDisableVertexAttribArray(1); - _glDisableVertexAttribArray(2); - _glDisableVertexAttribArray(3); - _glBindBuffer(34962,0); - _glBindBuffer(34963,0); - _glDeleteBuffers(1,((14692)|0)); - _glDeleteBuffers(1,((14696)|0)); - _glDeleteBuffers(1,((14740)|0)); - _glDeleteBuffers(1,((14744)|0)); - _glDeleteBuffers(1,((14500)|0)); - _glDeleteBuffers(1,((14504)|0)); - _glDeleteBuffers(1,((14508)|0)); - _glDeleteBuffers(1,((14512)|0)); - $3 = HEAP32[3722]|0; - $4 = ($3|0)==(0); - if (!($4)) { - $5 = HEAP32[4146]|0; - FUNCTION_TABLE_vii[$5 & 63](1,(14688)); - $6 = HEAP32[4146]|0; - FUNCTION_TABLE_vii[$6 & 63](1,(14736)); - $7 = HEAP32[4146]|0; - FUNCTION_TABLE_vii[$7 & 63](1,(14496)); - } - $8 = HEAP32[(14672)>>2]|0; - _free($8); - $9 = HEAP32[(14680)>>2]|0; - _free($9); - $10 = HEAP32[(14720)>>2]|0; - _free($10); - $11 = HEAP32[(14728)>>2]|0; - _free($11); - $12 = HEAP32[(14480)>>2]|0; - _free($12); - $13 = HEAP32[(14484)>>2]|0; - _free($13); - $14 = HEAP32[(14488)>>2]|0; - _free($14); - $15 = HEAP32[(14492)>>2]|0; - _free($15); - return; -} -function _BeginDrawing() { - var $0 = 0.0, $1 = 0.0, $2 = 0.0, $downscaleView$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $downscaleView$byval_copy = sp; - $0 = (+_GetTime()); - HEAPF64[1742] = $0; - $1 = +HEAPF64[1741]; - $2 = $0 - $1; - HEAPF64[1743] = $2; - HEAPF64[1741] = $0; - _rlClearScreenBuffers(); - _rlLoadIdentity(); - dest=$downscaleView$byval_copy; src=16664; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - (_MatrixToFloat($downscaleView$byval_copy)|0); - _rlMultMatrixf(14896); - STACKTOP = sp;return; -} -function _rlMultMatrixf($0) { - $0 = $0|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; - var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy1 = sp + 192|0; - $$byval_copy = sp + 128|0; - $1 = sp + 64|0; - $2 = sp; - $3 = HEAP32[$0>>2]|0; - HEAP32[$1>>2] = $3; - $4 = ((($1)) + 4|0); - $5 = ((($0)) + 16|0); - $6 = HEAP32[$5>>2]|0; - HEAP32[$4>>2] = $6; - $7 = ((($1)) + 8|0); - $8 = ((($0)) + 32|0); - $9 = HEAP32[$8>>2]|0; - HEAP32[$7>>2] = $9; - $10 = ((($1)) + 12|0); - $11 = ((($0)) + 48|0); - $12 = HEAP32[$11>>2]|0; - HEAP32[$10>>2] = $12; - $13 = ((($1)) + 16|0); - $14 = ((($0)) + 4|0); - $15 = HEAP32[$14>>2]|0; - HEAP32[$13>>2] = $15; - $16 = ((($1)) + 20|0); - $17 = ((($0)) + 20|0); - $18 = HEAP32[$17>>2]|0; - HEAP32[$16>>2] = $18; - $19 = ((($1)) + 24|0); - $20 = ((($0)) + 36|0); - $21 = HEAP32[$20>>2]|0; - HEAP32[$19>>2] = $21; - $22 = ((($1)) + 28|0); - $23 = ((($0)) + 52|0); - $24 = HEAP32[$23>>2]|0; - HEAP32[$22>>2] = $24; - $25 = ((($1)) + 32|0); - $26 = ((($0)) + 8|0); - $27 = HEAP32[$26>>2]|0; - HEAP32[$25>>2] = $27; - $28 = ((($1)) + 36|0); - $29 = ((($0)) + 24|0); - $30 = HEAP32[$29>>2]|0; - HEAP32[$28>>2] = $30; - $31 = ((($1)) + 40|0); - $32 = ((($0)) + 40|0); - $33 = HEAP32[$32>>2]|0; - HEAP32[$31>>2] = $33; - $34 = ((($1)) + 44|0); - $35 = ((($0)) + 56|0); - $36 = HEAP32[$35>>2]|0; - HEAP32[$34>>2] = $36; - $37 = ((($1)) + 48|0); - $38 = ((($0)) + 12|0); - $39 = HEAP32[$38>>2]|0; - HEAP32[$37>>2] = $39; - $40 = ((($1)) + 52|0); - $41 = ((($0)) + 28|0); - $42 = HEAP32[$41>>2]|0; - HEAP32[$40>>2] = $42; - $43 = ((($1)) + 56|0); - $44 = ((($0)) + 44|0); - $45 = HEAP32[$44>>2]|0; - HEAP32[$43>>2] = $45; - $46 = ((($1)) + 60|0); - $47 = ((($0)) + 60|0); - $48 = HEAP32[$47>>2]|0; - HEAP32[$46>>2] = $48; - $49 = HEAP32[4106]|0; - dest=$$byval_copy; src=$49; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy1; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($2,$$byval_copy,$$byval_copy1); - dest=$49; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _EndDrawing() { - var $0 = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - _rlglDraw(); - _SwapBuffers(); - _PollInputEvents(); - $0 = (+_GetTime()); - HEAPF64[1742] = $0; - $1 = +HEAPF64[1741]; - $2 = $0 - $1; - HEAPF64[1744] = $2; - HEAPF64[1741] = $0; - $3 = +HEAPF64[1743]; - $4 = $2 + $3; - HEAPF64[1728] = $4; - $5 = +HEAPF64[1738]; - $6 = $4 < $5; - if (!($6)) { - return; - } - $7 = $5 - $4; - $8 = $7 * 1000.0; - $9 = $8; - _Wait($9); - $10 = (+_GetTime()); - HEAPF64[1742] = $10; - $11 = +HEAPF64[1741]; - $12 = $10 - $11; - HEAPF64[1741] = $10; - $13 = +HEAPF64[1728]; - $14 = $12 + $13; - HEAPF64[1728] = $14; - return; -} -function _SwapBuffers() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4156]|0; - _glfwSwapBuffers(($0|0)); - return; -} -function _PollInputEvents() { - var $$04857 = 0, $$05160 = 0, $$058 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0.0, $40 = 0; - var $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep67 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1456|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1456|0); - $0 = sp + 1440|0; - $1 = sp + 1432|0; - $2 = sp; - _UpdateGestures(); - HEAP32[742] = -1; - HEAP32[744] = -1; - HEAP32[4192] = 0; - $3 = HEAP32[4156]|0; - _glfwGetCursorPos(($3|0),($0|0),($1|0)); - $4 = +HEAPF64[$0>>3]; - $5 = $4; - HEAPF32[3474] = $5; - $6 = +HEAPF64[$1>>3]; - $7 = $6; - HEAPF32[(13900)>>2] = $7; - _memcpy((17995|0),(17483|0),512)|0; - ;HEAP8[17480>>0]=HEAP8[17477>>0]|0;HEAP8[17480+1>>0]=HEAP8[17477+1>>0]|0;HEAP8[17480+2>>0]=HEAP8[17477+2>>0]|0; - $8 = HEAP32[4191]|0; - HEAP32[4157] = $8; - HEAP32[4191] = 0; - $9 = (_emscripten_get_num_gamepads()|0); - $10 = ($9|0)>(0); - if (!($10)) { - STACKTOP = sp;return; - } - $11 = ((($2)) + 12|0); - $12 = ((($2)) + 8|0); - $$05160 = 0; - while(1) { - $scevgep = (18507 + ($$05160<<5)|0); - $scevgep67 = (18635 + ($$05160<<5)|0); - dest=$scevgep; src=$scevgep67; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); - $13 = (_emscripten_get_gamepad_status(($$05160|0),($2|0))|0); - $14 = ($13|0)==(0); - if ($14) { - $15 = HEAP32[$11>>2]|0; - $16 = ($15|0)>(0); - if ($16) { - $17 = HEAP32[$11>>2]|0; - $$04857 = 0; - while(1) { - $21 = (((($2)) + 1040|0) + ($$04857<<2)|0); - $22 = HEAP32[$21>>2]|0; - $23 = ($22|0)==(1); - $24 = ((18635 + ($$05160<<5)|0) + ($$04857)|0); - if ($23) { - HEAP8[$24>>0] = 1; - HEAP32[744] = $$04857; - } else { - HEAP8[$24>>0] = 0; - } - $25 = (($$04857) + 1)|0; - $26 = ($25|0)<($17|0); - $27 = ($25|0)<(32); - $28 = $27 & $26; - if ($28) { - $$04857 = $25; - } else { - break; - } - } - } - $18 = HEAP32[$12>>2]|0; - $19 = ($18|0)>(0); - if ($19) { - $20 = HEAP32[$12>>2]|0; - $$058 = 0; - while(1) { - $29 = (((($2)) + 16|0) + ($$058<<3)|0); - $30 = +HEAPF64[$29>>3]; - $31 = $30; - $32 = ((16772 + ($$05160<<5)|0) + ($$058<<2)|0); - HEAPF32[$32>>2] = $31; - $33 = (($$058) + 1)|0; - $34 = ($33|0)<($20|0); - $35 = ($33|0)<(8); - $36 = $35 & $34; - if ($36) { - $$058 = $33; - } else { - $$lcssa = $20; - break; - } - } - } else { - $$lcssa = $18; - } - HEAP32[4192] = $$lcssa; - } - $37 = (($$05160) + 1)|0; - $38 = ($37|0)<($9|0); - $39 = ($37|0)<(4); - $40 = $38 & $39; - if ($40) { - $$05160 = $37; - } else { - break; - } - } - STACKTOP = sp;return; -} -function _Wait($0) { - $0 = +$0; - var $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (+_GetTime()); - $2 = 0.0 - $1; - $3 = $0 / 1000.0; - $4 = $3; - $5 = $2 < $4; - if (!($5)) { - return; - } - while(1) { - $6 = (+_GetTime()); - $7 = $6 - $1; - $8 = $7 < $4; - if (!($8)) { - break; - } - } - return; -} -function _emscripten_GetProcAddress($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; - var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; - var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; - var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; - var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; - var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; - var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0; - var $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0; - var $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0; - var $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0; - var $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0; - var $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0; - var $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0; - var $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0; - var $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0; - var $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0; - var $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0; - var $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0; - var $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0; - var $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0; - var $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0; - var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0; - var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp + 12|0; - $2 = sp + 8|0; - $3 = sp + 4|0; - $4 = sp; - HEAP32[$2>>2] = $0; - $5 = HEAP32[$2>>2]|0; - $6 = (_strlen($5)|0); - $7 = (($6) + 1)|0; - $8 = (_malloc($7)|0); - HEAP32[$3>>2] = $8; - $9 = HEAP32[$3>>2]|0; - $10 = HEAP32[$2>>2]|0; - (_strcpy($9,$10)|0); - $11 = HEAP32[$3>>2]|0; - $12 = (_strstr($11,8313)|0); - HEAP32[$4>>2] = $12; - $13 = HEAP32[$4>>2]|0; - $14 = ($13|0)!=(0|0); - if ($14) { - $15 = HEAP32[$4>>2]|0; - HEAP8[$15>>0] = 0; - } - $16 = HEAP32[$3>>2]|0; - $17 = (_strstr($16,8317)|0); - HEAP32[$4>>2] = $17; - $18 = HEAP32[$4>>2]|0; - $19 = ($18|0)!=(0|0); - if ($19) { - $20 = HEAP32[$4>>2]|0; - HEAP8[$20>>0] = 0; - } - $21 = HEAP32[$3>>2]|0; - $22 = (_strstr($21,8321)|0); - HEAP32[$4>>2] = $22; - $23 = HEAP32[$4>>2]|0; - $24 = ($23|0)!=(0|0); - if ($24) { - $25 = HEAP32[$4>>2]|0; - HEAP8[$25>>0] = 0; - } - $26 = HEAP32[$3>>2]|0; - $27 = (_strstr($26,8325)|0); - HEAP32[$4>>2] = $27; - $28 = HEAP32[$4>>2]|0; - $29 = ($28|0)!=(0|0); - if ($29) { - $30 = HEAP32[$4>>2]|0; - HEAP8[$30>>0] = 0; - } - $31 = HEAP32[$3>>2]|0; - $32 = (_strcmp($31,8331)|0); - $33 = ($32|0)!=(0); - do { - if ($33) { - $34 = HEAP32[$3>>2]|0; - $35 = (_strcmp($34,8369)|0); - $36 = ($35|0)!=(0); - if (!($36)) { - HEAP32[$3>>2] = 8388; - break; - } - $37 = HEAP32[$3>>2]|0; - $38 = (_strcmp($37,8401)|0); - $39 = ($38|0)!=(0); - if (!($39)) { - HEAP32[$3>>2] = 8422; - break; - } - $40 = HEAP32[$3>>2]|0; - $41 = (_strcmp($40,8437)|0); - $42 = ($41|0)!=(0); - if (!($42)) { - HEAP32[$3>>2] = 8452; - break; - } - $43 = HEAP32[$3>>2]|0; - $44 = (_strcmp($43,8467)|0); - $45 = ($44|0)!=(0); - if (!($45)) { - HEAP32[$3>>2] = 8482; - } - } else { - HEAP32[$3>>2] = 8353; - } - } while(0); - $46 = HEAP32[$3>>2]|0; - $47 = (_strcmp($46,8497)|0); - $48 = ($47|0)!=(0); - do { - if ($48) { - $49 = HEAP32[$3>>2]|0; - $50 = (_strcmp($49,8511)|0); - $51 = ($50|0)!=(0); - if (!($51)) { - HEAP32[$1>>2] = 2; - break; - } - $52 = HEAP32[$3>>2]|0; - $53 = (_strcmp($52,8523)|0); - $54 = ($53|0)!=(0); - if (!($54)) { - HEAP32[$1>>2] = 6; - break; - } - $55 = HEAP32[$3>>2]|0; - $56 = (_strcmp($55,8537)|0); - $57 = ($56|0)!=(0); - if (!($57)) { - HEAP32[$1>>2] = 7; - break; - } - $58 = HEAP32[$3>>2]|0; - $59 = (_strcmp($58,8549)|0); - $60 = ($59|0)!=(0); - if (!($60)) { - HEAP32[$1>>2] = 8; - break; - } - $61 = HEAP32[$3>>2]|0; - $62 = (_strcmp($61,8563)|0); - $63 = ($62|0)!=(0); - if (!($63)) { - HEAP32[$1>>2] = 9; - break; - } - $64 = HEAP32[$3>>2]|0; - $65 = (_strcmp($64,8577)|0); - $66 = ($65|0)!=(0); - if (!($66)) { - HEAP32[$1>>2] = 10; - break; - } - $67 = HEAP32[$3>>2]|0; - $68 = (_strcmp($67,8594)|0); - $69 = ($68|0)!=(0); - if (!($69)) { - HEAP32[$1>>2] = 1; - break; - } - $70 = HEAP32[$3>>2]|0; - $71 = (_strcmp($70,8617)|0); - $72 = ($71|0)!=(0); - if (!($72)) { - HEAP32[$1>>2] = 1; - break; - } - $73 = HEAP32[$3>>2]|0; - $74 = (_strcmp($73,8643)|0); - $75 = ($74|0)!=(0); - if (!($75)) { - HEAP32[$1>>2] = 2; - break; - } - $76 = HEAP32[$3>>2]|0; - $77 = (_strcmp($76,8656)|0); - $78 = ($77|0)!=(0); - if (!($78)) { - HEAP32[$1>>2] = 3; - break; - } - $79 = HEAP32[$3>>2]|0; - $80 = (_strcmp($79,8672)|0); - $81 = ($80|0)!=(0); - if (!($81)) { - HEAP32[$1>>2] = 1; - break; - } - $82 = HEAP32[$3>>2]|0; - $83 = (_strcmp($82,8685)|0); - $84 = ($83|0)!=(0); - if (!($84)) { - HEAP32[$1>>2] = 11; - break; - } - $85 = HEAP32[$3>>2]|0; - $86 = (_strcmp($85,8699)|0); - $87 = ($86|0)!=(0); - if (!($87)) { - HEAP32[$1>>2] = 2; - break; - } - $88 = HEAP32[$3>>2]|0; - $89 = (_strcmp($88,8719)|0); - $90 = ($89|0)!=(0); - if (!($90)) { - HEAP32[$1>>2] = 3; - break; - } - $91 = HEAP32[$3>>2]|0; - $92 = (_strcmp($91,8739)|0); - $93 = ($92|0)!=(0); - if (!($93)) { - HEAP32[$1>>2] = 4; - break; - } - $94 = HEAP32[$3>>2]|0; - $95 = (_strcmp($94,8756)|0); - $96 = ($95|0)!=(0); - if (!($96)) { - HEAP32[$1>>2] = 5; - break; - } - $97 = HEAP32[$3>>2]|0; - $98 = (_strcmp($97,8773)|0); - $99 = ($98|0)!=(0); - if (!($99)) { - HEAP32[$1>>2] = 3; - break; - } - $100 = HEAP32[$3>>2]|0; - $101 = (_strcmp($100,8785)|0); - $102 = ($101|0)!=(0); - if (!($102)) { - HEAP32[$1>>2] = 12; - break; - } - $103 = HEAP32[$3>>2]|0; - $104 = (_strcmp($103,8798)|0); - $105 = ($104|0)!=(0); - if (!($105)) { - HEAP32[$1>>2] = 13; - break; - } - $106 = HEAP32[$3>>2]|0; - $107 = (_strcmp($106,8814)|0); - $108 = ($107|0)!=(0); - if (!($108)) { - HEAP32[$1>>2] = 6; - break; - } - $109 = HEAP32[$3>>2]|0; - $110 = (_strcmp($109,8837)|0); - $111 = ($110|0)!=(0); - if (!($111)) { - HEAP32[$1>>2] = 2; - break; - } - $112 = HEAP32[$3>>2]|0; - $113 = (_strcmp($112,8850)|0); - $114 = ($113|0)!=(0); - if (!($114)) { - HEAP32[$1>>2] = 3; - break; - } - $115 = HEAP32[$3>>2]|0; - $116 = (_strcmp($115,8866)|0); - $117 = ($116|0)!=(0); - if (!($117)) { - HEAP32[$1>>2] = 4; - break; - } - $118 = HEAP32[$3>>2]|0; - $119 = (_strcmp($118,8877)|0); - $120 = ($119|0)!=(0); - if (!($120)) { - HEAP32[$1>>2] = 14; - break; - } - $121 = HEAP32[$3>>2]|0; - $122 = (_strcmp($121,8896)|0); - $123 = ($122|0)!=(0); - if (!($123)) { - HEAP32[$1>>2] = 15; - break; - } - $124 = HEAP32[$3>>2]|0; - $125 = (_strcmp($124,8918)|0); - $126 = ($125|0)!=(0); - if (!($126)) { - HEAP32[$1>>2] = 16; - break; - } - $127 = HEAP32[$3>>2]|0; - $128 = (_strcmp($127,8937)|0); - $129 = ($128|0)!=(0); - if (!($129)) { - HEAP32[$1>>2] = 7; - break; - } - $130 = HEAP32[$3>>2]|0; - $131 = (_strcmp($130,8966)|0); - $132 = ($131|0)!=(0); - if (!($132)) { - HEAP32[$1>>2] = 5; - break; - } - $133 = HEAP32[$3>>2]|0; - $134 = (_strcmp($133,8983)|0); - $135 = ($134|0)!=(0); - if (!($135)) { - HEAP32[$1>>2] = 8; - break; - } - $136 = HEAP32[$3>>2]|0; - $137 = (_strcmp($136,8998)|0); - $138 = ($137|0)!=(0); - if (!($138)) { - HEAP32[$1>>2] = 9; - break; - } - $139 = HEAP32[$3>>2]|0; - $140 = (_strcmp($139,9013)|0); - $141 = ($140|0)!=(0); - if (!($141)) { - HEAP32[$1>>2] = 1; - break; - } - $142 = HEAP32[$3>>2]|0; - $143 = (_strcmp($142,9034)|0); - $144 = ($143|0)!=(0); - if (!($144)) { - HEAP32[$1>>2] = 10; - break; - } - $145 = HEAP32[$3>>2]|0; - $146 = (_strcmp($145,9054)|0); - $147 = ($146|0)!=(0); - if (!($147)) { - HEAP32[$1>>2] = 11; - break; - } - $148 = HEAP32[$3>>2]|0; - $149 = (_strcmp($148,9074)|0); - $150 = ($149|0)!=(0); - if (!($150)) { - HEAP32[$1>>2] = 12; - break; - } - $151 = HEAP32[$3>>2]|0; - $152 = (_strcmp($151,9100)|0); - $153 = ($152|0)!=(0); - if (!($153)) { - HEAP32[$1>>2] = 2; - break; - } - $154 = HEAP32[$3>>2]|0; - $155 = (_strcmp($154,9119)|0); - $156 = ($155|0)!=(0); - if (!($156)) { - HEAP32[$1>>2] = 1; - break; - } - $157 = HEAP32[$3>>2]|0; - $158 = (_strcmp($157,9131)|0); - $159 = ($158|0)!=(0); - if (!($159)) { - HEAP32[$1>>2] = 3; - break; - } - $160 = HEAP32[$3>>2]|0; - $161 = (_strcmp($160,9143)|0); - $162 = ($161|0)!=(0); - if (!($162)) { - HEAP32[$1>>2] = 1; - break; - } - $163 = HEAP32[$3>>2]|0; - $164 = (_strcmp($163,9155)|0); - $165 = ($164|0)!=(0); - if (!($165)) { - HEAP32[$1>>2] = 1; - break; - } - $166 = HEAP32[$3>>2]|0; - $167 = (_strcmp($166,9167)|0); - $168 = ($167|0)!=(0); - if (!($168)) { - HEAP32[$1>>2] = 17; - break; - } - $169 = HEAP32[$3>>2]|0; - $170 = (_strcmp($169,9179)|0); - $171 = ($170|0)!=(0); - if (!($171)) { - HEAP32[$1>>2] = 13; - break; - } - $172 = HEAP32[$3>>2]|0; - $173 = (_strcmp($172,9191)|0); - $174 = ($173|0)!=(0); - if (!($174)) { - HEAP32[$1>>2] = 4; - break; - } - $175 = HEAP32[$3>>2]|0; - $176 = (_strcmp($175,9203)|0); - $177 = ($176|0)!=(0); - if (!($177)) { - HEAP32[$1>>2] = 2; - break; - } - $178 = HEAP32[$3>>2]|0; - $179 = (_strcmp($178,9215)|0); - $180 = ($179|0)!=(0); - if (!($180)) { - HEAP32[$1>>2] = 14; - break; - } - $181 = HEAP32[$3>>2]|0; - $182 = (_strcmp($181,9228)|0); - $183 = ($182|0)!=(0); - if (!($183)) { - HEAP32[$1>>2] = 15; - break; - } - $184 = HEAP32[$3>>2]|0; - $185 = (_strcmp($184,9241)|0); - $186 = ($185|0)!=(0); - if (!($186)) { - HEAP32[$1>>2] = 16; - break; - } - $187 = HEAP32[$3>>2]|0; - $188 = (_strcmp($187,9254)|0); - $189 = ($188|0)!=(0); - if (!($189)) { - HEAP32[$1>>2] = 17; - break; - } - $190 = HEAP32[$3>>2]|0; - $191 = (_strcmp($190,9267)|0); - $192 = ($191|0)!=(0); - if (!($192)) { - HEAP32[$1>>2] = 18; - break; - } - $193 = HEAP32[$3>>2]|0; - $194 = (_strcmp($193,9280)|0); - $195 = ($194|0)!=(0); - if (!($195)) { - HEAP32[$1>>2] = 19; - break; - } - $196 = HEAP32[$3>>2]|0; - $197 = (_strcmp($196,9293)|0); - $198 = ($197|0)!=(0); - if (!($198)) { - HEAP32[$1>>2] = 20; - break; - } - $199 = HEAP32[$3>>2]|0; - $200 = (_strcmp($199,9306)|0); - $201 = ($200|0)!=(0); - if (!($201)) { - HEAP32[$1>>2] = 21; - break; - } - $202 = HEAP32[$3>>2]|0; - $203 = (_strcmp($202,9319)|0); - $204 = ($203|0)!=(0); - if (!($204)) { - HEAP32[$1>>2] = 5; - break; - } - $205 = HEAP32[$3>>2]|0; - $206 = (_strcmp($205,9338)|0); - $207 = ($206|0)!=(0); - if (!($207)) { - HEAP32[$1>>2] = 6; - break; - } - $208 = HEAP32[$3>>2]|0; - $209 = (_strcmp($208,9357)|0); - $210 = ($209|0)!=(0); - if (!($210)) { - HEAP32[$1>>2] = 7; - break; - } - $211 = HEAP32[$3>>2]|0; - $212 = (_strcmp($211,9376)|0); - $213 = ($212|0)!=(0); - if (!($213)) { - HEAP32[$1>>2] = 18; - break; - } - $214 = HEAP32[$3>>2]|0; - $215 = (_strcmp($214,9389)|0); - $216 = ($215|0)!=(0); - if (!($216)) { - HEAP32[$1>>2] = 19; - break; - } - $217 = HEAP32[$3>>2]|0; - $218 = (_strcmp($217,9407)|0); - $219 = ($218|0)!=(0); - if (!($219)) { - HEAP32[$1>>2] = 20; - break; - } - $220 = HEAP32[$3>>2]|0; - $221 = (_strcmp($220,9425)|0); - $222 = ($221|0)!=(0); - if (!($222)) { - HEAP32[$1>>2] = 21; - break; - } - $223 = HEAP32[$3>>2]|0; - $224 = (_strcmp($223,9443)|0); - $225 = ($224|0)!=(0); - if (!($225)) { - HEAP32[$1>>2] = 22; - break; - } - $226 = HEAP32[$3>>2]|0; - $227 = (_strcmp($226,9461)|0); - $228 = ($227|0)!=(0); - if (!($228)) { - HEAP32[$1>>2] = 2; - break; - } - $229 = HEAP32[$3>>2]|0; - $230 = (_strcmp($229,9481)|0); - $231 = ($230|0)!=(0); - if (!($231)) { - HEAP32[$1>>2] = 3; - break; - } - $232 = HEAP32[$3>>2]|0; - $233 = (_strcmp($232,8422)|0); - $234 = ($233|0)!=(0); - if (!($234)) { - HEAP32[$1>>2] = 6; - break; - } - $235 = HEAP32[$3>>2]|0; - $236 = (_strcmp($235,9499)|0); - $237 = ($236|0)!=(0); - if (!($237)) { - HEAP32[$1>>2] = 1; - break; - } - $238 = HEAP32[$3>>2]|0; - $239 = (_strcmp($238,9514)|0); - $240 = ($239|0)!=(0); - if (!($240)) { - HEAP32[$1>>2] = 8; - break; - } - $241 = HEAP32[$3>>2]|0; - $242 = (_strcmp($241,9535)|0); - $243 = ($242|0)!=(0); - if (!($243)) { - HEAP32[$1>>2] = 9; - break; - } - $244 = HEAP32[$3>>2]|0; - $245 = (_strcmp($244,9550)|0); - $246 = ($245|0)!=(0); - if (!($246)) { - HEAP32[$1>>2] = 10; - break; - } - $247 = HEAP32[$3>>2]|0; - $248 = (_strcmp($247,9568)|0); - $249 = ($248|0)!=(0); - if (!($249)) { - HEAP32[$1>>2] = 2; - break; - } - $250 = HEAP32[$3>>2]|0; - $251 = (_strcmp($250,9584)|0); - $252 = ($251|0)!=(0); - if (!($252)) { - HEAP32[$1>>2] = 11; - break; - } - $253 = HEAP32[$3>>2]|0; - $254 = (_strcmp($253,9603)|0); - $255 = ($254|0)!=(0); - if (!($255)) { - HEAP32[$1>>2] = 22; - break; - } - $256 = HEAP32[$3>>2]|0; - $257 = (_strcmp($256,9617)|0); - $258 = ($257|0)!=(0); - if (!($258)) { - HEAP32[$1>>2] = 23; - break; - } - $259 = HEAP32[$3>>2]|0; - $260 = (_strcmp($259,9632)|0); - $261 = ($260|0)!=(0); - if (!($261)) { - HEAP32[$1>>2] = 7; - break; - } - $262 = HEAP32[$3>>2]|0; - $263 = (_strcmp($262,8353)|0); - $264 = ($263|0)!=(0); - if (!($264)) { - HEAP32[$1>>2] = 1; - break; - } - $265 = HEAP32[$3>>2]|0; - $266 = (_strcmp($265,9643)|0); - $267 = ($266|0)!=(0); - if (!($267)) { - HEAP32[$1>>2] = 3; - break; - } - $268 = HEAP32[$3>>2]|0; - $269 = (_strcmp($268,8452)|0); - $270 = ($269|0)!=(0); - if (!($270)) { - HEAP32[$1>>2] = 23; - break; - } - $271 = HEAP32[$3>>2]|0; - $272 = (_strcmp($271,8482)|0); - $273 = ($272|0)!=(0); - if (!($273)) { - HEAP32[$1>>2] = 24; - break; - } - $274 = HEAP32[$3>>2]|0; - $275 = (_strcmp($274,9659)|0); - $276 = ($275|0)!=(0); - if (!($276)) { - HEAP32[$1>>2] = 12; - break; - } - $277 = HEAP32[$3>>2]|0; - $278 = (_strcmp($277,9686)|0); - $279 = ($278|0)!=(0); - if (!($279)) { - HEAP32[$1>>2] = 4; - break; - } - $280 = HEAP32[$3>>2]|0; - $281 = (_strcmp($280,9700)|0); - $282 = ($281|0)!=(0); - if (!($282)) { - HEAP32[$1>>2] = 13; - break; - } - $283 = HEAP32[$3>>2]|0; - $284 = (_strcmp($283,8388)|0); - $285 = ($284|0)!=(0); - if (!($285)) { - HEAP32[$1>>2] = 5; - break; - } - $286 = HEAP32[$3>>2]|0; - $287 = (_strcmp($286,9720)|0); - $288 = ($287|0)!=(0); - if (!($288)) { - HEAP32[$1>>2] = 6; - break; - } - $289 = HEAP32[$3>>2]|0; - $290 = (_strcmp($289,9738)|0); - $291 = ($290|0)!=(0); - if (!($291)) { - HEAP32[$1>>2] = 8; - break; - } - $292 = HEAP32[$3>>2]|0; - $293 = (_strcmp($292,9750)|0); - $294 = ($293|0)!=(0); - if (!($294)) { - HEAP32[$1>>2] = 24; - break; - } - $295 = HEAP32[$3>>2]|0; - $296 = (_strcmp($295,9771)|0); - $297 = ($296|0)!=(0); - if (!($297)) { - HEAP32[$1>>2] = 25; - break; - } - $298 = HEAP32[$3>>2]|0; - $299 = (_strcmp($298,9789)|0); - $300 = ($299|0)!=(0); - if (!($300)) { - HEAP32[$1>>2] = 26; - break; - } - $301 = HEAP32[$3>>2]|0; - $302 = (_strcmp($301,9807)|0); - $303 = ($302|0)!=(0); - if (!($303)) { - HEAP32[$1>>2] = 27; - break; - } - $304 = HEAP32[$3>>2]|0; - $305 = (_strcmp($304,9828)|0); - $306 = ($305|0)!=(0); - if (!($306)) { - HEAP32[$1>>2] = 14; - break; - } - $307 = HEAP32[$3>>2]|0; - $308 = (_strcmp($307,9854)|0); - $309 = ($308|0)!=(0); - if (!($309)) { - HEAP32[$1>>2] = 3; - break; - } - $310 = HEAP32[$3>>2]|0; - $311 = (_strcmp($310,9877)|0); - $312 = ($311|0)!=(0); - if (!($312)) { - HEAP32[$1>>2] = 15; - break; - } - $313 = HEAP32[$3>>2]|0; - $314 = (_strcmp($313,9915)|0); - $315 = ($314|0)!=(0); - if (!($315)) { - HEAP32[$1>>2] = 9; - break; - } - $316 = HEAP32[$3>>2]|0; - $317 = (_strcmp($316,9931)|0); - $318 = ($317|0)!=(0); - if (!($318)) { - HEAP32[$1>>2] = 7; - break; - } - $319 = HEAP32[$3>>2]|0; - $320 = (_strcmp($319,9946)|0); - $321 = ($320|0)!=(0); - if (!($321)) { - HEAP32[$1>>2] = 25; - break; - } - $322 = HEAP32[$3>>2]|0; - $323 = (_strcmp($322,9969)|0); - $324 = ($323|0)!=(0); - if (!($324)) { - HEAP32[$1>>2] = 16; - break; - } - $325 = HEAP32[$3>>2]|0; - $326 = (_strcmp($325,9982)|0); - $327 = ($326|0)!=(0); - if (!($327)) { - HEAP32[$1>>2] = 28; - break; - } - $328 = HEAP32[$3>>2]|0; - $329 = (_strcmp($328,9996)|0); - $330 = ($329|0)!=(0); - if (!($330)) { - HEAP32[$1>>2] = 29; - break; - } - $331 = HEAP32[$3>>2]|0; - $332 = (_strcmp($331,10010)|0); - $333 = ($332|0)!=(0); - if (!($333)) { - HEAP32[$1>>2] = 1; - break; - } - $334 = HEAP32[$3>>2]|0; - $335 = (_strcmp($334,10030)|0); - $336 = ($335|0)!=(0); - if (!($336)) { - HEAP32[$1>>2] = 8; - break; - } - $337 = HEAP32[$3>>2]|0; - $338 = (_strcmp($337,10050)|0); - $339 = ($338|0)!=(0); - if (!($339)) { - HEAP32[$1>>2] = 17; - break; - } - $340 = HEAP32[$3>>2]|0; - $341 = (_strcmp($340,10066)|0); - $342 = ($341|0)!=(0); - if (!($342)) { - HEAP32[$1>>2] = 18; - break; - } - $343 = HEAP32[$3>>2]|0; - $344 = (_strcmp($343,10084)|0); - $345 = ($344|0)!=(0); - if (!($345)) { - HEAP32[$1>>2] = 26; - break; - } - $346 = HEAP32[$3>>2]|0; - $347 = (_strcmp($346,10100)|0); - $348 = ($347|0)!=(0); - if (!($348)) { - HEAP32[$1>>2] = 19; - break; - } - $349 = HEAP32[$3>>2]|0; - $350 = (_strcmp($349,10115)|0); - $351 = ($350|0)!=(0); - if (!($351)) { - HEAP32[$1>>2] = 9; - break; - } - $352 = HEAP32[$3>>2]|0; - $353 = (_strcmp($352,10137)|0); - $354 = ($353|0)!=(0); - if (!($354)) { - HEAP32[$1>>2] = 30; - break; - } - $355 = HEAP32[$3>>2]|0; - $356 = (_strcmp($355,10155)|0); - $357 = ($356|0)!=(0); - if (!($357)) { - HEAP32[$1>>2] = 31; - break; - } - $358 = HEAP32[$3>>2]|0; - $359 = (_strcmp($358,10176)|0); - $360 = ($359|0)!=(0); - if (!($360)) { - HEAP32[$1>>2] = 10; - break; - } - $361 = HEAP32[$3>>2]|0; - $362 = (_strcmp($361,10194)|0); - $363 = ($362|0)!=(0); - if (!($363)) { - HEAP32[$1>>2] = 11; - break; - } - $364 = HEAP32[$3>>2]|0; - $365 = (_strcmp($364,10207)|0); - $366 = ($365|0)!=(0); - if (!($366)) { - HEAP32[$1>>2] = 2; - break; - } - $367 = HEAP32[$3>>2]|0; - $368 = (_strcmp($367,10222)|0); - $369 = ($368|0)!=(0); - if (!($369)) { - HEAP32[$1>>2] = 12; - break; - } - $370 = HEAP32[$3>>2]|0; - $371 = (_strcmp($370,10236)|0); - $372 = ($371|0)!=(0); - if (!($372)) { - HEAP32[$1>>2] = 1; - break; - } - $373 = HEAP32[$3>>2]|0; - $374 = (_strcmp($373,10246)|0); - $375 = ($374|0)!=(0); - if (!($375)) { - HEAP32[$1>>2] = 1; - break; - } - $376 = HEAP32[$3>>2]|0; - $377 = (_strcmp($376,10256)|0); - $378 = ($377|0)!=(0); - if (!($378)) { - HEAP32[$1>>2] = 2; - break; - } - $379 = HEAP32[$3>>2]|0; - $380 = (_strcmp($379,10278)|0); - $381 = ($380|0)!=(0); - if (!($381)) { - HEAP32[$1>>2] = 13; - break; - } - $382 = HEAP32[$3>>2]|0; - $383 = (_strcmp($382,10304)|0); - $384 = ($383|0)!=(0); - if (!($384)) { - HEAP32[$1>>2] = 14; - break; - } - $385 = HEAP32[$3>>2]|0; - $386 = (_strcmp($385,10331)|0); - $387 = ($386|0)!=(0); - if (!($387)) { - HEAP32[$1>>2] = 27; - break; - } - $388 = HEAP32[$3>>2]|0; - $389 = (_strcmp($388,10344)|0); - $390 = ($389|0)!=(0); - if (!($390)) { - HEAP32[$1>>2] = 20; - break; - } - $391 = HEAP32[$3>>2]|0; - $392 = (_strcmp($391,10359)|0); - $393 = ($392|0)!=(0); - if (!($393)) { - HEAP32[$1>>2] = 4; - break; - } - $394 = HEAP32[$3>>2]|0; - $395 = (_strcmp($394,10374)|0); - $396 = ($395|0)!=(0); - if (!($396)) { - HEAP32[$1>>2] = 3; - break; - } - $397 = HEAP32[$3>>2]|0; - $398 = (_strcmp($397,10398)|0); - $399 = ($398|0)!=(0); - if (!($399)) { - HEAP32[$1>>2] = 2; - break; - } - $400 = HEAP32[$3>>2]|0; - $401 = (_strcmp($400,10409)|0); - $402 = ($401|0)!=(0); - if (!($402)) { - HEAP32[$1>>2] = 32; - break; - } - $403 = HEAP32[$3>>2]|0; - $404 = (_strcmp($403,10431)|0); - $405 = ($404|0)!=(0); - if (!($405)) { - HEAP32[$1>>2] = 21; - break; - } - $406 = HEAP32[$3>>2]|0; - $407 = (_strcmp($406,10453)|0); - $408 = ($407|0)!=(0); - if (!($408)) { - HEAP32[$1>>2] = 5; - break; - } - $409 = HEAP32[$3>>2]|0; - $410 = (_strcmp($409,10477)|0); - $411 = ($410|0)!=(0); - if (!($411)) { - HEAP32[$1>>2] = 4; - break; - } - $412 = HEAP32[$3>>2]|0; - $413 = (_strcmp($412,10486)|0); - $414 = ($413|0)!=(0); - if (!($414)) { - HEAP32[$1>>2] = 5; - break; - } - $415 = HEAP32[$3>>2]|0; - $416 = (_strcmp($415,10494)|0); - $417 = ($416|0)!=(0); - if (!($417)) { - HEAP32[$1>>2] = 1; - break; - } - $418 = HEAP32[$3>>2]|0; - $419 = (_strcmp($418,10507)|0); - $420 = ($419|0)!=(0); - if (!($420)) { - HEAP32[$1>>2] = 2; - break; - } - $421 = HEAP32[$3>>2]|0; - $422 = (_strcmp($421,10521)|0); - $423 = ($422|0)!=(0); - if (!($423)) { - HEAP32[$1>>2] = 15; - break; - } - $424 = HEAP32[$3>>2]|0; - $425 = (_strcmp($424,10533)|0); - $426 = ($425|0)!=(0); - if (!($426)) { - HEAP32[$1>>2] = 16; - break; - } - $427 = HEAP32[$3>>2]|0; - $428 = (_strcmp($427,10542)|0); - $429 = ($428|0)!=(0); - if (!($429)) { - HEAP32[$1>>2] = 17; - break; - } - $430 = HEAP32[$3>>2]|0; - $431 = (_strcmp($430,10552)|0); - $432 = ($431|0)!=(0); - if (!($432)) { - HEAP32[$1>>2] = 18; - break; - } - $433 = HEAP32[$3>>2]|0; - $434 = (_strcmp($433,10564)|0); - $435 = ($434|0)!=(0); - if (!($435)) { - HEAP32[$1>>2] = 19; - break; - } - $436 = HEAP32[$3>>2]|0; - $437 = (_strcmp($436,10575)|0); - $438 = ($437|0)!=(0); - if (!($438)) { - HEAP32[$1>>2] = 20; - break; - } - $439 = HEAP32[$3>>2]|0; - $440 = (_strcmp($439,10583)|0); - $441 = ($440|0)!=(0); - if (!($441)) { - HEAP32[$1>>2] = 3; - break; - } - $442 = HEAP32[$3>>2]|0; - $443 = (_strcmp($442,10595)|0); - $444 = ($443|0)!=(0); - if (!($444)) { - HEAP32[$1>>2] = 21; - break; - } - $445 = HEAP32[$3>>2]|0; - $446 = (_strcmp($445,10610)|0); - $447 = ($446|0)!=(0); - if (!($447)) { - HEAP32[$1>>2] = 22; - break; - } - $448 = HEAP32[$3>>2]|0; - $449 = (_strcmp($448,10622)|0); - $450 = ($449|0)!=(0); - if (!($450)) { - HEAP32[$1>>2] = 23; - break; - } - $451 = HEAP32[$3>>2]|0; - $452 = (_strcmp($451,10636)|0); - $453 = ($452|0)!=(0); - if (!($453)) { - HEAP32[$1>>2] = 10; - break; - } - $454 = HEAP32[$3>>2]|0; - $455 = (_strcmp($454,10661)|0); - $456 = ($455|0)!=(0); - if (!($456)) { - HEAP32[$1>>2] = 24; - break; - } - $457 = HEAP32[$3>>2]|0; - $458 = (_strcmp($457,10678)|0); - $459 = ($458|0)!=(0); - if (!($459)) { - HEAP32[$1>>2] = 25; - break; - } - $460 = HEAP32[$3>>2]|0; - $461 = (_strcmp($460,10694)|0); - $462 = ($461|0)!=(0); - if (!($462)) { - HEAP32[$1>>2] = 26; - break; - } - $463 = HEAP32[$3>>2]|0; - $464 = (_strcmp($463,10710)|0); - $465 = ($464|0)!=(0); - if (!($465)) { - HEAP32[$1>>2] = 11; - break; - } - $466 = HEAP32[$3>>2]|0; - $467 = (_strcmp($466,10722)|0); - $468 = ($467|0)!=(0); - if (!($468)) { - HEAP32[$1>>2] = 33; - break; - } - $469 = HEAP32[$3>>2]|0; - $470 = (_strcmp($469,10734)|0); - $471 = ($470|0)!=(0); - if (!($471)) { - HEAP32[$1>>2] = 34; - break; - } - $472 = HEAP32[$3>>2]|0; - $473 = (_strcmp($472,10758)|0); - $474 = ($473|0)!=(0); - if (!($474)) { - HEAP32[$1>>2] = 1; - break; - } - $475 = HEAP32[$3>>2]|0; - $476 = (_strcmp($475,10771)|0); - $477 = ($476|0)!=(0); - if (!($477)) { - HEAP32[$1>>2] = 2; - break; - } - $478 = HEAP32[$3>>2]|0; - $479 = (_strcmp($478,10785)|0); - $480 = ($479|0)!=(0); - if (!($480)) { - HEAP32[$1>>2] = 35; - break; - } - $481 = HEAP32[$3>>2]|0; - $482 = (_strcmp($481,10807)|0); - $483 = ($482|0)!=(0); - if (!($483)) { - HEAP32[$1>>2] = 36; - break; - } - $484 = HEAP32[$3>>2]|0; - $485 = (_strcmp($484,10814)|0); - $486 = ($485|0)!=(0); - if (!($486)) { - HEAP32[$1>>2] = 3; - break; - } - $487 = HEAP32[$3>>2]|0; - $488 = (_strcmp($487,10830)|0); - $489 = ($488|0)!=(0); - if (!($489)) { - HEAP32[$1>>2] = 2; - break; - } - $490 = HEAP32[$3>>2]|0; - $491 = (_strcmp($490,10847)|0); - $492 = ($491|0)!=(0); - if (!($492)) { - HEAP32[$1>>2] = 1; - break; - } - $493 = HEAP32[$3>>2]|0; - $494 = (_strcmp($493,10864)|0); - $495 = ($494|0)!=(0); - if (!($495)) { - HEAP32[$1>>2] = 28; - break; - } - $496 = HEAP32[$3>>2]|0; - $497 = (_strcmp($496,10880)|0); - $498 = ($497|0)!=(0); - if (!($498)) { - HEAP32[$1>>2] = 1; - break; - } - $499 = HEAP32[$3>>2]|0; - $500 = (_strcmp($499,10896)|0); - $501 = ($500|0)!=(0); - if (!($501)) { - HEAP32[$1>>2] = 4; - break; - } - $502 = HEAP32[$3>>2]|0; - $503 = (_strcmp($502,10913)|0); - $504 = ($503|0)!=(0); - if (!($504)) { - HEAP32[$1>>2] = 29; - break; - } - $505 = HEAP32[$3>>2]|0; - $506 = (_strcmp($505,10927)|0); - $507 = ($506|0)!=(0); - if (!($507)) { - HEAP32[$1>>2] = 30; - break; - } - $508 = HEAP32[$3>>2]|0; - $509 = (_strcmp($508,10939)|0); - $510 = ($509|0)!=(0); - if (!($510)) { - HEAP32[$1>>2] = 22; - break; - } - $511 = HEAP32[$3>>2]|0; - $512 = (_strcmp($511,10950)|0); - $513 = ($512|0)!=(0); - if (!($513)) { - HEAP32[$1>>2] = 2; - break; - } - $514 = HEAP32[$3>>2]|0; - $515 = (_strcmp($514,10963)|0); - $516 = ($515|0)!=(0); - if (!($516)) { - HEAP32[$1>>2] = 23; - break; - } - $517 = HEAP32[$3>>2]|0; - $518 = (_strcmp($517,10973)|0); - $519 = ($518|0)!=(0); - if (!($519)) { - HEAP32[$1>>2] = 2; - break; - } - $520 = HEAP32[$3>>2]|0; - $521 = (_strcmp($520,10990)|0); - $522 = ($521|0)!=(0); - if (!($522)) { - HEAP32[$1>>2] = 24; - break; - } - $523 = HEAP32[$3>>2]|0; - $524 = (_strcmp($523,11002)|0); - $525 = ($524|0)!=(0); - if (!($525)) { - HEAP32[$1>>2] = 25; - break; - } - $526 = HEAP32[$3>>2]|0; - $527 = (_strcmp($526,11024)|0); - $528 = ($527|0)!=(0); - if (!($528)) { - HEAP32[$1>>2] = 26; - break; - } - $529 = HEAP32[$3>>2]|0; - $530 = (_strcmp($529,11044)|0); - $531 = ($530|0)!=(0); - if (!($531)) { - HEAP32[$1>>2] = 3; - break; - } - $532 = HEAP32[$3>>2]|0; - $533 = (_strcmp($532,11057)|0); - $534 = ($533|0)!=(0); - if (!($534)) { - HEAP32[$1>>2] = 27; - break; - } - $535 = HEAP32[$3>>2]|0; - $536 = (_strcmp($535,11079)|0); - $537 = ($536|0)!=(0); - if (!($537)) { - HEAP32[$1>>2] = 28; - break; - } - $538 = HEAP32[$3>>2]|0; - $539 = (_strcmp($538,11099)|0); - $540 = ($539|0)!=(0); - if (!($540)) { - HEAP32[$1>>2] = 2; - break; - } - $541 = HEAP32[$3>>2]|0; - $542 = (_strcmp($541,11116)|0); - $543 = ($542|0)!=(0); - if (!($543)) { - HEAP32[$1>>2] = 2; - break; - } - $544 = HEAP32[$3>>2]|0; - $545 = (_strcmp($544,11133)|0); - $546 = ($545|0)!=(0); - if (!($546)) { - HEAP32[$1>>2] = 3; - break; - } - $547 = HEAP32[$3>>2]|0; - $548 = (_strcmp($547,11153)|0); - $549 = ($548|0)!=(0); - if ($549) { - $550 = HEAP32[$2>>2]|0; - $551 = HEAP32[$3>>2]|0; - $552 = _emscripten_asm_const_iii(0, ($550|0), ($551|0))|0; - HEAP32[$1>>2] = 0; - break; - } else { - HEAP32[$1>>2] = 37; - break; - } - } else { - HEAP32[$1>>2] = 5; - } - } while(0); - $553 = HEAP32[$1>>2]|0; - STACKTOP = sp;return ($553|0); -} -function _malloc($0) { - $0 = $0|0; - var $$$0192$i = 0, $$$0193$i = 0, $$$4236$i = 0, $$$4351$i = 0, $$$i = 0, $$0 = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i18$i = 0, $$01$i$i = 0, $$0189$i = 0, $$0192$lcssa$i = 0, $$01928$i = 0, $$0193$lcssa$i = 0, $$01937$i = 0, $$0197 = 0, $$0199 = 0, $$0206$i$i = 0, $$0207$i$i = 0, $$0211$i$i = 0; - var $$0212$i$i = 0, $$024371$i = 0, $$0287$i$i = 0, $$0288$i$i = 0, $$0289$i$i = 0, $$0295$i$i = 0, $$0296$i$i = 0, $$0342$i = 0, $$0344$i = 0, $$0345$i = 0, $$0347$i = 0, $$0353$i = 0, $$0358$i = 0, $$0359$$i = 0, $$0359$i = 0, $$0361$i = 0, $$0362$i = 0, $$0368$i = 0, $$1196$i = 0, $$1198$i = 0; - var $$124470$i = 0, $$1291$i$i = 0, $$1293$i$i = 0, $$1343$i = 0, $$1348$i = 0, $$1363$i = 0, $$1370$i = 0, $$1374$i = 0, $$2234253237$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2355$i = 0, $$3$i = 0, $$3$i$i = 0, $$3$i201 = 0, $$3350$i = 0, $$3372$i = 0, $$4$lcssa$i = 0, $$4$ph$i = 0, $$415$i = 0; - var $$4236$i = 0, $$4351$lcssa$i = 0, $$435114$i = 0, $$4357$$4$i = 0, $$4357$ph$i = 0, $$435713$i = 0, $$723948$i = 0, $$749$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i19$i = 0, $$pre$i210 = 0, $$pre$i212 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i20$iZ2D = 0, $$pre$phi$i211Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi11$i$iZ2D = 0, $$pre$phiZ2D = 0; - var $$pre10$i$i = 0, $$sink1$i = 0, $$sink1$i$i = 0, $$sink16$i = 0, $$sink2$i = 0, $$sink2$i204 = 0, $$sink3$i = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0; - var $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0; - var $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0; - var $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; - var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; - var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; - var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; - var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0; - var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0; - var $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0; - var $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0; - var $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0; - var $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0; - var $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0; - var $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0; - var $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0; - var $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0; - var $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0; - var $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0; - var $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0; - var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; - var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; - var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; - var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; - var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; - var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0; - var $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0; - var $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0; - var $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0; - var $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0; - var $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0; - var $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0; - var $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0; - var $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0; - var $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0; - var $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0; - var $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0; - var $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0; - var $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0; - var $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0; - var $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0; - var $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0; - var $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0; - var $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0; - var $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0; - var $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0; - var $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0; - var $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0; - var $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0; - var $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0; - var $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0; - var $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0; - var $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0; - var $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i208 = 0, $exitcond$i$i = 0, $not$$i = 0, $not$$i$i = 0, $not$$i17$i = 0, $not$$i209 = 0, $not$$i216 = 0, $not$1$i = 0, $not$1$i203 = 0, $not$5$i = 0, $not$7$i$i = 0, $not$8$i = 0, $not$9$i = 0; - var $or$cond$i = 0, $or$cond$i214 = 0, $or$cond1$i = 0, $or$cond10$i = 0, $or$cond11$i = 0, $or$cond11$not$i = 0, $or$cond12$i = 0, $or$cond2$i = 0, $or$cond2$i215 = 0, $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond7$i = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - $2 = ($0>>>0)<(245); - do { - if ($2) { - $3 = ($0>>>0)<(11); - $4 = (($0) + 11)|0; - $5 = $4 & -8; - $6 = $3 ? 16 : $5; - $7 = $6 >>> 3; - $8 = HEAP32[4225]|0; - $9 = $8 >>> $7; - $10 = $9 & 3; - $11 = ($10|0)==(0); - if (!($11)) { - $12 = $9 & 1; - $13 = $12 ^ 1; - $14 = (($13) + ($7))|0; - $15 = $14 << 1; - $16 = (16940 + ($15<<2)|0); - $17 = ((($16)) + 8|0); - $18 = HEAP32[$17>>2]|0; - $19 = ((($18)) + 8|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($16|0)==($20|0); - do { - if ($21) { - $22 = 1 << $14; - $23 = $22 ^ -1; - $24 = $8 & $23; - HEAP32[4225] = $24; - } else { - $25 = HEAP32[(16916)>>2]|0; - $26 = ($20>>>0)<($25>>>0); - if ($26) { - _abort(); - // unreachable; - } - $27 = ((($20)) + 12|0); - $28 = HEAP32[$27>>2]|0; - $29 = ($28|0)==($18|0); - if ($29) { - HEAP32[$27>>2] = $16; - HEAP32[$17>>2] = $20; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $30 = $14 << 3; - $31 = $30 | 3; - $32 = ((($18)) + 4|0); - HEAP32[$32>>2] = $31; - $33 = (($18) + ($30)|0); - $34 = ((($33)) + 4|0); - $35 = HEAP32[$34>>2]|0; - $36 = $35 | 1; - HEAP32[$34>>2] = $36; - $$0 = $19; - STACKTOP = sp;return ($$0|0); - } - $37 = HEAP32[(16908)>>2]|0; - $38 = ($6>>>0)>($37>>>0); - if ($38) { - $39 = ($9|0)==(0); - if (!($39)) { - $40 = $9 << $7; - $41 = 2 << $7; - $42 = (0 - ($41))|0; - $43 = $41 | $42; - $44 = $40 & $43; - $45 = (0 - ($44))|0; - $46 = $44 & $45; - $47 = (($46) + -1)|0; - $48 = $47 >>> 12; - $49 = $48 & 16; - $50 = $47 >>> $49; - $51 = $50 >>> 5; - $52 = $51 & 8; - $53 = $52 | $49; - $54 = $50 >>> $52; - $55 = $54 >>> 2; - $56 = $55 & 4; - $57 = $53 | $56; - $58 = $54 >>> $56; - $59 = $58 >>> 1; - $60 = $59 & 2; - $61 = $57 | $60; - $62 = $58 >>> $60; - $63 = $62 >>> 1; - $64 = $63 & 1; - $65 = $61 | $64; - $66 = $62 >>> $64; - $67 = (($65) + ($66))|0; - $68 = $67 << 1; - $69 = (16940 + ($68<<2)|0); - $70 = ((($69)) + 8|0); - $71 = HEAP32[$70>>2]|0; - $72 = ((($71)) + 8|0); - $73 = HEAP32[$72>>2]|0; - $74 = ($69|0)==($73|0); - do { - if ($74) { - $75 = 1 << $67; - $76 = $75 ^ -1; - $77 = $8 & $76; - HEAP32[4225] = $77; - $98 = $77; - } else { - $78 = HEAP32[(16916)>>2]|0; - $79 = ($73>>>0)<($78>>>0); - if ($79) { - _abort(); - // unreachable; - } - $80 = ((($73)) + 12|0); - $81 = HEAP32[$80>>2]|0; - $82 = ($81|0)==($71|0); - if ($82) { - HEAP32[$80>>2] = $69; - HEAP32[$70>>2] = $73; - $98 = $8; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $83 = $67 << 3; - $84 = (($83) - ($6))|0; - $85 = $6 | 3; - $86 = ((($71)) + 4|0); - HEAP32[$86>>2] = $85; - $87 = (($71) + ($6)|0); - $88 = $84 | 1; - $89 = ((($87)) + 4|0); - HEAP32[$89>>2] = $88; - $90 = (($87) + ($84)|0); - HEAP32[$90>>2] = $84; - $91 = ($37|0)==(0); - if (!($91)) { - $92 = HEAP32[(16920)>>2]|0; - $93 = $37 >>> 3; - $94 = $93 << 1; - $95 = (16940 + ($94<<2)|0); - $96 = 1 << $93; - $97 = $98 & $96; - $99 = ($97|0)==(0); - if ($99) { - $100 = $98 | $96; - HEAP32[4225] = $100; - $$pre = ((($95)) + 8|0); - $$0199 = $95;$$pre$phiZ2D = $$pre; - } else { - $101 = ((($95)) + 8|0); - $102 = HEAP32[$101>>2]|0; - $103 = HEAP32[(16916)>>2]|0; - $104 = ($102>>>0)<($103>>>0); - if ($104) { - _abort(); - // unreachable; - } else { - $$0199 = $102;$$pre$phiZ2D = $101; - } - } - HEAP32[$$pre$phiZ2D>>2] = $92; - $105 = ((($$0199)) + 12|0); - HEAP32[$105>>2] = $92; - $106 = ((($92)) + 8|0); - HEAP32[$106>>2] = $$0199; - $107 = ((($92)) + 12|0); - HEAP32[$107>>2] = $95; - } - HEAP32[(16908)>>2] = $84; - HEAP32[(16920)>>2] = $87; - $$0 = $72; - STACKTOP = sp;return ($$0|0); - } - $108 = HEAP32[(16904)>>2]|0; - $109 = ($108|0)==(0); - if ($109) { - $$0197 = $6; - } else { - $110 = (0 - ($108))|0; - $111 = $108 & $110; - $112 = (($111) + -1)|0; - $113 = $112 >>> 12; - $114 = $113 & 16; - $115 = $112 >>> $114; - $116 = $115 >>> 5; - $117 = $116 & 8; - $118 = $117 | $114; - $119 = $115 >>> $117; - $120 = $119 >>> 2; - $121 = $120 & 4; - $122 = $118 | $121; - $123 = $119 >>> $121; - $124 = $123 >>> 1; - $125 = $124 & 2; - $126 = $122 | $125; - $127 = $123 >>> $125; - $128 = $127 >>> 1; - $129 = $128 & 1; - $130 = $126 | $129; - $131 = $127 >>> $129; - $132 = (($130) + ($131))|0; - $133 = (17204 + ($132<<2)|0); - $134 = HEAP32[$133>>2]|0; - $135 = ((($134)) + 4|0); - $136 = HEAP32[$135>>2]|0; - $137 = $136 & -8; - $138 = (($137) - ($6))|0; - $139 = ((($134)) + 16|0); - $140 = HEAP32[$139>>2]|0; - $not$5$i = ($140|0)==(0|0); - $$sink16$i = $not$5$i&1; - $141 = (((($134)) + 16|0) + ($$sink16$i<<2)|0); - $142 = HEAP32[$141>>2]|0; - $143 = ($142|0)==(0|0); - if ($143) { - $$0192$lcssa$i = $134;$$0193$lcssa$i = $138; - } else { - $$01928$i = $134;$$01937$i = $138;$145 = $142; - while(1) { - $144 = ((($145)) + 4|0); - $146 = HEAP32[$144>>2]|0; - $147 = $146 & -8; - $148 = (($147) - ($6))|0; - $149 = ($148>>>0)<($$01937$i>>>0); - $$$0193$i = $149 ? $148 : $$01937$i; - $$$0192$i = $149 ? $145 : $$01928$i; - $150 = ((($145)) + 16|0); - $151 = HEAP32[$150>>2]|0; - $not$$i = ($151|0)==(0|0); - $$sink1$i = $not$$i&1; - $152 = (((($145)) + 16|0) + ($$sink1$i<<2)|0); - $153 = HEAP32[$152>>2]|0; - $154 = ($153|0)==(0|0); - if ($154) { - $$0192$lcssa$i = $$$0192$i;$$0193$lcssa$i = $$$0193$i; - break; - } else { - $$01928$i = $$$0192$i;$$01937$i = $$$0193$i;$145 = $153; - } - } - } - $155 = HEAP32[(16916)>>2]|0; - $156 = ($$0192$lcssa$i>>>0)<($155>>>0); - if ($156) { - _abort(); - // unreachable; - } - $157 = (($$0192$lcssa$i) + ($6)|0); - $158 = ($$0192$lcssa$i>>>0)<($157>>>0); - if (!($158)) { - _abort(); - // unreachable; - } - $159 = ((($$0192$lcssa$i)) + 24|0); - $160 = HEAP32[$159>>2]|0; - $161 = ((($$0192$lcssa$i)) + 12|0); - $162 = HEAP32[$161>>2]|0; - $163 = ($162|0)==($$0192$lcssa$i|0); - do { - if ($163) { - $173 = ((($$0192$lcssa$i)) + 20|0); - $174 = HEAP32[$173>>2]|0; - $175 = ($174|0)==(0|0); - if ($175) { - $176 = ((($$0192$lcssa$i)) + 16|0); - $177 = HEAP32[$176>>2]|0; - $178 = ($177|0)==(0|0); - if ($178) { - $$3$i = 0; - break; - } else { - $$1196$i = $177;$$1198$i = $176; - } - } else { - $$1196$i = $174;$$1198$i = $173; - } - while(1) { - $179 = ((($$1196$i)) + 20|0); - $180 = HEAP32[$179>>2]|0; - $181 = ($180|0)==(0|0); - if (!($181)) { - $$1196$i = $180;$$1198$i = $179; - continue; - } - $182 = ((($$1196$i)) + 16|0); - $183 = HEAP32[$182>>2]|0; - $184 = ($183|0)==(0|0); - if ($184) { - break; - } else { - $$1196$i = $183;$$1198$i = $182; - } - } - $185 = ($$1198$i>>>0)<($155>>>0); - if ($185) { - _abort(); - // unreachable; - } else { - HEAP32[$$1198$i>>2] = 0; - $$3$i = $$1196$i; - break; - } - } else { - $164 = ((($$0192$lcssa$i)) + 8|0); - $165 = HEAP32[$164>>2]|0; - $166 = ($165>>>0)<($155>>>0); - if ($166) { - _abort(); - // unreachable; - } - $167 = ((($165)) + 12|0); - $168 = HEAP32[$167>>2]|0; - $169 = ($168|0)==($$0192$lcssa$i|0); - if (!($169)) { - _abort(); - // unreachable; - } - $170 = ((($162)) + 8|0); - $171 = HEAP32[$170>>2]|0; - $172 = ($171|0)==($$0192$lcssa$i|0); - if ($172) { - HEAP32[$167>>2] = $162; - HEAP32[$170>>2] = $165; - $$3$i = $162; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $186 = ($160|0)==(0|0); - L73: do { - if (!($186)) { - $187 = ((($$0192$lcssa$i)) + 28|0); - $188 = HEAP32[$187>>2]|0; - $189 = (17204 + ($188<<2)|0); - $190 = HEAP32[$189>>2]|0; - $191 = ($$0192$lcssa$i|0)==($190|0); - do { - if ($191) { - HEAP32[$189>>2] = $$3$i; - $cond$i = ($$3$i|0)==(0|0); - if ($cond$i) { - $192 = 1 << $188; - $193 = $192 ^ -1; - $194 = $108 & $193; - HEAP32[(16904)>>2] = $194; - break L73; - } - } else { - $195 = HEAP32[(16916)>>2]|0; - $196 = ($160>>>0)<($195>>>0); - if ($196) { - _abort(); - // unreachable; - } else { - $197 = ((($160)) + 16|0); - $198 = HEAP32[$197>>2]|0; - $not$1$i = ($198|0)!=($$0192$lcssa$i|0); - $$sink2$i = $not$1$i&1; - $199 = (((($160)) + 16|0) + ($$sink2$i<<2)|0); - HEAP32[$199>>2] = $$3$i; - $200 = ($$3$i|0)==(0|0); - if ($200) { - break L73; - } else { - break; - } - } - } - } while(0); - $201 = HEAP32[(16916)>>2]|0; - $202 = ($$3$i>>>0)<($201>>>0); - if ($202) { - _abort(); - // unreachable; - } - $203 = ((($$3$i)) + 24|0); - HEAP32[$203>>2] = $160; - $204 = ((($$0192$lcssa$i)) + 16|0); - $205 = HEAP32[$204>>2]|0; - $206 = ($205|0)==(0|0); - do { - if (!($206)) { - $207 = ($205>>>0)<($201>>>0); - if ($207) { - _abort(); - // unreachable; - } else { - $208 = ((($$3$i)) + 16|0); - HEAP32[$208>>2] = $205; - $209 = ((($205)) + 24|0); - HEAP32[$209>>2] = $$3$i; - break; - } - } - } while(0); - $210 = ((($$0192$lcssa$i)) + 20|0); - $211 = HEAP32[$210>>2]|0; - $212 = ($211|0)==(0|0); - if (!($212)) { - $213 = HEAP32[(16916)>>2]|0; - $214 = ($211>>>0)<($213>>>0); - if ($214) { - _abort(); - // unreachable; - } else { - $215 = ((($$3$i)) + 20|0); - HEAP32[$215>>2] = $211; - $216 = ((($211)) + 24|0); - HEAP32[$216>>2] = $$3$i; - break; - } - } - } - } while(0); - $217 = ($$0193$lcssa$i>>>0)<(16); - if ($217) { - $218 = (($$0193$lcssa$i) + ($6))|0; - $219 = $218 | 3; - $220 = ((($$0192$lcssa$i)) + 4|0); - HEAP32[$220>>2] = $219; - $221 = (($$0192$lcssa$i) + ($218)|0); - $222 = ((($221)) + 4|0); - $223 = HEAP32[$222>>2]|0; - $224 = $223 | 1; - HEAP32[$222>>2] = $224; - } else { - $225 = $6 | 3; - $226 = ((($$0192$lcssa$i)) + 4|0); - HEAP32[$226>>2] = $225; - $227 = $$0193$lcssa$i | 1; - $228 = ((($157)) + 4|0); - HEAP32[$228>>2] = $227; - $229 = (($157) + ($$0193$lcssa$i)|0); - HEAP32[$229>>2] = $$0193$lcssa$i; - $230 = ($37|0)==(0); - if (!($230)) { - $231 = HEAP32[(16920)>>2]|0; - $232 = $37 >>> 3; - $233 = $232 << 1; - $234 = (16940 + ($233<<2)|0); - $235 = 1 << $232; - $236 = $8 & $235; - $237 = ($236|0)==(0); - if ($237) { - $238 = $8 | $235; - HEAP32[4225] = $238; - $$pre$i = ((($234)) + 8|0); - $$0189$i = $234;$$pre$phi$iZ2D = $$pre$i; - } else { - $239 = ((($234)) + 8|0); - $240 = HEAP32[$239>>2]|0; - $241 = HEAP32[(16916)>>2]|0; - $242 = ($240>>>0)<($241>>>0); - if ($242) { - _abort(); - // unreachable; - } else { - $$0189$i = $240;$$pre$phi$iZ2D = $239; - } - } - HEAP32[$$pre$phi$iZ2D>>2] = $231; - $243 = ((($$0189$i)) + 12|0); - HEAP32[$243>>2] = $231; - $244 = ((($231)) + 8|0); - HEAP32[$244>>2] = $$0189$i; - $245 = ((($231)) + 12|0); - HEAP32[$245>>2] = $234; - } - HEAP32[(16908)>>2] = $$0193$lcssa$i; - HEAP32[(16920)>>2] = $157; - } - $246 = ((($$0192$lcssa$i)) + 8|0); - $$0 = $246; - STACKTOP = sp;return ($$0|0); - } - } else { - $$0197 = $6; - } - } else { - $247 = ($0>>>0)>(4294967231); - if ($247) { - $$0197 = -1; - } else { - $248 = (($0) + 11)|0; - $249 = $248 & -8; - $250 = HEAP32[(16904)>>2]|0; - $251 = ($250|0)==(0); - if ($251) { - $$0197 = $249; - } else { - $252 = (0 - ($249))|0; - $253 = $248 >>> 8; - $254 = ($253|0)==(0); - if ($254) { - $$0358$i = 0; - } else { - $255 = ($249>>>0)>(16777215); - if ($255) { - $$0358$i = 31; - } else { - $256 = (($253) + 1048320)|0; - $257 = $256 >>> 16; - $258 = $257 & 8; - $259 = $253 << $258; - $260 = (($259) + 520192)|0; - $261 = $260 >>> 16; - $262 = $261 & 4; - $263 = $262 | $258; - $264 = $259 << $262; - $265 = (($264) + 245760)|0; - $266 = $265 >>> 16; - $267 = $266 & 2; - $268 = $263 | $267; - $269 = (14 - ($268))|0; - $270 = $264 << $267; - $271 = $270 >>> 15; - $272 = (($269) + ($271))|0; - $273 = $272 << 1; - $274 = (($272) + 7)|0; - $275 = $249 >>> $274; - $276 = $275 & 1; - $277 = $276 | $273; - $$0358$i = $277; - } - } - $278 = (17204 + ($$0358$i<<2)|0); - $279 = HEAP32[$278>>2]|0; - $280 = ($279|0)==(0|0); - L117: do { - if ($280) { - $$2355$i = 0;$$3$i201 = 0;$$3350$i = $252; - label = 81; - } else { - $281 = ($$0358$i|0)==(31); - $282 = $$0358$i >>> 1; - $283 = (25 - ($282))|0; - $284 = $281 ? 0 : $283; - $285 = $249 << $284; - $$0342$i = 0;$$0347$i = $252;$$0353$i = $279;$$0359$i = $285;$$0362$i = 0; - while(1) { - $286 = ((($$0353$i)) + 4|0); - $287 = HEAP32[$286>>2]|0; - $288 = $287 & -8; - $289 = (($288) - ($249))|0; - $290 = ($289>>>0)<($$0347$i>>>0); - if ($290) { - $291 = ($289|0)==(0); - if ($291) { - $$415$i = $$0353$i;$$435114$i = 0;$$435713$i = $$0353$i; - label = 85; - break L117; - } else { - $$1343$i = $$0353$i;$$1348$i = $289; - } - } else { - $$1343$i = $$0342$i;$$1348$i = $$0347$i; - } - $292 = ((($$0353$i)) + 20|0); - $293 = HEAP32[$292>>2]|0; - $294 = $$0359$i >>> 31; - $295 = (((($$0353$i)) + 16|0) + ($294<<2)|0); - $296 = HEAP32[$295>>2]|0; - $297 = ($293|0)==(0|0); - $298 = ($293|0)==($296|0); - $or$cond2$i = $297 | $298; - $$1363$i = $or$cond2$i ? $$0362$i : $293; - $299 = ($296|0)==(0|0); - $not$8$i = $299 ^ 1; - $300 = $not$8$i&1; - $$0359$$i = $$0359$i << $300; - if ($299) { - $$2355$i = $$1363$i;$$3$i201 = $$1343$i;$$3350$i = $$1348$i; - label = 81; - break; - } else { - $$0342$i = $$1343$i;$$0347$i = $$1348$i;$$0353$i = $296;$$0359$i = $$0359$$i;$$0362$i = $$1363$i; - } - } - } - } while(0); - if ((label|0) == 81) { - $301 = ($$2355$i|0)==(0|0); - $302 = ($$3$i201|0)==(0|0); - $or$cond$i = $301 & $302; - if ($or$cond$i) { - $303 = 2 << $$0358$i; - $304 = (0 - ($303))|0; - $305 = $303 | $304; - $306 = $250 & $305; - $307 = ($306|0)==(0); - if ($307) { - $$0197 = $249; - break; - } - $308 = (0 - ($306))|0; - $309 = $306 & $308; - $310 = (($309) + -1)|0; - $311 = $310 >>> 12; - $312 = $311 & 16; - $313 = $310 >>> $312; - $314 = $313 >>> 5; - $315 = $314 & 8; - $316 = $315 | $312; - $317 = $313 >>> $315; - $318 = $317 >>> 2; - $319 = $318 & 4; - $320 = $316 | $319; - $321 = $317 >>> $319; - $322 = $321 >>> 1; - $323 = $322 & 2; - $324 = $320 | $323; - $325 = $321 >>> $323; - $326 = $325 >>> 1; - $327 = $326 & 1; - $328 = $324 | $327; - $329 = $325 >>> $327; - $330 = (($328) + ($329))|0; - $331 = (17204 + ($330<<2)|0); - $332 = HEAP32[$331>>2]|0; - $$4$ph$i = 0;$$4357$ph$i = $332; - } else { - $$4$ph$i = $$3$i201;$$4357$ph$i = $$2355$i; - } - $333 = ($$4357$ph$i|0)==(0|0); - if ($333) { - $$4$lcssa$i = $$4$ph$i;$$4351$lcssa$i = $$3350$i; - } else { - $$415$i = $$4$ph$i;$$435114$i = $$3350$i;$$435713$i = $$4357$ph$i; - label = 85; - } - } - if ((label|0) == 85) { - while(1) { - label = 0; - $334 = ((($$435713$i)) + 4|0); - $335 = HEAP32[$334>>2]|0; - $336 = $335 & -8; - $337 = (($336) - ($249))|0; - $338 = ($337>>>0)<($$435114$i>>>0); - $$$4351$i = $338 ? $337 : $$435114$i; - $$4357$$4$i = $338 ? $$435713$i : $$415$i; - $339 = ((($$435713$i)) + 16|0); - $340 = HEAP32[$339>>2]|0; - $not$1$i203 = ($340|0)==(0|0); - $$sink2$i204 = $not$1$i203&1; - $341 = (((($$435713$i)) + 16|0) + ($$sink2$i204<<2)|0); - $342 = HEAP32[$341>>2]|0; - $343 = ($342|0)==(0|0); - if ($343) { - $$4$lcssa$i = $$4357$$4$i;$$4351$lcssa$i = $$$4351$i; - break; - } else { - $$415$i = $$4357$$4$i;$$435114$i = $$$4351$i;$$435713$i = $342; - label = 85; - } - } - } - $344 = ($$4$lcssa$i|0)==(0|0); - if ($344) { - $$0197 = $249; - } else { - $345 = HEAP32[(16908)>>2]|0; - $346 = (($345) - ($249))|0; - $347 = ($$4351$lcssa$i>>>0)<($346>>>0); - if ($347) { - $348 = HEAP32[(16916)>>2]|0; - $349 = ($$4$lcssa$i>>>0)<($348>>>0); - if ($349) { - _abort(); - // unreachable; - } - $350 = (($$4$lcssa$i) + ($249)|0); - $351 = ($$4$lcssa$i>>>0)<($350>>>0); - if (!($351)) { - _abort(); - // unreachable; - } - $352 = ((($$4$lcssa$i)) + 24|0); - $353 = HEAP32[$352>>2]|0; - $354 = ((($$4$lcssa$i)) + 12|0); - $355 = HEAP32[$354>>2]|0; - $356 = ($355|0)==($$4$lcssa$i|0); - do { - if ($356) { - $366 = ((($$4$lcssa$i)) + 20|0); - $367 = HEAP32[$366>>2]|0; - $368 = ($367|0)==(0|0); - if ($368) { - $369 = ((($$4$lcssa$i)) + 16|0); - $370 = HEAP32[$369>>2]|0; - $371 = ($370|0)==(0|0); - if ($371) { - $$3372$i = 0; - break; - } else { - $$1370$i = $370;$$1374$i = $369; - } - } else { - $$1370$i = $367;$$1374$i = $366; - } - while(1) { - $372 = ((($$1370$i)) + 20|0); - $373 = HEAP32[$372>>2]|0; - $374 = ($373|0)==(0|0); - if (!($374)) { - $$1370$i = $373;$$1374$i = $372; - continue; - } - $375 = ((($$1370$i)) + 16|0); - $376 = HEAP32[$375>>2]|0; - $377 = ($376|0)==(0|0); - if ($377) { - break; - } else { - $$1370$i = $376;$$1374$i = $375; - } - } - $378 = ($$1374$i>>>0)<($348>>>0); - if ($378) { - _abort(); - // unreachable; - } else { - HEAP32[$$1374$i>>2] = 0; - $$3372$i = $$1370$i; - break; - } - } else { - $357 = ((($$4$lcssa$i)) + 8|0); - $358 = HEAP32[$357>>2]|0; - $359 = ($358>>>0)<($348>>>0); - if ($359) { - _abort(); - // unreachable; - } - $360 = ((($358)) + 12|0); - $361 = HEAP32[$360>>2]|0; - $362 = ($361|0)==($$4$lcssa$i|0); - if (!($362)) { - _abort(); - // unreachable; - } - $363 = ((($355)) + 8|0); - $364 = HEAP32[$363>>2]|0; - $365 = ($364|0)==($$4$lcssa$i|0); - if ($365) { - HEAP32[$360>>2] = $355; - HEAP32[$363>>2] = $358; - $$3372$i = $355; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $379 = ($353|0)==(0|0); - L164: do { - if ($379) { - $470 = $250; - } else { - $380 = ((($$4$lcssa$i)) + 28|0); - $381 = HEAP32[$380>>2]|0; - $382 = (17204 + ($381<<2)|0); - $383 = HEAP32[$382>>2]|0; - $384 = ($$4$lcssa$i|0)==($383|0); - do { - if ($384) { - HEAP32[$382>>2] = $$3372$i; - $cond$i208 = ($$3372$i|0)==(0|0); - if ($cond$i208) { - $385 = 1 << $381; - $386 = $385 ^ -1; - $387 = $250 & $386; - HEAP32[(16904)>>2] = $387; - $470 = $387; - break L164; - } - } else { - $388 = HEAP32[(16916)>>2]|0; - $389 = ($353>>>0)<($388>>>0); - if ($389) { - _abort(); - // unreachable; - } else { - $390 = ((($353)) + 16|0); - $391 = HEAP32[$390>>2]|0; - $not$$i209 = ($391|0)!=($$4$lcssa$i|0); - $$sink3$i = $not$$i209&1; - $392 = (((($353)) + 16|0) + ($$sink3$i<<2)|0); - HEAP32[$392>>2] = $$3372$i; - $393 = ($$3372$i|0)==(0|0); - if ($393) { - $470 = $250; - break L164; - } else { - break; - } - } - } - } while(0); - $394 = HEAP32[(16916)>>2]|0; - $395 = ($$3372$i>>>0)<($394>>>0); - if ($395) { - _abort(); - // unreachable; - } - $396 = ((($$3372$i)) + 24|0); - HEAP32[$396>>2] = $353; - $397 = ((($$4$lcssa$i)) + 16|0); - $398 = HEAP32[$397>>2]|0; - $399 = ($398|0)==(0|0); - do { - if (!($399)) { - $400 = ($398>>>0)<($394>>>0); - if ($400) { - _abort(); - // unreachable; - } else { - $401 = ((($$3372$i)) + 16|0); - HEAP32[$401>>2] = $398; - $402 = ((($398)) + 24|0); - HEAP32[$402>>2] = $$3372$i; - break; - } - } - } while(0); - $403 = ((($$4$lcssa$i)) + 20|0); - $404 = HEAP32[$403>>2]|0; - $405 = ($404|0)==(0|0); - if ($405) { - $470 = $250; - } else { - $406 = HEAP32[(16916)>>2]|0; - $407 = ($404>>>0)<($406>>>0); - if ($407) { - _abort(); - // unreachable; - } else { - $408 = ((($$3372$i)) + 20|0); - HEAP32[$408>>2] = $404; - $409 = ((($404)) + 24|0); - HEAP32[$409>>2] = $$3372$i; - $470 = $250; - break; - } - } - } - } while(0); - $410 = ($$4351$lcssa$i>>>0)<(16); - do { - if ($410) { - $411 = (($$4351$lcssa$i) + ($249))|0; - $412 = $411 | 3; - $413 = ((($$4$lcssa$i)) + 4|0); - HEAP32[$413>>2] = $412; - $414 = (($$4$lcssa$i) + ($411)|0); - $415 = ((($414)) + 4|0); - $416 = HEAP32[$415>>2]|0; - $417 = $416 | 1; - HEAP32[$415>>2] = $417; - } else { - $418 = $249 | 3; - $419 = ((($$4$lcssa$i)) + 4|0); - HEAP32[$419>>2] = $418; - $420 = $$4351$lcssa$i | 1; - $421 = ((($350)) + 4|0); - HEAP32[$421>>2] = $420; - $422 = (($350) + ($$4351$lcssa$i)|0); - HEAP32[$422>>2] = $$4351$lcssa$i; - $423 = $$4351$lcssa$i >>> 3; - $424 = ($$4351$lcssa$i>>>0)<(256); - if ($424) { - $425 = $423 << 1; - $426 = (16940 + ($425<<2)|0); - $427 = HEAP32[4225]|0; - $428 = 1 << $423; - $429 = $427 & $428; - $430 = ($429|0)==(0); - if ($430) { - $431 = $427 | $428; - HEAP32[4225] = $431; - $$pre$i210 = ((($426)) + 8|0); - $$0368$i = $426;$$pre$phi$i211Z2D = $$pre$i210; - } else { - $432 = ((($426)) + 8|0); - $433 = HEAP32[$432>>2]|0; - $434 = HEAP32[(16916)>>2]|0; - $435 = ($433>>>0)<($434>>>0); - if ($435) { - _abort(); - // unreachable; - } else { - $$0368$i = $433;$$pre$phi$i211Z2D = $432; - } - } - HEAP32[$$pre$phi$i211Z2D>>2] = $350; - $436 = ((($$0368$i)) + 12|0); - HEAP32[$436>>2] = $350; - $437 = ((($350)) + 8|0); - HEAP32[$437>>2] = $$0368$i; - $438 = ((($350)) + 12|0); - HEAP32[$438>>2] = $426; - break; - } - $439 = $$4351$lcssa$i >>> 8; - $440 = ($439|0)==(0); - if ($440) { - $$0361$i = 0; - } else { - $441 = ($$4351$lcssa$i>>>0)>(16777215); - if ($441) { - $$0361$i = 31; - } else { - $442 = (($439) + 1048320)|0; - $443 = $442 >>> 16; - $444 = $443 & 8; - $445 = $439 << $444; - $446 = (($445) + 520192)|0; - $447 = $446 >>> 16; - $448 = $447 & 4; - $449 = $448 | $444; - $450 = $445 << $448; - $451 = (($450) + 245760)|0; - $452 = $451 >>> 16; - $453 = $452 & 2; - $454 = $449 | $453; - $455 = (14 - ($454))|0; - $456 = $450 << $453; - $457 = $456 >>> 15; - $458 = (($455) + ($457))|0; - $459 = $458 << 1; - $460 = (($458) + 7)|0; - $461 = $$4351$lcssa$i >>> $460; - $462 = $461 & 1; - $463 = $462 | $459; - $$0361$i = $463; - } - } - $464 = (17204 + ($$0361$i<<2)|0); - $465 = ((($350)) + 28|0); - HEAP32[$465>>2] = $$0361$i; - $466 = ((($350)) + 16|0); - $467 = ((($466)) + 4|0); - HEAP32[$467>>2] = 0; - HEAP32[$466>>2] = 0; - $468 = 1 << $$0361$i; - $469 = $470 & $468; - $471 = ($469|0)==(0); - if ($471) { - $472 = $470 | $468; - HEAP32[(16904)>>2] = $472; - HEAP32[$464>>2] = $350; - $473 = ((($350)) + 24|0); - HEAP32[$473>>2] = $464; - $474 = ((($350)) + 12|0); - HEAP32[$474>>2] = $350; - $475 = ((($350)) + 8|0); - HEAP32[$475>>2] = $350; - break; - } - $476 = HEAP32[$464>>2]|0; - $477 = ($$0361$i|0)==(31); - $478 = $$0361$i >>> 1; - $479 = (25 - ($478))|0; - $480 = $477 ? 0 : $479; - $481 = $$4351$lcssa$i << $480; - $$0344$i = $481;$$0345$i = $476; - while(1) { - $482 = ((($$0345$i)) + 4|0); - $483 = HEAP32[$482>>2]|0; - $484 = $483 & -8; - $485 = ($484|0)==($$4351$lcssa$i|0); - if ($485) { - label = 139; - break; - } - $486 = $$0344$i >>> 31; - $487 = (((($$0345$i)) + 16|0) + ($486<<2)|0); - $488 = $$0344$i << 1; - $489 = HEAP32[$487>>2]|0; - $490 = ($489|0)==(0|0); - if ($490) { - label = 136; - break; - } else { - $$0344$i = $488;$$0345$i = $489; - } - } - if ((label|0) == 136) { - $491 = HEAP32[(16916)>>2]|0; - $492 = ($487>>>0)<($491>>>0); - if ($492) { - _abort(); - // unreachable; - } else { - HEAP32[$487>>2] = $350; - $493 = ((($350)) + 24|0); - HEAP32[$493>>2] = $$0345$i; - $494 = ((($350)) + 12|0); - HEAP32[$494>>2] = $350; - $495 = ((($350)) + 8|0); - HEAP32[$495>>2] = $350; - break; - } - } - else if ((label|0) == 139) { - $496 = ((($$0345$i)) + 8|0); - $497 = HEAP32[$496>>2]|0; - $498 = HEAP32[(16916)>>2]|0; - $499 = ($497>>>0)>=($498>>>0); - $not$9$i = ($$0345$i>>>0)>=($498>>>0); - $500 = $499 & $not$9$i; - if ($500) { - $501 = ((($497)) + 12|0); - HEAP32[$501>>2] = $350; - HEAP32[$496>>2] = $350; - $502 = ((($350)) + 8|0); - HEAP32[$502>>2] = $497; - $503 = ((($350)) + 12|0); - HEAP32[$503>>2] = $$0345$i; - $504 = ((($350)) + 24|0); - HEAP32[$504>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } while(0); - $505 = ((($$4$lcssa$i)) + 8|0); - $$0 = $505; - STACKTOP = sp;return ($$0|0); - } else { - $$0197 = $249; - } - } - } - } - } - } while(0); - $506 = HEAP32[(16908)>>2]|0; - $507 = ($506>>>0)<($$0197>>>0); - if (!($507)) { - $508 = (($506) - ($$0197))|0; - $509 = HEAP32[(16920)>>2]|0; - $510 = ($508>>>0)>(15); - if ($510) { - $511 = (($509) + ($$0197)|0); - HEAP32[(16920)>>2] = $511; - HEAP32[(16908)>>2] = $508; - $512 = $508 | 1; - $513 = ((($511)) + 4|0); - HEAP32[$513>>2] = $512; - $514 = (($511) + ($508)|0); - HEAP32[$514>>2] = $508; - $515 = $$0197 | 3; - $516 = ((($509)) + 4|0); - HEAP32[$516>>2] = $515; - } else { - HEAP32[(16908)>>2] = 0; - HEAP32[(16920)>>2] = 0; - $517 = $506 | 3; - $518 = ((($509)) + 4|0); - HEAP32[$518>>2] = $517; - $519 = (($509) + ($506)|0); - $520 = ((($519)) + 4|0); - $521 = HEAP32[$520>>2]|0; - $522 = $521 | 1; - HEAP32[$520>>2] = $522; - } - $523 = ((($509)) + 8|0); - $$0 = $523; - STACKTOP = sp;return ($$0|0); - } - $524 = HEAP32[(16912)>>2]|0; - $525 = ($524>>>0)>($$0197>>>0); - if ($525) { - $526 = (($524) - ($$0197))|0; - HEAP32[(16912)>>2] = $526; - $527 = HEAP32[(16924)>>2]|0; - $528 = (($527) + ($$0197)|0); - HEAP32[(16924)>>2] = $528; - $529 = $526 | 1; - $530 = ((($528)) + 4|0); - HEAP32[$530>>2] = $529; - $531 = $$0197 | 3; - $532 = ((($527)) + 4|0); - HEAP32[$532>>2] = $531; - $533 = ((($527)) + 8|0); - $$0 = $533; - STACKTOP = sp;return ($$0|0); - } - $534 = HEAP32[4343]|0; - $535 = ($534|0)==(0); - if ($535) { - HEAP32[(17380)>>2] = 4096; - HEAP32[(17376)>>2] = 4096; - HEAP32[(17384)>>2] = -1; - HEAP32[(17388)>>2] = -1; - HEAP32[(17392)>>2] = 0; - HEAP32[(17344)>>2] = 0; - $536 = $1; - $537 = $536 & -16; - $538 = $537 ^ 1431655768; - HEAP32[$1>>2] = $538; - HEAP32[4343] = $538; - $542 = 4096; - } else { - $$pre$i212 = HEAP32[(17380)>>2]|0; - $542 = $$pre$i212; - } - $539 = (($$0197) + 48)|0; - $540 = (($$0197) + 47)|0; - $541 = (($542) + ($540))|0; - $543 = (0 - ($542))|0; - $544 = $541 & $543; - $545 = ($544>>>0)>($$0197>>>0); - if (!($545)) { - $$0 = 0; - STACKTOP = sp;return ($$0|0); - } - $546 = HEAP32[(17340)>>2]|0; - $547 = ($546|0)==(0); - if (!($547)) { - $548 = HEAP32[(17332)>>2]|0; - $549 = (($548) + ($544))|0; - $550 = ($549>>>0)<=($548>>>0); - $551 = ($549>>>0)>($546>>>0); - $or$cond1$i = $550 | $551; - if ($or$cond1$i) { - $$0 = 0; - STACKTOP = sp;return ($$0|0); - } - } - $552 = HEAP32[(17344)>>2]|0; - $553 = $552 & 4; - $554 = ($553|0)==(0); - L244: do { - if ($554) { - $555 = HEAP32[(16924)>>2]|0; - $556 = ($555|0)==(0|0); - L246: do { - if ($556) { - label = 163; - } else { - $$0$i$i = (17348); - while(1) { - $557 = HEAP32[$$0$i$i>>2]|0; - $558 = ($557>>>0)>($555>>>0); - if (!($558)) { - $559 = ((($$0$i$i)) + 4|0); - $560 = HEAP32[$559>>2]|0; - $561 = (($557) + ($560)|0); - $562 = ($561>>>0)>($555>>>0); - if ($562) { - break; - } - } - $563 = ((($$0$i$i)) + 8|0); - $564 = HEAP32[$563>>2]|0; - $565 = ($564|0)==(0|0); - if ($565) { - label = 163; - break L246; - } else { - $$0$i$i = $564; - } - } - $588 = (($541) - ($524))|0; - $589 = $588 & $543; - $590 = ($589>>>0)<(2147483647); - if ($590) { - $591 = (_sbrk(($589|0))|0); - $592 = HEAP32[$$0$i$i>>2]|0; - $593 = HEAP32[$559>>2]|0; - $594 = (($592) + ($593)|0); - $595 = ($591|0)==($594|0); - if ($595) { - $596 = ($591|0)==((-1)|0); - if ($596) { - $$2234253237$i = $589; - } else { - $$723948$i = $589;$$749$i = $591; - label = 180; - break L244; - } - } else { - $$2247$ph$i = $591;$$2253$ph$i = $589; - label = 171; - } - } else { - $$2234253237$i = 0; - } - } - } while(0); - do { - if ((label|0) == 163) { - $566 = (_sbrk(0)|0); - $567 = ($566|0)==((-1)|0); - if ($567) { - $$2234253237$i = 0; - } else { - $568 = $566; - $569 = HEAP32[(17376)>>2]|0; - $570 = (($569) + -1)|0; - $571 = $570 & $568; - $572 = ($571|0)==(0); - $573 = (($570) + ($568))|0; - $574 = (0 - ($569))|0; - $575 = $573 & $574; - $576 = (($575) - ($568))|0; - $577 = $572 ? 0 : $576; - $$$i = (($577) + ($544))|0; - $578 = HEAP32[(17332)>>2]|0; - $579 = (($$$i) + ($578))|0; - $580 = ($$$i>>>0)>($$0197>>>0); - $581 = ($$$i>>>0)<(2147483647); - $or$cond$i214 = $580 & $581; - if ($or$cond$i214) { - $582 = HEAP32[(17340)>>2]|0; - $583 = ($582|0)==(0); - if (!($583)) { - $584 = ($579>>>0)<=($578>>>0); - $585 = ($579>>>0)>($582>>>0); - $or$cond2$i215 = $584 | $585; - if ($or$cond2$i215) { - $$2234253237$i = 0; - break; - } - } - $586 = (_sbrk(($$$i|0))|0); - $587 = ($586|0)==($566|0); - if ($587) { - $$723948$i = $$$i;$$749$i = $566; - label = 180; - break L244; - } else { - $$2247$ph$i = $586;$$2253$ph$i = $$$i; - label = 171; - } - } else { - $$2234253237$i = 0; - } - } - } - } while(0); - do { - if ((label|0) == 171) { - $597 = (0 - ($$2253$ph$i))|0; - $598 = ($$2247$ph$i|0)!=((-1)|0); - $599 = ($$2253$ph$i>>>0)<(2147483647); - $or$cond7$i = $599 & $598; - $600 = ($539>>>0)>($$2253$ph$i>>>0); - $or$cond10$i = $600 & $or$cond7$i; - if (!($or$cond10$i)) { - $610 = ($$2247$ph$i|0)==((-1)|0); - if ($610) { - $$2234253237$i = 0; - break; - } else { - $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; - label = 180; - break L244; - } - } - $601 = HEAP32[(17380)>>2]|0; - $602 = (($540) - ($$2253$ph$i))|0; - $603 = (($602) + ($601))|0; - $604 = (0 - ($601))|0; - $605 = $603 & $604; - $606 = ($605>>>0)<(2147483647); - if (!($606)) { - $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; - label = 180; - break L244; - } - $607 = (_sbrk(($605|0))|0); - $608 = ($607|0)==((-1)|0); - if ($608) { - (_sbrk(($597|0))|0); - $$2234253237$i = 0; - break; - } else { - $609 = (($605) + ($$2253$ph$i))|0; - $$723948$i = $609;$$749$i = $$2247$ph$i; - label = 180; - break L244; - } - } - } while(0); - $611 = HEAP32[(17344)>>2]|0; - $612 = $611 | 4; - HEAP32[(17344)>>2] = $612; - $$4236$i = $$2234253237$i; - label = 178; - } else { - $$4236$i = 0; - label = 178; - } - } while(0); - if ((label|0) == 178) { - $613 = ($544>>>0)<(2147483647); - if ($613) { - $614 = (_sbrk(($544|0))|0); - $615 = (_sbrk(0)|0); - $616 = ($614|0)!=((-1)|0); - $617 = ($615|0)!=((-1)|0); - $or$cond5$i = $616 & $617; - $618 = ($614>>>0)<($615>>>0); - $or$cond11$i = $618 & $or$cond5$i; - $619 = $615; - $620 = $614; - $621 = (($619) - ($620))|0; - $622 = (($$0197) + 40)|0; - $623 = ($621>>>0)>($622>>>0); - $$$4236$i = $623 ? $621 : $$4236$i; - $or$cond11$not$i = $or$cond11$i ^ 1; - $624 = ($614|0)==((-1)|0); - $not$$i216 = $623 ^ 1; - $625 = $624 | $not$$i216; - $or$cond50$i = $625 | $or$cond11$not$i; - if (!($or$cond50$i)) { - $$723948$i = $$$4236$i;$$749$i = $614; - label = 180; - } - } - } - if ((label|0) == 180) { - $626 = HEAP32[(17332)>>2]|0; - $627 = (($626) + ($$723948$i))|0; - HEAP32[(17332)>>2] = $627; - $628 = HEAP32[(17336)>>2]|0; - $629 = ($627>>>0)>($628>>>0); - if ($629) { - HEAP32[(17336)>>2] = $627; - } - $630 = HEAP32[(16924)>>2]|0; - $631 = ($630|0)==(0|0); - do { - if ($631) { - $632 = HEAP32[(16916)>>2]|0; - $633 = ($632|0)==(0|0); - $634 = ($$749$i>>>0)<($632>>>0); - $or$cond12$i = $633 | $634; - if ($or$cond12$i) { - HEAP32[(16916)>>2] = $$749$i; - } - HEAP32[(17348)>>2] = $$749$i; - HEAP32[(17352)>>2] = $$723948$i; - HEAP32[(17360)>>2] = 0; - $635 = HEAP32[4343]|0; - HEAP32[(16936)>>2] = $635; - HEAP32[(16932)>>2] = -1; - $$01$i$i = 0; - while(1) { - $636 = $$01$i$i << 1; - $637 = (16940 + ($636<<2)|0); - $638 = ((($637)) + 12|0); - HEAP32[$638>>2] = $637; - $639 = ((($637)) + 8|0); - HEAP32[$639>>2] = $637; - $640 = (($$01$i$i) + 1)|0; - $exitcond$i$i = ($640|0)==(32); - if ($exitcond$i$i) { - break; - } else { - $$01$i$i = $640; - } - } - $641 = (($$723948$i) + -40)|0; - $642 = ((($$749$i)) + 8|0); - $643 = $642; - $644 = $643 & 7; - $645 = ($644|0)==(0); - $646 = (0 - ($643))|0; - $647 = $646 & 7; - $648 = $645 ? 0 : $647; - $649 = (($$749$i) + ($648)|0); - $650 = (($641) - ($648))|0; - HEAP32[(16924)>>2] = $649; - HEAP32[(16912)>>2] = $650; - $651 = $650 | 1; - $652 = ((($649)) + 4|0); - HEAP32[$652>>2] = $651; - $653 = (($649) + ($650)|0); - $654 = ((($653)) + 4|0); - HEAP32[$654>>2] = 40; - $655 = HEAP32[(17388)>>2]|0; - HEAP32[(16928)>>2] = $655; - } else { - $$024371$i = (17348); - while(1) { - $656 = HEAP32[$$024371$i>>2]|0; - $657 = ((($$024371$i)) + 4|0); - $658 = HEAP32[$657>>2]|0; - $659 = (($656) + ($658)|0); - $660 = ($$749$i|0)==($659|0); - if ($660) { - label = 190; - break; - } - $661 = ((($$024371$i)) + 8|0); - $662 = HEAP32[$661>>2]|0; - $663 = ($662|0)==(0|0); - if ($663) { - break; - } else { - $$024371$i = $662; - } - } - if ((label|0) == 190) { - $664 = ((($$024371$i)) + 12|0); - $665 = HEAP32[$664>>2]|0; - $666 = $665 & 8; - $667 = ($666|0)==(0); - if ($667) { - $668 = ($630>>>0)>=($656>>>0); - $669 = ($630>>>0)<($$749$i>>>0); - $or$cond51$i = $669 & $668; - if ($or$cond51$i) { - $670 = (($658) + ($$723948$i))|0; - HEAP32[$657>>2] = $670; - $671 = HEAP32[(16912)>>2]|0; - $672 = ((($630)) + 8|0); - $673 = $672; - $674 = $673 & 7; - $675 = ($674|0)==(0); - $676 = (0 - ($673))|0; - $677 = $676 & 7; - $678 = $675 ? 0 : $677; - $679 = (($630) + ($678)|0); - $680 = (($$723948$i) - ($678))|0; - $681 = (($671) + ($680))|0; - HEAP32[(16924)>>2] = $679; - HEAP32[(16912)>>2] = $681; - $682 = $681 | 1; - $683 = ((($679)) + 4|0); - HEAP32[$683>>2] = $682; - $684 = (($679) + ($681)|0); - $685 = ((($684)) + 4|0); - HEAP32[$685>>2] = 40; - $686 = HEAP32[(17388)>>2]|0; - HEAP32[(16928)>>2] = $686; - break; - } - } - } - $687 = HEAP32[(16916)>>2]|0; - $688 = ($$749$i>>>0)<($687>>>0); - if ($688) { - HEAP32[(16916)>>2] = $$749$i; - $752 = $$749$i; - } else { - $752 = $687; - } - $689 = (($$749$i) + ($$723948$i)|0); - $$124470$i = (17348); - while(1) { - $690 = HEAP32[$$124470$i>>2]|0; - $691 = ($690|0)==($689|0); - if ($691) { - label = 198; - break; - } - $692 = ((($$124470$i)) + 8|0); - $693 = HEAP32[$692>>2]|0; - $694 = ($693|0)==(0|0); - if ($694) { - break; - } else { - $$124470$i = $693; - } - } - if ((label|0) == 198) { - $695 = ((($$124470$i)) + 12|0); - $696 = HEAP32[$695>>2]|0; - $697 = $696 & 8; - $698 = ($697|0)==(0); - if ($698) { - HEAP32[$$124470$i>>2] = $$749$i; - $699 = ((($$124470$i)) + 4|0); - $700 = HEAP32[$699>>2]|0; - $701 = (($700) + ($$723948$i))|0; - HEAP32[$699>>2] = $701; - $702 = ((($$749$i)) + 8|0); - $703 = $702; - $704 = $703 & 7; - $705 = ($704|0)==(0); - $706 = (0 - ($703))|0; - $707 = $706 & 7; - $708 = $705 ? 0 : $707; - $709 = (($$749$i) + ($708)|0); - $710 = ((($689)) + 8|0); - $711 = $710; - $712 = $711 & 7; - $713 = ($712|0)==(0); - $714 = (0 - ($711))|0; - $715 = $714 & 7; - $716 = $713 ? 0 : $715; - $717 = (($689) + ($716)|0); - $718 = $717; - $719 = $709; - $720 = (($718) - ($719))|0; - $721 = (($709) + ($$0197)|0); - $722 = (($720) - ($$0197))|0; - $723 = $$0197 | 3; - $724 = ((($709)) + 4|0); - HEAP32[$724>>2] = $723; - $725 = ($717|0)==($630|0); - do { - if ($725) { - $726 = HEAP32[(16912)>>2]|0; - $727 = (($726) + ($722))|0; - HEAP32[(16912)>>2] = $727; - HEAP32[(16924)>>2] = $721; - $728 = $727 | 1; - $729 = ((($721)) + 4|0); - HEAP32[$729>>2] = $728; - } else { - $730 = HEAP32[(16920)>>2]|0; - $731 = ($717|0)==($730|0); - if ($731) { - $732 = HEAP32[(16908)>>2]|0; - $733 = (($732) + ($722))|0; - HEAP32[(16908)>>2] = $733; - HEAP32[(16920)>>2] = $721; - $734 = $733 | 1; - $735 = ((($721)) + 4|0); - HEAP32[$735>>2] = $734; - $736 = (($721) + ($733)|0); - HEAP32[$736>>2] = $733; - break; - } - $737 = ((($717)) + 4|0); - $738 = HEAP32[$737>>2]|0; - $739 = $738 & 3; - $740 = ($739|0)==(1); - if ($740) { - $741 = $738 & -8; - $742 = $738 >>> 3; - $743 = ($738>>>0)<(256); - L314: do { - if ($743) { - $744 = ((($717)) + 8|0); - $745 = HEAP32[$744>>2]|0; - $746 = ((($717)) + 12|0); - $747 = HEAP32[$746>>2]|0; - $748 = $742 << 1; - $749 = (16940 + ($748<<2)|0); - $750 = ($745|0)==($749|0); - do { - if (!($750)) { - $751 = ($745>>>0)<($752>>>0); - if ($751) { - _abort(); - // unreachable; - } - $753 = ((($745)) + 12|0); - $754 = HEAP32[$753>>2]|0; - $755 = ($754|0)==($717|0); - if ($755) { - break; - } - _abort(); - // unreachable; - } - } while(0); - $756 = ($747|0)==($745|0); - if ($756) { - $757 = 1 << $742; - $758 = $757 ^ -1; - $759 = HEAP32[4225]|0; - $760 = $759 & $758; - HEAP32[4225] = $760; - break; - } - $761 = ($747|0)==($749|0); - do { - if ($761) { - $$pre10$i$i = ((($747)) + 8|0); - $$pre$phi11$i$iZ2D = $$pre10$i$i; - } else { - $762 = ($747>>>0)<($752>>>0); - if ($762) { - _abort(); - // unreachable; - } - $763 = ((($747)) + 8|0); - $764 = HEAP32[$763>>2]|0; - $765 = ($764|0)==($717|0); - if ($765) { - $$pre$phi11$i$iZ2D = $763; - break; - } - _abort(); - // unreachable; - } - } while(0); - $766 = ((($745)) + 12|0); - HEAP32[$766>>2] = $747; - HEAP32[$$pre$phi11$i$iZ2D>>2] = $745; - } else { - $767 = ((($717)) + 24|0); - $768 = HEAP32[$767>>2]|0; - $769 = ((($717)) + 12|0); - $770 = HEAP32[$769>>2]|0; - $771 = ($770|0)==($717|0); - do { - if ($771) { - $781 = ((($717)) + 16|0); - $782 = ((($781)) + 4|0); - $783 = HEAP32[$782>>2]|0; - $784 = ($783|0)==(0|0); - if ($784) { - $785 = HEAP32[$781>>2]|0; - $786 = ($785|0)==(0|0); - if ($786) { - $$3$i$i = 0; - break; - } else { - $$1291$i$i = $785;$$1293$i$i = $781; - } - } else { - $$1291$i$i = $783;$$1293$i$i = $782; - } - while(1) { - $787 = ((($$1291$i$i)) + 20|0); - $788 = HEAP32[$787>>2]|0; - $789 = ($788|0)==(0|0); - if (!($789)) { - $$1291$i$i = $788;$$1293$i$i = $787; - continue; - } - $790 = ((($$1291$i$i)) + 16|0); - $791 = HEAP32[$790>>2]|0; - $792 = ($791|0)==(0|0); - if ($792) { - break; - } else { - $$1291$i$i = $791;$$1293$i$i = $790; - } - } - $793 = ($$1293$i$i>>>0)<($752>>>0); - if ($793) { - _abort(); - // unreachable; - } else { - HEAP32[$$1293$i$i>>2] = 0; - $$3$i$i = $$1291$i$i; - break; - } - } else { - $772 = ((($717)) + 8|0); - $773 = HEAP32[$772>>2]|0; - $774 = ($773>>>0)<($752>>>0); - if ($774) { - _abort(); - // unreachable; - } - $775 = ((($773)) + 12|0); - $776 = HEAP32[$775>>2]|0; - $777 = ($776|0)==($717|0); - if (!($777)) { - _abort(); - // unreachable; - } - $778 = ((($770)) + 8|0); - $779 = HEAP32[$778>>2]|0; - $780 = ($779|0)==($717|0); - if ($780) { - HEAP32[$775>>2] = $770; - HEAP32[$778>>2] = $773; - $$3$i$i = $770; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $794 = ($768|0)==(0|0); - if ($794) { - break; - } - $795 = ((($717)) + 28|0); - $796 = HEAP32[$795>>2]|0; - $797 = (17204 + ($796<<2)|0); - $798 = HEAP32[$797>>2]|0; - $799 = ($717|0)==($798|0); - do { - if ($799) { - HEAP32[$797>>2] = $$3$i$i; - $cond$i$i = ($$3$i$i|0)==(0|0); - if (!($cond$i$i)) { - break; - } - $800 = 1 << $796; - $801 = $800 ^ -1; - $802 = HEAP32[(16904)>>2]|0; - $803 = $802 & $801; - HEAP32[(16904)>>2] = $803; - break L314; - } else { - $804 = HEAP32[(16916)>>2]|0; - $805 = ($768>>>0)<($804>>>0); - if ($805) { - _abort(); - // unreachable; - } else { - $806 = ((($768)) + 16|0); - $807 = HEAP32[$806>>2]|0; - $not$$i17$i = ($807|0)!=($717|0); - $$sink1$i$i = $not$$i17$i&1; - $808 = (((($768)) + 16|0) + ($$sink1$i$i<<2)|0); - HEAP32[$808>>2] = $$3$i$i; - $809 = ($$3$i$i|0)==(0|0); - if ($809) { - break L314; - } else { - break; - } - } - } - } while(0); - $810 = HEAP32[(16916)>>2]|0; - $811 = ($$3$i$i>>>0)<($810>>>0); - if ($811) { - _abort(); - // unreachable; - } - $812 = ((($$3$i$i)) + 24|0); - HEAP32[$812>>2] = $768; - $813 = ((($717)) + 16|0); - $814 = HEAP32[$813>>2]|0; - $815 = ($814|0)==(0|0); - do { - if (!($815)) { - $816 = ($814>>>0)<($810>>>0); - if ($816) { - _abort(); - // unreachable; - } else { - $817 = ((($$3$i$i)) + 16|0); - HEAP32[$817>>2] = $814; - $818 = ((($814)) + 24|0); - HEAP32[$818>>2] = $$3$i$i; - break; - } - } - } while(0); - $819 = ((($813)) + 4|0); - $820 = HEAP32[$819>>2]|0; - $821 = ($820|0)==(0|0); - if ($821) { - break; - } - $822 = HEAP32[(16916)>>2]|0; - $823 = ($820>>>0)<($822>>>0); - if ($823) { - _abort(); - // unreachable; - } else { - $824 = ((($$3$i$i)) + 20|0); - HEAP32[$824>>2] = $820; - $825 = ((($820)) + 24|0); - HEAP32[$825>>2] = $$3$i$i; - break; - } - } - } while(0); - $826 = (($717) + ($741)|0); - $827 = (($741) + ($722))|0; - $$0$i18$i = $826;$$0287$i$i = $827; - } else { - $$0$i18$i = $717;$$0287$i$i = $722; - } - $828 = ((($$0$i18$i)) + 4|0); - $829 = HEAP32[$828>>2]|0; - $830 = $829 & -2; - HEAP32[$828>>2] = $830; - $831 = $$0287$i$i | 1; - $832 = ((($721)) + 4|0); - HEAP32[$832>>2] = $831; - $833 = (($721) + ($$0287$i$i)|0); - HEAP32[$833>>2] = $$0287$i$i; - $834 = $$0287$i$i >>> 3; - $835 = ($$0287$i$i>>>0)<(256); - if ($835) { - $836 = $834 << 1; - $837 = (16940 + ($836<<2)|0); - $838 = HEAP32[4225]|0; - $839 = 1 << $834; - $840 = $838 & $839; - $841 = ($840|0)==(0); - do { - if ($841) { - $842 = $838 | $839; - HEAP32[4225] = $842; - $$pre$i19$i = ((($837)) + 8|0); - $$0295$i$i = $837;$$pre$phi$i20$iZ2D = $$pre$i19$i; - } else { - $843 = ((($837)) + 8|0); - $844 = HEAP32[$843>>2]|0; - $845 = HEAP32[(16916)>>2]|0; - $846 = ($844>>>0)<($845>>>0); - if (!($846)) { - $$0295$i$i = $844;$$pre$phi$i20$iZ2D = $843; - break; - } - _abort(); - // unreachable; - } - } while(0); - HEAP32[$$pre$phi$i20$iZ2D>>2] = $721; - $847 = ((($$0295$i$i)) + 12|0); - HEAP32[$847>>2] = $721; - $848 = ((($721)) + 8|0); - HEAP32[$848>>2] = $$0295$i$i; - $849 = ((($721)) + 12|0); - HEAP32[$849>>2] = $837; - break; - } - $850 = $$0287$i$i >>> 8; - $851 = ($850|0)==(0); - do { - if ($851) { - $$0296$i$i = 0; - } else { - $852 = ($$0287$i$i>>>0)>(16777215); - if ($852) { - $$0296$i$i = 31; - break; - } - $853 = (($850) + 1048320)|0; - $854 = $853 >>> 16; - $855 = $854 & 8; - $856 = $850 << $855; - $857 = (($856) + 520192)|0; - $858 = $857 >>> 16; - $859 = $858 & 4; - $860 = $859 | $855; - $861 = $856 << $859; - $862 = (($861) + 245760)|0; - $863 = $862 >>> 16; - $864 = $863 & 2; - $865 = $860 | $864; - $866 = (14 - ($865))|0; - $867 = $861 << $864; - $868 = $867 >>> 15; - $869 = (($866) + ($868))|0; - $870 = $869 << 1; - $871 = (($869) + 7)|0; - $872 = $$0287$i$i >>> $871; - $873 = $872 & 1; - $874 = $873 | $870; - $$0296$i$i = $874; - } - } while(0); - $875 = (17204 + ($$0296$i$i<<2)|0); - $876 = ((($721)) + 28|0); - HEAP32[$876>>2] = $$0296$i$i; - $877 = ((($721)) + 16|0); - $878 = ((($877)) + 4|0); - HEAP32[$878>>2] = 0; - HEAP32[$877>>2] = 0; - $879 = HEAP32[(16904)>>2]|0; - $880 = 1 << $$0296$i$i; - $881 = $879 & $880; - $882 = ($881|0)==(0); - if ($882) { - $883 = $879 | $880; - HEAP32[(16904)>>2] = $883; - HEAP32[$875>>2] = $721; - $884 = ((($721)) + 24|0); - HEAP32[$884>>2] = $875; - $885 = ((($721)) + 12|0); - HEAP32[$885>>2] = $721; - $886 = ((($721)) + 8|0); - HEAP32[$886>>2] = $721; - break; - } - $887 = HEAP32[$875>>2]|0; - $888 = ($$0296$i$i|0)==(31); - $889 = $$0296$i$i >>> 1; - $890 = (25 - ($889))|0; - $891 = $888 ? 0 : $890; - $892 = $$0287$i$i << $891; - $$0288$i$i = $892;$$0289$i$i = $887; - while(1) { - $893 = ((($$0289$i$i)) + 4|0); - $894 = HEAP32[$893>>2]|0; - $895 = $894 & -8; - $896 = ($895|0)==($$0287$i$i|0); - if ($896) { - label = 265; - break; - } - $897 = $$0288$i$i >>> 31; - $898 = (((($$0289$i$i)) + 16|0) + ($897<<2)|0); - $899 = $$0288$i$i << 1; - $900 = HEAP32[$898>>2]|0; - $901 = ($900|0)==(0|0); - if ($901) { - label = 262; - break; - } else { - $$0288$i$i = $899;$$0289$i$i = $900; - } - } - if ((label|0) == 262) { - $902 = HEAP32[(16916)>>2]|0; - $903 = ($898>>>0)<($902>>>0); - if ($903) { - _abort(); - // unreachable; - } else { - HEAP32[$898>>2] = $721; - $904 = ((($721)) + 24|0); - HEAP32[$904>>2] = $$0289$i$i; - $905 = ((($721)) + 12|0); - HEAP32[$905>>2] = $721; - $906 = ((($721)) + 8|0); - HEAP32[$906>>2] = $721; - break; - } - } - else if ((label|0) == 265) { - $907 = ((($$0289$i$i)) + 8|0); - $908 = HEAP32[$907>>2]|0; - $909 = HEAP32[(16916)>>2]|0; - $910 = ($908>>>0)>=($909>>>0); - $not$7$i$i = ($$0289$i$i>>>0)>=($909>>>0); - $911 = $910 & $not$7$i$i; - if ($911) { - $912 = ((($908)) + 12|0); - HEAP32[$912>>2] = $721; - HEAP32[$907>>2] = $721; - $913 = ((($721)) + 8|0); - HEAP32[$913>>2] = $908; - $914 = ((($721)) + 12|0); - HEAP32[$914>>2] = $$0289$i$i; - $915 = ((($721)) + 24|0); - HEAP32[$915>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } while(0); - $1047 = ((($709)) + 8|0); - $$0 = $1047; - STACKTOP = sp;return ($$0|0); - } - } - $$0$i$i$i = (17348); - while(1) { - $916 = HEAP32[$$0$i$i$i>>2]|0; - $917 = ($916>>>0)>($630>>>0); - if (!($917)) { - $918 = ((($$0$i$i$i)) + 4|0); - $919 = HEAP32[$918>>2]|0; - $920 = (($916) + ($919)|0); - $921 = ($920>>>0)>($630>>>0); - if ($921) { - break; - } - } - $922 = ((($$0$i$i$i)) + 8|0); - $923 = HEAP32[$922>>2]|0; - $$0$i$i$i = $923; - } - $924 = ((($920)) + -47|0); - $925 = ((($924)) + 8|0); - $926 = $925; - $927 = $926 & 7; - $928 = ($927|0)==(0); - $929 = (0 - ($926))|0; - $930 = $929 & 7; - $931 = $928 ? 0 : $930; - $932 = (($924) + ($931)|0); - $933 = ((($630)) + 16|0); - $934 = ($932>>>0)<($933>>>0); - $935 = $934 ? $630 : $932; - $936 = ((($935)) + 8|0); - $937 = ((($935)) + 24|0); - $938 = (($$723948$i) + -40)|0; - $939 = ((($$749$i)) + 8|0); - $940 = $939; - $941 = $940 & 7; - $942 = ($941|0)==(0); - $943 = (0 - ($940))|0; - $944 = $943 & 7; - $945 = $942 ? 0 : $944; - $946 = (($$749$i) + ($945)|0); - $947 = (($938) - ($945))|0; - HEAP32[(16924)>>2] = $946; - HEAP32[(16912)>>2] = $947; - $948 = $947 | 1; - $949 = ((($946)) + 4|0); - HEAP32[$949>>2] = $948; - $950 = (($946) + ($947)|0); - $951 = ((($950)) + 4|0); - HEAP32[$951>>2] = 40; - $952 = HEAP32[(17388)>>2]|0; - HEAP32[(16928)>>2] = $952; - $953 = ((($935)) + 4|0); - HEAP32[$953>>2] = 27; - ;HEAP32[$936>>2]=HEAP32[(17348)>>2]|0;HEAP32[$936+4>>2]=HEAP32[(17348)+4>>2]|0;HEAP32[$936+8>>2]=HEAP32[(17348)+8>>2]|0;HEAP32[$936+12>>2]=HEAP32[(17348)+12>>2]|0; - HEAP32[(17348)>>2] = $$749$i; - HEAP32[(17352)>>2] = $$723948$i; - HEAP32[(17360)>>2] = 0; - HEAP32[(17356)>>2] = $936; - $955 = $937; - while(1) { - $954 = ((($955)) + 4|0); - HEAP32[$954>>2] = 7; - $956 = ((($955)) + 8|0); - $957 = ($956>>>0)<($920>>>0); - if ($957) { - $955 = $954; - } else { - break; - } - } - $958 = ($935|0)==($630|0); - if (!($958)) { - $959 = $935; - $960 = $630; - $961 = (($959) - ($960))|0; - $962 = HEAP32[$953>>2]|0; - $963 = $962 & -2; - HEAP32[$953>>2] = $963; - $964 = $961 | 1; - $965 = ((($630)) + 4|0); - HEAP32[$965>>2] = $964; - HEAP32[$935>>2] = $961; - $966 = $961 >>> 3; - $967 = ($961>>>0)<(256); - if ($967) { - $968 = $966 << 1; - $969 = (16940 + ($968<<2)|0); - $970 = HEAP32[4225]|0; - $971 = 1 << $966; - $972 = $970 & $971; - $973 = ($972|0)==(0); - if ($973) { - $974 = $970 | $971; - HEAP32[4225] = $974; - $$pre$i$i = ((($969)) + 8|0); - $$0211$i$i = $969;$$pre$phi$i$iZ2D = $$pre$i$i; - } else { - $975 = ((($969)) + 8|0); - $976 = HEAP32[$975>>2]|0; - $977 = HEAP32[(16916)>>2]|0; - $978 = ($976>>>0)<($977>>>0); - if ($978) { - _abort(); - // unreachable; - } else { - $$0211$i$i = $976;$$pre$phi$i$iZ2D = $975; - } - } - HEAP32[$$pre$phi$i$iZ2D>>2] = $630; - $979 = ((($$0211$i$i)) + 12|0); - HEAP32[$979>>2] = $630; - $980 = ((($630)) + 8|0); - HEAP32[$980>>2] = $$0211$i$i; - $981 = ((($630)) + 12|0); - HEAP32[$981>>2] = $969; - break; - } - $982 = $961 >>> 8; - $983 = ($982|0)==(0); - if ($983) { - $$0212$i$i = 0; - } else { - $984 = ($961>>>0)>(16777215); - if ($984) { - $$0212$i$i = 31; - } else { - $985 = (($982) + 1048320)|0; - $986 = $985 >>> 16; - $987 = $986 & 8; - $988 = $982 << $987; - $989 = (($988) + 520192)|0; - $990 = $989 >>> 16; - $991 = $990 & 4; - $992 = $991 | $987; - $993 = $988 << $991; - $994 = (($993) + 245760)|0; - $995 = $994 >>> 16; - $996 = $995 & 2; - $997 = $992 | $996; - $998 = (14 - ($997))|0; - $999 = $993 << $996; - $1000 = $999 >>> 15; - $1001 = (($998) + ($1000))|0; - $1002 = $1001 << 1; - $1003 = (($1001) + 7)|0; - $1004 = $961 >>> $1003; - $1005 = $1004 & 1; - $1006 = $1005 | $1002; - $$0212$i$i = $1006; - } - } - $1007 = (17204 + ($$0212$i$i<<2)|0); - $1008 = ((($630)) + 28|0); - HEAP32[$1008>>2] = $$0212$i$i; - $1009 = ((($630)) + 20|0); - HEAP32[$1009>>2] = 0; - HEAP32[$933>>2] = 0; - $1010 = HEAP32[(16904)>>2]|0; - $1011 = 1 << $$0212$i$i; - $1012 = $1010 & $1011; - $1013 = ($1012|0)==(0); - if ($1013) { - $1014 = $1010 | $1011; - HEAP32[(16904)>>2] = $1014; - HEAP32[$1007>>2] = $630; - $1015 = ((($630)) + 24|0); - HEAP32[$1015>>2] = $1007; - $1016 = ((($630)) + 12|0); - HEAP32[$1016>>2] = $630; - $1017 = ((($630)) + 8|0); - HEAP32[$1017>>2] = $630; - break; - } - $1018 = HEAP32[$1007>>2]|0; - $1019 = ($$0212$i$i|0)==(31); - $1020 = $$0212$i$i >>> 1; - $1021 = (25 - ($1020))|0; - $1022 = $1019 ? 0 : $1021; - $1023 = $961 << $1022; - $$0206$i$i = $1023;$$0207$i$i = $1018; - while(1) { - $1024 = ((($$0207$i$i)) + 4|0); - $1025 = HEAP32[$1024>>2]|0; - $1026 = $1025 & -8; - $1027 = ($1026|0)==($961|0); - if ($1027) { - label = 292; - break; - } - $1028 = $$0206$i$i >>> 31; - $1029 = (((($$0207$i$i)) + 16|0) + ($1028<<2)|0); - $1030 = $$0206$i$i << 1; - $1031 = HEAP32[$1029>>2]|0; - $1032 = ($1031|0)==(0|0); - if ($1032) { - label = 289; - break; - } else { - $$0206$i$i = $1030;$$0207$i$i = $1031; - } - } - if ((label|0) == 289) { - $1033 = HEAP32[(16916)>>2]|0; - $1034 = ($1029>>>0)<($1033>>>0); - if ($1034) { - _abort(); - // unreachable; - } else { - HEAP32[$1029>>2] = $630; - $1035 = ((($630)) + 24|0); - HEAP32[$1035>>2] = $$0207$i$i; - $1036 = ((($630)) + 12|0); - HEAP32[$1036>>2] = $630; - $1037 = ((($630)) + 8|0); - HEAP32[$1037>>2] = $630; - break; - } - } - else if ((label|0) == 292) { - $1038 = ((($$0207$i$i)) + 8|0); - $1039 = HEAP32[$1038>>2]|0; - $1040 = HEAP32[(16916)>>2]|0; - $1041 = ($1039>>>0)>=($1040>>>0); - $not$$i$i = ($$0207$i$i>>>0)>=($1040>>>0); - $1042 = $1041 & $not$$i$i; - if ($1042) { - $1043 = ((($1039)) + 12|0); - HEAP32[$1043>>2] = $630; - HEAP32[$1038>>2] = $630; - $1044 = ((($630)) + 8|0); - HEAP32[$1044>>2] = $1039; - $1045 = ((($630)) + 12|0); - HEAP32[$1045>>2] = $$0207$i$i; - $1046 = ((($630)) + 24|0); - HEAP32[$1046>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } - } while(0); - $1048 = HEAP32[(16912)>>2]|0; - $1049 = ($1048>>>0)>($$0197>>>0); - if ($1049) { - $1050 = (($1048) - ($$0197))|0; - HEAP32[(16912)>>2] = $1050; - $1051 = HEAP32[(16924)>>2]|0; - $1052 = (($1051) + ($$0197)|0); - HEAP32[(16924)>>2] = $1052; - $1053 = $1050 | 1; - $1054 = ((($1052)) + 4|0); - HEAP32[$1054>>2] = $1053; - $1055 = $$0197 | 3; - $1056 = ((($1051)) + 4|0); - HEAP32[$1056>>2] = $1055; - $1057 = ((($1051)) + 8|0); - $$0 = $1057; - STACKTOP = sp;return ($$0|0); - } - } - $1058 = (___errno_location()|0); - HEAP32[$1058>>2] = 12; - $$0 = 0; - STACKTOP = sp;return ($$0|0); -} -function _free($0) { - $0 = $0|0; - var $$0212$i = 0, $$0212$in$i = 0, $$0383 = 0, $$0384 = 0, $$0396 = 0, $$0403 = 0, $$1 = 0, $$1382 = 0, $$1387 = 0, $$1390 = 0, $$1398 = 0, $$1402 = 0, $$2 = 0, $$3 = 0, $$3400 = 0, $$pre = 0, $$pre$phi443Z2D = 0, $$pre$phi445Z2D = 0, $$pre$phiZ2D = 0, $$pre442 = 0; - var $$pre444 = 0, $$sink3 = 0, $$sink5 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; - var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; - var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0; - var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0; - var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0; - var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0; - var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0; - var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0; - var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0; - var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0; - var $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0; - var $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0; - var $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; - var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; - var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; - var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; - var $99 = 0, $cond421 = 0, $cond422 = 0, $not$ = 0, $not$405 = 0, $not$437 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0|0); - if ($1) { - return; - } - $2 = ((($0)) + -8|0); - $3 = HEAP32[(16916)>>2]|0; - $4 = ($2>>>0)<($3>>>0); - if ($4) { - _abort(); - // unreachable; - } - $5 = ((($0)) + -4|0); - $6 = HEAP32[$5>>2]|0; - $7 = $6 & 3; - $8 = ($7|0)==(1); - if ($8) { - _abort(); - // unreachable; - } - $9 = $6 & -8; - $10 = (($2) + ($9)|0); - $11 = $6 & 1; - $12 = ($11|0)==(0); - L10: do { - if ($12) { - $13 = HEAP32[$2>>2]|0; - $14 = ($7|0)==(0); - if ($14) { - return; - } - $15 = (0 - ($13))|0; - $16 = (($2) + ($15)|0); - $17 = (($13) + ($9))|0; - $18 = ($16>>>0)<($3>>>0); - if ($18) { - _abort(); - // unreachable; - } - $19 = HEAP32[(16920)>>2]|0; - $20 = ($16|0)==($19|0); - if ($20) { - $104 = ((($10)) + 4|0); - $105 = HEAP32[$104>>2]|0; - $106 = $105 & 3; - $107 = ($106|0)==(3); - if (!($107)) { - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - $108 = (($16) + ($17)|0); - $109 = ((($16)) + 4|0); - $110 = $17 | 1; - $111 = $105 & -2; - HEAP32[(16908)>>2] = $17; - HEAP32[$104>>2] = $111; - HEAP32[$109>>2] = $110; - HEAP32[$108>>2] = $17; - return; - } - $21 = $13 >>> 3; - $22 = ($13>>>0)<(256); - if ($22) { - $23 = ((($16)) + 8|0); - $24 = HEAP32[$23>>2]|0; - $25 = ((($16)) + 12|0); - $26 = HEAP32[$25>>2]|0; - $27 = $21 << 1; - $28 = (16940 + ($27<<2)|0); - $29 = ($24|0)==($28|0); - if (!($29)) { - $30 = ($24>>>0)<($3>>>0); - if ($30) { - _abort(); - // unreachable; - } - $31 = ((($24)) + 12|0); - $32 = HEAP32[$31>>2]|0; - $33 = ($32|0)==($16|0); - if (!($33)) { - _abort(); - // unreachable; - } - } - $34 = ($26|0)==($24|0); - if ($34) { - $35 = 1 << $21; - $36 = $35 ^ -1; - $37 = HEAP32[4225]|0; - $38 = $37 & $36; - HEAP32[4225] = $38; - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - $39 = ($26|0)==($28|0); - if ($39) { - $$pre444 = ((($26)) + 8|0); - $$pre$phi445Z2D = $$pre444; - } else { - $40 = ($26>>>0)<($3>>>0); - if ($40) { - _abort(); - // unreachable; - } - $41 = ((($26)) + 8|0); - $42 = HEAP32[$41>>2]|0; - $43 = ($42|0)==($16|0); - if ($43) { - $$pre$phi445Z2D = $41; - } else { - _abort(); - // unreachable; - } - } - $44 = ((($24)) + 12|0); - HEAP32[$44>>2] = $26; - HEAP32[$$pre$phi445Z2D>>2] = $24; - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - $45 = ((($16)) + 24|0); - $46 = HEAP32[$45>>2]|0; - $47 = ((($16)) + 12|0); - $48 = HEAP32[$47>>2]|0; - $49 = ($48|0)==($16|0); - do { - if ($49) { - $59 = ((($16)) + 16|0); - $60 = ((($59)) + 4|0); - $61 = HEAP32[$60>>2]|0; - $62 = ($61|0)==(0|0); - if ($62) { - $63 = HEAP32[$59>>2]|0; - $64 = ($63|0)==(0|0); - if ($64) { - $$3 = 0; - break; - } else { - $$1387 = $63;$$1390 = $59; - } - } else { - $$1387 = $61;$$1390 = $60; - } - while(1) { - $65 = ((($$1387)) + 20|0); - $66 = HEAP32[$65>>2]|0; - $67 = ($66|0)==(0|0); - if (!($67)) { - $$1387 = $66;$$1390 = $65; - continue; - } - $68 = ((($$1387)) + 16|0); - $69 = HEAP32[$68>>2]|0; - $70 = ($69|0)==(0|0); - if ($70) { - break; - } else { - $$1387 = $69;$$1390 = $68; - } - } - $71 = ($$1390>>>0)<($3>>>0); - if ($71) { - _abort(); - // unreachable; - } else { - HEAP32[$$1390>>2] = 0; - $$3 = $$1387; - break; - } - } else { - $50 = ((($16)) + 8|0); - $51 = HEAP32[$50>>2]|0; - $52 = ($51>>>0)<($3>>>0); - if ($52) { - _abort(); - // unreachable; - } - $53 = ((($51)) + 12|0); - $54 = HEAP32[$53>>2]|0; - $55 = ($54|0)==($16|0); - if (!($55)) { - _abort(); - // unreachable; - } - $56 = ((($48)) + 8|0); - $57 = HEAP32[$56>>2]|0; - $58 = ($57|0)==($16|0); - if ($58) { - HEAP32[$53>>2] = $48; - HEAP32[$56>>2] = $51; - $$3 = $48; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $72 = ($46|0)==(0|0); - if ($72) { - $$1 = $16;$$1382 = $17;$113 = $16; - } else { - $73 = ((($16)) + 28|0); - $74 = HEAP32[$73>>2]|0; - $75 = (17204 + ($74<<2)|0); - $76 = HEAP32[$75>>2]|0; - $77 = ($16|0)==($76|0); - do { - if ($77) { - HEAP32[$75>>2] = $$3; - $cond421 = ($$3|0)==(0|0); - if ($cond421) { - $78 = 1 << $74; - $79 = $78 ^ -1; - $80 = HEAP32[(16904)>>2]|0; - $81 = $80 & $79; - HEAP32[(16904)>>2] = $81; - $$1 = $16;$$1382 = $17;$113 = $16; - break L10; - } - } else { - $82 = HEAP32[(16916)>>2]|0; - $83 = ($46>>>0)<($82>>>0); - if ($83) { - _abort(); - // unreachable; - } else { - $84 = ((($46)) + 16|0); - $85 = HEAP32[$84>>2]|0; - $not$405 = ($85|0)!=($16|0); - $$sink3 = $not$405&1; - $86 = (((($46)) + 16|0) + ($$sink3<<2)|0); - HEAP32[$86>>2] = $$3; - $87 = ($$3|0)==(0|0); - if ($87) { - $$1 = $16;$$1382 = $17;$113 = $16; - break L10; - } else { - break; - } - } - } - } while(0); - $88 = HEAP32[(16916)>>2]|0; - $89 = ($$3>>>0)<($88>>>0); - if ($89) { - _abort(); - // unreachable; - } - $90 = ((($$3)) + 24|0); - HEAP32[$90>>2] = $46; - $91 = ((($16)) + 16|0); - $92 = HEAP32[$91>>2]|0; - $93 = ($92|0)==(0|0); - do { - if (!($93)) { - $94 = ($92>>>0)<($88>>>0); - if ($94) { - _abort(); - // unreachable; - } else { - $95 = ((($$3)) + 16|0); - HEAP32[$95>>2] = $92; - $96 = ((($92)) + 24|0); - HEAP32[$96>>2] = $$3; - break; - } - } - } while(0); - $97 = ((($91)) + 4|0); - $98 = HEAP32[$97>>2]|0; - $99 = ($98|0)==(0|0); - if ($99) { - $$1 = $16;$$1382 = $17;$113 = $16; - } else { - $100 = HEAP32[(16916)>>2]|0; - $101 = ($98>>>0)<($100>>>0); - if ($101) { - _abort(); - // unreachable; - } else { - $102 = ((($$3)) + 20|0); - HEAP32[$102>>2] = $98; - $103 = ((($98)) + 24|0); - HEAP32[$103>>2] = $$3; - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - } - } - } else { - $$1 = $2;$$1382 = $9;$113 = $2; - } - } while(0); - $112 = ($113>>>0)<($10>>>0); - if (!($112)) { - _abort(); - // unreachable; - } - $114 = ((($10)) + 4|0); - $115 = HEAP32[$114>>2]|0; - $116 = $115 & 1; - $117 = ($116|0)==(0); - if ($117) { - _abort(); - // unreachable; - } - $118 = $115 & 2; - $119 = ($118|0)==(0); - if ($119) { - $120 = HEAP32[(16924)>>2]|0; - $121 = ($10|0)==($120|0); - $122 = HEAP32[(16920)>>2]|0; - if ($121) { - $123 = HEAP32[(16912)>>2]|0; - $124 = (($123) + ($$1382))|0; - HEAP32[(16912)>>2] = $124; - HEAP32[(16924)>>2] = $$1; - $125 = $124 | 1; - $126 = ((($$1)) + 4|0); - HEAP32[$126>>2] = $125; - $127 = ($$1|0)==($122|0); - if (!($127)) { - return; - } - HEAP32[(16920)>>2] = 0; - HEAP32[(16908)>>2] = 0; - return; - } - $128 = ($10|0)==($122|0); - if ($128) { - $129 = HEAP32[(16908)>>2]|0; - $130 = (($129) + ($$1382))|0; - HEAP32[(16908)>>2] = $130; - HEAP32[(16920)>>2] = $113; - $131 = $130 | 1; - $132 = ((($$1)) + 4|0); - HEAP32[$132>>2] = $131; - $133 = (($113) + ($130)|0); - HEAP32[$133>>2] = $130; - return; - } - $134 = $115 & -8; - $135 = (($134) + ($$1382))|0; - $136 = $115 >>> 3; - $137 = ($115>>>0)<(256); - L108: do { - if ($137) { - $138 = ((($10)) + 8|0); - $139 = HEAP32[$138>>2]|0; - $140 = ((($10)) + 12|0); - $141 = HEAP32[$140>>2]|0; - $142 = $136 << 1; - $143 = (16940 + ($142<<2)|0); - $144 = ($139|0)==($143|0); - if (!($144)) { - $145 = HEAP32[(16916)>>2]|0; - $146 = ($139>>>0)<($145>>>0); - if ($146) { - _abort(); - // unreachable; - } - $147 = ((($139)) + 12|0); - $148 = HEAP32[$147>>2]|0; - $149 = ($148|0)==($10|0); - if (!($149)) { - _abort(); - // unreachable; - } - } - $150 = ($141|0)==($139|0); - if ($150) { - $151 = 1 << $136; - $152 = $151 ^ -1; - $153 = HEAP32[4225]|0; - $154 = $153 & $152; - HEAP32[4225] = $154; - break; - } - $155 = ($141|0)==($143|0); - if ($155) { - $$pre442 = ((($141)) + 8|0); - $$pre$phi443Z2D = $$pre442; - } else { - $156 = HEAP32[(16916)>>2]|0; - $157 = ($141>>>0)<($156>>>0); - if ($157) { - _abort(); - // unreachable; - } - $158 = ((($141)) + 8|0); - $159 = HEAP32[$158>>2]|0; - $160 = ($159|0)==($10|0); - if ($160) { - $$pre$phi443Z2D = $158; - } else { - _abort(); - // unreachable; - } - } - $161 = ((($139)) + 12|0); - HEAP32[$161>>2] = $141; - HEAP32[$$pre$phi443Z2D>>2] = $139; - } else { - $162 = ((($10)) + 24|0); - $163 = HEAP32[$162>>2]|0; - $164 = ((($10)) + 12|0); - $165 = HEAP32[$164>>2]|0; - $166 = ($165|0)==($10|0); - do { - if ($166) { - $177 = ((($10)) + 16|0); - $178 = ((($177)) + 4|0); - $179 = HEAP32[$178>>2]|0; - $180 = ($179|0)==(0|0); - if ($180) { - $181 = HEAP32[$177>>2]|0; - $182 = ($181|0)==(0|0); - if ($182) { - $$3400 = 0; - break; - } else { - $$1398 = $181;$$1402 = $177; - } - } else { - $$1398 = $179;$$1402 = $178; - } - while(1) { - $183 = ((($$1398)) + 20|0); - $184 = HEAP32[$183>>2]|0; - $185 = ($184|0)==(0|0); - if (!($185)) { - $$1398 = $184;$$1402 = $183; - continue; - } - $186 = ((($$1398)) + 16|0); - $187 = HEAP32[$186>>2]|0; - $188 = ($187|0)==(0|0); - if ($188) { - break; - } else { - $$1398 = $187;$$1402 = $186; - } - } - $189 = HEAP32[(16916)>>2]|0; - $190 = ($$1402>>>0)<($189>>>0); - if ($190) { - _abort(); - // unreachable; - } else { - HEAP32[$$1402>>2] = 0; - $$3400 = $$1398; - break; - } - } else { - $167 = ((($10)) + 8|0); - $168 = HEAP32[$167>>2]|0; - $169 = HEAP32[(16916)>>2]|0; - $170 = ($168>>>0)<($169>>>0); - if ($170) { - _abort(); - // unreachable; - } - $171 = ((($168)) + 12|0); - $172 = HEAP32[$171>>2]|0; - $173 = ($172|0)==($10|0); - if (!($173)) { - _abort(); - // unreachable; - } - $174 = ((($165)) + 8|0); - $175 = HEAP32[$174>>2]|0; - $176 = ($175|0)==($10|0); - if ($176) { - HEAP32[$171>>2] = $165; - HEAP32[$174>>2] = $168; - $$3400 = $165; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $191 = ($163|0)==(0|0); - if (!($191)) { - $192 = ((($10)) + 28|0); - $193 = HEAP32[$192>>2]|0; - $194 = (17204 + ($193<<2)|0); - $195 = HEAP32[$194>>2]|0; - $196 = ($10|0)==($195|0); - do { - if ($196) { - HEAP32[$194>>2] = $$3400; - $cond422 = ($$3400|0)==(0|0); - if ($cond422) { - $197 = 1 << $193; - $198 = $197 ^ -1; - $199 = HEAP32[(16904)>>2]|0; - $200 = $199 & $198; - HEAP32[(16904)>>2] = $200; - break L108; - } - } else { - $201 = HEAP32[(16916)>>2]|0; - $202 = ($163>>>0)<($201>>>0); - if ($202) { - _abort(); - // unreachable; - } else { - $203 = ((($163)) + 16|0); - $204 = HEAP32[$203>>2]|0; - $not$ = ($204|0)!=($10|0); - $$sink5 = $not$&1; - $205 = (((($163)) + 16|0) + ($$sink5<<2)|0); - HEAP32[$205>>2] = $$3400; - $206 = ($$3400|0)==(0|0); - if ($206) { - break L108; - } else { - break; - } - } - } - } while(0); - $207 = HEAP32[(16916)>>2]|0; - $208 = ($$3400>>>0)<($207>>>0); - if ($208) { - _abort(); - // unreachable; - } - $209 = ((($$3400)) + 24|0); - HEAP32[$209>>2] = $163; - $210 = ((($10)) + 16|0); - $211 = HEAP32[$210>>2]|0; - $212 = ($211|0)==(0|0); - do { - if (!($212)) { - $213 = ($211>>>0)<($207>>>0); - if ($213) { - _abort(); - // unreachable; - } else { - $214 = ((($$3400)) + 16|0); - HEAP32[$214>>2] = $211; - $215 = ((($211)) + 24|0); - HEAP32[$215>>2] = $$3400; - break; - } - } - } while(0); - $216 = ((($210)) + 4|0); - $217 = HEAP32[$216>>2]|0; - $218 = ($217|0)==(0|0); - if (!($218)) { - $219 = HEAP32[(16916)>>2]|0; - $220 = ($217>>>0)<($219>>>0); - if ($220) { - _abort(); - // unreachable; - } else { - $221 = ((($$3400)) + 20|0); - HEAP32[$221>>2] = $217; - $222 = ((($217)) + 24|0); - HEAP32[$222>>2] = $$3400; - break; - } - } - } - } - } while(0); - $223 = $135 | 1; - $224 = ((($$1)) + 4|0); - HEAP32[$224>>2] = $223; - $225 = (($113) + ($135)|0); - HEAP32[$225>>2] = $135; - $226 = HEAP32[(16920)>>2]|0; - $227 = ($$1|0)==($226|0); - if ($227) { - HEAP32[(16908)>>2] = $135; - return; - } else { - $$2 = $135; - } - } else { - $228 = $115 & -2; - HEAP32[$114>>2] = $228; - $229 = $$1382 | 1; - $230 = ((($$1)) + 4|0); - HEAP32[$230>>2] = $229; - $231 = (($113) + ($$1382)|0); - HEAP32[$231>>2] = $$1382; - $$2 = $$1382; - } - $232 = $$2 >>> 3; - $233 = ($$2>>>0)<(256); - if ($233) { - $234 = $232 << 1; - $235 = (16940 + ($234<<2)|0); - $236 = HEAP32[4225]|0; - $237 = 1 << $232; - $238 = $236 & $237; - $239 = ($238|0)==(0); - if ($239) { - $240 = $236 | $237; - HEAP32[4225] = $240; - $$pre = ((($235)) + 8|0); - $$0403 = $235;$$pre$phiZ2D = $$pre; - } else { - $241 = ((($235)) + 8|0); - $242 = HEAP32[$241>>2]|0; - $243 = HEAP32[(16916)>>2]|0; - $244 = ($242>>>0)<($243>>>0); - if ($244) { - _abort(); - // unreachable; - } else { - $$0403 = $242;$$pre$phiZ2D = $241; - } - } - HEAP32[$$pre$phiZ2D>>2] = $$1; - $245 = ((($$0403)) + 12|0); - HEAP32[$245>>2] = $$1; - $246 = ((($$1)) + 8|0); - HEAP32[$246>>2] = $$0403; - $247 = ((($$1)) + 12|0); - HEAP32[$247>>2] = $235; - return; - } - $248 = $$2 >>> 8; - $249 = ($248|0)==(0); - if ($249) { - $$0396 = 0; - } else { - $250 = ($$2>>>0)>(16777215); - if ($250) { - $$0396 = 31; - } else { - $251 = (($248) + 1048320)|0; - $252 = $251 >>> 16; - $253 = $252 & 8; - $254 = $248 << $253; - $255 = (($254) + 520192)|0; - $256 = $255 >>> 16; - $257 = $256 & 4; - $258 = $257 | $253; - $259 = $254 << $257; - $260 = (($259) + 245760)|0; - $261 = $260 >>> 16; - $262 = $261 & 2; - $263 = $258 | $262; - $264 = (14 - ($263))|0; - $265 = $259 << $262; - $266 = $265 >>> 15; - $267 = (($264) + ($266))|0; - $268 = $267 << 1; - $269 = (($267) + 7)|0; - $270 = $$2 >>> $269; - $271 = $270 & 1; - $272 = $271 | $268; - $$0396 = $272; - } - } - $273 = (17204 + ($$0396<<2)|0); - $274 = ((($$1)) + 28|0); - HEAP32[$274>>2] = $$0396; - $275 = ((($$1)) + 16|0); - $276 = ((($$1)) + 20|0); - HEAP32[$276>>2] = 0; - HEAP32[$275>>2] = 0; - $277 = HEAP32[(16904)>>2]|0; - $278 = 1 << $$0396; - $279 = $277 & $278; - $280 = ($279|0)==(0); - do { - if ($280) { - $281 = $277 | $278; - HEAP32[(16904)>>2] = $281; - HEAP32[$273>>2] = $$1; - $282 = ((($$1)) + 24|0); - HEAP32[$282>>2] = $273; - $283 = ((($$1)) + 12|0); - HEAP32[$283>>2] = $$1; - $284 = ((($$1)) + 8|0); - HEAP32[$284>>2] = $$1; - } else { - $285 = HEAP32[$273>>2]|0; - $286 = ($$0396|0)==(31); - $287 = $$0396 >>> 1; - $288 = (25 - ($287))|0; - $289 = $286 ? 0 : $288; - $290 = $$2 << $289; - $$0383 = $290;$$0384 = $285; - while(1) { - $291 = ((($$0384)) + 4|0); - $292 = HEAP32[$291>>2]|0; - $293 = $292 & -8; - $294 = ($293|0)==($$2|0); - if ($294) { - label = 124; - break; - } - $295 = $$0383 >>> 31; - $296 = (((($$0384)) + 16|0) + ($295<<2)|0); - $297 = $$0383 << 1; - $298 = HEAP32[$296>>2]|0; - $299 = ($298|0)==(0|0); - if ($299) { - label = 121; - break; - } else { - $$0383 = $297;$$0384 = $298; - } - } - if ((label|0) == 121) { - $300 = HEAP32[(16916)>>2]|0; - $301 = ($296>>>0)<($300>>>0); - if ($301) { - _abort(); - // unreachable; - } else { - HEAP32[$296>>2] = $$1; - $302 = ((($$1)) + 24|0); - HEAP32[$302>>2] = $$0384; - $303 = ((($$1)) + 12|0); - HEAP32[$303>>2] = $$1; - $304 = ((($$1)) + 8|0); - HEAP32[$304>>2] = $$1; - break; - } - } - else if ((label|0) == 124) { - $305 = ((($$0384)) + 8|0); - $306 = HEAP32[$305>>2]|0; - $307 = HEAP32[(16916)>>2]|0; - $308 = ($306>>>0)>=($307>>>0); - $not$437 = ($$0384>>>0)>=($307>>>0); - $309 = $308 & $not$437; - if ($309) { - $310 = ((($306)) + 12|0); - HEAP32[$310>>2] = $$1; - HEAP32[$305>>2] = $$1; - $311 = ((($$1)) + 8|0); - HEAP32[$311>>2] = $306; - $312 = ((($$1)) + 12|0); - HEAP32[$312>>2] = $$0384; - $313 = ((($$1)) + 24|0); - HEAP32[$313>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } while(0); - $314 = HEAP32[(16932)>>2]|0; - $315 = (($314) + -1)|0; - HEAP32[(16932)>>2] = $315; - $316 = ($315|0)==(0); - if ($316) { - $$0212$in$i = (17356); - } else { - return; - } - while(1) { - $$0212$i = HEAP32[$$0212$in$i>>2]|0; - $317 = ($$0212$i|0)==(0|0); - $318 = ((($$0212$i)) + 8|0); - if ($317) { - break; - } else { - $$0212$in$i = $318; - } - } - HEAP32[(16932)>>2] = -1; - return; -} -function _emscripten_get_global_libc() { - var label = 0, sp = 0; - sp = STACKTOP; - return (17396|0); -} -function ___stdio_close($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = ((($0)) + 60|0); - $2 = HEAP32[$1>>2]|0; - $3 = (_dummy_738($2)|0); - HEAP32[$vararg_buffer>>2] = $3; - $4 = (___syscall6(6,($vararg_buffer|0))|0); - $5 = (___syscall_ret($4)|0); - STACKTOP = sp;return ($5|0); -} -function ___stdio_write($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$04756 = 0, $$04855 = 0, $$04954 = 0, $$051 = 0, $$1 = 0, $$150 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0; - var $vararg_ptr7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $vararg_buffer3 = sp + 16|0; - $vararg_buffer = sp; - $3 = sp + 32|0; - $4 = ((($0)) + 28|0); - $5 = HEAP32[$4>>2]|0; - HEAP32[$3>>2] = $5; - $6 = ((($3)) + 4|0); - $7 = ((($0)) + 20|0); - $8 = HEAP32[$7>>2]|0; - $9 = (($8) - ($5))|0; - HEAP32[$6>>2] = $9; - $10 = ((($3)) + 8|0); - HEAP32[$10>>2] = $1; - $11 = ((($3)) + 12|0); - HEAP32[$11>>2] = $2; - $12 = (($9) + ($2))|0; - $13 = ((($0)) + 60|0); - $14 = HEAP32[$13>>2]|0; - $15 = $3; - HEAP32[$vararg_buffer>>2] = $14; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $15; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = 2; - $16 = (___syscall146(146,($vararg_buffer|0))|0); - $17 = (___syscall_ret($16)|0); - $18 = ($12|0)==($17|0); - L1: do { - if ($18) { - label = 3; - } else { - $$04756 = 2;$$04855 = $12;$$04954 = $3;$26 = $17; - while(1) { - $25 = ($26|0)<(0); - if ($25) { - break; - } - $34 = (($$04855) - ($26))|0; - $35 = ((($$04954)) + 4|0); - $36 = HEAP32[$35>>2]|0; - $37 = ($26>>>0)>($36>>>0); - $38 = ((($$04954)) + 8|0); - $$150 = $37 ? $38 : $$04954; - $39 = $37 << 31 >> 31; - $$1 = (($39) + ($$04756))|0; - $40 = $37 ? $36 : 0; - $$0 = (($26) - ($40))|0; - $41 = HEAP32[$$150>>2]|0; - $42 = (($41) + ($$0)|0); - HEAP32[$$150>>2] = $42; - $43 = ((($$150)) + 4|0); - $44 = HEAP32[$43>>2]|0; - $45 = (($44) - ($$0))|0; - HEAP32[$43>>2] = $45; - $46 = HEAP32[$13>>2]|0; - $47 = $$150; - HEAP32[$vararg_buffer3>>2] = $46; - $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr6>>2] = $47; - $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); - HEAP32[$vararg_ptr7>>2] = $$1; - $48 = (___syscall146(146,($vararg_buffer3|0))|0); - $49 = (___syscall_ret($48)|0); - $50 = ($34|0)==($49|0); - if ($50) { - label = 3; - break L1; - } else { - $$04756 = $$1;$$04855 = $34;$$04954 = $$150;$26 = $49; - } - } - $27 = ((($0)) + 16|0); - HEAP32[$27>>2] = 0; - HEAP32[$4>>2] = 0; - HEAP32[$7>>2] = 0; - $28 = HEAP32[$0>>2]|0; - $29 = $28 | 32; - HEAP32[$0>>2] = $29; - $30 = ($$04756|0)==(2); - if ($30) { - $$051 = 0; - } else { - $31 = ((($$04954)) + 4|0); - $32 = HEAP32[$31>>2]|0; - $33 = (($2) - ($32))|0; - $$051 = $33; - } - } - } while(0); - if ((label|0) == 3) { - $19 = ((($0)) + 44|0); - $20 = HEAP32[$19>>2]|0; - $21 = ((($0)) + 48|0); - $22 = HEAP32[$21>>2]|0; - $23 = (($20) + ($22)|0); - $24 = ((($0)) + 16|0); - HEAP32[$24>>2] = $23; - HEAP32[$4>>2] = $20; - HEAP32[$7>>2] = $20; - $$051 = $2; - } - STACKTOP = sp;return ($$051|0); -} -function ___stdio_seek($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$pre = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $3 = sp + 20|0; - $4 = ((($0)) + 60|0); - $5 = HEAP32[$4>>2]|0; - $6 = $3; - HEAP32[$vararg_buffer>>2] = $5; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = 0; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $1; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $6; - $vararg_ptr4 = ((($vararg_buffer)) + 16|0); - HEAP32[$vararg_ptr4>>2] = $2; - $7 = (___syscall140(140,($vararg_buffer|0))|0); - $8 = (___syscall_ret($7)|0); - $9 = ($8|0)<(0); - if ($9) { - HEAP32[$3>>2] = -1; - $10 = -1; - } else { - $$pre = HEAP32[$3>>2]|0; - $10 = $$pre; - } - STACKTOP = sp;return ($10|0); -} -function ___syscall_ret($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0>>>0)>(4294963200); - if ($1) { - $2 = (0 - ($0))|0; - $3 = (___errno_location()|0); - HEAP32[$3>>2] = $2; - $$0 = -1; - } else { - $$0 = $0; - } - return ($$0|0); -} -function ___errno_location() { - var $0 = 0, $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (___pthread_self_108()|0); - $1 = ((($0)) + 64|0); - return ($1|0); -} -function ___pthread_self_108() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function _pthread_self() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2980|0); -} -function _dummy_738($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return ($0|0); -} -function ___stdout_write($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $3 = sp + 16|0; - $4 = ((($0)) + 36|0); - HEAP32[$4>>2] = 8; - $5 = HEAP32[$0>>2]|0; - $6 = $5 & 64; - $7 = ($6|0)==(0); - if ($7) { - $8 = ((($0)) + 60|0); - $9 = HEAP32[$8>>2]|0; - $10 = $3; - HEAP32[$vararg_buffer>>2] = $9; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = 21523; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $10; - $11 = (___syscall54(54,($vararg_buffer|0))|0); - $12 = ($11|0)==(0); - if (!($12)) { - $13 = ((($0)) + 75|0); - HEAP8[$13>>0] = -1; - } - } - $14 = (___stdio_write($0,$1,$2)|0); - STACKTOP = sp;return ($14|0); -} -function _strcmp($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$011 = 0, $$0710 = 0, $$lcssa = 0, $$lcssa8 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $2 = HEAP8[$0>>0]|0; - $3 = HEAP8[$1>>0]|0; - $4 = ($2<<24>>24)!=($3<<24>>24); - $5 = ($2<<24>>24)==(0); - $or$cond9 = $5 | $4; - if ($or$cond9) { - $$lcssa = $3;$$lcssa8 = $2; - } else { - $$011 = $1;$$0710 = $0; - while(1) { - $6 = ((($$0710)) + 1|0); - $7 = ((($$011)) + 1|0); - $8 = HEAP8[$6>>0]|0; - $9 = HEAP8[$7>>0]|0; - $10 = ($8<<24>>24)!=($9<<24>>24); - $11 = ($8<<24>>24)==(0); - $or$cond = $11 | $10; - if ($or$cond) { - $$lcssa = $9;$$lcssa8 = $8; - break; - } else { - $$011 = $7;$$0710 = $6; - } - } - } - $12 = $$lcssa8&255; - $13 = $$lcssa&255; - $14 = (($12) - ($13))|0; - return ($14|0); -} -function _memcmp($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$01318 = 0, $$01417 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $14 = 0; - } else { - $$01318 = $0;$$01417 = $2;$$019 = $1; - while(1) { - $4 = HEAP8[$$01318>>0]|0; - $5 = HEAP8[$$019>>0]|0; - $6 = ($4<<24>>24)==($5<<24>>24); - if (!($6)) { - break; - } - $7 = (($$01417) + -1)|0; - $8 = ((($$01318)) + 1|0); - $9 = ((($$019)) + 1|0); - $10 = ($7|0)==(0); - if ($10) { - $14 = 0; - break L1; - } else { - $$01318 = $8;$$01417 = $7;$$019 = $9; - } - } - $11 = $4&255; - $12 = $5&255; - $13 = (($11) - ($12))|0; - $14 = $13; - } - } while(0); - return ($14|0); -} -function _vfprintf($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $$0 = 0, $$1 = 0, $$1$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); - $3 = sp + 120|0; - $4 = sp + 80|0; - $5 = sp; - $6 = sp + 136|0; - dest=$4; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - $vacopy_currentptr = HEAP32[$2>>2]|0; - HEAP32[$3>>2] = $vacopy_currentptr; - $7 = (_printf_core(0,$1,$3,$5,$4)|0); - $8 = ($7|0)<(0); - if ($8) { - $$0 = -1; - } else { - $9 = ((($0)) + 76|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)>(-1); - if ($11) { - $12 = (___lockfile($0)|0); - $40 = $12; - } else { - $40 = 0; - } - $13 = HEAP32[$0>>2]|0; - $14 = $13 & 32; - $15 = ((($0)) + 74|0); - $16 = HEAP8[$15>>0]|0; - $17 = ($16<<24>>24)<(1); - if ($17) { - $18 = $13 & -33; - HEAP32[$0>>2] = $18; - } - $19 = ((($0)) + 48|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($20|0)==(0); - if ($21) { - $23 = ((($0)) + 44|0); - $24 = HEAP32[$23>>2]|0; - HEAP32[$23>>2] = $6; - $25 = ((($0)) + 28|0); - HEAP32[$25>>2] = $6; - $26 = ((($0)) + 20|0); - HEAP32[$26>>2] = $6; - HEAP32[$19>>2] = 80; - $27 = ((($6)) + 80|0); - $28 = ((($0)) + 16|0); - HEAP32[$28>>2] = $27; - $29 = (_printf_core($0,$1,$3,$5,$4)|0); - $30 = ($24|0)==(0|0); - if ($30) { - $$1 = $29; - } else { - $31 = ((($0)) + 36|0); - $32 = HEAP32[$31>>2]|0; - (FUNCTION_TABLE_iiii[$32 & 15]($0,0,0)|0); - $33 = HEAP32[$26>>2]|0; - $34 = ($33|0)==(0|0); - $$ = $34 ? -1 : $29; - HEAP32[$23>>2] = $24; - HEAP32[$19>>2] = 0; - HEAP32[$28>>2] = 0; - HEAP32[$25>>2] = 0; - HEAP32[$26>>2] = 0; - $$1 = $$; - } - } else { - $22 = (_printf_core($0,$1,$3,$5,$4)|0); - $$1 = $22; - } - $35 = HEAP32[$0>>2]|0; - $36 = $35 & 32; - $37 = ($36|0)==(0); - $$1$ = $37 ? $$1 : -1; - $38 = $35 | $14; - HEAP32[$0>>2] = $38; - $39 = ($40|0)==(0); - if (!($39)) { - ___unlockfile($0); - } - $$0 = $$1$; - } - STACKTOP = sp;return ($$0|0); -} -function _printf_core($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$ = 0, $$$ = 0, $$$0259 = 0, $$$0262 = 0, $$$0269 = 0, $$$4266 = 0, $$$5 = 0, $$0 = 0, $$0228 = 0, $$0228$ = 0, $$0229322 = 0, $$0232 = 0, $$0235 = 0, $$0237 = 0, $$0240$lcssa = 0, $$0240$lcssa357 = 0, $$0240321 = 0, $$0243 = 0, $$0247 = 0, $$0249$lcssa = 0; - var $$0249306 = 0, $$0252 = 0, $$0253 = 0, $$0254 = 0, $$0254$$0254$ = 0, $$0259 = 0, $$0262$lcssa = 0, $$0262311 = 0, $$0269 = 0, $$0269$phi = 0, $$1 = 0, $$1230333 = 0, $$1233 = 0, $$1236 = 0, $$1238 = 0, $$1241332 = 0, $$1244320 = 0, $$1248 = 0, $$1250 = 0, $$1255 = 0; - var $$1260 = 0, $$1263 = 0, $$1263$ = 0, $$1270 = 0, $$2 = 0, $$2234 = 0, $$2239 = 0, $$2242305 = 0, $$2245 = 0, $$2251 = 0, $$2256 = 0, $$2256$ = 0, $$2256$$$2256 = 0, $$2261 = 0, $$2271 = 0, $$284$ = 0, $$289 = 0, $$290 = 0, $$3257 = 0, $$3265 = 0; - var $$3272 = 0, $$3303 = 0, $$377 = 0, $$4258355 = 0, $$4266 = 0, $$5 = 0, $$6268 = 0, $$lcssa295 = 0, $$pre = 0, $$pre346 = 0, $$pre347 = 0, $$pre347$pre = 0, $$pre349 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; - var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; - var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; - var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; - var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; - var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0; - var $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0; - var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0; - var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0; - var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0; - var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0; - var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0; - var $306 = 0.0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0; - var $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; - var $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0, $arglist_next3 = 0, $expanded = 0, $expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0, $expanded8 = 0, $isdigit = 0, $isdigit275 = 0, $isdigit277 = 0, $isdigittmp = 0, $isdigittmp$ = 0, $isdigittmp274 = 0; - var $isdigittmp276 = 0, $narrow = 0, $or$cond = 0, $or$cond281 = 0, $or$cond283 = 0, $or$cond286 = 0, $storemerge = 0, $storemerge273310 = 0, $storemerge278 = 0, $trunc = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $5 = sp + 16|0; - $6 = sp; - $7 = sp + 24|0; - $8 = sp + 8|0; - $9 = sp + 20|0; - HEAP32[$5>>2] = $1; - $10 = ($0|0)!=(0|0); - $11 = ((($7)) + 40|0); - $12 = $11; - $13 = ((($7)) + 39|0); - $14 = ((($8)) + 4|0); - $$0243 = 0;$$0247 = 0;$$0269 = 0;$21 = $1; - L1: while(1) { - $15 = ($$0247|0)>(-1); - do { - if ($15) { - $16 = (2147483647 - ($$0247))|0; - $17 = ($$0243|0)>($16|0); - if ($17) { - $18 = (___errno_location()|0); - HEAP32[$18>>2] = 75; - $$1248 = -1; - break; - } else { - $19 = (($$0243) + ($$0247))|0; - $$1248 = $19; - break; - } - } else { - $$1248 = $$0247; - } - } while(0); - $20 = HEAP8[$21>>0]|0; - $22 = ($20<<24>>24)==(0); - if ($22) { - label = 87; - break; - } else { - $23 = $20;$25 = $21; - } - L9: while(1) { - switch ($23<<24>>24) { - case 37: { - $$0249306 = $25;$27 = $25; - label = 9; - break L9; - break; - } - case 0: { - $$0249$lcssa = $25;$39 = $25; - break L9; - break; - } - default: { - } - } - $24 = ((($25)) + 1|0); - HEAP32[$5>>2] = $24; - $$pre = HEAP8[$24>>0]|0; - $23 = $$pre;$25 = $24; - } - L12: do { - if ((label|0) == 9) { - while(1) { - label = 0; - $26 = ((($27)) + 1|0); - $28 = HEAP8[$26>>0]|0; - $29 = ($28<<24>>24)==(37); - if (!($29)) { - $$0249$lcssa = $$0249306;$39 = $27; - break L12; - } - $30 = ((($$0249306)) + 1|0); - $31 = ((($27)) + 2|0); - HEAP32[$5>>2] = $31; - $32 = HEAP8[$31>>0]|0; - $33 = ($32<<24>>24)==(37); - if ($33) { - $$0249306 = $30;$27 = $31; - label = 9; - } else { - $$0249$lcssa = $30;$39 = $31; - break; - } - } - } - } while(0); - $34 = $$0249$lcssa; - $35 = $21; - $36 = (($34) - ($35))|0; - if ($10) { - _out($0,$21,$36); - } - $37 = ($36|0)==(0); - if (!($37)) { - $$0269$phi = $$0269;$$0243 = $36;$$0247 = $$1248;$21 = $39;$$0269 = $$0269$phi; - continue; - } - $38 = ((($39)) + 1|0); - $40 = HEAP8[$38>>0]|0; - $41 = $40 << 24 >> 24; - $isdigittmp = (($41) + -48)|0; - $isdigit = ($isdigittmp>>>0)<(10); - if ($isdigit) { - $42 = ((($39)) + 2|0); - $43 = HEAP8[$42>>0]|0; - $44 = ($43<<24>>24)==(36); - $45 = ((($39)) + 3|0); - $$377 = $44 ? $45 : $38; - $$$0269 = $44 ? 1 : $$0269; - $isdigittmp$ = $44 ? $isdigittmp : -1; - $$0253 = $isdigittmp$;$$1270 = $$$0269;$storemerge = $$377; - } else { - $$0253 = -1;$$1270 = $$0269;$storemerge = $38; - } - HEAP32[$5>>2] = $storemerge; - $46 = HEAP8[$storemerge>>0]|0; - $47 = $46 << 24 >> 24; - $48 = (($47) + -32)|0; - $49 = ($48>>>0)<(32); - L24: do { - if ($49) { - $$0262311 = 0;$329 = $46;$51 = $48;$storemerge273310 = $storemerge; - while(1) { - $50 = 1 << $51; - $52 = $50 & 75913; - $53 = ($52|0)==(0); - if ($53) { - $$0262$lcssa = $$0262311;$$lcssa295 = $329;$62 = $storemerge273310; - break L24; - } - $54 = $50 | $$0262311; - $55 = ((($storemerge273310)) + 1|0); - HEAP32[$5>>2] = $55; - $56 = HEAP8[$55>>0]|0; - $57 = $56 << 24 >> 24; - $58 = (($57) + -32)|0; - $59 = ($58>>>0)<(32); - if ($59) { - $$0262311 = $54;$329 = $56;$51 = $58;$storemerge273310 = $55; - } else { - $$0262$lcssa = $54;$$lcssa295 = $56;$62 = $55; - break; - } - } - } else { - $$0262$lcssa = 0;$$lcssa295 = $46;$62 = $storemerge; - } - } while(0); - $60 = ($$lcssa295<<24>>24)==(42); - if ($60) { - $61 = ((($62)) + 1|0); - $63 = HEAP8[$61>>0]|0; - $64 = $63 << 24 >> 24; - $isdigittmp276 = (($64) + -48)|0; - $isdigit277 = ($isdigittmp276>>>0)<(10); - if ($isdigit277) { - $65 = ((($62)) + 2|0); - $66 = HEAP8[$65>>0]|0; - $67 = ($66<<24>>24)==(36); - if ($67) { - $68 = (($4) + ($isdigittmp276<<2)|0); - HEAP32[$68>>2] = 10; - $69 = HEAP8[$61>>0]|0; - $70 = $69 << 24 >> 24; - $71 = (($70) + -48)|0; - $72 = (($3) + ($71<<3)|0); - $73 = $72; - $74 = $73; - $75 = HEAP32[$74>>2]|0; - $76 = (($73) + 4)|0; - $77 = $76; - $78 = HEAP32[$77>>2]|0; - $79 = ((($62)) + 3|0); - $$0259 = $75;$$2271 = 1;$storemerge278 = $79; - } else { - label = 23; - } - } else { - label = 23; - } - if ((label|0) == 23) { - label = 0; - $80 = ($$1270|0)==(0); - if (!($80)) { - $$0 = -1; - break; - } - if ($10) { - $arglist_current = HEAP32[$2>>2]|0; - $81 = $arglist_current; - $82 = ((0) + 4|0); - $expanded4 = $82; - $expanded = (($expanded4) - 1)|0; - $83 = (($81) + ($expanded))|0; - $84 = ((0) + 4|0); - $expanded8 = $84; - $expanded7 = (($expanded8) - 1)|0; - $expanded6 = $expanded7 ^ -1; - $85 = $83 & $expanded6; - $86 = $85; - $87 = HEAP32[$86>>2]|0; - $arglist_next = ((($86)) + 4|0); - HEAP32[$2>>2] = $arglist_next; - $$0259 = $87;$$2271 = 0;$storemerge278 = $61; - } else { - $$0259 = 0;$$2271 = 0;$storemerge278 = $61; - } - } - HEAP32[$5>>2] = $storemerge278; - $88 = ($$0259|0)<(0); - $89 = $$0262$lcssa | 8192; - $90 = (0 - ($$0259))|0; - $$$0262 = $88 ? $89 : $$0262$lcssa; - $$$0259 = $88 ? $90 : $$0259; - $$1260 = $$$0259;$$1263 = $$$0262;$$3272 = $$2271;$94 = $storemerge278; - } else { - $91 = (_getint($5)|0); - $92 = ($91|0)<(0); - if ($92) { - $$0 = -1; - break; - } - $$pre346 = HEAP32[$5>>2]|0; - $$1260 = $91;$$1263 = $$0262$lcssa;$$3272 = $$1270;$94 = $$pre346; - } - $93 = HEAP8[$94>>0]|0; - $95 = ($93<<24>>24)==(46); - do { - if ($95) { - $96 = ((($94)) + 1|0); - $97 = HEAP8[$96>>0]|0; - $98 = ($97<<24>>24)==(42); - if (!($98)) { - $125 = ((($94)) + 1|0); - HEAP32[$5>>2] = $125; - $126 = (_getint($5)|0); - $$pre347$pre = HEAP32[$5>>2]|0; - $$0254 = $126;$$pre347 = $$pre347$pre; - break; - } - $99 = ((($94)) + 2|0); - $100 = HEAP8[$99>>0]|0; - $101 = $100 << 24 >> 24; - $isdigittmp274 = (($101) + -48)|0; - $isdigit275 = ($isdigittmp274>>>0)<(10); - if ($isdigit275) { - $102 = ((($94)) + 3|0); - $103 = HEAP8[$102>>0]|0; - $104 = ($103<<24>>24)==(36); - if ($104) { - $105 = (($4) + ($isdigittmp274<<2)|0); - HEAP32[$105>>2] = 10; - $106 = HEAP8[$99>>0]|0; - $107 = $106 << 24 >> 24; - $108 = (($107) + -48)|0; - $109 = (($3) + ($108<<3)|0); - $110 = $109; - $111 = $110; - $112 = HEAP32[$111>>2]|0; - $113 = (($110) + 4)|0; - $114 = $113; - $115 = HEAP32[$114>>2]|0; - $116 = ((($94)) + 4|0); - HEAP32[$5>>2] = $116; - $$0254 = $112;$$pre347 = $116; - break; - } - } - $117 = ($$3272|0)==(0); - if (!($117)) { - $$0 = -1; - break L1; - } - if ($10) { - $arglist_current2 = HEAP32[$2>>2]|0; - $118 = $arglist_current2; - $119 = ((0) + 4|0); - $expanded11 = $119; - $expanded10 = (($expanded11) - 1)|0; - $120 = (($118) + ($expanded10))|0; - $121 = ((0) + 4|0); - $expanded15 = $121; - $expanded14 = (($expanded15) - 1)|0; - $expanded13 = $expanded14 ^ -1; - $122 = $120 & $expanded13; - $123 = $122; - $124 = HEAP32[$123>>2]|0; - $arglist_next3 = ((($123)) + 4|0); - HEAP32[$2>>2] = $arglist_next3; - $330 = $124; - } else { - $330 = 0; - } - HEAP32[$5>>2] = $99; - $$0254 = $330;$$pre347 = $99; - } else { - $$0254 = -1;$$pre347 = $94; - } - } while(0); - $$0252 = 0;$128 = $$pre347; - while(1) { - $127 = HEAP8[$128>>0]|0; - $129 = $127 << 24 >> 24; - $130 = (($129) + -65)|0; - $131 = ($130>>>0)>(57); - if ($131) { - $$0 = -1; - break L1; - } - $132 = ((($128)) + 1|0); - HEAP32[$5>>2] = $132; - $133 = HEAP8[$128>>0]|0; - $134 = $133 << 24 >> 24; - $135 = (($134) + -65)|0; - $136 = ((11264 + (($$0252*58)|0)|0) + ($135)|0); - $137 = HEAP8[$136>>0]|0; - $138 = $137&255; - $139 = (($138) + -1)|0; - $140 = ($139>>>0)<(8); - if ($140) { - $$0252 = $138;$128 = $132; - } else { - break; - } - } - $141 = ($137<<24>>24)==(0); - if ($141) { - $$0 = -1; - break; - } - $142 = ($137<<24>>24)==(19); - $143 = ($$0253|0)>(-1); - do { - if ($142) { - if ($143) { - $$0 = -1; - break L1; - } else { - label = 49; - } - } else { - if ($143) { - $144 = (($4) + ($$0253<<2)|0); - HEAP32[$144>>2] = $138; - $145 = (($3) + ($$0253<<3)|0); - $146 = $145; - $147 = $146; - $148 = HEAP32[$147>>2]|0; - $149 = (($146) + 4)|0; - $150 = $149; - $151 = HEAP32[$150>>2]|0; - $152 = $6; - $153 = $152; - HEAP32[$153>>2] = $148; - $154 = (($152) + 4)|0; - $155 = $154; - HEAP32[$155>>2] = $151; - label = 49; - break; - } - if (!($10)) { - $$0 = 0; - break L1; - } - _pop_arg($6,$138,$2); - } - } while(0); - if ((label|0) == 49) { - label = 0; - if (!($10)) { - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue; - } - } - $156 = HEAP8[$128>>0]|0; - $157 = $156 << 24 >> 24; - $158 = ($$0252|0)!=(0); - $159 = $157 & 15; - $160 = ($159|0)==(3); - $or$cond281 = $158 & $160; - $161 = $157 & -33; - $$0235 = $or$cond281 ? $161 : $157; - $162 = $$1263 & 8192; - $163 = ($162|0)==(0); - $164 = $$1263 & -65537; - $$1263$ = $163 ? $$1263 : $164; - L71: do { - switch ($$0235|0) { - case 110: { - $trunc = $$0252&255; - switch ($trunc<<24>>24) { - case 0: { - $171 = HEAP32[$6>>2]|0; - HEAP32[$171>>2] = $$1248; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 1: { - $172 = HEAP32[$6>>2]|0; - HEAP32[$172>>2] = $$1248; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 2: { - $173 = ($$1248|0)<(0); - $174 = $173 << 31 >> 31; - $175 = HEAP32[$6>>2]|0; - $176 = $175; - $177 = $176; - HEAP32[$177>>2] = $$1248; - $178 = (($176) + 4)|0; - $179 = $178; - HEAP32[$179>>2] = $174; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 3: { - $180 = $$1248&65535; - $181 = HEAP32[$6>>2]|0; - HEAP16[$181>>1] = $180; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 4: { - $182 = $$1248&255; - $183 = HEAP32[$6>>2]|0; - HEAP8[$183>>0] = $182; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 6: { - $184 = HEAP32[$6>>2]|0; - HEAP32[$184>>2] = $$1248; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 7: { - $185 = ($$1248|0)<(0); - $186 = $185 << 31 >> 31; - $187 = HEAP32[$6>>2]|0; - $188 = $187; - $189 = $188; - HEAP32[$189>>2] = $$1248; - $190 = (($188) + 4)|0; - $191 = $190; - HEAP32[$191>>2] = $186; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - default: { - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - } - } - break; - } - case 112: { - $192 = ($$0254>>>0)>(8); - $193 = $192 ? $$0254 : 8; - $194 = $$1263$ | 8; - $$1236 = 120;$$1255 = $193;$$3265 = $194; - label = 61; - break; - } - case 88: case 120: { - $$1236 = $$0235;$$1255 = $$0254;$$3265 = $$1263$; - label = 61; - break; - } - case 111: { - $210 = $6; - $211 = $210; - $212 = HEAP32[$211>>2]|0; - $213 = (($210) + 4)|0; - $214 = $213; - $215 = HEAP32[$214>>2]|0; - $216 = (_fmt_o($212,$215,$11)|0); - $217 = $$1263$ & 8; - $218 = ($217|0)==(0); - $219 = $216; - $220 = (($12) - ($219))|0; - $221 = ($$0254|0)>($220|0); - $222 = (($220) + 1)|0; - $223 = $218 | $221; - $$0254$$0254$ = $223 ? $$0254 : $222; - $$0228 = $216;$$1233 = 0;$$1238 = 11728;$$2256 = $$0254$$0254$;$$4266 = $$1263$;$248 = $212;$250 = $215; - label = 67; - break; - } - case 105: case 100: { - $224 = $6; - $225 = $224; - $226 = HEAP32[$225>>2]|0; - $227 = (($224) + 4)|0; - $228 = $227; - $229 = HEAP32[$228>>2]|0; - $230 = ($229|0)<(0); - if ($230) { - $231 = (_i64Subtract(0,0,($226|0),($229|0))|0); - $232 = tempRet0; - $233 = $6; - $234 = $233; - HEAP32[$234>>2] = $231; - $235 = (($233) + 4)|0; - $236 = $235; - HEAP32[$236>>2] = $232; - $$0232 = 1;$$0237 = 11728;$242 = $231;$243 = $232; - label = 66; - break L71; - } else { - $237 = $$1263$ & 2048; - $238 = ($237|0)==(0); - $239 = $$1263$ & 1; - $240 = ($239|0)==(0); - $$ = $240 ? 11728 : (11730); - $$$ = $238 ? $$ : (11729); - $241 = $$1263$ & 2049; - $narrow = ($241|0)!=(0); - $$284$ = $narrow&1; - $$0232 = $$284$;$$0237 = $$$;$242 = $226;$243 = $229; - label = 66; - break L71; - } - break; - } - case 117: { - $165 = $6; - $166 = $165; - $167 = HEAP32[$166>>2]|0; - $168 = (($165) + 4)|0; - $169 = $168; - $170 = HEAP32[$169>>2]|0; - $$0232 = 0;$$0237 = 11728;$242 = $167;$243 = $170; - label = 66; - break; - } - case 99: { - $259 = $6; - $260 = $259; - $261 = HEAP32[$260>>2]|0; - $262 = (($259) + 4)|0; - $263 = $262; - $264 = HEAP32[$263>>2]|0; - $265 = $261&255; - HEAP8[$13>>0] = $265; - $$2 = $13;$$2234 = 0;$$2239 = 11728;$$2251 = $11;$$5 = 1;$$6268 = $164; - break; - } - case 109: { - $266 = (___errno_location()|0); - $267 = HEAP32[$266>>2]|0; - $268 = (_strerror($267)|0); - $$1 = $268; - label = 71; - break; - } - case 115: { - $269 = HEAP32[$6>>2]|0; - $270 = ($269|0)!=(0|0); - $271 = $270 ? $269 : 11738; - $$1 = $271; - label = 71; - break; - } - case 67: { - $278 = $6; - $279 = $278; - $280 = HEAP32[$279>>2]|0; - $281 = (($278) + 4)|0; - $282 = $281; - $283 = HEAP32[$282>>2]|0; - HEAP32[$8>>2] = $280; - HEAP32[$14>>2] = 0; - HEAP32[$6>>2] = $8; - $$4258355 = -1;$331 = $8; - label = 75; - break; - } - case 83: { - $$pre349 = HEAP32[$6>>2]|0; - $284 = ($$0254|0)==(0); - if ($284) { - _pad_674($0,32,$$1260,0,$$1263$); - $$0240$lcssa357 = 0; - label = 84; - } else { - $$4258355 = $$0254;$331 = $$pre349; - label = 75; - } - break; - } - case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { - $306 = +HEAPF64[$6>>3]; - $307 = (_fmt_fp($0,$306,$$1260,$$0254,$$1263$,$$0235)|0); - $$0243 = $307;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - default: { - $$2 = $21;$$2234 = 0;$$2239 = 11728;$$2251 = $11;$$5 = $$0254;$$6268 = $$1263$; - } - } - } while(0); - L95: do { - if ((label|0) == 61) { - label = 0; - $195 = $6; - $196 = $195; - $197 = HEAP32[$196>>2]|0; - $198 = (($195) + 4)|0; - $199 = $198; - $200 = HEAP32[$199>>2]|0; - $201 = $$1236 & 32; - $202 = (_fmt_x($197,$200,$11,$201)|0); - $203 = ($197|0)==(0); - $204 = ($200|0)==(0); - $205 = $203 & $204; - $206 = $$3265 & 8; - $207 = ($206|0)==(0); - $or$cond283 = $207 | $205; - $208 = $$1236 >> 4; - $209 = (11728 + ($208)|0); - $$289 = $or$cond283 ? 11728 : $209; - $$290 = $or$cond283 ? 0 : 2; - $$0228 = $202;$$1233 = $$290;$$1238 = $$289;$$2256 = $$1255;$$4266 = $$3265;$248 = $197;$250 = $200; - label = 67; - } - else if ((label|0) == 66) { - label = 0; - $244 = (_fmt_u($242,$243,$11)|0); - $$0228 = $244;$$1233 = $$0232;$$1238 = $$0237;$$2256 = $$0254;$$4266 = $$1263$;$248 = $242;$250 = $243; - label = 67; - } - else if ((label|0) == 71) { - label = 0; - $272 = (_memchr($$1,0,$$0254)|0); - $273 = ($272|0)==(0|0); - $274 = $272; - $275 = $$1; - $276 = (($274) - ($275))|0; - $277 = (($$1) + ($$0254)|0); - $$3257 = $273 ? $$0254 : $276; - $$1250 = $273 ? $277 : $272; - $$2 = $$1;$$2234 = 0;$$2239 = 11728;$$2251 = $$1250;$$5 = $$3257;$$6268 = $164; - } - else if ((label|0) == 75) { - label = 0; - $$0229322 = $331;$$0240321 = 0;$$1244320 = 0; - while(1) { - $285 = HEAP32[$$0229322>>2]|0; - $286 = ($285|0)==(0); - if ($286) { - $$0240$lcssa = $$0240321;$$2245 = $$1244320; - break; - } - $287 = (_wctomb($9,$285)|0); - $288 = ($287|0)<(0); - $289 = (($$4258355) - ($$0240321))|0; - $290 = ($287>>>0)>($289>>>0); - $or$cond286 = $288 | $290; - if ($or$cond286) { - $$0240$lcssa = $$0240321;$$2245 = $287; - break; - } - $291 = ((($$0229322)) + 4|0); - $292 = (($287) + ($$0240321))|0; - $293 = ($$4258355>>>0)>($292>>>0); - if ($293) { - $$0229322 = $291;$$0240321 = $292;$$1244320 = $287; - } else { - $$0240$lcssa = $292;$$2245 = $287; - break; - } - } - $294 = ($$2245|0)<(0); - if ($294) { - $$0 = -1; - break L1; - } - _pad_674($0,32,$$1260,$$0240$lcssa,$$1263$); - $295 = ($$0240$lcssa|0)==(0); - if ($295) { - $$0240$lcssa357 = 0; - label = 84; - } else { - $$1230333 = $331;$$1241332 = 0; - while(1) { - $296 = HEAP32[$$1230333>>2]|0; - $297 = ($296|0)==(0); - if ($297) { - $$0240$lcssa357 = $$0240$lcssa; - label = 84; - break L95; - } - $298 = (_wctomb($9,$296)|0); - $299 = (($298) + ($$1241332))|0; - $300 = ($299|0)>($$0240$lcssa|0); - if ($300) { - $$0240$lcssa357 = $$0240$lcssa; - label = 84; - break L95; - } - $301 = ((($$1230333)) + 4|0); - _out($0,$9,$298); - $302 = ($299>>>0)<($$0240$lcssa>>>0); - if ($302) { - $$1230333 = $301;$$1241332 = $299; - } else { - $$0240$lcssa357 = $$0240$lcssa; - label = 84; - break; - } - } - } - } - } while(0); - if ((label|0) == 67) { - label = 0; - $245 = ($$2256|0)>(-1); - $246 = $$4266 & -65537; - $$$4266 = $245 ? $246 : $$4266; - $247 = ($248|0)!=(0); - $249 = ($250|0)!=(0); - $251 = $247 | $249; - $252 = ($$2256|0)!=(0); - $or$cond = $252 | $251; - $253 = $$0228; - $254 = (($12) - ($253))|0; - $255 = $251 ^ 1; - $256 = $255&1; - $257 = (($256) + ($254))|0; - $258 = ($$2256|0)>($257|0); - $$2256$ = $258 ? $$2256 : $257; - $$2256$$$2256 = $or$cond ? $$2256$ : $$2256; - $$0228$ = $or$cond ? $$0228 : $11; - $$2 = $$0228$;$$2234 = $$1233;$$2239 = $$1238;$$2251 = $11;$$5 = $$2256$$$2256;$$6268 = $$$4266; - } - else if ((label|0) == 84) { - label = 0; - $303 = $$1263$ ^ 8192; - _pad_674($0,32,$$1260,$$0240$lcssa357,$303); - $304 = ($$1260|0)>($$0240$lcssa357|0); - $305 = $304 ? $$1260 : $$0240$lcssa357; - $$0243 = $305;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue; - } - $308 = $$2251; - $309 = $$2; - $310 = (($308) - ($309))|0; - $311 = ($$5|0)<($310|0); - $$$5 = $311 ? $310 : $$5; - $312 = (($$$5) + ($$2234))|0; - $313 = ($$1260|0)<($312|0); - $$2261 = $313 ? $312 : $$1260; - _pad_674($0,32,$$2261,$312,$$6268); - _out($0,$$2239,$$2234); - $314 = $$6268 ^ 65536; - _pad_674($0,48,$$2261,$312,$314); - _pad_674($0,48,$$$5,$310,0); - _out($0,$$2,$310); - $315 = $$6268 ^ 8192; - _pad_674($0,32,$$2261,$312,$315); - $$0243 = $$2261;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - } - L114: do { - if ((label|0) == 87) { - $316 = ($0|0)==(0|0); - if ($316) { - $317 = ($$0269|0)==(0); - if ($317) { - $$0 = 0; - } else { - $$2242305 = 1; - while(1) { - $318 = (($4) + ($$2242305<<2)|0); - $319 = HEAP32[$318>>2]|0; - $320 = ($319|0)==(0); - if ($320) { - $$3303 = $$2242305; - break; - } - $321 = (($3) + ($$2242305<<3)|0); - _pop_arg($321,$319,$2); - $322 = (($$2242305) + 1)|0; - $323 = ($322|0)<(10); - if ($323) { - $$2242305 = $322; - } else { - $$0 = 1; - break L114; - } - } - while(1) { - $326 = (($4) + ($$3303<<2)|0); - $327 = HEAP32[$326>>2]|0; - $328 = ($327|0)==(0); - $325 = (($$3303) + 1)|0; - if (!($328)) { - $$0 = -1; - break L114; - } - $324 = ($325|0)<(10); - if ($324) { - $$3303 = $325; - } else { - $$0 = 1; - break; - } - } - } - } else { - $$0 = $$1248; - } - } - } while(0); - STACKTOP = sp;return ($$0|0); -} -function ___lockfile($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return 0; -} -function ___unlockfile($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function _out($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = HEAP32[$0>>2]|0; - $4 = $3 & 32; - $5 = ($4|0)==(0); - if ($5) { - (___fwritex($1,$2,$0)|0); - } - return; -} -function _getint($0) { - $0 = $0|0; - var $$0$lcssa = 0, $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $isdigit = 0, $isdigit5 = 0, $isdigittmp = 0, $isdigittmp4 = 0, $isdigittmp7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - $2 = HEAP8[$1>>0]|0; - $3 = $2 << 24 >> 24; - $isdigittmp4 = (($3) + -48)|0; - $isdigit5 = ($isdigittmp4>>>0)<(10); - if ($isdigit5) { - $$06 = 0;$7 = $1;$isdigittmp7 = $isdigittmp4; - while(1) { - $4 = ($$06*10)|0; - $5 = (($isdigittmp7) + ($4))|0; - $6 = ((($7)) + 1|0); - HEAP32[$0>>2] = $6; - $8 = HEAP8[$6>>0]|0; - $9 = $8 << 24 >> 24; - $isdigittmp = (($9) + -48)|0; - $isdigit = ($isdigittmp>>>0)<(10); - if ($isdigit) { - $$06 = $5;$7 = $6;$isdigittmp7 = $isdigittmp; - } else { - $$0$lcssa = $5; - break; - } - } - } else { - $$0$lcssa = 0; - } - return ($$0$lcssa|0); -} -function _pop_arg($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$mask = 0, $$mask31 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0; - var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, $arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, $expanded28 = 0, $expanded30 = 0, $expanded31 = 0; - var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, $expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 = 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, $expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 = 0, $expanded58 = 0, $expanded59 = 0; - var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, $expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 = 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, $expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 = 0, $expanded86 = 0, $expanded87 = 0; - var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, $expanded94 = 0, $expanded95 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($1>>>0)>(20); - L1: do { - if (!($3)) { - do { - switch ($1|0) { - case 9: { - $arglist_current = HEAP32[$2>>2]|0; - $4 = $arglist_current; - $5 = ((0) + 4|0); - $expanded28 = $5; - $expanded = (($expanded28) - 1)|0; - $6 = (($4) + ($expanded))|0; - $7 = ((0) + 4|0); - $expanded32 = $7; - $expanded31 = (($expanded32) - 1)|0; - $expanded30 = $expanded31 ^ -1; - $8 = $6 & $expanded30; - $9 = $8; - $10 = HEAP32[$9>>2]|0; - $arglist_next = ((($9)) + 4|0); - HEAP32[$2>>2] = $arglist_next; - HEAP32[$0>>2] = $10; - break L1; - break; - } - case 10: { - $arglist_current2 = HEAP32[$2>>2]|0; - $11 = $arglist_current2; - $12 = ((0) + 4|0); - $expanded35 = $12; - $expanded34 = (($expanded35) - 1)|0; - $13 = (($11) + ($expanded34))|0; - $14 = ((0) + 4|0); - $expanded39 = $14; - $expanded38 = (($expanded39) - 1)|0; - $expanded37 = $expanded38 ^ -1; - $15 = $13 & $expanded37; - $16 = $15; - $17 = HEAP32[$16>>2]|0; - $arglist_next3 = ((($16)) + 4|0); - HEAP32[$2>>2] = $arglist_next3; - $18 = ($17|0)<(0); - $19 = $18 << 31 >> 31; - $20 = $0; - $21 = $20; - HEAP32[$21>>2] = $17; - $22 = (($20) + 4)|0; - $23 = $22; - HEAP32[$23>>2] = $19; - break L1; - break; - } - case 11: { - $arglist_current5 = HEAP32[$2>>2]|0; - $24 = $arglist_current5; - $25 = ((0) + 4|0); - $expanded42 = $25; - $expanded41 = (($expanded42) - 1)|0; - $26 = (($24) + ($expanded41))|0; - $27 = ((0) + 4|0); - $expanded46 = $27; - $expanded45 = (($expanded46) - 1)|0; - $expanded44 = $expanded45 ^ -1; - $28 = $26 & $expanded44; - $29 = $28; - $30 = HEAP32[$29>>2]|0; - $arglist_next6 = ((($29)) + 4|0); - HEAP32[$2>>2] = $arglist_next6; - $31 = $0; - $32 = $31; - HEAP32[$32>>2] = $30; - $33 = (($31) + 4)|0; - $34 = $33; - HEAP32[$34>>2] = 0; - break L1; - break; - } - case 12: { - $arglist_current8 = HEAP32[$2>>2]|0; - $35 = $arglist_current8; - $36 = ((0) + 8|0); - $expanded49 = $36; - $expanded48 = (($expanded49) - 1)|0; - $37 = (($35) + ($expanded48))|0; - $38 = ((0) + 8|0); - $expanded53 = $38; - $expanded52 = (($expanded53) - 1)|0; - $expanded51 = $expanded52 ^ -1; - $39 = $37 & $expanded51; - $40 = $39; - $41 = $40; - $42 = $41; - $43 = HEAP32[$42>>2]|0; - $44 = (($41) + 4)|0; - $45 = $44; - $46 = HEAP32[$45>>2]|0; - $arglist_next9 = ((($40)) + 8|0); - HEAP32[$2>>2] = $arglist_next9; - $47 = $0; - $48 = $47; - HEAP32[$48>>2] = $43; - $49 = (($47) + 4)|0; - $50 = $49; - HEAP32[$50>>2] = $46; - break L1; - break; - } - case 13: { - $arglist_current11 = HEAP32[$2>>2]|0; - $51 = $arglist_current11; - $52 = ((0) + 4|0); - $expanded56 = $52; - $expanded55 = (($expanded56) - 1)|0; - $53 = (($51) + ($expanded55))|0; - $54 = ((0) + 4|0); - $expanded60 = $54; - $expanded59 = (($expanded60) - 1)|0; - $expanded58 = $expanded59 ^ -1; - $55 = $53 & $expanded58; - $56 = $55; - $57 = HEAP32[$56>>2]|0; - $arglist_next12 = ((($56)) + 4|0); - HEAP32[$2>>2] = $arglist_next12; - $58 = $57&65535; - $59 = $58 << 16 >> 16; - $60 = ($59|0)<(0); - $61 = $60 << 31 >> 31; - $62 = $0; - $63 = $62; - HEAP32[$63>>2] = $59; - $64 = (($62) + 4)|0; - $65 = $64; - HEAP32[$65>>2] = $61; - break L1; - break; - } - case 14: { - $arglist_current14 = HEAP32[$2>>2]|0; - $66 = $arglist_current14; - $67 = ((0) + 4|0); - $expanded63 = $67; - $expanded62 = (($expanded63) - 1)|0; - $68 = (($66) + ($expanded62))|0; - $69 = ((0) + 4|0); - $expanded67 = $69; - $expanded66 = (($expanded67) - 1)|0; - $expanded65 = $expanded66 ^ -1; - $70 = $68 & $expanded65; - $71 = $70; - $72 = HEAP32[$71>>2]|0; - $arglist_next15 = ((($71)) + 4|0); - HEAP32[$2>>2] = $arglist_next15; - $$mask31 = $72 & 65535; - $73 = $0; - $74 = $73; - HEAP32[$74>>2] = $$mask31; - $75 = (($73) + 4)|0; - $76 = $75; - HEAP32[$76>>2] = 0; - break L1; - break; - } - case 15: { - $arglist_current17 = HEAP32[$2>>2]|0; - $77 = $arglist_current17; - $78 = ((0) + 4|0); - $expanded70 = $78; - $expanded69 = (($expanded70) - 1)|0; - $79 = (($77) + ($expanded69))|0; - $80 = ((0) + 4|0); - $expanded74 = $80; - $expanded73 = (($expanded74) - 1)|0; - $expanded72 = $expanded73 ^ -1; - $81 = $79 & $expanded72; - $82 = $81; - $83 = HEAP32[$82>>2]|0; - $arglist_next18 = ((($82)) + 4|0); - HEAP32[$2>>2] = $arglist_next18; - $84 = $83&255; - $85 = $84 << 24 >> 24; - $86 = ($85|0)<(0); - $87 = $86 << 31 >> 31; - $88 = $0; - $89 = $88; - HEAP32[$89>>2] = $85; - $90 = (($88) + 4)|0; - $91 = $90; - HEAP32[$91>>2] = $87; - break L1; - break; - } - case 16: { - $arglist_current20 = HEAP32[$2>>2]|0; - $92 = $arglist_current20; - $93 = ((0) + 4|0); - $expanded77 = $93; - $expanded76 = (($expanded77) - 1)|0; - $94 = (($92) + ($expanded76))|0; - $95 = ((0) + 4|0); - $expanded81 = $95; - $expanded80 = (($expanded81) - 1)|0; - $expanded79 = $expanded80 ^ -1; - $96 = $94 & $expanded79; - $97 = $96; - $98 = HEAP32[$97>>2]|0; - $arglist_next21 = ((($97)) + 4|0); - HEAP32[$2>>2] = $arglist_next21; - $$mask = $98 & 255; - $99 = $0; - $100 = $99; - HEAP32[$100>>2] = $$mask; - $101 = (($99) + 4)|0; - $102 = $101; - HEAP32[$102>>2] = 0; - break L1; - break; - } - case 17: { - $arglist_current23 = HEAP32[$2>>2]|0; - $103 = $arglist_current23; - $104 = ((0) + 8|0); - $expanded84 = $104; - $expanded83 = (($expanded84) - 1)|0; - $105 = (($103) + ($expanded83))|0; - $106 = ((0) + 8|0); - $expanded88 = $106; - $expanded87 = (($expanded88) - 1)|0; - $expanded86 = $expanded87 ^ -1; - $107 = $105 & $expanded86; - $108 = $107; - $109 = +HEAPF64[$108>>3]; - $arglist_next24 = ((($108)) + 8|0); - HEAP32[$2>>2] = $arglist_next24; - HEAPF64[$0>>3] = $109; - break L1; - break; - } - case 18: { - $arglist_current26 = HEAP32[$2>>2]|0; - $110 = $arglist_current26; - $111 = ((0) + 8|0); - $expanded91 = $111; - $expanded90 = (($expanded91) - 1)|0; - $112 = (($110) + ($expanded90))|0; - $113 = ((0) + 8|0); - $expanded95 = $113; - $expanded94 = (($expanded95) - 1)|0; - $expanded93 = $expanded94 ^ -1; - $114 = $112 & $expanded93; - $115 = $114; - $116 = +HEAPF64[$115>>3]; - $arglist_next27 = ((($115)) + 8|0); - HEAP32[$2>>2] = $arglist_next27; - HEAPF64[$0>>3] = $116; - break L1; - break; - } - default: { - break L1; - } - } - } while(0); - } - } while(0); - return; -} -function _fmt_x($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$05$lcssa = 0, $$056 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $4 = ($0|0)==(0); - $5 = ($1|0)==(0); - $6 = $4 & $5; - if ($6) { - $$05$lcssa = $2; - } else { - $$056 = $2;$15 = $1;$8 = $0; - while(1) { - $7 = $8 & 15; - $9 = (11780 + ($7)|0); - $10 = HEAP8[$9>>0]|0; - $11 = $10&255; - $12 = $11 | $3; - $13 = $12&255; - $14 = ((($$056)) + -1|0); - HEAP8[$14>>0] = $13; - $16 = (_bitshift64Lshr(($8|0),($15|0),4)|0); - $17 = tempRet0; - $18 = ($16|0)==(0); - $19 = ($17|0)==(0); - $20 = $18 & $19; - if ($20) { - $$05$lcssa = $14; - break; - } else { - $$056 = $14;$15 = $17;$8 = $16; - } - } - } - return ($$05$lcssa|0); -} -function _fmt_o($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0$lcssa = 0, $$06 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(0); - $4 = ($1|0)==(0); - $5 = $3 & $4; - if ($5) { - $$0$lcssa = $2; - } else { - $$06 = $2;$11 = $1;$7 = $0; - while(1) { - $6 = $7&255; - $8 = $6 & 7; - $9 = $8 | 48; - $10 = ((($$06)) + -1|0); - HEAP8[$10>>0] = $9; - $12 = (_bitshift64Lshr(($7|0),($11|0),3)|0); - $13 = tempRet0; - $14 = ($12|0)==(0); - $15 = ($13|0)==(0); - $16 = $14 & $15; - if ($16) { - $$0$lcssa = $10; - break; - } else { - $$06 = $10;$11 = $13;$7 = $12; - } - } - } - return ($$0$lcssa|0); -} -function _fmt_u($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$010$lcssa$off0 = 0, $$012 = 0, $$09$lcssa = 0, $$0914 = 0, $$1$lcssa = 0, $$111 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($1>>>0)>(0); - $4 = ($0>>>0)>(4294967295); - $5 = ($1|0)==(0); - $6 = $5 & $4; - $7 = $3 | $6; - if ($7) { - $$0914 = $2;$8 = $0;$9 = $1; - while(1) { - $10 = (___uremdi3(($8|0),($9|0),10,0)|0); - $11 = tempRet0; - $12 = $10&255; - $13 = $12 | 48; - $14 = ((($$0914)) + -1|0); - HEAP8[$14>>0] = $13; - $15 = (___udivdi3(($8|0),($9|0),10,0)|0); - $16 = tempRet0; - $17 = ($9>>>0)>(9); - $18 = ($8>>>0)>(4294967295); - $19 = ($9|0)==(9); - $20 = $19 & $18; - $21 = $17 | $20; - if ($21) { - $$0914 = $14;$8 = $15;$9 = $16; - } else { - break; - } - } - $$010$lcssa$off0 = $15;$$09$lcssa = $14; - } else { - $$010$lcssa$off0 = $0;$$09$lcssa = $2; - } - $22 = ($$010$lcssa$off0|0)==(0); - if ($22) { - $$1$lcssa = $$09$lcssa; - } else { - $$012 = $$010$lcssa$off0;$$111 = $$09$lcssa; - while(1) { - $23 = (($$012>>>0) % 10)&-1; - $24 = $23 | 48; - $25 = $24&255; - $26 = ((($$111)) + -1|0); - HEAP8[$26>>0] = $25; - $27 = (($$012>>>0) / 10)&-1; - $28 = ($$012>>>0)<(10); - if ($28) { - $$1$lcssa = $26; - break; - } else { - $$012 = $27;$$111 = $26; - } - } - } - return ($$1$lcssa|0); -} -function _strerror($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (___pthread_self_105()|0); - $2 = ((($1)) + 188|0); - $3 = HEAP32[$2>>2]|0; - $4 = (___strerror_l($0,$3)|0); - return ($4|0); -} -function _memchr($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0$lcssa = 0, $$035$lcssa = 0, $$035$lcssa65 = 0, $$03555 = 0, $$036$lcssa = 0, $$036$lcssa64 = 0, $$03654 = 0, $$046 = 0, $$137$lcssa = 0, $$13745 = 0, $$140 = 0, $$2 = 0, $$23839 = 0, $$3 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond53 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = $1 & 255; - $4 = $0; - $5 = $4 & 3; - $6 = ($5|0)!=(0); - $7 = ($2|0)!=(0); - $or$cond53 = $7 & $6; - L1: do { - if ($or$cond53) { - $8 = $1&255; - $$03555 = $0;$$03654 = $2; - while(1) { - $9 = HEAP8[$$03555>>0]|0; - $10 = ($9<<24>>24)==($8<<24>>24); - if ($10) { - $$035$lcssa65 = $$03555;$$036$lcssa64 = $$03654; - label = 6; - break L1; - } - $11 = ((($$03555)) + 1|0); - $12 = (($$03654) + -1)|0; - $13 = $11; - $14 = $13 & 3; - $15 = ($14|0)!=(0); - $16 = ($12|0)!=(0); - $or$cond = $16 & $15; - if ($or$cond) { - $$03555 = $11;$$03654 = $12; - } else { - $$035$lcssa = $11;$$036$lcssa = $12;$$lcssa = $16; - label = 5; - break; - } - } - } else { - $$035$lcssa = $0;$$036$lcssa = $2;$$lcssa = $7; - label = 5; - } - } while(0); - if ((label|0) == 5) { - if ($$lcssa) { - $$035$lcssa65 = $$035$lcssa;$$036$lcssa64 = $$036$lcssa; - label = 6; - } else { - $$2 = $$035$lcssa;$$3 = 0; - } - } - L8: do { - if ((label|0) == 6) { - $17 = HEAP8[$$035$lcssa65>>0]|0; - $18 = $1&255; - $19 = ($17<<24>>24)==($18<<24>>24); - if ($19) { - $$2 = $$035$lcssa65;$$3 = $$036$lcssa64; - } else { - $20 = Math_imul($3, 16843009)|0; - $21 = ($$036$lcssa64>>>0)>(3); - L11: do { - if ($21) { - $$046 = $$035$lcssa65;$$13745 = $$036$lcssa64; - while(1) { - $22 = HEAP32[$$046>>2]|0; - $23 = $22 ^ $20; - $24 = (($23) + -16843009)|0; - $25 = $23 & -2139062144; - $26 = $25 ^ -2139062144; - $27 = $26 & $24; - $28 = ($27|0)==(0); - if (!($28)) { - break; - } - $29 = ((($$046)) + 4|0); - $30 = (($$13745) + -4)|0; - $31 = ($30>>>0)>(3); - if ($31) { - $$046 = $29;$$13745 = $30; - } else { - $$0$lcssa = $29;$$137$lcssa = $30; - label = 11; - break L11; - } - } - $$140 = $$046;$$23839 = $$13745; - } else { - $$0$lcssa = $$035$lcssa65;$$137$lcssa = $$036$lcssa64; - label = 11; - } - } while(0); - if ((label|0) == 11) { - $32 = ($$137$lcssa|0)==(0); - if ($32) { - $$2 = $$0$lcssa;$$3 = 0; - break; - } else { - $$140 = $$0$lcssa;$$23839 = $$137$lcssa; - } - } - while(1) { - $33 = HEAP8[$$140>>0]|0; - $34 = ($33<<24>>24)==($18<<24>>24); - if ($34) { - $$2 = $$140;$$3 = $$23839; - break L8; - } - $35 = ((($$140)) + 1|0); - $36 = (($$23839) + -1)|0; - $37 = ($36|0)==(0); - if ($37) { - $$2 = $35;$$3 = 0; - break; - } else { - $$140 = $35;$$23839 = $36; - } - } - } - } - } while(0); - $38 = ($$3|0)!=(0); - $39 = $38 ? $$2 : 0; - return ($39|0); -} -function _pad_674($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0$lcssa = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $5 = sp; - $6 = $4 & 73728; - $7 = ($6|0)==(0); - $8 = ($2|0)>($3|0); - $or$cond = $8 & $7; - if ($or$cond) { - $9 = (($2) - ($3))|0; - $10 = ($9>>>0)<(256); - $11 = $10 ? $9 : 256; - _memset(($5|0),($1|0),($11|0))|0; - $12 = ($9>>>0)>(255); - if ($12) { - $13 = (($2) - ($3))|0; - $$011 = $9; - while(1) { - _out($0,$5,256); - $14 = (($$011) + -256)|0; - $15 = ($14>>>0)>(255); - if ($15) { - $$011 = $14; - } else { - break; - } - } - $16 = $13 & 255; - $$0$lcssa = $16; - } else { - $$0$lcssa = $9; - } - _out($0,$5,$$0$lcssa); - } - STACKTOP = sp;return; -} -function _wctomb($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($0|0)==(0|0); - if ($2) { - $$0 = 0; - } else { - $3 = (_wcrtomb($0,$1,0)|0); - $$0 = $3; - } - return ($$0|0); -} -function _fmt_fp($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = +$1; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $$ = 0, $$$ = 0, $$$$559 = 0.0, $$$3484 = 0, $$$3484691 = 0, $$$3484692 = 0, $$$3501 = 0, $$$4502 = 0, $$$542 = 0.0, $$$559 = 0.0, $$0 = 0, $$0463$lcssa = 0, $$0463584 = 0, $$0464594 = 0, $$0471 = 0.0, $$0479 = 0, $$0487642 = 0, $$0488 = 0, $$0488653 = 0, $$0488655 = 0; - var $$0496$$9 = 0, $$0497654 = 0, $$0498 = 0, $$0509582 = 0.0, $$0510 = 0, $$0511 = 0, $$0514637 = 0, $$0520 = 0, $$0521 = 0, $$0521$ = 0, $$0523 = 0, $$0525 = 0, $$0527 = 0, $$0527629 = 0, $$0527631 = 0, $$0530636 = 0, $$1465 = 0, $$1467 = 0.0, $$1469 = 0.0, $$1472 = 0.0; - var $$1480 = 0, $$1482$lcssa = 0, $$1482661 = 0, $$1489641 = 0, $$1499$lcssa = 0, $$1499660 = 0, $$1508583 = 0, $$1512$lcssa = 0, $$1512607 = 0, $$1515 = 0, $$1524 = 0, $$1526 = 0, $$1528614 = 0, $$1531$lcssa = 0, $$1531630 = 0, $$1598 = 0, $$2 = 0, $$2473 = 0.0, $$2476 = 0, $$2476$$547 = 0; - var $$2476$$549 = 0, $$2483$ph = 0, $$2500 = 0, $$2513 = 0, $$2516618 = 0, $$2529 = 0, $$2532617 = 0, $$3 = 0.0, $$3477 = 0, $$3484$lcssa = 0, $$3484648 = 0, $$3501$lcssa = 0, $$3501647 = 0, $$3533613 = 0, $$4 = 0.0, $$4478$lcssa = 0, $$4478590 = 0, $$4492 = 0, $$4502 = 0, $$4518 = 0; - var $$5$lcssa = 0, $$534$ = 0, $$539 = 0, $$539$ = 0, $$542 = 0.0, $$546 = 0, $$548 = 0, $$5486$lcssa = 0, $$5486623 = 0, $$5493597 = 0, $$5519$ph = 0, $$555 = 0, $$556 = 0, $$559 = 0.0, $$5602 = 0, $$6 = 0, $$6494589 = 0, $$7495601 = 0, $$7505 = 0, $$7505$ = 0; - var $$7505$ph = 0, $$8 = 0, $$9$ph = 0, $$lcssa673 = 0, $$neg = 0, $$neg567 = 0, $$pn = 0, $$pn566 = 0, $$pr = 0, $$pr564 = 0, $$pre = 0, $$pre$phi690Z2D = 0, $$pre689 = 0, $$sink545$lcssa = 0, $$sink545622 = 0, $$sink562 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0; - var $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0; - var $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0; - var $14 = 0.0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0; - var $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0; - var $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0; - var $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0; - var $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0.0, $229 = 0.0, $23 = 0; - var $230 = 0, $231 = 0.0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0; - var $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0; - var $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0; - var $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0; - var $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0; - var $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0; - var $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0.0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0; - var $358 = 0, $359 = 0, $36 = 0.0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0; - var $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0; - var $narrow = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond3$not = 0, $or$cond537 = 0, $or$cond541 = 0, $or$cond544 = 0, $or$cond554 = 0, $or$cond6 = 0, $scevgep684 = 0, $scevgep684685 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 560|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(560|0); - $6 = sp + 8|0; - $7 = sp; - $8 = sp + 524|0; - $9 = $8; - $10 = sp + 512|0; - HEAP32[$7>>2] = 0; - $11 = ((($10)) + 12|0); - (___DOUBLE_BITS_675($1)|0); - $12 = tempRet0; - $13 = ($12|0)<(0); - if ($13) { - $14 = -$1; - $$0471 = $14;$$0520 = 1;$$0521 = 11745; - } else { - $15 = $4 & 2048; - $16 = ($15|0)==(0); - $17 = $4 & 1; - $18 = ($17|0)==(0); - $$ = $18 ? (11746) : (11751); - $$$ = $16 ? $$ : (11748); - $19 = $4 & 2049; - $narrow = ($19|0)!=(0); - $$534$ = $narrow&1; - $$0471 = $1;$$0520 = $$534$;$$0521 = $$$; - } - (___DOUBLE_BITS_675($$0471)|0); - $20 = tempRet0; - $21 = $20 & 2146435072; - $22 = ($21>>>0)<(2146435072); - $23 = (0)<(0); - $24 = ($21|0)==(2146435072); - $25 = $24 & $23; - $26 = $22 | $25; - do { - if ($26) { - $35 = (+_frexpl($$0471,$7)); - $36 = $35 * 2.0; - $37 = $36 != 0.0; - if ($37) { - $38 = HEAP32[$7>>2]|0; - $39 = (($38) + -1)|0; - HEAP32[$7>>2] = $39; - } - $40 = $5 | 32; - $41 = ($40|0)==(97); - if ($41) { - $42 = $5 & 32; - $43 = ($42|0)==(0); - $44 = ((($$0521)) + 9|0); - $$0521$ = $43 ? $$0521 : $44; - $45 = $$0520 | 2; - $46 = ($3>>>0)>(11); - $47 = (12 - ($3))|0; - $48 = ($47|0)==(0); - $49 = $46 | $48; - do { - if ($49) { - $$1472 = $36; - } else { - $$0509582 = 8.0;$$1508583 = $47; - while(1) { - $50 = (($$1508583) + -1)|0; - $51 = $$0509582 * 16.0; - $52 = ($50|0)==(0); - if ($52) { - break; - } else { - $$0509582 = $51;$$1508583 = $50; - } - } - $53 = HEAP8[$$0521$>>0]|0; - $54 = ($53<<24>>24)==(45); - if ($54) { - $55 = -$36; - $56 = $55 - $51; - $57 = $51 + $56; - $58 = -$57; - $$1472 = $58; - break; - } else { - $59 = $36 + $51; - $60 = $59 - $51; - $$1472 = $60; - break; - } - } - } while(0); - $61 = HEAP32[$7>>2]|0; - $62 = ($61|0)<(0); - $63 = (0 - ($61))|0; - $64 = $62 ? $63 : $61; - $65 = ($64|0)<(0); - $66 = $65 << 31 >> 31; - $67 = (_fmt_u($64,$66,$11)|0); - $68 = ($67|0)==($11|0); - if ($68) { - $69 = ((($10)) + 11|0); - HEAP8[$69>>0] = 48; - $$0511 = $69; - } else { - $$0511 = $67; - } - $70 = $61 >> 31; - $71 = $70 & 2; - $72 = (($71) + 43)|0; - $73 = $72&255; - $74 = ((($$0511)) + -1|0); - HEAP8[$74>>0] = $73; - $75 = (($5) + 15)|0; - $76 = $75&255; - $77 = ((($$0511)) + -2|0); - HEAP8[$77>>0] = $76; - $notrhs = ($3|0)<(1); - $78 = $4 & 8; - $79 = ($78|0)==(0); - $$0523 = $8;$$2473 = $$1472; - while(1) { - $80 = (~~(($$2473))); - $81 = (11780 + ($80)|0); - $82 = HEAP8[$81>>0]|0; - $83 = $82&255; - $84 = $83 | $42; - $85 = $84&255; - $86 = ((($$0523)) + 1|0); - HEAP8[$$0523>>0] = $85; - $87 = (+($80|0)); - $88 = $$2473 - $87; - $89 = $88 * 16.0; - $90 = $86; - $91 = (($90) - ($9))|0; - $92 = ($91|0)==(1); - if ($92) { - $notlhs = $89 == 0.0; - $or$cond3$not = $notrhs & $notlhs; - $or$cond = $79 & $or$cond3$not; - if ($or$cond) { - $$1524 = $86; - } else { - $93 = ((($$0523)) + 2|0); - HEAP8[$86>>0] = 46; - $$1524 = $93; - } - } else { - $$1524 = $86; - } - $94 = $89 != 0.0; - if ($94) { - $$0523 = $$1524;$$2473 = $89; - } else { - break; - } - } - $95 = ($3|0)!=(0); - $96 = $77; - $97 = $11; - $98 = $$1524; - $99 = (($98) - ($9))|0; - $100 = (($97) - ($96))|0; - $101 = (($99) + -2)|0; - $102 = ($101|0)<($3|0); - $or$cond537 = $95 & $102; - $103 = (($3) + 2)|0; - $$pn = $or$cond537 ? $103 : $99; - $$0525 = (($100) + ($45))|0; - $104 = (($$0525) + ($$pn))|0; - _pad_674($0,32,$2,$104,$4); - _out($0,$$0521$,$45); - $105 = $4 ^ 65536; - _pad_674($0,48,$2,$104,$105); - _out($0,$8,$99); - $106 = (($$pn) - ($99))|0; - _pad_674($0,48,$106,0,0); - _out($0,$77,$100); - $107 = $4 ^ 8192; - _pad_674($0,32,$2,$104,$107); - $$sink562 = $104; - break; - } - $108 = ($3|0)<(0); - $$539 = $108 ? 6 : $3; - if ($37) { - $109 = $36 * 268435456.0; - $110 = HEAP32[$7>>2]|0; - $111 = (($110) + -28)|0; - HEAP32[$7>>2] = $111; - $$3 = $109;$$pr = $111; - } else { - $$pre = HEAP32[$7>>2]|0; - $$3 = $36;$$pr = $$pre; - } - $112 = ($$pr|0)<(0); - $113 = ((($6)) + 288|0); - $$556 = $112 ? $6 : $113; - $$0498 = $$556;$$4 = $$3; - while(1) { - $114 = (~~(($$4))>>>0); - HEAP32[$$0498>>2] = $114; - $115 = ((($$0498)) + 4|0); - $116 = (+($114>>>0)); - $117 = $$4 - $116; - $118 = $117 * 1.0E+9; - $119 = $118 != 0.0; - if ($119) { - $$0498 = $115;$$4 = $118; - } else { - break; - } - } - $120 = ($$pr|0)>(0); - if ($120) { - $$1482661 = $$556;$$1499660 = $115;$122 = $$pr; - while(1) { - $121 = ($122|0)<(29); - $123 = $121 ? $122 : 29; - $$0488653 = ((($$1499660)) + -4|0); - $124 = ($$0488653>>>0)<($$1482661>>>0); - if ($124) { - $$2483$ph = $$1482661; - } else { - $$0488655 = $$0488653;$$0497654 = 0; - while(1) { - $125 = HEAP32[$$0488655>>2]|0; - $126 = (_bitshift64Shl(($125|0),0,($123|0))|0); - $127 = tempRet0; - $128 = (_i64Add(($126|0),($127|0),($$0497654|0),0)|0); - $129 = tempRet0; - $130 = (___uremdi3(($128|0),($129|0),1000000000,0)|0); - $131 = tempRet0; - HEAP32[$$0488655>>2] = $130; - $132 = (___udivdi3(($128|0),($129|0),1000000000,0)|0); - $133 = tempRet0; - $$0488 = ((($$0488655)) + -4|0); - $134 = ($$0488>>>0)<($$1482661>>>0); - if ($134) { - break; - } else { - $$0488655 = $$0488;$$0497654 = $132; - } - } - $135 = ($132|0)==(0); - if ($135) { - $$2483$ph = $$1482661; - } else { - $136 = ((($$1482661)) + -4|0); - HEAP32[$136>>2] = $132; - $$2483$ph = $136; - } - } - $$2500 = $$1499660; - while(1) { - $137 = ($$2500>>>0)>($$2483$ph>>>0); - if (!($137)) { - break; - } - $138 = ((($$2500)) + -4|0); - $139 = HEAP32[$138>>2]|0; - $140 = ($139|0)==(0); - if ($140) { - $$2500 = $138; - } else { - break; - } - } - $141 = HEAP32[$7>>2]|0; - $142 = (($141) - ($123))|0; - HEAP32[$7>>2] = $142; - $143 = ($142|0)>(0); - if ($143) { - $$1482661 = $$2483$ph;$$1499660 = $$2500;$122 = $142; - } else { - $$1482$lcssa = $$2483$ph;$$1499$lcssa = $$2500;$$pr564 = $142; - break; - } - } - } else { - $$1482$lcssa = $$556;$$1499$lcssa = $115;$$pr564 = $$pr; - } - $144 = ($$pr564|0)<(0); - if ($144) { - $145 = (($$539) + 25)|0; - $146 = (($145|0) / 9)&-1; - $147 = (($146) + 1)|0; - $148 = ($40|0)==(102); - $$3484648 = $$1482$lcssa;$$3501647 = $$1499$lcssa;$150 = $$pr564; - while(1) { - $149 = (0 - ($150))|0; - $151 = ($149|0)<(9); - $152 = $151 ? $149 : 9; - $153 = ($$3484648>>>0)<($$3501647>>>0); - if ($153) { - $157 = 1 << $152; - $158 = (($157) + -1)|0; - $159 = 1000000000 >>> $152; - $$0487642 = 0;$$1489641 = $$3484648; - while(1) { - $160 = HEAP32[$$1489641>>2]|0; - $161 = $160 & $158; - $162 = $160 >>> $152; - $163 = (($162) + ($$0487642))|0; - HEAP32[$$1489641>>2] = $163; - $164 = Math_imul($161, $159)|0; - $165 = ((($$1489641)) + 4|0); - $166 = ($165>>>0)<($$3501647>>>0); - if ($166) { - $$0487642 = $164;$$1489641 = $165; - } else { - break; - } - } - $167 = HEAP32[$$3484648>>2]|0; - $168 = ($167|0)==(0); - $169 = ((($$3484648)) + 4|0); - $$$3484 = $168 ? $169 : $$3484648; - $170 = ($164|0)==(0); - if ($170) { - $$$3484692 = $$$3484;$$4502 = $$3501647; - } else { - $171 = ((($$3501647)) + 4|0); - HEAP32[$$3501647>>2] = $164; - $$$3484692 = $$$3484;$$4502 = $171; - } - } else { - $154 = HEAP32[$$3484648>>2]|0; - $155 = ($154|0)==(0); - $156 = ((($$3484648)) + 4|0); - $$$3484691 = $155 ? $156 : $$3484648; - $$$3484692 = $$$3484691;$$4502 = $$3501647; - } - $172 = $148 ? $$556 : $$$3484692; - $173 = $$4502; - $174 = $172; - $175 = (($173) - ($174))|0; - $176 = $175 >> 2; - $177 = ($176|0)>($147|0); - $178 = (($172) + ($147<<2)|0); - $$$4502 = $177 ? $178 : $$4502; - $179 = HEAP32[$7>>2]|0; - $180 = (($179) + ($152))|0; - HEAP32[$7>>2] = $180; - $181 = ($180|0)<(0); - if ($181) { - $$3484648 = $$$3484692;$$3501647 = $$$4502;$150 = $180; - } else { - $$3484$lcssa = $$$3484692;$$3501$lcssa = $$$4502; - break; - } - } - } else { - $$3484$lcssa = $$1482$lcssa;$$3501$lcssa = $$1499$lcssa; - } - $182 = ($$3484$lcssa>>>0)<($$3501$lcssa>>>0); - $183 = $$556; - if ($182) { - $184 = $$3484$lcssa; - $185 = (($183) - ($184))|0; - $186 = $185 >> 2; - $187 = ($186*9)|0; - $188 = HEAP32[$$3484$lcssa>>2]|0; - $189 = ($188>>>0)<(10); - if ($189) { - $$1515 = $187; - } else { - $$0514637 = $187;$$0530636 = 10; - while(1) { - $190 = ($$0530636*10)|0; - $191 = (($$0514637) + 1)|0; - $192 = ($188>>>0)<($190>>>0); - if ($192) { - $$1515 = $191; - break; - } else { - $$0514637 = $191;$$0530636 = $190; - } - } - } - } else { - $$1515 = 0; - } - $193 = ($40|0)!=(102); - $194 = $193 ? $$1515 : 0; - $195 = (($$539) - ($194))|0; - $196 = ($40|0)==(103); - $197 = ($$539|0)!=(0); - $198 = $197 & $196; - $$neg = $198 << 31 >> 31; - $199 = (($195) + ($$neg))|0; - $200 = $$3501$lcssa; - $201 = (($200) - ($183))|0; - $202 = $201 >> 2; - $203 = ($202*9)|0; - $204 = (($203) + -9)|0; - $205 = ($199|0)<($204|0); - if ($205) { - $206 = ((($$556)) + 4|0); - $207 = (($199) + 9216)|0; - $208 = (($207|0) / 9)&-1; - $209 = (($208) + -1024)|0; - $210 = (($206) + ($209<<2)|0); - $211 = (($207|0) % 9)&-1; - $$0527629 = (($211) + 1)|0; - $212 = ($$0527629|0)<(9); - if ($212) { - $$0527631 = $$0527629;$$1531630 = 10; - while(1) { - $213 = ($$1531630*10)|0; - $$0527 = (($$0527631) + 1)|0; - $exitcond = ($$0527|0)==(9); - if ($exitcond) { - $$1531$lcssa = $213; - break; - } else { - $$0527631 = $$0527;$$1531630 = $213; - } - } - } else { - $$1531$lcssa = 10; - } - $214 = HEAP32[$210>>2]|0; - $215 = (($214>>>0) % ($$1531$lcssa>>>0))&-1; - $216 = ($215|0)==(0); - $217 = ((($210)) + 4|0); - $218 = ($217|0)==($$3501$lcssa|0); - $or$cond541 = $218 & $216; - if ($or$cond541) { - $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; - } else { - $219 = (($214>>>0) / ($$1531$lcssa>>>0))&-1; - $220 = $219 & 1; - $221 = ($220|0)==(0); - $$542 = $221 ? 9007199254740992.0 : 9007199254740994.0; - $222 = (($$1531$lcssa|0) / 2)&-1; - $223 = ($215>>>0)<($222>>>0); - $224 = ($215|0)==($222|0); - $or$cond544 = $218 & $224; - $$559 = $or$cond544 ? 1.0 : 1.5; - $$$559 = $223 ? 0.5 : $$559; - $225 = ($$0520|0)==(0); - if ($225) { - $$1467 = $$$559;$$1469 = $$542; - } else { - $226 = HEAP8[$$0521>>0]|0; - $227 = ($226<<24>>24)==(45); - $228 = -$$542; - $229 = -$$$559; - $$$542 = $227 ? $228 : $$542; - $$$$559 = $227 ? $229 : $$$559; - $$1467 = $$$$559;$$1469 = $$$542; - } - $230 = (($214) - ($215))|0; - HEAP32[$210>>2] = $230; - $231 = $$1469 + $$1467; - $232 = $231 != $$1469; - if ($232) { - $233 = (($230) + ($$1531$lcssa))|0; - HEAP32[$210>>2] = $233; - $234 = ($233>>>0)>(999999999); - if ($234) { - $$5486623 = $$3484$lcssa;$$sink545622 = $210; - while(1) { - $235 = ((($$sink545622)) + -4|0); - HEAP32[$$sink545622>>2] = 0; - $236 = ($235>>>0)<($$5486623>>>0); - if ($236) { - $237 = ((($$5486623)) + -4|0); - HEAP32[$237>>2] = 0; - $$6 = $237; - } else { - $$6 = $$5486623; - } - $238 = HEAP32[$235>>2]|0; - $239 = (($238) + 1)|0; - HEAP32[$235>>2] = $239; - $240 = ($239>>>0)>(999999999); - if ($240) { - $$5486623 = $$6;$$sink545622 = $235; - } else { - $$5486$lcssa = $$6;$$sink545$lcssa = $235; - break; - } - } - } else { - $$5486$lcssa = $$3484$lcssa;$$sink545$lcssa = $210; - } - $241 = $$5486$lcssa; - $242 = (($183) - ($241))|0; - $243 = $242 >> 2; - $244 = ($243*9)|0; - $245 = HEAP32[$$5486$lcssa>>2]|0; - $246 = ($245>>>0)<(10); - if ($246) { - $$4492 = $$sink545$lcssa;$$4518 = $244;$$8 = $$5486$lcssa; - } else { - $$2516618 = $244;$$2532617 = 10; - while(1) { - $247 = ($$2532617*10)|0; - $248 = (($$2516618) + 1)|0; - $249 = ($245>>>0)<($247>>>0); - if ($249) { - $$4492 = $$sink545$lcssa;$$4518 = $248;$$8 = $$5486$lcssa; - break; - } else { - $$2516618 = $248;$$2532617 = $247; - } - } - } - } else { - $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; - } - } - $250 = ((($$4492)) + 4|0); - $251 = ($$3501$lcssa>>>0)>($250>>>0); - $$$3501 = $251 ? $250 : $$3501$lcssa; - $$5519$ph = $$4518;$$7505$ph = $$$3501;$$9$ph = $$8; - } else { - $$5519$ph = $$1515;$$7505$ph = $$3501$lcssa;$$9$ph = $$3484$lcssa; - } - $$7505 = $$7505$ph; - while(1) { - $252 = ($$7505>>>0)>($$9$ph>>>0); - if (!($252)) { - $$lcssa673 = 0; - break; - } - $253 = ((($$7505)) + -4|0); - $254 = HEAP32[$253>>2]|0; - $255 = ($254|0)==(0); - if ($255) { - $$7505 = $253; - } else { - $$lcssa673 = 1; - break; - } - } - $256 = (0 - ($$5519$ph))|0; - do { - if ($196) { - $not$ = $197 ^ 1; - $257 = $not$&1; - $$539$ = (($257) + ($$539))|0; - $258 = ($$539$|0)>($$5519$ph|0); - $259 = ($$5519$ph|0)>(-5); - $or$cond6 = $258 & $259; - if ($or$cond6) { - $260 = (($5) + -1)|0; - $$neg567 = (($$539$) + -1)|0; - $261 = (($$neg567) - ($$5519$ph))|0; - $$0479 = $260;$$2476 = $261; - } else { - $262 = (($5) + -2)|0; - $263 = (($$539$) + -1)|0; - $$0479 = $262;$$2476 = $263; - } - $264 = $4 & 8; - $265 = ($264|0)==(0); - if ($265) { - if ($$lcssa673) { - $266 = ((($$7505)) + -4|0); - $267 = HEAP32[$266>>2]|0; - $268 = ($267|0)==(0); - if ($268) { - $$2529 = 9; - } else { - $269 = (($267>>>0) % 10)&-1; - $270 = ($269|0)==(0); - if ($270) { - $$1528614 = 0;$$3533613 = 10; - while(1) { - $271 = ($$3533613*10)|0; - $272 = (($$1528614) + 1)|0; - $273 = (($267>>>0) % ($271>>>0))&-1; - $274 = ($273|0)==(0); - if ($274) { - $$1528614 = $272;$$3533613 = $271; - } else { - $$2529 = $272; - break; - } - } - } else { - $$2529 = 0; - } - } - } else { - $$2529 = 9; - } - $275 = $$0479 | 32; - $276 = ($275|0)==(102); - $277 = $$7505; - $278 = (($277) - ($183))|0; - $279 = $278 >> 2; - $280 = ($279*9)|0; - $281 = (($280) + -9)|0; - if ($276) { - $282 = (($281) - ($$2529))|0; - $283 = ($282|0)>(0); - $$546 = $283 ? $282 : 0; - $284 = ($$2476|0)<($$546|0); - $$2476$$547 = $284 ? $$2476 : $$546; - $$1480 = $$0479;$$3477 = $$2476$$547;$$pre$phi690Z2D = 0; - break; - } else { - $285 = (($281) + ($$5519$ph))|0; - $286 = (($285) - ($$2529))|0; - $287 = ($286|0)>(0); - $$548 = $287 ? $286 : 0; - $288 = ($$2476|0)<($$548|0); - $$2476$$549 = $288 ? $$2476 : $$548; - $$1480 = $$0479;$$3477 = $$2476$$549;$$pre$phi690Z2D = 0; - break; - } - } else { - $$1480 = $$0479;$$3477 = $$2476;$$pre$phi690Z2D = $264; - } - } else { - $$pre689 = $4 & 8; - $$1480 = $5;$$3477 = $$539;$$pre$phi690Z2D = $$pre689; - } - } while(0); - $289 = $$3477 | $$pre$phi690Z2D; - $290 = ($289|0)!=(0); - $291 = $290&1; - $292 = $$1480 | 32; - $293 = ($292|0)==(102); - if ($293) { - $294 = ($$5519$ph|0)>(0); - $295 = $294 ? $$5519$ph : 0; - $$2513 = 0;$$pn566 = $295; - } else { - $296 = ($$5519$ph|0)<(0); - $297 = $296 ? $256 : $$5519$ph; - $298 = ($297|0)<(0); - $299 = $298 << 31 >> 31; - $300 = (_fmt_u($297,$299,$11)|0); - $301 = $11; - $302 = $300; - $303 = (($301) - ($302))|0; - $304 = ($303|0)<(2); - if ($304) { - $$1512607 = $300; - while(1) { - $305 = ((($$1512607)) + -1|0); - HEAP8[$305>>0] = 48; - $306 = $305; - $307 = (($301) - ($306))|0; - $308 = ($307|0)<(2); - if ($308) { - $$1512607 = $305; - } else { - $$1512$lcssa = $305; - break; - } - } - } else { - $$1512$lcssa = $300; - } - $309 = $$5519$ph >> 31; - $310 = $309 & 2; - $311 = (($310) + 43)|0; - $312 = $311&255; - $313 = ((($$1512$lcssa)) + -1|0); - HEAP8[$313>>0] = $312; - $314 = $$1480&255; - $315 = ((($$1512$lcssa)) + -2|0); - HEAP8[$315>>0] = $314; - $316 = $315; - $317 = (($301) - ($316))|0; - $$2513 = $315;$$pn566 = $317; - } - $318 = (($$0520) + 1)|0; - $319 = (($318) + ($$3477))|0; - $$1526 = (($319) + ($291))|0; - $320 = (($$1526) + ($$pn566))|0; - _pad_674($0,32,$2,$320,$4); - _out($0,$$0521,$$0520); - $321 = $4 ^ 65536; - _pad_674($0,48,$2,$320,$321); - if ($293) { - $322 = ($$9$ph>>>0)>($$556>>>0); - $$0496$$9 = $322 ? $$556 : $$9$ph; - $323 = ((($8)) + 9|0); - $324 = $323; - $325 = ((($8)) + 8|0); - $$5493597 = $$0496$$9; - while(1) { - $326 = HEAP32[$$5493597>>2]|0; - $327 = (_fmt_u($326,0,$323)|0); - $328 = ($$5493597|0)==($$0496$$9|0); - if ($328) { - $334 = ($327|0)==($323|0); - if ($334) { - HEAP8[$325>>0] = 48; - $$1465 = $325; - } else { - $$1465 = $327; - } - } else { - $329 = ($327>>>0)>($8>>>0); - if ($329) { - $330 = $327; - $331 = (($330) - ($9))|0; - _memset(($8|0),48,($331|0))|0; - $$0464594 = $327; - while(1) { - $332 = ((($$0464594)) + -1|0); - $333 = ($332>>>0)>($8>>>0); - if ($333) { - $$0464594 = $332; - } else { - $$1465 = $332; - break; - } - } - } else { - $$1465 = $327; - } - } - $335 = $$1465; - $336 = (($324) - ($335))|0; - _out($0,$$1465,$336); - $337 = ((($$5493597)) + 4|0); - $338 = ($337>>>0)>($$556>>>0); - if ($338) { - break; - } else { - $$5493597 = $337; - } - } - $339 = ($289|0)==(0); - if (!($339)) { - _out($0,11796,1); - } - $340 = ($337>>>0)<($$7505>>>0); - $341 = ($$3477|0)>(0); - $342 = $340 & $341; - if ($342) { - $$4478590 = $$3477;$$6494589 = $337; - while(1) { - $343 = HEAP32[$$6494589>>2]|0; - $344 = (_fmt_u($343,0,$323)|0); - $345 = ($344>>>0)>($8>>>0); - if ($345) { - $346 = $344; - $347 = (($346) - ($9))|0; - _memset(($8|0),48,($347|0))|0; - $$0463584 = $344; - while(1) { - $348 = ((($$0463584)) + -1|0); - $349 = ($348>>>0)>($8>>>0); - if ($349) { - $$0463584 = $348; - } else { - $$0463$lcssa = $348; - break; - } - } - } else { - $$0463$lcssa = $344; - } - $350 = ($$4478590|0)<(9); - $351 = $350 ? $$4478590 : 9; - _out($0,$$0463$lcssa,$351); - $352 = ((($$6494589)) + 4|0); - $353 = (($$4478590) + -9)|0; - $354 = ($352>>>0)<($$7505>>>0); - $355 = ($$4478590|0)>(9); - $356 = $354 & $355; - if ($356) { - $$4478590 = $353;$$6494589 = $352; - } else { - $$4478$lcssa = $353; - break; - } - } - } else { - $$4478$lcssa = $$3477; - } - $357 = (($$4478$lcssa) + 9)|0; - _pad_674($0,48,$357,9,0); - } else { - $358 = ((($$9$ph)) + 4|0); - $$7505$ = $$lcssa673 ? $$7505 : $358; - $359 = ($$3477|0)>(-1); - if ($359) { - $360 = ((($8)) + 9|0); - $361 = ($$pre$phi690Z2D|0)==(0); - $362 = $360; - $363 = (0 - ($9))|0; - $364 = ((($8)) + 8|0); - $$5602 = $$3477;$$7495601 = $$9$ph; - while(1) { - $365 = HEAP32[$$7495601>>2]|0; - $366 = (_fmt_u($365,0,$360)|0); - $367 = ($366|0)==($360|0); - if ($367) { - HEAP8[$364>>0] = 48; - $$0 = $364; - } else { - $$0 = $366; - } - $368 = ($$7495601|0)==($$9$ph|0); - do { - if ($368) { - $372 = ((($$0)) + 1|0); - _out($0,$$0,1); - $373 = ($$5602|0)<(1); - $or$cond554 = $361 & $373; - if ($or$cond554) { - $$2 = $372; - break; - } - _out($0,11796,1); - $$2 = $372; - } else { - $369 = ($$0>>>0)>($8>>>0); - if (!($369)) { - $$2 = $$0; - break; - } - $scevgep684 = (($$0) + ($363)|0); - $scevgep684685 = $scevgep684; - _memset(($8|0),48,($scevgep684685|0))|0; - $$1598 = $$0; - while(1) { - $370 = ((($$1598)) + -1|0); - $371 = ($370>>>0)>($8>>>0); - if ($371) { - $$1598 = $370; - } else { - $$2 = $370; - break; - } - } - } - } while(0); - $374 = $$2; - $375 = (($362) - ($374))|0; - $376 = ($$5602|0)>($375|0); - $377 = $376 ? $375 : $$5602; - _out($0,$$2,$377); - $378 = (($$5602) - ($375))|0; - $379 = ((($$7495601)) + 4|0); - $380 = ($379>>>0)<($$7505$>>>0); - $381 = ($378|0)>(-1); - $382 = $380 & $381; - if ($382) { - $$5602 = $378;$$7495601 = $379; - } else { - $$5$lcssa = $378; - break; - } - } - } else { - $$5$lcssa = $$3477; - } - $383 = (($$5$lcssa) + 18)|0; - _pad_674($0,48,$383,18,0); - $384 = $11; - $385 = $$2513; - $386 = (($384) - ($385))|0; - _out($0,$$2513,$386); - } - $387 = $4 ^ 8192; - _pad_674($0,32,$2,$320,$387); - $$sink562 = $320; - } else { - $27 = $5 & 32; - $28 = ($27|0)!=(0); - $29 = $28 ? 11764 : 11768; - $30 = ($$0471 != $$0471) | (0.0 != 0.0); - $31 = $28 ? 11772 : 11776; - $$0510 = $30 ? $31 : $29; - $32 = (($$0520) + 3)|0; - $33 = $4 & -65537; - _pad_674($0,32,$2,$32,$33); - _out($0,$$0521,$$0520); - _out($0,$$0510,3); - $34 = $4 ^ 8192; - _pad_674($0,32,$2,$32,$34); - $$sink562 = $32; - } - } while(0); - $388 = ($$sink562|0)<($2|0); - $$555 = $388 ? $2 : $$sink562; - STACKTOP = sp;return ($$555|0); -} -function ___DOUBLE_BITS_675($0) { - $0 = +$0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; - $2 = HEAP32[tempDoublePtr+4>>2]|0; - tempRet0 = ($2); - return ($1|0); -} -function _frexpl($0,$1) { - $0 = +$0; - $1 = $1|0; - var $2 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (+_frexp($0,$1)); - return (+$2); -} -function _frexp($0,$1) { - $0 = +$0; - $1 = $1|0; - var $$0 = 0.0, $$016 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, $storemerge = 0, $trunc$clear = 0, label = 0; - var sp = 0; - sp = STACKTOP; - HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; - $3 = HEAP32[tempDoublePtr+4>>2]|0; - $4 = (_bitshift64Lshr(($2|0),($3|0),52)|0); - $5 = tempRet0; - $6 = $4&65535; - $trunc$clear = $6 & 2047; - switch ($trunc$clear<<16>>16) { - case 0: { - $7 = $0 != 0.0; - if ($7) { - $8 = $0 * 1.8446744073709552E+19; - $9 = (+_frexp($8,$1)); - $10 = HEAP32[$1>>2]|0; - $11 = (($10) + -64)|0; - $$016 = $9;$storemerge = $11; - } else { - $$016 = $0;$storemerge = 0; - } - HEAP32[$1>>2] = $storemerge; - $$0 = $$016; - break; - } - case 2047: { - $$0 = $0; - break; - } - default: { - $12 = $4 & 2047; - $13 = (($12) + -1022)|0; - HEAP32[$1>>2] = $13; - $14 = $3 & -2146435073; - $15 = $14 | 1071644672; - HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $15;$16 = +HEAPF64[tempDoublePtr>>3]; - $$0 = $16; - } - } - return (+$$0); -} -function _wcrtomb($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $not$ = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(0|0); - do { - if ($3) { - $$0 = 1; - } else { - $4 = ($1>>>0)<(128); - if ($4) { - $5 = $1&255; - HEAP8[$0>>0] = $5; - $$0 = 1; - break; - } - $6 = (___pthread_self_448()|0); - $7 = ((($6)) + 188|0); - $8 = HEAP32[$7>>2]|0; - $9 = HEAP32[$8>>2]|0; - $not$ = ($9|0)==(0|0); - if ($not$) { - $10 = $1 & -128; - $11 = ($10|0)==(57216); - if ($11) { - $13 = $1&255; - HEAP8[$0>>0] = $13; - $$0 = 1; - break; - } else { - $12 = (___errno_location()|0); - HEAP32[$12>>2] = 84; - $$0 = -1; - break; - } - } - $14 = ($1>>>0)<(2048); - if ($14) { - $15 = $1 >>> 6; - $16 = $15 | 192; - $17 = $16&255; - $18 = ((($0)) + 1|0); - HEAP8[$0>>0] = $17; - $19 = $1 & 63; - $20 = $19 | 128; - $21 = $20&255; - HEAP8[$18>>0] = $21; - $$0 = 2; - break; - } - $22 = ($1>>>0)<(55296); - $23 = $1 & -8192; - $24 = ($23|0)==(57344); - $or$cond = $22 | $24; - if ($or$cond) { - $25 = $1 >>> 12; - $26 = $25 | 224; - $27 = $26&255; - $28 = ((($0)) + 1|0); - HEAP8[$0>>0] = $27; - $29 = $1 >>> 6; - $30 = $29 & 63; - $31 = $30 | 128; - $32 = $31&255; - $33 = ((($0)) + 2|0); - HEAP8[$28>>0] = $32; - $34 = $1 & 63; - $35 = $34 | 128; - $36 = $35&255; - HEAP8[$33>>0] = $36; - $$0 = 3; - break; - } - $37 = (($1) + -65536)|0; - $38 = ($37>>>0)<(1048576); - if ($38) { - $39 = $1 >>> 18; - $40 = $39 | 240; - $41 = $40&255; - $42 = ((($0)) + 1|0); - HEAP8[$0>>0] = $41; - $43 = $1 >>> 12; - $44 = $43 & 63; - $45 = $44 | 128; - $46 = $45&255; - $47 = ((($0)) + 2|0); - HEAP8[$42>>0] = $46; - $48 = $1 >>> 6; - $49 = $48 & 63; - $50 = $49 | 128; - $51 = $50&255; - $52 = ((($0)) + 3|0); - HEAP8[$47>>0] = $51; - $53 = $1 & 63; - $54 = $53 | 128; - $55 = $54&255; - HEAP8[$52>>0] = $55; - $$0 = 4; - break; - } else { - $56 = (___errno_location()|0); - HEAP32[$56>>2] = 84; - $$0 = -1; - break; - } - } - } while(0); - return ($$0|0); -} -function ___pthread_self_448() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function ___pthread_self_105() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function ___strerror_l($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$012$lcssa = 0, $$01214 = 0, $$016 = 0, $$113 = 0, $$115 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $$016 = 0; - while(1) { - $3 = (11798 + ($$016)|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&255; - $6 = ($5|0)==($0|0); - if ($6) { - label = 2; - break; - } - $7 = (($$016) + 1)|0; - $8 = ($7|0)==(87); - if ($8) { - $$01214 = 11886;$$115 = 87; - label = 5; - break; - } else { - $$016 = $7; - } - } - if ((label|0) == 2) { - $2 = ($$016|0)==(0); - if ($2) { - $$012$lcssa = 11886; - } else { - $$01214 = 11886;$$115 = $$016; - label = 5; - } - } - if ((label|0) == 5) { - while(1) { - label = 0; - $$113 = $$01214; - while(1) { - $9 = HEAP8[$$113>>0]|0; - $10 = ($9<<24>>24)==(0); - $11 = ((($$113)) + 1|0); - if ($10) { - break; - } else { - $$113 = $11; - } - } - $12 = (($$115) + -1)|0; - $13 = ($12|0)==(0); - if ($13) { - $$012$lcssa = $11; - break; - } else { - $$01214 = $11;$$115 = $12; - label = 5; - } - } - } - $14 = ((($1)) + 20|0); - $15 = HEAP32[$14>>2]|0; - $16 = (___lctrans($$012$lcssa,$15)|0); - return ($16|0); -} -function ___lctrans($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (___lctrans_impl($0,$1)|0); - return ($2|0); -} -function ___lctrans_impl($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)==(0|0); - if ($2) { - $$0 = 0; - } else { - $3 = HEAP32[$1>>2]|0; - $4 = ((($1)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = (___mo_lookup($3,$5,$0)|0); - $$0 = $6; - } - $7 = ($$0|0)!=(0|0); - $8 = $7 ? $$0 : $0; - return ($8|0); -} -function ___mo_lookup($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $$090 = 0, $$094 = 0, $$191 = 0, $$195 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond102 = 0, $or$cond104 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = HEAP32[$0>>2]|0; - $4 = (($3) + 1794895138)|0; - $5 = ((($0)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = (_swapc($6,$4)|0); - $8 = ((($0)) + 12|0); - $9 = HEAP32[$8>>2]|0; - $10 = (_swapc($9,$4)|0); - $11 = ((($0)) + 16|0); - $12 = HEAP32[$11>>2]|0; - $13 = (_swapc($12,$4)|0); - $14 = $1 >>> 2; - $15 = ($7>>>0)<($14>>>0); - L1: do { - if ($15) { - $16 = $7 << 2; - $17 = (($1) - ($16))|0; - $18 = ($10>>>0)<($17>>>0); - $19 = ($13>>>0)<($17>>>0); - $or$cond = $18 & $19; - if ($or$cond) { - $20 = $13 | $10; - $21 = $20 & 3; - $22 = ($21|0)==(0); - if ($22) { - $23 = $10 >>> 2; - $24 = $13 >>> 2; - $$090 = 0;$$094 = $7; - while(1) { - $25 = $$094 >>> 1; - $26 = (($$090) + ($25))|0; - $27 = $26 << 1; - $28 = (($27) + ($23))|0; - $29 = (($0) + ($28<<2)|0); - $30 = HEAP32[$29>>2]|0; - $31 = (_swapc($30,$4)|0); - $32 = (($28) + 1)|0; - $33 = (($0) + ($32<<2)|0); - $34 = HEAP32[$33>>2]|0; - $35 = (_swapc($34,$4)|0); - $36 = ($35>>>0)<($1>>>0); - $37 = (($1) - ($35))|0; - $38 = ($31>>>0)<($37>>>0); - $or$cond102 = $36 & $38; - if (!($or$cond102)) { - $$4 = 0; - break L1; - } - $39 = (($35) + ($31))|0; - $40 = (($0) + ($39)|0); - $41 = HEAP8[$40>>0]|0; - $42 = ($41<<24>>24)==(0); - if (!($42)) { - $$4 = 0; - break L1; - } - $43 = (($0) + ($35)|0); - $44 = (_strcmp($2,$43)|0); - $45 = ($44|0)==(0); - if ($45) { - break; - } - $62 = ($$094|0)==(1); - $63 = ($44|0)<(0); - $64 = (($$094) - ($25))|0; - $$195 = $63 ? $25 : $64; - $$191 = $63 ? $$090 : $26; - if ($62) { - $$4 = 0; - break L1; - } else { - $$090 = $$191;$$094 = $$195; - } - } - $46 = (($27) + ($24))|0; - $47 = (($0) + ($46<<2)|0); - $48 = HEAP32[$47>>2]|0; - $49 = (_swapc($48,$4)|0); - $50 = (($46) + 1)|0; - $51 = (($0) + ($50<<2)|0); - $52 = HEAP32[$51>>2]|0; - $53 = (_swapc($52,$4)|0); - $54 = ($53>>>0)<($1>>>0); - $55 = (($1) - ($53))|0; - $56 = ($49>>>0)<($55>>>0); - $or$cond104 = $54 & $56; - if ($or$cond104) { - $57 = (($0) + ($53)|0); - $58 = (($53) + ($49))|0; - $59 = (($0) + ($58)|0); - $60 = HEAP8[$59>>0]|0; - $61 = ($60<<24>>24)==(0); - $$ = $61 ? $57 : 0; - $$4 = $$; - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } while(0); - return ($$4|0); -} -function _swapc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$ = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)==(0); - $3 = (_llvm_bswap_i32(($0|0))|0); - $$ = $2 ? $0 : $3; - return ($$|0); -} -function ___fwritex($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$038 = 0, $$042 = 0, $$1 = 0, $$139 = 0, $$141 = 0, $$143 = 0, $$pre = 0, $$pre47 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; - var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($2)) + 16|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)==(0|0); - if ($5) { - $7 = (___towrite($2)|0); - $8 = ($7|0)==(0); - if ($8) { - $$pre = HEAP32[$3>>2]|0; - $12 = $$pre; - label = 5; - } else { - $$1 = 0; - } - } else { - $6 = $4; - $12 = $6; - label = 5; - } - L5: do { - if ((label|0) == 5) { - $9 = ((($2)) + 20|0); - $10 = HEAP32[$9>>2]|0; - $11 = (($12) - ($10))|0; - $13 = ($11>>>0)<($1>>>0); - $14 = $10; - if ($13) { - $15 = ((($2)) + 36|0); - $16 = HEAP32[$15>>2]|0; - $17 = (FUNCTION_TABLE_iiii[$16 & 15]($2,$0,$1)|0); - $$1 = $17; - break; - } - $18 = ((($2)) + 75|0); - $19 = HEAP8[$18>>0]|0; - $20 = ($19<<24>>24)>(-1); - L10: do { - if ($20) { - $$038 = $1; - while(1) { - $21 = ($$038|0)==(0); - if ($21) { - $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; - break L10; - } - $22 = (($$038) + -1)|0; - $23 = (($0) + ($22)|0); - $24 = HEAP8[$23>>0]|0; - $25 = ($24<<24>>24)==(10); - if ($25) { - break; - } else { - $$038 = $22; - } - } - $26 = ((($2)) + 36|0); - $27 = HEAP32[$26>>2]|0; - $28 = (FUNCTION_TABLE_iiii[$27 & 15]($2,$0,$$038)|0); - $29 = ($28>>>0)<($$038>>>0); - if ($29) { - $$1 = $28; - break L5; - } - $30 = (($0) + ($$038)|0); - $$042 = (($1) - ($$038))|0; - $$pre47 = HEAP32[$9>>2]|0; - $$139 = $$038;$$141 = $30;$$143 = $$042;$31 = $$pre47; - } else { - $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; - } - } while(0); - _memcpy(($31|0),($$141|0),($$143|0))|0; - $32 = HEAP32[$9>>2]|0; - $33 = (($32) + ($$143)|0); - HEAP32[$9>>2] = $33; - $34 = (($$139) + ($$143))|0; - $$1 = $34; - } - } while(0); - return ($$1|0); -} -function ___towrite($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 74|0); - $2 = HEAP8[$1>>0]|0; - $3 = $2 << 24 >> 24; - $4 = (($3) + 255)|0; - $5 = $4 | $3; - $6 = $5&255; - HEAP8[$1>>0] = $6; - $7 = HEAP32[$0>>2]|0; - $8 = $7 & 8; - $9 = ($8|0)==(0); - if ($9) { - $11 = ((($0)) + 8|0); - HEAP32[$11>>2] = 0; - $12 = ((($0)) + 4|0); - HEAP32[$12>>2] = 0; - $13 = ((($0)) + 44|0); - $14 = HEAP32[$13>>2]|0; - $15 = ((($0)) + 28|0); - HEAP32[$15>>2] = $14; - $16 = ((($0)) + 20|0); - HEAP32[$16>>2] = $14; - $17 = ((($0)) + 48|0); - $18 = HEAP32[$17>>2]|0; - $19 = (($14) + ($18)|0); - $20 = ((($0)) + 16|0); - HEAP32[$20>>2] = $19; - $$0 = 0; - } else { - $10 = $7 | 32; - HEAP32[$0>>2] = $10; - $$0 = -1; - } - return ($$0|0); -} -function _strlen($0) { - $0 = $0|0; - var $$0 = 0, $$015$lcssa = 0, $$01519 = 0, $$1$lcssa = 0, $$pn = 0, $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = $0; - $2 = $1 & 3; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $$015$lcssa = $0; - label = 4; - } else { - $$01519 = $0;$23 = $1; - while(1) { - $4 = HEAP8[$$01519>>0]|0; - $5 = ($4<<24>>24)==(0); - if ($5) { - $$sink = $23; - break L1; - } - $6 = ((($$01519)) + 1|0); - $7 = $6; - $8 = $7 & 3; - $9 = ($8|0)==(0); - if ($9) { - $$015$lcssa = $6; - label = 4; - break; - } else { - $$01519 = $6;$23 = $7; - } - } - } - } while(0); - if ((label|0) == 4) { - $$0 = $$015$lcssa; - while(1) { - $10 = HEAP32[$$0>>2]|0; - $11 = (($10) + -16843009)|0; - $12 = $10 & -2139062144; - $13 = $12 ^ -2139062144; - $14 = $13 & $11; - $15 = ($14|0)==(0); - $16 = ((($$0)) + 4|0); - if ($15) { - $$0 = $16; - } else { - break; - } - } - $17 = $10&255; - $18 = ($17<<24>>24)==(0); - if ($18) { - $$1$lcssa = $$0; - } else { - $$pn = $$0; - while(1) { - $19 = ((($$pn)) + 1|0); - $$pre = HEAP8[$19>>0]|0; - $20 = ($$pre<<24>>24)==(0); - if ($20) { - $$1$lcssa = $19; - break; - } else { - $$pn = $19; - } - } - } - $21 = $$1$lcssa; - $$sink = $21; - } - $22 = (($$sink) - ($1))|0; - return ($22|0); -} -function _strchr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (___strchrnul($0,$1)|0); - $3 = HEAP8[$2>>0]|0; - $4 = $1&255; - $5 = ($3<<24>>24)==($4<<24>>24); - $6 = $5 ? $2 : 0; - return ($6|0); -} -function ___strchrnul($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$029$lcssa = 0, $$02936 = 0, $$030$lcssa = 0, $$03039 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond33 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = $1 & 255; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $8 = (_strlen($0)|0); - $9 = (($0) + ($8)|0); - $$0 = $9; - } else { - $4 = $0; - $5 = $4 & 3; - $6 = ($5|0)==(0); - if ($6) { - $$030$lcssa = $0; - } else { - $7 = $1&255; - $$03039 = $0; - while(1) { - $10 = HEAP8[$$03039>>0]|0; - $11 = ($10<<24>>24)==(0); - $12 = ($10<<24>>24)==($7<<24>>24); - $or$cond = $11 | $12; - if ($or$cond) { - $$0 = $$03039; - break L1; - } - $13 = ((($$03039)) + 1|0); - $14 = $13; - $15 = $14 & 3; - $16 = ($15|0)==(0); - if ($16) { - $$030$lcssa = $13; - break; - } else { - $$03039 = $13; - } - } - } - $17 = Math_imul($2, 16843009)|0; - $18 = HEAP32[$$030$lcssa>>2]|0; - $19 = (($18) + -16843009)|0; - $20 = $18 & -2139062144; - $21 = $20 ^ -2139062144; - $22 = $21 & $19; - $23 = ($22|0)==(0); - L10: do { - if ($23) { - $$02936 = $$030$lcssa;$25 = $18; - while(1) { - $24 = $25 ^ $17; - $26 = (($24) + -16843009)|0; - $27 = $24 & -2139062144; - $28 = $27 ^ -2139062144; - $29 = $28 & $26; - $30 = ($29|0)==(0); - if (!($30)) { - $$029$lcssa = $$02936; - break L10; - } - $31 = ((($$02936)) + 4|0); - $32 = HEAP32[$31>>2]|0; - $33 = (($32) + -16843009)|0; - $34 = $32 & -2139062144; - $35 = $34 ^ -2139062144; - $36 = $35 & $33; - $37 = ($36|0)==(0); - if ($37) { - $$02936 = $31;$25 = $32; - } else { - $$029$lcssa = $31; - break; - } - } - } else { - $$029$lcssa = $$030$lcssa; - } - } while(0); - $38 = $1&255; - $$1 = $$029$lcssa; - while(1) { - $39 = HEAP8[$$1>>0]|0; - $40 = ($39<<24>>24)==(0); - $41 = ($39<<24>>24)==($38<<24>>24); - $or$cond33 = $40 | $41; - $42 = ((($$1)) + 1|0); - if ($or$cond33) { - $$0 = $$1; - break; - } else { - $$1 = $42; - } - } - } - } while(0); - return ($$0|0); -} -function _strcpy($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - (___stpcpy($0,$1)|0); - return ($0|0); -} -function ___stpcpy($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0$lcssa = 0, $$025$lcssa = 0, $$02536 = 0, $$026$lcssa = 0, $$02642 = 0, $$027$lcssa = 0, $$02741 = 0, $$029 = 0, $$037 = 0, $$1$ph = 0, $$128$ph = 0, $$12834 = 0, $$135 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; - var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = $1; - $3 = $0; - $4 = $2 ^ $3; - $5 = $4 & 3; - $6 = ($5|0)==(0); - L1: do { - if ($6) { - $7 = $2 & 3; - $8 = ($7|0)==(0); - if ($8) { - $$026$lcssa = $1;$$027$lcssa = $0; - } else { - $$02642 = $1;$$02741 = $0; - while(1) { - $9 = HEAP8[$$02642>>0]|0; - HEAP8[$$02741>>0] = $9; - $10 = ($9<<24>>24)==(0); - if ($10) { - $$029 = $$02741; - break L1; - } - $11 = ((($$02642)) + 1|0); - $12 = ((($$02741)) + 1|0); - $13 = $11; - $14 = $13 & 3; - $15 = ($14|0)==(0); - if ($15) { - $$026$lcssa = $11;$$027$lcssa = $12; - break; - } else { - $$02642 = $11;$$02741 = $12; - } - } - } - $16 = HEAP32[$$026$lcssa>>2]|0; - $17 = (($16) + -16843009)|0; - $18 = $16 & -2139062144; - $19 = $18 ^ -2139062144; - $20 = $19 & $17; - $21 = ($20|0)==(0); - if ($21) { - $$02536 = $$027$lcssa;$$037 = $$026$lcssa;$24 = $16; - while(1) { - $22 = ((($$037)) + 4|0); - $23 = ((($$02536)) + 4|0); - HEAP32[$$02536>>2] = $24; - $25 = HEAP32[$22>>2]|0; - $26 = (($25) + -16843009)|0; - $27 = $25 & -2139062144; - $28 = $27 ^ -2139062144; - $29 = $28 & $26; - $30 = ($29|0)==(0); - if ($30) { - $$02536 = $23;$$037 = $22;$24 = $25; - } else { - $$0$lcssa = $22;$$025$lcssa = $23; - break; - } - } - } else { - $$0$lcssa = $$026$lcssa;$$025$lcssa = $$027$lcssa; - } - $$1$ph = $$0$lcssa;$$128$ph = $$025$lcssa; - label = 8; - } else { - $$1$ph = $1;$$128$ph = $0; - label = 8; - } - } while(0); - if ((label|0) == 8) { - $31 = HEAP8[$$1$ph>>0]|0; - HEAP8[$$128$ph>>0] = $31; - $32 = ($31<<24>>24)==(0); - if ($32) { - $$029 = $$128$ph; - } else { - $$12834 = $$128$ph;$$135 = $$1$ph; - while(1) { - $33 = ((($$135)) + 1|0); - $34 = ((($$12834)) + 1|0); - $35 = HEAP8[$33>>0]|0; - HEAP8[$34>>0] = $35; - $36 = ($35<<24>>24)==(0); - if ($36) { - $$029 = $34; - break; - } else { - $$12834 = $34;$$135 = $33; - } - } - } - } - return ($$029|0); -} -function ___ofl_lock() { - var label = 0, sp = 0; - sp = STACKTOP; - ___lock((17460|0)); - return (17468|0); -} -function ___ofl_unlock() { - var label = 0, sp = 0; - sp = STACKTOP; - ___unlock((17460|0)); - return; -} -function _fflush($0) { - $0 = $0|0; - var $$0 = 0, $$023 = 0, $$02325 = 0, $$02327 = 0, $$024$lcssa = 0, $$02426 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0|0); - do { - if ($1) { - $8 = HEAP32[838]|0; - $9 = ($8|0)==(0|0); - if ($9) { - $29 = 0; - } else { - $10 = HEAP32[838]|0; - $11 = (_fflush($10)|0); - $29 = $11; - } - $12 = (___ofl_lock()|0); - $$02325 = HEAP32[$12>>2]|0; - $13 = ($$02325|0)==(0|0); - if ($13) { - $$024$lcssa = $29; - } else { - $$02327 = $$02325;$$02426 = $29; - while(1) { - $14 = ((($$02327)) + 76|0); - $15 = HEAP32[$14>>2]|0; - $16 = ($15|0)>(-1); - if ($16) { - $17 = (___lockfile($$02327)|0); - $26 = $17; - } else { - $26 = 0; - } - $18 = ((($$02327)) + 20|0); - $19 = HEAP32[$18>>2]|0; - $20 = ((($$02327)) + 28|0); - $21 = HEAP32[$20>>2]|0; - $22 = ($19>>>0)>($21>>>0); - if ($22) { - $23 = (___fflush_unlocked($$02327)|0); - $24 = $23 | $$02426; - $$1 = $24; - } else { - $$1 = $$02426; - } - $25 = ($26|0)==(0); - if (!($25)) { - ___unlockfile($$02327); - } - $27 = ((($$02327)) + 56|0); - $$023 = HEAP32[$27>>2]|0; - $28 = ($$023|0)==(0|0); - if ($28) { - $$024$lcssa = $$1; - break; - } else { - $$02327 = $$023;$$02426 = $$1; - } - } - } - ___ofl_unlock(); - $$0 = $$024$lcssa; - } else { - $2 = ((($0)) + 76|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)>(-1); - if (!($4)) { - $5 = (___fflush_unlocked($0)|0); - $$0 = $5; - break; - } - $6 = (___lockfile($0)|0); - $phitmp = ($6|0)==(0); - $7 = (___fflush_unlocked($0)|0); - if ($phitmp) { - $$0 = $7; - } else { - ___unlockfile($0); - $$0 = $7; - } - } - } while(0); - return ($$0|0); -} -function ___fflush_unlocked($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 20|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 28|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($2>>>0)>($4>>>0); - if ($5) { - $6 = ((($0)) + 36|0); - $7 = HEAP32[$6>>2]|0; - (FUNCTION_TABLE_iiii[$7 & 15]($0,0,0)|0); - $8 = HEAP32[$1>>2]|0; - $9 = ($8|0)==(0|0); - if ($9) { - $$0 = -1; - } else { - label = 3; - } - } else { - label = 3; - } - if ((label|0) == 3) { - $10 = ((($0)) + 4|0); - $11 = HEAP32[$10>>2]|0; - $12 = ((($0)) + 8|0); - $13 = HEAP32[$12>>2]|0; - $14 = ($11>>>0)<($13>>>0); - if ($14) { - $15 = $11; - $16 = $13; - $17 = (($15) - ($16))|0; - $18 = ((($0)) + 40|0); - $19 = HEAP32[$18>>2]|0; - (FUNCTION_TABLE_iiii[$19 & 15]($0,$17,1)|0); - } - $20 = ((($0)) + 16|0); - HEAP32[$20>>2] = 0; - HEAP32[$3>>2] = 0; - HEAP32[$1>>2] = 0; - HEAP32[$12>>2] = 0; - HEAP32[$10>>2] = 0; - $$0 = 0; - } - return ($$0|0); -} -function _strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = ($2<<24>>24)==(0); - do { - if ($3) { - $$0 = $0; - } else { - $4 = $2 << 24 >> 24; - $5 = (_strchr($0,$4)|0); - $6 = ($5|0)==(0|0); - if ($6) { - $$0 = 0; - } else { - $7 = ((($1)) + 1|0); - $8 = HEAP8[$7>>0]|0; - $9 = ($8<<24>>24)==(0); - if ($9) { - $$0 = $5; - } else { - $10 = ((($5)) + 1|0); - $11 = HEAP8[$10>>0]|0; - $12 = ($11<<24>>24)==(0); - if ($12) { - $$0 = 0; - } else { - $13 = ((($1)) + 2|0); - $14 = HEAP8[$13>>0]|0; - $15 = ($14<<24>>24)==(0); - if ($15) { - $16 = (_twobyte_strstr($5,$1)|0); - $$0 = $16; - break; - } - $17 = ((($5)) + 2|0); - $18 = HEAP8[$17>>0]|0; - $19 = ($18<<24>>24)==(0); - if ($19) { - $$0 = 0; - } else { - $20 = ((($1)) + 3|0); - $21 = HEAP8[$20>>0]|0; - $22 = ($21<<24>>24)==(0); - if ($22) { - $23 = (_threebyte_strstr($5,$1)|0); - $$0 = $23; - break; - } - $24 = ((($5)) + 3|0); - $25 = HEAP8[$24>>0]|0; - $26 = ($25<<24>>24)==(0); - if ($26) { - $$0 = 0; - } else { - $27 = ((($1)) + 4|0); - $28 = HEAP8[$27>>0]|0; - $29 = ($28<<24>>24)==(0); - if ($29) { - $30 = (_fourbyte_strstr($5,$1)|0); - $$0 = $30; - break; - } else { - $31 = (_twoway_strstr($5,$1)|0); - $$0 = $31; - break; - } - } - } - } - } - } - } - } while(0); - return ($$0|0); -} -function _twobyte_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$lcssa = 0, $$sink = 0, $$sink$in = 0, $$sink$masked = 0, $$sink17$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = $2&255; - $4 = $3 << 8; - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&255; - $8 = $4 | $7; - $9 = HEAP8[$0>>0]|0; - $10 = $9&255; - $$sink$in = $10;$$sink17$sink = $0; - while(1) { - $11 = ((($$sink17$sink)) + 1|0); - $12 = HEAP8[$11>>0]|0; - $13 = ($12<<24>>24)==(0); - if ($13) { - $$lcssa = 0; - break; - } - $$sink = $$sink$in << 8; - $14 = $12&255; - $$sink$masked = $$sink & 65280; - $15 = $14 | $$sink$masked; - $16 = ($15|0)==($8|0); - if ($16) { - $$lcssa = $$sink17$sink; - break; - } else { - $$sink$in = $15;$$sink17$sink = $11; - } - } - return ($$lcssa|0); -} -function _threebyte_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$016$lcssa = 0, $$01619 = 0, $$020 = 0, $$lcssa = 0, $$not = 0, $$not17 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond18 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = $2&255; - $4 = $3 << 24; - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&255; - $8 = $7 << 16; - $9 = $8 | $4; - $10 = ((($1)) + 2|0); - $11 = HEAP8[$10>>0]|0; - $12 = $11&255; - $13 = $12 << 8; - $14 = $9 | $13; - $15 = HEAP8[$0>>0]|0; - $16 = $15&255; - $17 = $16 << 24; - $18 = ((($0)) + 1|0); - $19 = HEAP8[$18>>0]|0; - $20 = $19&255; - $21 = $20 << 16; - $22 = $21 | $17; - $23 = ((($0)) + 2|0); - $24 = HEAP8[$23>>0]|0; - $25 = $24&255; - $26 = $25 << 8; - $27 = $22 | $26; - $28 = ($24<<24>>24)!=(0); - $$not17 = $28 ^ 1; - $29 = ($27|0)==($14|0); - $or$cond18 = $29 | $$not17; - if ($or$cond18) { - $$016$lcssa = $23;$$lcssa = $28; - } else { - $$01619 = $23;$$020 = $27; - while(1) { - $30 = ((($$01619)) + 1|0); - $31 = HEAP8[$30>>0]|0; - $32 = $31&255; - $33 = $32 | $$020; - $34 = $33 << 8; - $35 = ($31<<24>>24)!=(0); - $$not = $35 ^ 1; - $36 = ($34|0)==($14|0); - $or$cond = $36 | $$not; - if ($or$cond) { - $$016$lcssa = $30;$$lcssa = $35; - break; - } else { - $$01619 = $30;$$020 = $34; - } - } - } - $37 = ((($$016$lcssa)) + -2|0); - $38 = $$lcssa ? $37 : 0; - return ($38|0); -} -function _fourbyte_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$lcssa = 0, $$not = 0, $$not22 = 0, $$sink21$lcssa = 0, $$sink2124 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond23 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = $2&255; - $4 = $3 << 24; - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&255; - $8 = $7 << 16; - $9 = $8 | $4; - $10 = ((($1)) + 2|0); - $11 = HEAP8[$10>>0]|0; - $12 = $11&255; - $13 = $12 << 8; - $14 = $9 | $13; - $15 = ((($1)) + 3|0); - $16 = HEAP8[$15>>0]|0; - $17 = $16&255; - $18 = $14 | $17; - $19 = HEAP8[$0>>0]|0; - $20 = $19&255; - $21 = $20 << 24; - $22 = ((($0)) + 1|0); - $23 = HEAP8[$22>>0]|0; - $24 = $23&255; - $25 = $24 << 16; - $26 = $25 | $21; - $27 = ((($0)) + 2|0); - $28 = HEAP8[$27>>0]|0; - $29 = $28&255; - $30 = $29 << 8; - $31 = $26 | $30; - $32 = ((($0)) + 3|0); - $33 = HEAP8[$32>>0]|0; - $34 = $33&255; - $35 = $34 | $31; - $36 = ($33<<24>>24)!=(0); - $$not22 = $36 ^ 1; - $37 = ($35|0)==($18|0); - $or$cond23 = $37 | $$not22; - if ($or$cond23) { - $$lcssa = $36;$$sink21$lcssa = $32; - } else { - $$sink2124 = $32;$39 = $35; - while(1) { - $38 = $39 << 8; - $40 = ((($$sink2124)) + 1|0); - $41 = HEAP8[$40>>0]|0; - $42 = $41&255; - $43 = $42 | $38; - $44 = ($41<<24>>24)!=(0); - $$not = $44 ^ 1; - $45 = ($43|0)==($18|0); - $or$cond = $45 | $$not; - if ($or$cond) { - $$lcssa = $44;$$sink21$lcssa = $40; - break; - } else { - $$sink2124 = $40;$39 = $43; - } - } - } - $46 = ((($$sink21$lcssa)) + -3|0); - $47 = $$lcssa ? $46 : 0; - return ($47|0); -} -function _twoway_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0166 = 0, $$0168 = 0, $$0169 = 0, $$0169$be = 0, $$0170 = 0, $$0175$ph$ph$lcssa220 = 0, $$0175$ph$ph$lcssa220323 = 0, $$0175$ph$ph256 = 0, $$0179244 = 0, $$0183$ph200$ph255 = 0, $$0183$ph200250 = 0, $$0183$ph262 = 0, $$0185$ph$lcssa = 0, $$0185$ph$lcssa322 = 0, $$0185$ph261 = 0, $$0187$lcssa320321 = 0, $$0187266 = 0, $$1176$$0175 = 0, $$1176$ph$ph$lcssa211 = 0, $$1176$ph$ph235 = 0; - var $$1180224 = 0, $$1184$ph196$ph234 = 0, $$1184$ph196229 = 0, $$1184$ph241 = 0, $$1186$$0185 = 0, $$1186$$0185$ = 0, $$1186$ph$lcssa = 0, $$1186$ph240 = 0, $$2181 = 0, $$2181$sink = 0, $$3 = 0, $$3173 = 0, $$3178 = 0, $$3182223 = 0, $$4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0; - var $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0; - var $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; - var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; - var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; - var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; - var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0; - var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond191 = 0, $cond191222 = 0, $cond265 = 0, $div = 0, $div188 = 0, $or$cond = 0, $or$cond190 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); - $2 = sp + 1024|0; - $3 = sp; - ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; - $4 = HEAP8[$1>>0]|0; - $cond265 = ($4<<24>>24)==(0); - L1: do { - if ($cond265) { - $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = 0;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; - label = 27; - } else { - $5 = $4&255; - $$0187266 = 0;$12 = $4;$20 = $5; - while(1) { - $8 = (($0) + ($$0187266)|0); - $9 = HEAP8[$8>>0]|0; - $10 = ($9<<24>>24)==(0); - if ($10) { - $$3 = 0; - break L1; - } - $11 = $12 & 31; - $13 = $11&255; - $14 = 1 << $13; - $div188 = ($12&255) >>> 5; - $15 = $div188&255; - $16 = (($2) + ($15<<2)|0); - $17 = HEAP32[$16>>2]|0; - $18 = $17 | $14; - HEAP32[$16>>2] = $18; - $7 = (($$0187266) + 1)|0; - $19 = (($3) + ($20<<2)|0); - HEAP32[$19>>2] = $7; - $21 = (($1) + ($7)|0); - $22 = HEAP8[$21>>0]|0; - $23 = $22&255; - $cond = ($22<<24>>24)==(0); - if ($cond) { - break; - } else { - $$0187266 = $7;$12 = $22;$20 = $23; - } - } - $6 = ($7>>>0)>(1); - if ($6) { - $$0183$ph262 = 0;$$0185$ph261 = -1;$129 = 1; - L7: while(1) { - $$0175$ph$ph256 = 1;$$0183$ph200$ph255 = $$0183$ph262;$132 = $129; - while(1) { - $$0183$ph200250 = $$0183$ph200$ph255;$131 = $132; - L11: while(1) { - $$0179244 = 1;$31 = $131; - while(1) { - $27 = (($$0179244) + ($$0185$ph261))|0; - $28 = (($1) + ($27)|0); - $29 = HEAP8[$28>>0]|0; - $30 = (($1) + ($31)|0); - $32 = HEAP8[$30>>0]|0; - $33 = ($29<<24>>24)==($32<<24>>24); - if (!($33)) { - break L11; - } - $34 = ($$0179244|0)==($$0175$ph$ph256|0); - $25 = (($$0179244) + 1)|0; - if ($34) { - break; - } - $24 = (($25) + ($$0183$ph200250))|0; - $26 = ($24>>>0)<($7>>>0); - if ($26) { - $$0179244 = $25;$31 = $24; - } else { - $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; - break L7; - } - } - $35 = (($$0175$ph$ph256) + ($$0183$ph200250))|0; - $36 = (($35) + 1)|0; - $37 = ($36>>>0)<($7>>>0); - if ($37) { - $$0183$ph200250 = $35;$131 = $36; - } else { - $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; - break L7; - } - } - $38 = ($29&255)>($32&255); - $39 = (($31) - ($$0185$ph261))|0; - if (!($38)) { - break; - } - $43 = (($31) + 1)|0; - $44 = ($43>>>0)<($7>>>0); - if ($44) { - $$0175$ph$ph256 = $39;$$0183$ph200$ph255 = $31;$132 = $43; - } else { - $$0175$ph$ph$lcssa220 = $39;$$0185$ph$lcssa = $$0185$ph261; - break L7; - } - } - $40 = (($$0183$ph200250) + 1)|0; - $41 = (($$0183$ph200250) + 2)|0; - $42 = ($41>>>0)<($7>>>0); - if ($42) { - $$0183$ph262 = $40;$$0185$ph261 = $$0183$ph200250;$129 = $41; - } else { - $$0175$ph$ph$lcssa220 = 1;$$0185$ph$lcssa = $$0183$ph200250; - break; - } - } - if ($6) { - $$1184$ph241 = 0;$$1186$ph240 = -1;$130 = 1; - while(1) { - $$1176$ph$ph235 = 1;$$1184$ph196$ph234 = $$1184$ph241;$134 = $130; - while(1) { - $$1184$ph196229 = $$1184$ph196$ph234;$133 = $134; - L26: while(1) { - $$1180224 = 1;$52 = $133; - while(1) { - $48 = (($$1180224) + ($$1186$ph240))|0; - $49 = (($1) + ($48)|0); - $50 = HEAP8[$49>>0]|0; - $51 = (($1) + ($52)|0); - $53 = HEAP8[$51>>0]|0; - $54 = ($50<<24>>24)==($53<<24>>24); - if (!($54)) { - break L26; - } - $55 = ($$1180224|0)==($$1176$ph$ph235|0); - $46 = (($$1180224) + 1)|0; - if ($55) { - break; - } - $45 = (($46) + ($$1184$ph196229))|0; - $47 = ($45>>>0)<($7>>>0); - if ($47) { - $$1180224 = $46;$52 = $45; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; - label = 27; - break L1; - } - } - $56 = (($$1176$ph$ph235) + ($$1184$ph196229))|0; - $57 = (($56) + 1)|0; - $58 = ($57>>>0)<($7>>>0); - if ($58) { - $$1184$ph196229 = $56;$133 = $57; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; - label = 27; - break L1; - } - } - $59 = ($50&255)<($53&255); - $60 = (($52) - ($$1186$ph240))|0; - if (!($59)) { - break; - } - $64 = (($52) + 1)|0; - $65 = ($64>>>0)<($7>>>0); - if ($65) { - $$1176$ph$ph235 = $60;$$1184$ph196$ph234 = $52;$134 = $64; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $60;$$1186$ph$lcssa = $$1186$ph240; - label = 27; - break L1; - } - } - $61 = (($$1184$ph196229) + 1)|0; - $62 = (($$1184$ph196229) + 2)|0; - $63 = ($62>>>0)<($7>>>0); - if ($63) { - $$1184$ph241 = $61;$$1186$ph240 = $$1184$ph196229;$130 = $62; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = $$1184$ph196229; - label = 27; - break; - } - } - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; - label = 27; - } - } else { - $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; - label = 27; - } - } - } while(0); - L36: do { - if ((label|0) == 27) { - $66 = (($$1186$ph$lcssa) + 1)|0; - $67 = (($$0185$ph$lcssa322) + 1)|0; - $68 = ($66>>>0)>($67>>>0); - $$1176$$0175 = $68 ? $$1176$ph$ph$lcssa211 : $$0175$ph$ph$lcssa220323; - $$1186$$0185 = $68 ? $$1186$ph$lcssa : $$0185$ph$lcssa322; - $69 = (($1) + ($$1176$$0175)|0); - $70 = (($$1186$$0185) + 1)|0; - $71 = (_memcmp($1,$69,$70)|0); - $72 = ($71|0)==(0); - if ($72) { - $77 = (($$0187$lcssa320321) - ($$1176$$0175))|0; - $$0168 = $77;$$3178 = $$1176$$0175; - } else { - $73 = (($$0187$lcssa320321) - ($$1186$$0185))|0; - $74 = (($73) + -1)|0; - $75 = ($$1186$$0185>>>0)>($74>>>0); - $$1186$$0185$ = $75 ? $$1186$$0185 : $74; - $76 = (($$1186$$0185$) + 1)|0; - $$0168 = 0;$$3178 = $76; - } - $78 = $$0187$lcssa320321 | 63; - $79 = (($$0187$lcssa320321) + -1)|0; - $80 = ($$0168|0)!=(0); - $81 = (($$0187$lcssa320321) - ($$3178))|0; - $$0166 = $0;$$0169 = 0;$$0170 = $0; - while(1) { - $82 = $$0170; - $83 = $$0166; - $84 = (($82) - ($83))|0; - $85 = ($84>>>0)<($$0187$lcssa320321>>>0); - do { - if ($85) { - $86 = (_memchr($$0170,0,$78)|0); - $87 = ($86|0)==(0|0); - if ($87) { - $91 = (($$0170) + ($78)|0); - $$3173 = $91; - break; - } else { - $88 = $86; - $89 = (($88) - ($83))|0; - $90 = ($89>>>0)<($$0187$lcssa320321>>>0); - if ($90) { - $$3 = 0; - break L36; - } else { - $$3173 = $86; - break; - } - } - } else { - $$3173 = $$0170; - } - } while(0); - $92 = (($$0166) + ($79)|0); - $93 = HEAP8[$92>>0]|0; - $div = ($93&255) >>> 5; - $94 = $div&255; - $95 = (($2) + ($94<<2)|0); - $96 = HEAP32[$95>>2]|0; - $97 = $93 & 31; - $98 = $97&255; - $99 = 1 << $98; - $100 = $99 & $96; - $101 = ($100|0)==(0); - L50: do { - if ($101) { - $$0169$be = 0;$$2181$sink = $$0187$lcssa320321; - } else { - $102 = $93&255; - $103 = (($3) + ($102<<2)|0); - $104 = HEAP32[$103>>2]|0; - $105 = (($$0187$lcssa320321) - ($104))|0; - $106 = ($105|0)==(0); - if (!($106)) { - $107 = ($$0169|0)!=(0); - $or$cond = $80 & $107; - $108 = ($105>>>0)<($$3178>>>0); - $or$cond190 = $or$cond & $108; - $$2181 = $or$cond190 ? $81 : $105; - $$0169$be = 0;$$2181$sink = $$2181; - break; - } - $110 = ($70>>>0)>($$0169>>>0); - $111 = $110 ? $70 : $$0169; - $112 = (($1) + ($111)|0); - $113 = HEAP8[$112>>0]|0; - $cond191222 = ($113<<24>>24)==(0); - L55: do { - if ($cond191222) { - $$4 = $70; - } else { - $$3182223 = $111;$117 = $113; - while(1) { - $114 = (($$0166) + ($$3182223)|0); - $115 = HEAP8[$114>>0]|0; - $116 = ($117<<24>>24)==($115<<24>>24); - if (!($116)) { - break; - } - $118 = (($$3182223) + 1)|0; - $119 = (($1) + ($118)|0); - $120 = HEAP8[$119>>0]|0; - $cond191 = ($120<<24>>24)==(0); - if ($cond191) { - $$4 = $70; - break L55; - } else { - $$3182223 = $118;$117 = $120; - } - } - $121 = (($$3182223) - ($$1186$$0185))|0; - $$0169$be = 0;$$2181$sink = $121; - break L50; - } - } while(0); - while(1) { - $122 = ($$4>>>0)>($$0169>>>0); - if (!($122)) { - $$3 = $$0166; - break L36; - } - $123 = (($$4) + -1)|0; - $124 = (($1) + ($123)|0); - $125 = HEAP8[$124>>0]|0; - $126 = (($$0166) + ($123)|0); - $127 = HEAP8[$126>>0]|0; - $128 = ($125<<24>>24)==($127<<24>>24); - if ($128) { - $$4 = $123; - } else { - $$0169$be = $$0168;$$2181$sink = $$3178; - break; - } - } - } - } while(0); - $109 = (($$0166) + ($$2181$sink)|0); - $$0166 = $109;$$0169 = $$0169$be;$$0170 = $$3173; - } - } - } while(0); - STACKTOP = sp;return ($$3|0); -} -function _strspn($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$01925 = 0, $$020 = 0, $$1$lcssa = 0, $$123 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0, $div21 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $2 = sp; - ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; - $3 = HEAP8[$1>>0]|0; - $4 = ($3<<24>>24)==(0); - do { - if ($4) { - $$0 = 0; - } else { - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = ($6<<24>>24)==(0); - if ($7) { - $$020 = $0; - while(1) { - $8 = HEAP8[$$020>>0]|0; - $9 = ($8<<24>>24)==($3<<24>>24); - $10 = ((($$020)) + 1|0); - if ($9) { - $$020 = $10; - } else { - break; - } - } - $11 = $$020; - $12 = $0; - $13 = (($11) - ($12))|0; - $$0 = $13; - break; - } else { - $$01925 = $1;$17 = $3; - } - while(1) { - $16 = $17 & 31; - $18 = $16&255; - $19 = 1 << $18; - $div21 = ($17&255) >>> 5; - $20 = $div21&255; - $21 = (($2) + ($20<<2)|0); - $22 = HEAP32[$21>>2]|0; - $23 = $22 | $19; - HEAP32[$21>>2] = $23; - $24 = ((($$01925)) + 1|0); - $25 = HEAP8[$24>>0]|0; - $26 = ($25<<24>>24)==(0); - if ($26) { - break; - } else { - $$01925 = $24;$17 = $25; - } - } - $14 = HEAP8[$0>>0]|0; - $15 = ($14<<24>>24)==(0); - L10: do { - if ($15) { - $$1$lcssa = $0; - } else { - $$123 = $0;$27 = $14; - while(1) { - $div = ($27&255) >>> 5; - $28 = $div&255; - $29 = (($2) + ($28<<2)|0); - $30 = HEAP32[$29>>2]|0; - $31 = $27 & 31; - $32 = $31&255; - $33 = 1 << $32; - $34 = $30 & $33; - $35 = ($34|0)==(0); - if ($35) { - $$1$lcssa = $$123; - break L10; - } - $36 = ((($$123)) + 1|0); - $37 = HEAP8[$36>>0]|0; - $38 = ($37<<24>>24)==(0); - if ($38) { - $$1$lcssa = $36; - break; - } else { - $$123 = $36;$27 = $37; - } - } - } - } while(0); - $39 = $$1$lcssa; - $40 = $0; - $41 = (($39) - ($40))|0; - $$0 = $41; - } - } while(0); - STACKTOP = sp;return ($$0|0); -} -function _srand($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (($0) + -1)|0; - $2 = 13960; - $3 = $2; - HEAP32[$3>>2] = $1; - $4 = (($2) + 4)|0; - $5 = $4; - HEAP32[$5>>2] = 0; - return; -} -function _vprintf($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP32[806]|0; - $3 = (_vfprintf($2,$0,$1)|0); - return ($3|0); -} -function _strcspn($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$01824 = 0, $$019$sink = 0, $$01922 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0; - var $div20 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $2 = sp; - $3 = HEAP8[$1>>0]|0; - $4 = ($3<<24>>24)==(0); - L1: do { - if ($4) { - label = 3; - } else { - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = ($6<<24>>24)==(0); - if ($7) { - label = 3; - } else { - ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; - $$01824 = $1;$13 = $3; - while(1) { - $12 = $13 & 31; - $14 = $12&255; - $15 = 1 << $14; - $div20 = ($13&255) >>> 5; - $16 = $div20&255; - $17 = (($2) + ($16<<2)|0); - $18 = HEAP32[$17>>2]|0; - $19 = $18 | $15; - HEAP32[$17>>2] = $19; - $20 = ((($$01824)) + 1|0); - $21 = HEAP8[$20>>0]|0; - $22 = ($21<<24>>24)==(0); - if ($22) { - break; - } else { - $$01824 = $20;$13 = $21; - } - } - $10 = HEAP8[$0>>0]|0; - $11 = ($10<<24>>24)==(0); - if ($11) { - $$019$sink = $0; - } else { - $$01922 = $0;$23 = $10; - while(1) { - $div = ($23&255) >>> 5; - $24 = $div&255; - $25 = (($2) + ($24<<2)|0); - $26 = HEAP32[$25>>2]|0; - $27 = $23 & 31; - $28 = $27&255; - $29 = 1 << $28; - $30 = $26 & $29; - $31 = ($30|0)==(0); - if (!($31)) { - $$019$sink = $$01922; - break L1; - } - $32 = ((($$01922)) + 1|0); - $33 = HEAP8[$32>>0]|0; - $34 = ($33<<24>>24)==(0); - if ($34) { - $$019$sink = $32; - break; - } else { - $$01922 = $32;$23 = $33; - } - } - } - } - } - } while(0); - if ((label|0) == 3) { - $8 = $3 << 24 >> 24; - $9 = (___strchrnul($0,$8)|0); - $$019$sink = $9; - } - $35 = $$019$sink; - $36 = $0; - $37 = (($35) - ($36))|0; - STACKTOP = sp;return ($37|0); -} -function _strcat($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (_strlen($0)|0); - $3 = (($0) + ($2)|0); - (_strcpy($3,$1)|0); - return ($0|0); -} -function _strtok($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$010 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($0|0)==(0|0); - if ($2) { - $3 = HEAP32[4368]|0; - $4 = ($3|0)==(0|0); - if ($4) { - $$0 = 0; - } else { - $$010 = $3; - label = 3; - } - } else { - $$010 = $0; - label = 3; - } - do { - if ((label|0) == 3) { - $5 = (_strspn($$010,$1)|0); - $6 = (($$010) + ($5)|0); - $7 = HEAP8[$6>>0]|0; - $8 = ($7<<24>>24)==(0); - if ($8) { - HEAP32[4368] = 0; - $$0 = 0; - break; - } - $9 = (_strcspn($6,$1)|0); - $10 = (($6) + ($9)|0); - HEAP32[4368] = $10; - $11 = HEAP8[$10>>0]|0; - $12 = ($11<<24>>24)==(0); - if ($12) { - HEAP32[4368] = 0; - $$0 = $6; - break; - } else { - $13 = ((($10)) + 1|0); - HEAP32[4368] = $13; - HEAP8[$10>>0] = 0; - $$0 = $6; - break; - } - } - } while(0); - return ($$0|0); -} -function runPostSets() { -} -function _memset(ptr, value, num) { - ptr = ptr|0; value = value|0; num = num|0; - var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0; - end = (ptr + num)|0; - - value = value & 0xff; - if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) { - while ((ptr&3) != 0) { - HEAP8[((ptr)>>0)]=value; - ptr = (ptr+1)|0; - } - - aligned_end = (end & -4)|0; - block_aligned_end = (aligned_end - 64)|0; - value4 = value | (value << 8) | (value << 16) | (value << 24); - - while((ptr|0) <= (block_aligned_end|0)) { - HEAP32[((ptr)>>2)]=value4; - HEAP32[(((ptr)+(4))>>2)]=value4; - HEAP32[(((ptr)+(8))>>2)]=value4; - HEAP32[(((ptr)+(12))>>2)]=value4; - HEAP32[(((ptr)+(16))>>2)]=value4; - HEAP32[(((ptr)+(20))>>2)]=value4; - HEAP32[(((ptr)+(24))>>2)]=value4; - HEAP32[(((ptr)+(28))>>2)]=value4; - HEAP32[(((ptr)+(32))>>2)]=value4; - HEAP32[(((ptr)+(36))>>2)]=value4; - HEAP32[(((ptr)+(40))>>2)]=value4; - HEAP32[(((ptr)+(44))>>2)]=value4; - HEAP32[(((ptr)+(48))>>2)]=value4; - HEAP32[(((ptr)+(52))>>2)]=value4; - HEAP32[(((ptr)+(56))>>2)]=value4; - HEAP32[(((ptr)+(60))>>2)]=value4; - ptr = (ptr + 64)|0; - } - - while ((ptr|0) < (aligned_end|0) ) { - HEAP32[((ptr)>>2)]=value4; - ptr = (ptr+4)|0; - } - } - // The remaining bytes. - while ((ptr|0) < (end|0)) { - HEAP8[((ptr)>>0)]=value; - ptr = (ptr+1)|0; - } - return (end-num)|0; -} -function _i64Subtract(a, b, c, d) { - a = a|0; b = b|0; c = c|0; d = d|0; - var l = 0, h = 0; - l = (a - c)>>>0; - h = (b - d)>>>0; - h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow. - return ((tempRet0 = h,l|0)|0); -} -function _i64Add(a, b, c, d) { - /* - x = a + b*2^32 - y = c + d*2^32 - result = l + h*2^32 - */ - a = a|0; b = b|0; c = c|0; d = d|0; - var l = 0, h = 0; - l = (a + c)>>>0; - h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow. - return ((tempRet0 = h,l|0)|0); -} -function _llvm_cttz_i32(x) { - x = x|0; - var ret = 0; - ret = ((HEAP8[(((cttz_i8)+(x & 0xff))>>0)])|0); - if ((ret|0) < 8) return ret|0; - ret = ((HEAP8[(((cttz_i8)+((x >> 8)&0xff))>>0)])|0); - if ((ret|0) < 8) return (ret + 8)|0; - ret = ((HEAP8[(((cttz_i8)+((x >> 16)&0xff))>>0)])|0); - if ((ret|0) < 8) return (ret + 16)|0; - return (((HEAP8[(((cttz_i8)+(x >>> 24))>>0)])|0) + 24)|0; -} -function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - $rem = $rem | 0; - var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0; - $n_sroa_0_0_extract_trunc = $a$0; - $n_sroa_1_4_extract_shift$0 = $a$1; - $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; - $d_sroa_0_0_extract_trunc = $b$0; - $d_sroa_1_4_extract_shift$0 = $b$1; - $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; - if (($n_sroa_1_4_extract_trunc | 0) == 0) { - $4 = ($rem | 0) != 0; - if (($d_sroa_1_4_extract_trunc | 0) == 0) { - if ($4) { - HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); - HEAP32[$rem + 4 >> 2] = 0; - } - $_0$1 = 0; - $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - if (!$4) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - } - $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; - do { - if (($d_sroa_0_0_extract_trunc | 0) == 0) { - if ($17) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); - HEAP32[$rem + 4 >> 2] = 0; - } - $_0$1 = 0; - $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - if (($n_sroa_0_0_extract_trunc | 0) == 0) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0; - HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); - } - $_0$1 = 0; - $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $37 = $d_sroa_1_4_extract_trunc - 1 | 0; - if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0; - } - $_0$1 = 0; - $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; - $51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - if ($51 >>> 0 <= 30) { - $57 = $51 + 1 | 0; - $58 = 31 - $51 | 0; - $sr_1_ph = $57; - $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0); - $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0); - $q_sroa_0_1_ph = 0; - $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58; - break; - } - if (($rem | 0) == 0) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - if (!$17) { - $117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; - $119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - if ($119 >>> 0 <= 31) { - $125 = $119 + 1 | 0; - $126 = 31 - $119 | 0; - $130 = $119 - 31 >> 31; - $sr_1_ph = $125; - $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126; - $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130; - $q_sroa_0_1_ph = 0; - $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126; - break; - } - if (($rem | 0) == 0) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $66 = $d_sroa_0_0_extract_trunc - 1 | 0; - if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) { - $86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0; - $88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - $89 = 64 - $88 | 0; - $91 = 32 - $88 | 0; - $92 = $91 >> 31; - $95 = $88 - 32 | 0; - $105 = $95 >> 31; - $sr_1_ph = $88; - $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105; - $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0); - $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92; - $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31; - break; - } - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; - HEAP32[$rem + 4 >> 2] = 0; - } - if (($d_sroa_0_0_extract_trunc | 0) == 1) { - $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$0 = 0 | $a$0 & -1; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; - $_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0); - $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - } - } while (0); - if (($sr_1_ph | 0) == 0) { - $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; - $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; - $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; - $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; - $carry_0_lcssa$1 = 0; - $carry_0_lcssa$0 = 0; - } else { - $d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1; - $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0; - $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0; - $137$1 = tempRet0; - $q_sroa_1_1198 = $q_sroa_1_1_ph; - $q_sroa_0_1199 = $q_sroa_0_1_ph; - $r_sroa_1_1200 = $r_sroa_1_1_ph; - $r_sroa_0_1201 = $r_sroa_0_1_ph; - $sr_1202 = $sr_1_ph; - $carry_0203 = 0; - while (1) { - $147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; - $149 = $carry_0203 | $q_sroa_0_1199 << 1; - $r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | $q_sroa_1_1198 >>> 31); - $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; - _i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0) | 0; - $150$1 = tempRet0; - $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; - $152 = $151$0 & 1; - $154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1 | 0) | 0; - $r_sroa_0_0_extract_trunc = $154$0; - $r_sroa_1_4_extract_trunc = tempRet0; - $155 = $sr_1202 - 1 | 0; - if (($155 | 0) == 0) { - break; - } else { - $q_sroa_1_1198 = $147; - $q_sroa_0_1199 = $149; - $r_sroa_1_1200 = $r_sroa_1_4_extract_trunc; - $r_sroa_0_1201 = $r_sroa_0_0_extract_trunc; - $sr_1202 = $155; - $carry_0203 = $152; - } - } - $q_sroa_1_1_lcssa = $147; - $q_sroa_0_1_lcssa = $149; - $r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc; - $r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc; - $carry_0_lcssa$1 = 0; - $carry_0_lcssa$0 = $152; - } - $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; - $q_sroa_0_0_insert_ext75$1 = 0; - $q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1; - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa; - HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0; - } - $_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | $q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1; - $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0; - return (tempRet0 = $_0$1, $_0$0) | 0; -} -function ___udivdi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $1$0 = 0; - $1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; - return $1$0 | 0; -} -function _memcpy(dest, src, num) { - dest = dest|0; src = src|0; num = num|0; - var ret = 0; - var aligned_dest_end = 0; - var block_aligned_dest_end = 0; - var dest_end = 0; - // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use. - if ((num|0) >= - 8192 - ) { - return _emscripten_memcpy_big(dest|0, src|0, num|0)|0; - } - - ret = dest|0; - dest_end = (dest + num)|0; - if ((dest&3) == (src&3)) { - // The initial unaligned < 4-byte front. - while (dest & 3) { - if ((num|0) == 0) return ret|0; - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - dest = (dest+1)|0; - src = (src+1)|0; - num = (num-1)|0; - } - aligned_dest_end = (dest_end & -4)|0; - block_aligned_dest_end = (aligned_dest_end - 64)|0; - while ((dest|0) <= (block_aligned_dest_end|0) ) { - HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); - HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0); - HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0); - HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0); - HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0); - HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0); - HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0); - HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0); - HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0); - HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0); - HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0); - HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0); - HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0); - HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0); - HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0); - HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0); - dest = (dest+64)|0; - src = (src+64)|0; - } - while ((dest|0) < (aligned_dest_end|0) ) { - HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); - dest = (dest+4)|0; - src = (src+4)|0; - } - } else { - // In the unaligned copy case, unroll a bit as well. - aligned_dest_end = (dest_end - 4)|0; - while ((dest|0) < (aligned_dest_end|0) ) { - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0); - HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0); - HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0); - dest = (dest+4)|0; - src = (src+4)|0; - } - } - // The remaining unaligned < 4 byte tail. - while ((dest|0) < (dest_end|0)) { - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - dest = (dest+1)|0; - src = (src+1)|0; - } - return ret|0; -} -function ___uremdi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $rem = 0, __stackBase__ = 0; - __stackBase__ = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - $rem = __stackBase__ | 0; - ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) | 0; - STACKTOP = __stackBase__; - return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0; -} -function _roundf(f) { - f = +f; - return f >= +0 ? +Math_floor(f + +0.5) : +Math_ceil(f - +0.5); // TODO: use fround? -} -function _bitshift64Lshr(low, high, bits) { - low = low|0; high = high|0; bits = bits|0; - var ander = 0; - if ((bits|0) < 32) { - ander = ((1 << bits) - 1)|0; - tempRet0 = high >>> bits; - return (low >>> bits) | ((high&ander) << (32 - bits)); - } - tempRet0 = 0; - return (high >>> (bits - 32))|0; -} -function _sbrk(increment) { - increment = increment|0; - var oldDynamicTop = 0; - var oldDynamicTopOnChange = 0; - var newDynamicTop = 0; - var totalMemory = 0; - increment = ((increment + 15) & -16)|0; - oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0; - newDynamicTop = oldDynamicTop + increment | 0; - - if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int. - | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract. - abortOnCannotGrowMemory()|0; - ___setErrNo(12); - return -1; - } - - HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop; - totalMemory = getTotalMemory()|0; - if ((newDynamicTop|0) > (totalMemory|0)) { - if ((enlargeMemory()|0) == 0) { - HEAP32[DYNAMICTOP_PTR>>2] = oldDynamicTop; - ___setErrNo(12); - return -1; - } - } - return oldDynamicTop|0; -} -function _bitshift64Shl(low, high, bits) { - low = low|0; high = high|0; bits = bits|0; - var ander = 0; - if ((bits|0) < 32) { - ander = ((1 << bits) - 1)|0; - tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits)); - return low << bits; - } - tempRet0 = low << (bits - 32); - return 0; -} -function _llvm_bswap_i32(x) { - x = x|0; - return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0; -} - - -function dynCall_viiiii(index,a1,a2,a3,a4,a5) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; - FUNCTION_TABLE_viiiii[index&7](a1|0,a2|0,a3|0,a4|0,a5|0); -} - - -function dynCall_vd(index,a1) { - index = index|0; - a1=+a1; - FUNCTION_TABLE_vd[index&3](+a1); -} - - -function dynCall_vid(index,a1,a2) { - index = index|0; - a1=a1|0; a2=+a2; - FUNCTION_TABLE_vid[index&3](a1|0,+a2); -} - - -function dynCall_vi(index,a1) { - index = index|0; - a1=a1|0; - FUNCTION_TABLE_vi[index&31](a1|0); -} - - -function dynCall_vii(index,a1,a2) { - index = index|0; - a1=a1|0; a2=a2|0; - FUNCTION_TABLE_vii[index&63](a1|0,a2|0); -} - - -function dynCall_ii(index,a1) { - index = index|0; - a1=a1|0; - return FUNCTION_TABLE_ii[index&15](a1|0)|0; -} - - -function dynCall_viddd(index,a1,a2,a3,a4) { - index = index|0; - a1=a1|0; a2=+a2; a3=+a3; a4=+a4; - FUNCTION_TABLE_viddd[index&3](a1|0,+a2,+a3,+a4); -} - - -function dynCall_vidd(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=+a2; a3=+a3; - FUNCTION_TABLE_vidd[index&7](a1|0,+a2,+a3); -} - - -function dynCall_iiii(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; - return FUNCTION_TABLE_iiii[index&15](a1|0,a2|0,a3|0)|0; -} - - -function dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; - FUNCTION_TABLE_viiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0); -} - - -function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; - FUNCTION_TABLE_viiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0); -} - - -function dynCall_viii(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; - FUNCTION_TABLE_viii[index&31](a1|0,a2|0,a3|0); -} - - -function dynCall_vidddd(index,a1,a2,a3,a4,a5) { - index = index|0; - a1=a1|0; a2=+a2; a3=+a3; a4=+a4; a5=+a5; - FUNCTION_TABLE_vidddd[index&3](a1|0,+a2,+a3,+a4,+a5); -} - - -function dynCall_vdi(index,a1,a2) { - index = index|0; - a1=+a1; a2=a2|0; - FUNCTION_TABLE_vdi[index&1](+a1,a2|0); -} - - -function dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; - FUNCTION_TABLE_viiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0); -} - - -function dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; a9=a9|0; - FUNCTION_TABLE_viiiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0,a9|0); -} - - -function dynCall_iii(index,a1,a2) { - index = index|0; - a1=a1|0; a2=a2|0; - return FUNCTION_TABLE_iii[index&3](a1|0,a2|0)|0; -} - - -function dynCall_i(index) { - index = index|0; - - return FUNCTION_TABLE_i[index&3]()|0; -} - - -function dynCall_vdddddd(index,a1,a2,a3,a4,a5,a6) { - index = index|0; - a1=+a1; a2=+a2; a3=+a3; a4=+a4; a5=+a5; a6=+a6; - FUNCTION_TABLE_vdddddd[index&1](+a1,+a2,+a3,+a4,+a5,+a6); -} - - -function dynCall_vdddd(index,a1,a2,a3,a4) { - index = index|0; - a1=+a1; a2=+a2; a3=+a3; a4=+a4; - FUNCTION_TABLE_vdddd[index&3](+a1,+a2,+a3,+a4); -} - - -function dynCall_vdd(index,a1,a2) { - index = index|0; - a1=+a1; a2=+a2; - FUNCTION_TABLE_vdd[index&3](+a1,+a2); -} - - -function dynCall_v(index) { - index = index|0; - - FUNCTION_TABLE_v[index&7](); -} - - -function dynCall_viid(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=+a3; - FUNCTION_TABLE_viid[index&1](a1|0,a2|0,+a3); -} - - -function dynCall_viiii(index,a1,a2,a3,a4) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; - FUNCTION_TABLE_viiii[index&31](a1|0,a2|0,a3|0,a4|0); -} - -function b0(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(0); -} -function _emscripten_glUniform4i__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glUniform4i(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function _emscripten_glFramebufferTexture2D__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glFramebufferTexture2D(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function _emscripten_glShaderBinary__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glShaderBinary(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function _emscripten_glDrawElementsInstanced__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glDrawElementsInstanced(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function b1(p0) { - p0 = +p0; nullFunc_vd(1); -} -function _emscripten_glClearDepth__wrapper(p0) { - p0 = +p0; _emscripten_glClearDepth(+p0); -} -function _emscripten_glClearDepthf__wrapper(p0) { - p0 = +p0; _emscripten_glClearDepthf(+p0); -} -function _emscripten_glLineWidth__wrapper(p0) { - p0 = +p0; _emscripten_glLineWidth(+p0); -} -function b2(p0,p1) { - p0 = p0|0;p1 = +p1; nullFunc_vid(2); -} -function _emscripten_glUniform1f__wrapper(p0,p1) { - p0 = p0|0;p1 = +p1; _emscripten_glUniform1f(p0|0,+p1); -} -function _emscripten_glVertexAttrib1f__wrapper(p0,p1) { - p0 = p0|0;p1 = +p1; _emscripten_glVertexAttrib1f(p0|0,+p1); -} -function b3(p0) { - p0 = p0|0; nullFunc_vi(3); -} -function _emscripten_glDeleteShader__wrapper(p0) { - p0 = p0|0; _emscripten_glDeleteShader(p0|0); -} -function _emscripten_glCompileShader__wrapper(p0) { - p0 = p0|0; _emscripten_glCompileShader(p0|0); -} -function _emscripten_glDeleteProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glDeleteProgram(p0|0); -} -function _emscripten_glLinkProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glLinkProgram(p0|0); -} -function _emscripten_glUseProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glUseProgram(p0|0); -} -function _emscripten_glValidateProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glValidateProgram(p0|0); -} -function _emscripten_glDeleteObjectARB__wrapper(p0) { - p0 = p0|0; _emscripten_glDeleteObjectARB(p0|0); -} -function _emscripten_glEnableClientState__wrapper(p0) { - p0 = p0|0; _emscripten_glEnableClientState(p0|0); -} -function _emscripten_glClientActiveTexture__wrapper(p0) { - p0 = p0|0; _emscripten_glClientActiveTexture(p0|0); -} -function _emscripten_glBindVertexArray__wrapper(p0) { - p0 = p0|0; _emscripten_glBindVertexArray(p0|0); -} -function _emscripten_glMatrixMode__wrapper(p0) { - p0 = p0|0; _emscripten_glMatrixMode(p0|0); -} -function _emscripten_glLoadMatrixf__wrapper(p0) { - p0 = p0|0; _emscripten_glLoadMatrixf(p0|0); -} -function _emscripten_glEnableVertexAttribArray__wrapper(p0) { - p0 = p0|0; _emscripten_glEnableVertexAttribArray(p0|0); -} -function _emscripten_glDisableVertexAttribArray__wrapper(p0) { - p0 = p0|0; _emscripten_glDisableVertexAttribArray(p0|0); -} -function _emscripten_glDepthFunc__wrapper(p0) { - p0 = p0|0; _emscripten_glDepthFunc(p0|0); -} -function _emscripten_glEnable__wrapper(p0) { - p0 = p0|0; _emscripten_glEnable(p0|0); -} -function _emscripten_glDisable__wrapper(p0) { - p0 = p0|0; _emscripten_glDisable(p0|0); -} -function _emscripten_glFrontFace__wrapper(p0) { - p0 = p0|0; _emscripten_glFrontFace(p0|0); -} -function _emscripten_glCullFace__wrapper(p0) { - p0 = p0|0; _emscripten_glCullFace(p0|0); -} -function _emscripten_glClear__wrapper(p0) { - p0 = p0|0; _emscripten_glClear(p0|0); -} -function _emscripten_glClearStencil__wrapper(p0) { - p0 = p0|0; _emscripten_glClearStencil(p0|0); -} -function _emscripten_glDepthMask__wrapper(p0) { - p0 = p0|0; _emscripten_glDepthMask(p0|0); -} -function _emscripten_glStencilMask__wrapper(p0) { - p0 = p0|0; _emscripten_glStencilMask(p0|0); -} -function _emscripten_glGenerateMipmap__wrapper(p0) { - p0 = p0|0; _emscripten_glGenerateMipmap(p0|0); -} -function _emscripten_glActiveTexture__wrapper(p0) { - p0 = p0|0; _emscripten_glActiveTexture(p0|0); -} -function _emscripten_glBlendEquation__wrapper(p0) { - p0 = p0|0; _emscripten_glBlendEquation(p0|0); -} -function b4(p0,p1) { - p0 = p0|0;p1 = p1|0; nullFunc_vii(4); -} -function _emscripten_glPixelStorei__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glPixelStorei(p0|0,p1|0); -} -function _emscripten_glGetIntegerv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetIntegerv(p0|0,p1|0); -} -function _emscripten_glGetFloatv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetFloatv(p0|0,p1|0); -} -function _emscripten_glGetBooleanv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetBooleanv(p0|0,p1|0); -} -function _emscripten_glGenTextures__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenTextures(p0|0,p1|0); -} -function _emscripten_glDeleteTextures__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteTextures(p0|0,p1|0); -} -function _emscripten_glBindTexture__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindTexture(p0|0,p1|0); -} -function _emscripten_glGenBuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenBuffers(p0|0,p1|0); -} -function _emscripten_glDeleteBuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteBuffers(p0|0,p1|0); -} -function _emscripten_glGenRenderbuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenRenderbuffers(p0|0,p1|0); -} -function _emscripten_glDeleteRenderbuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteRenderbuffers(p0|0,p1|0); -} -function _emscripten_glBindRenderbuffer__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindRenderbuffer(p0|0,p1|0); -} -function _emscripten_glUniform1i__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glUniform1i(p0|0,p1|0); -} -function _emscripten_glBindBuffer__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindBuffer(p0|0,p1|0); -} -function _emscripten_glVertexAttrib1fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib1fv(p0|0,p1|0); -} -function _emscripten_glVertexAttrib2fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib2fv(p0|0,p1|0); -} -function _emscripten_glVertexAttrib3fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib3fv(p0|0,p1|0); -} -function _emscripten_glVertexAttrib4fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib4fv(p0|0,p1|0); -} -function _emscripten_glAttachShader__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glAttachShader(p0|0,p1|0); -} -function _emscripten_glDetachShader__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDetachShader(p0|0,p1|0); -} -function _emscripten_glBindFramebuffer__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindFramebuffer(p0|0,p1|0); -} -function _emscripten_glGenFramebuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenFramebuffers(p0|0,p1|0); -} -function _emscripten_glDeleteFramebuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteFramebuffers(p0|0,p1|0); -} -function _emscripten_glBindProgramARB__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindProgramARB(p0|0,p1|0); -} -function _emscripten_glGetPointerv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetPointerv(p0|0,p1|0); -} -function _emscripten_glGenVertexArrays__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenVertexArrays(p0|0,p1|0); -} -function _emscripten_glDeleteVertexArrays__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteVertexArrays(p0|0,p1|0); -} -function _emscripten_glVertexAttribDivisor__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttribDivisor(p0|0,p1|0); -} -function _emscripten_glBlendFunc__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBlendFunc(p0|0,p1|0); -} -function _emscripten_glBlendEquationSeparate__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBlendEquationSeparate(p0|0,p1|0); -} -function _emscripten_glStencilMaskSeparate__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glStencilMaskSeparate(p0|0,p1|0); -} -function _emscripten_glHint__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glHint(p0|0,p1|0); -} -function _emscripten_glDrawBuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDrawBuffers(p0|0,p1|0); -} -function b5(p0) { - p0 = p0|0; nullFunc_ii(5);return 0; -} -function _emscripten_glGetString__wrapper(p0) { - p0 = p0|0; return _emscripten_glGetString(p0|0)|0; -} -function _emscripten_glIsTexture__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsTexture(p0|0)|0; -} -function _emscripten_glIsBuffer__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsBuffer(p0|0)|0; -} -function _emscripten_glIsRenderbuffer__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsRenderbuffer(p0|0)|0; -} -function _emscripten_glCreateShader__wrapper(p0) { - p0 = p0|0; return _emscripten_glCreateShader(p0|0)|0; -} -function _emscripten_glIsShader__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsShader(p0|0)|0; -} -function _emscripten_glIsProgram__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsProgram(p0|0)|0; -} -function _emscripten_glIsFramebuffer__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsFramebuffer(p0|0)|0; -} -function _emscripten_glCheckFramebufferStatus__wrapper(p0) { - p0 = p0|0; return _emscripten_glCheckFramebufferStatus(p0|0)|0; -} -function _emscripten_glIsEnabled__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsEnabled(p0|0)|0; -} -function b6(p0,p1,p2,p3) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_viddd(6); -} -function _emscripten_glUniform3f__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glUniform3f(p0|0,+p1,+p2,+p3); -} -function _emscripten_glVertexAttrib3f__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glVertexAttrib3f(p0|0,+p1,+p2,+p3); -} -function b7(p0,p1,p2) { - p0 = p0|0;p1 = +p1;p2 = +p2; nullFunc_vidd(7); -} -function _emscripten_glUniform2f__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glUniform2f(p0|0,+p1,+p2); -} -function _emscripten_glVertexAttrib2f__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glVertexAttrib2f(p0|0,+p1,+p2); -} -function b8(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(8);return 0; -} -function b9(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; nullFunc_viiiiiiii(9); -} -function _emscripten_glCompressedTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCompressedTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); -} -function _emscripten_glCopyTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); -} -function _emscripten_glCopyTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); -} -function b10(p0,p1,p2,p3,p4,p5) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; nullFunc_viiiiii(10); -} -function _emscripten_glDrawRangeElements__wrapper(p0,p1,p2,p3,p4,p5) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glDrawRangeElements(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); -} -function _emscripten_glVertexAttribPointer__wrapper(p0,p1,p2,p3,p4,p5) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glVertexAttribPointer(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); -} -function b11(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(11); -} -function _emscripten_glGetTexParameterfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameterfv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetTexParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glTexParameterfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameterfv(p0|0,p1|0,p2|0); -} -function _emscripten_glTexParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetBufferParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetBufferParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetRenderbufferParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetRenderbufferParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetUniformfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformfv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetUniformiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformiv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetVertexAttribfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribfv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetVertexAttribiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribiv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetVertexAttribPointerv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribPointerv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform2i__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2i(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform1iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform2iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform3iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform4iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform1fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1fv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform2fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2fv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform3fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3fv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform4fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4fv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetShaderiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetShaderiv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetProgramiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetProgramiv(p0|0,p1|0,p2|0); -} -function _emscripten_glBindAttribLocation__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glBindAttribLocation(p0|0,p1|0,p2|0); -} -function _emscripten_glGetObjectParameterivARB__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetObjectParameterivARB(p0|0,p1|0,p2|0); -} -function _emscripten_glNormalPointer__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glNormalPointer(p0|0,p1|0,p2|0); -} -function _emscripten_glDrawArrays__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glDrawArrays(p0|0,p1|0,p2|0); -} -function _emscripten_glTexParameteri__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteri(p0|0,p1|0,p2|0); -} -function _emscripten_glStencilFunc__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilFunc(p0|0,p1|0,p2|0); -} -function _emscripten_glStencilOp__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilOp(p0|0,p1|0,p2|0); -} -function b12(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; nullFunc_vidddd(12); -} -function _emscripten_glUniform4f__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glUniform4f(p0|0,+p1,+p2,+p3,+p4); -} -function _emscripten_glVertexAttrib4f__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glVertexAttrib4f(p0|0,+p1,+p2,+p3,+p4); -} -function b13(p0,p1) { - p0 = +p0;p1 = p1|0; nullFunc_vdi(13); -} -function _emscripten_glSampleCoverage__wrapper(p0,p1) { - p0 = +p0;p1 = p1|0; _emscripten_glSampleCoverage(+p0,p1|0); -} -function b14(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; nullFunc_viiiiiii(14); -} -function _emscripten_glReadPixels__wrapper(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glReadPixels(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); -} -function _emscripten_glGetActiveUniform__wrapper(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveUniform(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); -} -function _emscripten_glGetActiveAttrib__wrapper(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveAttrib(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); -} -function b15(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; nullFunc_viiiiiiiii(15); -} -function _emscripten_glCompressedTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glCompressedTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); -} -function _emscripten_glTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); -} -function _emscripten_glTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); -} -function b16(p0,p1) { - p0 = p0|0;p1 = p1|0; nullFunc_iii(16);return 0; -} -function _emscripten_glGetUniformLocation__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; return _emscripten_glGetUniformLocation(p0|0,p1|0)|0; -} -function _emscripten_glGetAttribLocation__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; return _emscripten_glGetAttribLocation(p0|0,p1|0)|0; -} -function b17() { - ; nullFunc_i(17);return 0; -} -function _emscripten_glCreateProgram__wrapper() { - ; return _emscripten_glCreateProgram()|0; -} -function _emscripten_glGetError__wrapper() { - ; return _emscripten_glGetError()|0; -} -function b18(p0,p1,p2,p3,p4,p5) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; nullFunc_vdddddd(18); -} -function _emscripten_glFrustum__wrapper(p0,p1,p2,p3,p4,p5) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; _emscripten_glFrustum(+p0,+p1,+p2,+p3,+p4,+p5); -} -function b19(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_vdddd(19); -} -function _emscripten_glRotatef__wrapper(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glRotatef(+p0,+p1,+p2,+p3); -} -function _emscripten_glClearColor__wrapper(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glClearColor(+p0,+p1,+p2,+p3); -} -function _emscripten_glBlendColor__wrapper(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glBlendColor(+p0,+p1,+p2,+p3); -} -function b20(p0,p1) { - p0 = +p0;p1 = +p1; nullFunc_vdd(20); -} -function _emscripten_glDepthRange__wrapper(p0,p1) { - p0 = +p0;p1 = +p1; _emscripten_glDepthRange(+p0,+p1); -} -function _emscripten_glDepthRangef__wrapper(p0,p1) { - p0 = +p0;p1 = +p1; _emscripten_glDepthRangef(+p0,+p1); -} -function _emscripten_glPolygonOffset__wrapper(p0,p1) { - p0 = +p0;p1 = +p1; _emscripten_glPolygonOffset(+p0,+p1); -} -function b21() { - ; nullFunc_v(21); -} -function _emscripten_glLoadIdentity__wrapper() { - ; _emscripten_glLoadIdentity(); -} -function _emscripten_glReleaseShaderCompiler__wrapper() { - ; _emscripten_glReleaseShaderCompiler(); -} -function _emscripten_glFinish__wrapper() { - ; _emscripten_glFinish(); -} -function _emscripten_glFlush__wrapper() { - ; _emscripten_glFlush(); -} -function b22(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = +p2; nullFunc_viid(22); -} -function _emscripten_glTexParameterf__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = +p2; _emscripten_glTexParameterf(p0|0,p1|0,+p2); -} -function b23(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(23); -} -function _emscripten_glBufferData__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferData(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glBufferSubData__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferSubData(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniform3i__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniform3i(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniformMatrix2fv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix2fv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniformMatrix3fv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix3fv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniformMatrix4fv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix4fv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetAttachedShaders__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetAttachedShaders(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glShaderSource__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glShaderSource(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetShaderSource__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderSource(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetShaderInfoLog__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderInfoLog(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetShaderPrecisionFormat__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderPrecisionFormat(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetProgramInfoLog__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetProgramInfoLog(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glFramebufferRenderbuffer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glFramebufferRenderbuffer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetFramebufferAttachmentParameteriv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetFramebufferAttachmentParameteriv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetInfoLogARB__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetInfoLogARB(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glVertexPointer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glVertexPointer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glTexCoordPointer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glTexCoordPointer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glColorPointer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorPointer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glDrawElements__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawElements(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glDrawArraysInstanced__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawArraysInstanced(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glViewport__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glViewport(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glScissor__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glScissor(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glColorMask__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorMask(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glRenderbufferStorage__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glRenderbufferStorage(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glBlendFuncSeparate__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBlendFuncSeparate(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glStencilFuncSeparate__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilFuncSeparate(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glStencilOpSeparate__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilOpSeparate(p0|0,p1|0,p2|0,p3|0); -} - -// EMSCRIPTEN_END_FUNCS -var FUNCTION_TABLE_viiiii = [b0,_KeyCallback,_emscripten_glUniform4i__wrapper,_emscripten_glFramebufferTexture2D__wrapper,_emscripten_glShaderBinary__wrapper,_emscripten_glDrawElementsInstanced__wrapper,b0,b0]; -var FUNCTION_TABLE_vd = [b1,_emscripten_glClearDepth__wrapper,_emscripten_glClearDepthf__wrapper,_emscripten_glLineWidth__wrapper]; -var FUNCTION_TABLE_vid = [b2,_emscripten_glUniform1f__wrapper,_emscripten_glVertexAttrib1f__wrapper,b2]; -var FUNCTION_TABLE_vi = [b3,_emscripten_glDeleteShader__wrapper,_emscripten_glCompileShader__wrapper,_emscripten_glDeleteProgram__wrapper,_emscripten_glLinkProgram__wrapper,_emscripten_glUseProgram__wrapper,_emscripten_glValidateProgram__wrapper,_emscripten_glDeleteObjectARB__wrapper,_emscripten_glEnableClientState__wrapper,_emscripten_glClientActiveTexture__wrapper,_emscripten_glBindVertexArray__wrapper,_emscripten_glMatrixMode__wrapper,_emscripten_glLoadMatrixf__wrapper,_emscripten_glEnableVertexAttribArray__wrapper,_emscripten_glDisableVertexAttribArray__wrapper,_emscripten_glDepthFunc__wrapper,_emscripten_glEnable__wrapper,_emscripten_glDisable__wrapper,_emscripten_glFrontFace__wrapper,_emscripten_glCullFace__wrapper,_emscripten_glClear__wrapper,_emscripten_glClearStencil__wrapper,_emscripten_glDepthMask__wrapper,_emscripten_glStencilMask__wrapper,_emscripten_glGenerateMipmap__wrapper,_emscripten_glActiveTexture__wrapper,_emscripten_glBlendEquation__wrapper,b3,b3 -,b3,b3,b3]; -var FUNCTION_TABLE_vii = [b4,_ErrorCallback,_CursorEnterCallback,_CharCallback,_WindowIconifyCallback,_emscripten_glPixelStorei__wrapper,_emscripten_glGetIntegerv__wrapper,_emscripten_glGetFloatv__wrapper,_emscripten_glGetBooleanv__wrapper,_emscripten_glGenTextures__wrapper,_emscripten_glDeleteTextures__wrapper,_emscripten_glBindTexture__wrapper,_emscripten_glGenBuffers__wrapper,_emscripten_glDeleteBuffers__wrapper,_emscripten_glGenRenderbuffers__wrapper,_emscripten_glDeleteRenderbuffers__wrapper,_emscripten_glBindRenderbuffer__wrapper,_emscripten_glUniform1i__wrapper,_emscripten_glBindBuffer__wrapper,_emscripten_glVertexAttrib1fv__wrapper,_emscripten_glVertexAttrib2fv__wrapper,_emscripten_glVertexAttrib3fv__wrapper,_emscripten_glVertexAttrib4fv__wrapper,_emscripten_glAttachShader__wrapper,_emscripten_glDetachShader__wrapper,_emscripten_glBindFramebuffer__wrapper,_emscripten_glGenFramebuffers__wrapper,_emscripten_glDeleteFramebuffers__wrapper,_emscripten_glBindProgramARB__wrapper,_emscripten_glGetPointerv__wrapper,_emscripten_glGenVertexArrays__wrapper,_emscripten_glDeleteVertexArrays__wrapper,_emscripten_glVertexAttribDivisor__wrapper,_emscripten_glBlendFunc__wrapper,_emscripten_glBlendEquationSeparate__wrapper,_emscripten_glStencilMaskSeparate__wrapper,_emscripten_glHint__wrapper,_emscripten_glDrawBuffers__wrapper,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4]; -var FUNCTION_TABLE_ii = [b5,___stdio_close,_emscripten_glGetString__wrapper,_emscripten_glIsTexture__wrapper,_emscripten_glIsBuffer__wrapper,_emscripten_glIsRenderbuffer__wrapper,_emscripten_glCreateShader__wrapper,_emscripten_glIsShader__wrapper,_emscripten_glIsProgram__wrapper,_emscripten_glIsFramebuffer__wrapper,_emscripten_glCheckFramebufferStatus__wrapper,_emscripten_glIsEnabled__wrapper,b5,b5,b5,b5]; -var FUNCTION_TABLE_viddd = [b6,_emscripten_glUniform3f__wrapper,_emscripten_glVertexAttrib3f__wrapper,b6]; -var FUNCTION_TABLE_vidd = [b7,_MouseCursorPosCallback,_ScrollCallback,_emscripten_glUniform2f__wrapper,_emscripten_glVertexAttrib2f__wrapper,b7,b7,b7]; -var FUNCTION_TABLE_iiii = [b8,___stdout_write,___stdio_seek,_EmscriptenFullscreenChangeCallback,_EmscriptenKeyboardCallback,_EmscriptenMouseCallback,_EmscriptenTouchCallback,_EmscriptenGamepadCallback,___stdio_write,b8,b8,b8,b8,b8,b8,b8]; -var FUNCTION_TABLE_viiiiiiii = [b9,_emscripten_glCompressedTexImage2D__wrapper,_emscripten_glCopyTexImage2D__wrapper,_emscripten_glCopyTexSubImage2D__wrapper]; -var FUNCTION_TABLE_viiiiii = [b10,_emscripten_glDrawRangeElements__wrapper,_emscripten_glVertexAttribPointer__wrapper,b10]; -var FUNCTION_TABLE_viii = [b11,_WindowSizeCallback,_emscripten_glGetTexParameterfv__wrapper,_emscripten_glGetTexParameteriv__wrapper,_emscripten_glTexParameterfv__wrapper,_emscripten_glTexParameteriv__wrapper,_emscripten_glGetBufferParameteriv__wrapper,_emscripten_glGetRenderbufferParameteriv__wrapper,_emscripten_glGetUniformfv__wrapper,_emscripten_glGetUniformiv__wrapper,_emscripten_glGetVertexAttribfv__wrapper,_emscripten_glGetVertexAttribiv__wrapper,_emscripten_glGetVertexAttribPointerv__wrapper,_emscripten_glUniform2i__wrapper,_emscripten_glUniform1iv__wrapper,_emscripten_glUniform2iv__wrapper,_emscripten_glUniform3iv__wrapper,_emscripten_glUniform4iv__wrapper,_emscripten_glUniform1fv__wrapper,_emscripten_glUniform2fv__wrapper,_emscripten_glUniform3fv__wrapper,_emscripten_glUniform4fv__wrapper,_emscripten_glGetShaderiv__wrapper,_emscripten_glGetProgramiv__wrapper,_emscripten_glBindAttribLocation__wrapper,_emscripten_glGetObjectParameterivARB__wrapper,_emscripten_glNormalPointer__wrapper,_emscripten_glDrawArrays__wrapper,_emscripten_glTexParameteri__wrapper,_emscripten_glStencilFunc__wrapper,_emscripten_glStencilOp__wrapper,b11]; -var FUNCTION_TABLE_vidddd = [b12,_emscripten_glUniform4f__wrapper,_emscripten_glVertexAttrib4f__wrapper,b12]; -var FUNCTION_TABLE_vdi = [b13,_emscripten_glSampleCoverage__wrapper]; -var FUNCTION_TABLE_viiiiiii = [b14,_emscripten_glReadPixels__wrapper,_emscripten_glGetActiveUniform__wrapper,_emscripten_glGetActiveAttrib__wrapper]; -var FUNCTION_TABLE_viiiiiiiii = [b15,_emscripten_glCompressedTexSubImage2D__wrapper,_emscripten_glTexImage2D__wrapper,_emscripten_glTexSubImage2D__wrapper]; -var FUNCTION_TABLE_iii = [b16,_emscripten_glGetUniformLocation__wrapper,_emscripten_glGetAttribLocation__wrapper,b16]; -var FUNCTION_TABLE_i = [b17,_emscripten_glCreateProgram__wrapper,_emscripten_glGetError__wrapper,b17]; -var FUNCTION_TABLE_vdddddd = [b18,_emscripten_glFrustum__wrapper]; -var FUNCTION_TABLE_vdddd = [b19,_emscripten_glRotatef__wrapper,_emscripten_glClearColor__wrapper,_emscripten_glBlendColor__wrapper]; -var FUNCTION_TABLE_vdd = [b20,_emscripten_glDepthRange__wrapper,_emscripten_glDepthRangef__wrapper,_emscripten_glPolygonOffset__wrapper]; -var FUNCTION_TABLE_v = [b21,_UpdateDrawFrame,_emscripten_glLoadIdentity__wrapper,_emscripten_glReleaseShaderCompiler__wrapper,_emscripten_glFinish__wrapper,_emscripten_glFlush__wrapper,b21,b21]; -var FUNCTION_TABLE_viid = [b22,_emscripten_glTexParameterf__wrapper]; -var FUNCTION_TABLE_viiii = [b23,_MouseButtonCallback,_emscripten_glBufferData__wrapper,_emscripten_glBufferSubData__wrapper,_emscripten_glUniform3i__wrapper,_emscripten_glUniformMatrix2fv__wrapper,_emscripten_glUniformMatrix3fv__wrapper,_emscripten_glUniformMatrix4fv__wrapper,_emscripten_glGetAttachedShaders__wrapper,_emscripten_glShaderSource__wrapper,_emscripten_glGetShaderSource__wrapper,_emscripten_glGetShaderInfoLog__wrapper,_emscripten_glGetShaderPrecisionFormat__wrapper,_emscripten_glGetProgramInfoLog__wrapper,_emscripten_glFramebufferRenderbuffer__wrapper,_emscripten_glGetFramebufferAttachmentParameteriv__wrapper,_emscripten_glGetInfoLogARB__wrapper,_emscripten_glVertexPointer__wrapper,_emscripten_glTexCoordPointer__wrapper,_emscripten_glColorPointer__wrapper,_emscripten_glDrawElements__wrapper,_emscripten_glDrawArraysInstanced__wrapper,_emscripten_glViewport__wrapper,_emscripten_glScissor__wrapper,_emscripten_glColorMask__wrapper,_emscripten_glRenderbufferStorage__wrapper,_emscripten_glBlendFuncSeparate__wrapper,_emscripten_glStencilFuncSeparate__wrapper,_emscripten_glStencilOpSeparate__wrapper,b23,b23,b23]; - - return { _llvm_bswap_i32: _llvm_bswap_i32, _roundf: _roundf, _main: _main, dynCall_i: dynCall_i, _i64Subtract: _i64Subtract, ___udivdi3: ___udivdi3, dynCall_vidddd: dynCall_vidddd, setThrew: setThrew, dynCall_viii: dynCall_viii, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, ___errno_location: ___errno_location, _memset: _memset, _sbrk: _sbrk, _memcpy: _memcpy, stackAlloc: stackAlloc, dynCall_vd: dynCall_vd, dynCall_vii: dynCall_vii, ___uremdi3: ___uremdi3, dynCall_vid: dynCall_vid, dynCall_vi: dynCall_vi, dynCall_viiiiiii: dynCall_viiiiiii, getTempRet0: getTempRet0, setTempRet0: setTempRet0, _i64Add: _i64Add, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_iiii: dynCall_iiii, _emscripten_get_global_libc: _emscripten_get_global_libc, dynCall_viid: dynCall_viid, dynCall_ii: dynCall_ii, _emscripten_GetProcAddress: _emscripten_GetProcAddress, dynCall_viiii: dynCall_viiii, stackSave: stackSave, dynCall_viiiii: dynCall_viiiii, dynCall_viddd: dynCall_viddd, dynCall_vidd: dynCall_vidd, _free: _free, runPostSets: runPostSets, dynCall_viiiiii: dynCall_viiiiii, establishStackSpace: establishStackSpace, _strstr: _strstr, stackRestore: stackRestore, _malloc: _malloc, dynCall_iii: dynCall_iii, dynCall_vdi: dynCall_vdi, dynCall_viiiiiiiii: dynCall_viiiiiiiii, dynCall_vdd: dynCall_vdd, dynCall_v: dynCall_v, dynCall_vdddddd: dynCall_vdddddd, dynCall_vdddd: dynCall_vdddd }; -}) -// EMSCRIPTEN_END_ASM -(Module.asmGlobalArg, Module.asmLibraryArg, buffer); - -var real__llvm_bswap_i32 = asm["_llvm_bswap_i32"]; asm["_llvm_bswap_i32"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__llvm_bswap_i32.apply(null, arguments); -}; - -var real__roundf = asm["_roundf"]; asm["_roundf"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__roundf.apply(null, arguments); -}; - -var real__main = asm["_main"]; asm["_main"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__main.apply(null, arguments); -}; - -var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_getTempRet0.apply(null, arguments); -}; - -var real____udivdi3 = asm["___udivdi3"]; asm["___udivdi3"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____udivdi3.apply(null, arguments); -}; - -var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_setThrew.apply(null, arguments); -}; - -var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__bitshift64Lshr.apply(null, arguments); -}; - -var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__bitshift64Shl.apply(null, arguments); -}; - -var real__fflush = asm["_fflush"]; asm["_fflush"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__fflush.apply(null, arguments); -}; - -var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____errno_location.apply(null, arguments); -}; - -var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__sbrk.apply(null, arguments); -}; - -var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackAlloc.apply(null, arguments); -}; - -var real____uremdi3 = asm["___uremdi3"]; asm["___uremdi3"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____uremdi3.apply(null, arguments); -}; - -var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__i64Subtract.apply(null, arguments); -}; - -var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_setTempRet0.apply(null, arguments); -}; - -var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__i64Add.apply(null, arguments); -}; - -var real__emscripten_get_global_libc = asm["_emscripten_get_global_libc"]; asm["_emscripten_get_global_libc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__emscripten_get_global_libc.apply(null, arguments); -}; - -var real__emscripten_GetProcAddress = asm["_emscripten_GetProcAddress"]; asm["_emscripten_GetProcAddress"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__emscripten_GetProcAddress.apply(null, arguments); -}; - -var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackSave.apply(null, arguments); -}; - -var real__free = asm["_free"]; asm["_free"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__free.apply(null, arguments); -}; - -var real_establishStackSpace = asm["establishStackSpace"]; asm["establishStackSpace"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_establishStackSpace.apply(null, arguments); -}; - -var real__strstr = asm["_strstr"]; asm["_strstr"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__strstr.apply(null, arguments); -}; - -var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackRestore.apply(null, arguments); -}; - -var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__malloc.apply(null, arguments); -}; -var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"]; -var _roundf = Module["_roundf"] = asm["_roundf"]; -var _main = Module["_main"] = asm["_main"]; -var getTempRet0 = Module["getTempRet0"] = asm["getTempRet0"]; -var ___udivdi3 = Module["___udivdi3"] = asm["___udivdi3"]; -var setThrew = Module["setThrew"] = asm["setThrew"]; -var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; -var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; -var _fflush = Module["_fflush"] = asm["_fflush"]; -var ___errno_location = Module["___errno_location"] = asm["___errno_location"]; -var _memset = Module["_memset"] = asm["_memset"]; -var _sbrk = Module["_sbrk"] = asm["_sbrk"]; -var _memcpy = Module["_memcpy"] = asm["_memcpy"]; -var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"]; -var ___uremdi3 = Module["___uremdi3"] = asm["___uremdi3"]; -var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; -var setTempRet0 = Module["setTempRet0"] = asm["setTempRet0"]; -var _i64Add = Module["_i64Add"] = asm["_i64Add"]; -var _emscripten_get_global_libc = Module["_emscripten_get_global_libc"] = asm["_emscripten_get_global_libc"]; -var _emscripten_GetProcAddress = Module["_emscripten_GetProcAddress"] = asm["_emscripten_GetProcAddress"]; -var stackSave = Module["stackSave"] = asm["stackSave"]; -var _free = Module["_free"] = asm["_free"]; -var runPostSets = Module["runPostSets"] = asm["runPostSets"]; -var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"]; -var _strstr = Module["_strstr"] = asm["_strstr"]; -var stackRestore = Module["stackRestore"] = asm["stackRestore"]; -var _malloc = Module["_malloc"] = asm["_malloc"]; -var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; -var dynCall_vd = Module["dynCall_vd"] = asm["dynCall_vd"]; -var dynCall_vid = Module["dynCall_vid"] = asm["dynCall_vid"]; -var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; -var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; -var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; -var dynCall_viddd = Module["dynCall_viddd"] = asm["dynCall_viddd"]; -var dynCall_vidd = Module["dynCall_vidd"] = asm["dynCall_vidd"]; -var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; -var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = asm["dynCall_viiiiiiii"]; -var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; -var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; -var dynCall_vidddd = Module["dynCall_vidddd"] = asm["dynCall_vidddd"]; -var dynCall_vdi = Module["dynCall_vdi"] = asm["dynCall_vdi"]; -var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = asm["dynCall_viiiiiii"]; -var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = asm["dynCall_viiiiiiiii"]; -var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; -var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; -var dynCall_vdddddd = Module["dynCall_vdddddd"] = asm["dynCall_vdddddd"]; -var dynCall_vdddd = Module["dynCall_vdddd"] = asm["dynCall_vdddd"]; -var dynCall_vdd = Module["dynCall_vdd"] = asm["dynCall_vdd"]; -var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; -var dynCall_viid = Module["dynCall_viid"] = asm["dynCall_viid"]; -var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; -; -Runtime.stackAlloc = Module['stackAlloc']; -Runtime.stackSave = Module['stackSave']; -Runtime.stackRestore = Module['stackRestore']; -Runtime.establishStackSpace = Module['establishStackSpace']; -Runtime.setTempRet0 = Module['setTempRet0']; -Runtime.getTempRet0 = Module['getTempRet0']; - - -// === Auto-generated postamble setup entry stuff === - -Module['asm'] = asm; - - - - - - -/** - * @constructor - * @extends {Error} - */ -function ExitStatus(status) { - this.name = "ExitStatus"; - this.message = "Program terminated with exit(" + status + ")"; - this.status = status; -}; -ExitStatus.prototype = new Error(); -ExitStatus.prototype.constructor = ExitStatus; - -var initialStackTop; -var preloadStartTime = null; -var calledMain = false; - -dependenciesFulfilled = function runCaller() { - // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) - if (!Module['calledRun']) run(); - if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled -} - -Module['callMain'] = Module.callMain = function callMain(args) { - assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)'); - assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); - - args = args || []; - - ensureInitRuntime(); - - var argc = args.length+1; - function pad() { - for (var i = 0; i < 4-1; i++) { - argv.push(0); - } - } - var argv = [allocate(intArrayFromString(Module['thisProgram']), 'i8', ALLOC_NORMAL) ]; - pad(); - for (var i = 0; i < argc-1; i = i + 1) { - argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL)); - pad(); - } - argv.push(0); - argv = allocate(argv, 'i32', ALLOC_NORMAL); - - - try { - - var ret = Module['_main'](argc, argv, 0); - - - // if we're not running an evented main loop, it's time to exit - exit(ret, /* implicit = */ true); - } - catch(e) { - if (e instanceof ExitStatus) { - // exit() throws this once it's done to make sure execution - // has been stopped completely - return; - } else if (e == 'SimulateInfiniteLoop') { - // running an evented main loop, don't immediately exit - Module['noExitRuntime'] = true; - return; - } else { - var toLog = e; - if (e && typeof e === 'object' && e.stack) { - toLog = [e, e.stack]; - } - Module.printErr('exception thrown: ' + toLog); - Module['quit'](1, e); - } - } finally { - calledMain = true; - } -} - - - - -/** @type {function(Array=)} */ -function run(args) { - args = args || Module['arguments']; - - if (preloadStartTime === null) preloadStartTime = Date.now(); - - if (runDependencies > 0) { - return; - } - - writeStackCookie(); - - preRun(); - - if (runDependencies > 0) return; // a preRun added a dependency, run will be called later - if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame - - function doRun() { - if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening - Module['calledRun'] = true; - - if (ABORT) return; - - ensureInitRuntime(); - - preMain(); - - if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) { - Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms'); - } - - if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); - - if (Module['_main'] && shouldRunNow) Module['callMain'](args); - - postRun(); - } - - if (Module['setStatus']) { - Module['setStatus']('Running...'); - setTimeout(function() { - setTimeout(function() { - Module['setStatus'](''); - }, 1); - doRun(); - }, 1); - } else { - doRun(); - } - checkStackCookie(); -} -Module['run'] = Module.run = run; - -function exit(status, implicit) { - if (implicit && Module['noExitRuntime']) { - Module.printErr('exit(' + status + ') implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)'); - return; - } - - if (Module['noExitRuntime']) { - Module.printErr('exit(' + status + ') called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)'); - } else { - - ABORT = true; - EXITSTATUS = status; - STACKTOP = initialStackTop; - - exitRuntime(); - - if (Module['onExit']) Module['onExit'](status); - } - - if (ENVIRONMENT_IS_NODE) { - process['exit'](status); - } - Module['quit'](status, new ExitStatus(status)); -} -Module['exit'] = Module.exit = exit; - -var abortDecorators = []; - -function abort(what) { - if (Module['onAbort']) { - Module['onAbort'](what); - } - - if (what !== undefined) { - Module.print(what); - Module.printErr(what); - what = JSON.stringify(what) - } else { - what = ''; - } - - ABORT = true; - EXITSTATUS = 1; - - var extra = ''; - - var output = 'abort(' + what + ') at ' + stackTrace() + extra; - if (abortDecorators) { - abortDecorators.forEach(function(decorator) { - output = decorator(output, what); - }); - } - throw output; -} -Module['abort'] = Module.abort = abort; - -// {{PRE_RUN_ADDITIONS}} - -if (Module['preInit']) { - if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; - while (Module['preInit'].length > 0) { - Module['preInit'].pop()(); - } -} - -// shouldRunNow refers to calling main(), not run(). -var shouldRunNow = true; -if (Module['noInitialRun']) { - shouldRunNow = false; -} - - -run(); - -// {{POST_RUN_ADDITIONS}} - - - - - -// {{MODULE_ADDITIONS}} - - - diff --git a/examples/web/core/core_color_select.png b/examples/web/core/core_color_select.png deleted file mode 100644 index 93ab83a..0000000 Binary files a/examples/web/core/core_color_select.png and /dev/null differ diff --git a/examples/web/core/core_custom_logging.png b/examples/web/core/core_custom_logging.png new file mode 100644 index 0000000..478fef7 Binary files /dev/null and b/examples/web/core/core_custom_logging.png differ diff --git a/examples/web/core/core_gestures_detection.c b/examples/web/core/core_gestures_detection.c deleted file mode 100644 index b74f8c3..0000000 --- a/examples/web/core/core_gestures_detection.c +++ /dev/null @@ -1,160 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Gestures Detection (adapted for HTML5 platform) -* -* This example has been created using raylib 1.4 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" -#include - -#if defined(PLATFORM_WEB) - #include -#endif - -#if defined(PLATFORM_ANDROID) - #include "android_native_app_glue.h" -#endif - -#define MAX_GESTURE_STRINGS 20 - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -int screenWidth = 800; -int screenHeight = 450; - -Vector2 touchPosition; -Rectangle touchArea; - -int gesturesCount = 0; -char gestureStrings[MAX_GESTURE_STRINGS][32]; - -int currentGesture = GESTURE_NONE; -int lastGesture = GESTURE_NONE; - -//---------------------------------------------------------------------------------- -// Module Functions Declaration -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void); // Update and Draw one frame - -//---------------------------------------------------------------------------------- -// Main Enry Point -//---------------------------------------------------------------------------------- -#if defined(PLATFORM_ANDROID) -void android_main(struct android_app *app) -#else -int main(void) -#endif -{ - // Initialization - //-------------------------------------------------------------------------------------- -#if defined(PLATFORM_ANDROID) - InitWindow(screenWidth, screenHeight, app); -#else - InitWindow(screenWidth, screenHeight, "raylib [core] example - Gestures Detection"); -#endif - - touchPosition = (Vector2){ 0, 0 }; - touchArea = (Rectangle){ 220, 10, screenWidth - 230, screenHeight - 20 }; - - //SetGesturesEnabled(0b0000000000001001); // Enable only some gestures to be detected - -#if defined(PLATFORM_WEB) - emscripten_set_main_loop(UpdateDrawFrame, 0, 1); -#else - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - UpdateDrawFrame(); - } -#endif - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- -#if !defined(PLATFORM_ANDROID) - return 0; -#endif -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void) -{ - // Update - //---------------------------------------------------------------------------------- - lastGesture = currentGesture; - currentGesture = GetGestureDetected(); - touchPosition = GetTouchPosition(0); - - if (CheckCollisionPointRec(touchPosition, touchArea) && (currentGesture != GESTURE_NONE)) - { - if (currentGesture != lastGesture) - { - // Store gesture string - switch (currentGesture) - { - case GESTURE_TAP: strcpy(gestureStrings[gesturesCount], "GESTURE TAP"); break; - case GESTURE_DOUBLETAP: strcpy(gestureStrings[gesturesCount], "GESTURE DOUBLETAP"); break; - case GESTURE_HOLD: strcpy(gestureStrings[gesturesCount], "GESTURE HOLD"); break; - case GESTURE_DRAG: strcpy(gestureStrings[gesturesCount], "GESTURE DRAG"); break; - case GESTURE_SWIPE_RIGHT: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE RIGHT"); break; - case GESTURE_SWIPE_LEFT: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE LEFT"); break; - case GESTURE_SWIPE_UP: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE UP"); break; - case GESTURE_SWIPE_DOWN: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE DOWN"); break; - case GESTURE_PINCH_IN: strcpy(gestureStrings[gesturesCount], "GESTURE PINCH IN"); break; - case GESTURE_PINCH_OUT: strcpy(gestureStrings[gesturesCount], "GESTURE PINCH OUT"); break; - default: break; - } - - gesturesCount++; - - // Reset gestures strings - if (gesturesCount >= MAX_GESTURE_STRINGS) - { - for (int i = 0; i < MAX_GESTURE_STRINGS; i++) strcpy(gestureStrings[i], "\0"); - - gesturesCount = 0; - } - } - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawRectangleRec(touchArea, GRAY); - DrawRectangle(225, 15, screenWidth - 240, screenHeight - 30, RAYWHITE); - - DrawText("GESTURES TEST AREA", screenWidth - 270, screenHeight - 40, 20, Fade(GRAY, 0.5f)); - - for (int i = 0; i < gesturesCount; i++) - { - if (i%2 == 0) DrawRectangle(10, 30 + 20*i, 200, 20, Fade(LIGHTGRAY, 0.5f)); - else DrawRectangle(10, 30 + 20*i, 200, 20, Fade(LIGHTGRAY, 0.3f)); - - if (i < gesturesCount - 1) DrawText(gestureStrings[i], 35, 36 + 20*i, 10, DARKGRAY); - else DrawText(gestureStrings[i], 35, 36 + 20*i, 10, MAROON); - } - - DrawRectangleLines(10, 29, 200, screenHeight - 50, GRAY); - DrawText("DETECTED GESTURES", 50, 15, 10, GRAY); - - if (currentGesture != GESTURE_NONE) DrawCircleV(touchPosition, 30, MAROON); - - EndDrawing(); - //---------------------------------------------------------------------------------- -} \ No newline at end of file diff --git a/examples/web/core/core_gestures_detection.html b/examples/web/core/core_gestures_detection.html deleted file mode 100644 index 9106923..0000000 --- a/examples/web/core/core_gestures_detection.html +++ /dev/null @@ -1 +0,0 @@ -raylib HTML5 GAME
Downloading...
\ No newline at end of file diff --git a/examples/web/core/core_gestures_detection.js b/examples/web/core/core_gestures_detection.js deleted file mode 100644 index aba10b9..0000000 --- a/examples/web/core/core_gestures_detection.js +++ /dev/null @@ -1 +0,0 @@ -var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=function(status,toThrow){throw toThrow};Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(Module["ENVIRONMENT"]){throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)")}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+"/";var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);Module["quit"]=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){return read(f)}}Module["readBinary"]=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=function(status){quit(status)}}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=function(title){document.title=title}}else{throw new Error("environment detection error")}var out=Module["print"]||(typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null);var err=Module["printErr"]||(typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;assert(typeof Module["memoryInitializerPrefixURL"]==="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["pthreadMainPrefixURL"]==="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["cdInitializerPrefixURL"]==="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["filePackagePrefixURL"]==="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead");stackSave=stackRestore=stackAlloc=function(){abort("cannot use the stack before compiled code is ready to run, and has provided stack access")};function dynamicAlloc(size){assert(DYNAMICTOP_PTR);var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end<=_emscripten_get_heap_size()){HEAP32[DYNAMICTOP_PTR>>2]=end}else{return 0}return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var asm2wasmImports={"f64-rem":function(x,y){return x%y},"debugger":function(){debugger}};var functionPointers=new Array(0);if(typeof WebAssembly!=="object"){abort("No WebAssembly support found. Build with -s WASM=0 to target JavaScript instead.")}var wasmMemory;var wasmTable;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var ALLOC_NORMAL=0;var ALLOC_NONE=3;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,stackAlloc,dynamicAlloc][allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var stop;ptr=ret;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;if(u>=2097152)warnOnce("Invalid Unicode code point 0x"+u.toString(16)+" encountered when serializing a JS string to an UTF-8 string on the asm.js/wasm heap! (Valid unicode code points should be in range 0-0x1FFFFF).");outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){assert(typeof maxBytesToWrite=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}function demangle(func){warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}var WASM_PAGE_SIZE=65536;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STACK_BASE=27616,STACK_MAX=5270496,DYNAMIC_BASE=5270496,DYNAMICTOP_PTR=27360;assert(STACK_BASE%16===0,"stack must start aligned");assert(DYNAMIC_BASE%16===0,"heap must start aligned");var TOTAL_STACK=5242880;if(Module["TOTAL_STACK"])assert(TOTAL_STACK===Module["TOTAL_STACK"],"the stack size can no longer be determined at runtime");var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(INITIAL_TOTAL_MEMORY>2]=DYNAMIC_BASE;function writeStackCookie(){assert((STACK_MAX&3)==0);HEAPU32[(STACK_MAX>>2)-1]=34821223;HEAPU32[(STACK_MAX>>2)-2]=2310721022}function checkStackCookie(){if(HEAPU32[(STACK_MAX>>2)-1]!=34821223||HEAPU32[(STACK_MAX>>2)-2]!=2310721022){abort("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x"+HEAPU32[(STACK_MAX>>2)-2].toString(16)+" "+HEAPU32[(STACK_MAX>>2)-1].toString(16))}if(HEAP32[0]!==1668509029)throw"Runtime error: The application has corrupted its heap memory area (address zero)!"}function abortStackOverflow(allocSize){abort("Stack overflow! Attempted to allocate "+allocSize+" bytes on the stack, but stack has only "+(STACK_MAX-stackSave()+allocSize)+" bytes available!")}HEAP32[0]=1668509029;HEAP16[1]=25459;if(HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){checkStackCookie();if(runtimeInitialized)return;runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){checkStackCookie();FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){checkStackCookie();runtimeExited=true}function postRun(){checkStackCookie();if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}assert(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function getUniqueRunDependency(id){var orig=id;while(1){if(!runDependencyTracking[id])return id;id=orig+Math.random()}return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!=="undefined"){runDependencyWatcher=setInterval(function(){if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;err("still waiting on run dependencies:")}err("dependency: "+dep)}if(shown){err("(end of list)")}},1e4)}}else{err("warning: run dependency added without ID")}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{err("warning: run dependency removed without ID")}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile="core_gestures_detection.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(Module["wasmBinary"]){return new Uint8Array(Module["wasmBinary"])}if(Module["readBinary"]){return Module["readBinary"](wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!Module["wasmBinary"]&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(env){var info={"env":env,"global":{"NaN":NaN,Infinity:Infinity},"global.Math":Math,"asm2wasm":asm2wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}var trueModule=Module;function receiveInstantiatedSource(output){assert(Module===trueModule,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");trueModule=null;receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}if(!Module["wasmBinary"]&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch==="function"){WebAssembly.instantiateStreaming(fetch(wasmBinaryFile,{credentials:"same-origin"}),info).then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})}else{instantiateArrayBuffer(receiveInstantiatedSource)}return{}}Module["asm"]=function(global,env,providedBuffer){env["memory"]=wasmMemory;env["table"]=wasmTable=new WebAssembly.Table({"initial":316,"maximum":316,"element":"anyfunc"});env["__memory_base"]=1024;env["__table_base"]=0;var exports=createWasm(env);assert(exports,"binaryen setup failed (no wasm support?)");return exports};var tempDoublePtr=27600;assert(tempDoublePtr%8==0);function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___lock(){}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;else err("failed to set errno from JS");return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)},resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=function(e){done(this.error);e.preventDefault()};create.sort().forEach(function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};var NODEFS={isWindows:false,staticInit:function(){NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process["binding"]("constants");if(flags["fs"]){flags=flags["fs"]}NODEFS.flagsForNodeMap={1024:flags["O_APPEND"],64:flags["O_CREAT"],128:flags["O_EXCL"],0:flags["O_RDONLY"],2:flags["O_RDWR"],4096:flags["O_SYNC"],512:flags["O_TRUNC"],1:flags["O_WRONLY"]}},bufferFrom:function(arrayBuffer){return Buffer.alloc?Buffer.from(arrayBuffer):new Buffer(arrayBuffer)},mount:function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)},createNode:function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node},getMode:function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&292)>>2}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode},realPath:function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)},flagsForNode:function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(!flags){return newFlags}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}},node_ops:{getattr:function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr:function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},lookup:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)},mknod:function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node},rename:function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},unlink:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},rmdir:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readdir:function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},symlink:function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readlink:function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}},stream_ops:{open:function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},close:function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},read:function(stream,buffer,offset,length,position){if(length===0)return 0;try{return fs.readSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}},write:function(stream,buffer,offset,length,position){try{return fs.writeSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size},write:function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}}};var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)},lookupPath:function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(40)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(40)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 13}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 13}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 13}return 0},mayLookup:function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return 13;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 17}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return 20}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 16}}else{if(FS.isDir(node.mode)){return 21}}return 0},mayOpen:function(node,flags){if(!node){return 2}if(FS.isLink(node.mode)){return 40}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 21}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(24)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(29)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(16)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(16)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(20)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(22)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(22)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(1)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(5)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(5)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0},doMsync:function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},getStreamFromFD:function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream},getSocketFromFD:function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket},getSocketAddress:function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21509:case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0}case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0}case 21524:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___unlock(){}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){console.error("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.");return 1}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg,noSetTiming){Module["noExitRuntime"]=true;assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=func;Browser.mainLoop.arg=arg;var browserIterationFunc;if(typeof arg!=="undefined"){browserIterationFunc=function(){Module["dynCall_vi"](func,arg)}}else{browserIterationFunc=function(){Module["dynCall_v"](func)}}var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}if(Browser.mainLoop.method==="timeout"&&Module.ctx){err("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter(browserIterationFunc);checkStackCookie();if(thisMainLoopId0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);if(vrDevice){canvasContainer.requestFullscreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullscreen()}},requestFullScreen:function(lockPointer,resizeCanvas,vrDevice){err("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.");Browser.requestFullScreen=function(lockPointer,resizeCanvas,vrDevice){return Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)};return Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:function(func){return function(){if(!ABORT)return func.apply(null,arguments)}},allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=false},resumeAsyncCallbacks:function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach(function(func){func()})}},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}})},safeSetTimeout:function(func,timeout){Module["noExitRuntime"]=true;return setTimeout(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}},timeout)},safeSetInterval:function(func,timeout){Module["noExitRuntime"]=true;return setInterval(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}},timeout)},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;assert(typeof scrollX!=="undefined"&&typeof scrollY!=="undefined","Unable to retrieve scroll position, mouse positions likely broken.");if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},asyncLoad:function(url,onload,onerror,noRunDep){var dep=!noRunDep?getUniqueRunDependency("al "+url):"";Module["readAsync"](url,function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}});if(dep)addRunDependency(dep)},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAP32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};function _eglGetProcAddress(name_){return _emscripten_GetProcAddress(name_)}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence0},removeAllHandlersOnTarget:function(target,eventTypeString){for(var i=0;i0||window.pageYOffset>0){return[window.pageXOffset,window.pageYOffset]}if(typeof document.documentElement.scrollLeft!=="undefined"||typeof document.documentElement.scrollTop!=="undefined"){return[document.documentElement.scrollLeft,document.documentElement.scrollTop]}return[document.body.scrollLeft|0,document.body.scrollTop|0]},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},tick:function(){if(window["performance"]&&window["performance"]["now"])return window["performance"]["now"]();else return Date.now()},fullscreenEnabled:function(){return document.fullscreenEnabled||document.mozFullScreenEnabled||document.webkitFullscreenEnabled||document.msFullscreenEnabled}};function __requestPointerLock(target){if(target.requestPointerLock){target.requestPointerLock()}else if(target.mozRequestPointerLock){target.mozRequestPointerLock()}else if(target.webkitRequestPointerLock){target.webkitRequestPointerLock()}else if(target.msRequestPointerLock){target.msRequestPointerLock()}else{if(document.body.requestPointerLock||document.body.mozRequestPointerLock||document.body.webkitRequestPointerLock||document.body.msRequestPointerLock){return-3}else{return-1}}return 0}function _emscripten_exit_pointerlock(){JSEvents.removeDeferredCalls(__requestPointerLock);if(document.exitPointerLock){document.exitPointerLock()}else if(document.msExitPointerLock){document.msExitPointerLock()}else if(document.mozExitPointerLock){document.mozExitPointerLock()}else if(document.webkitExitPointerLock){document.webkitExitPointerLock()}else{return-1}return 0}function __fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(!JSEvents.lastGamepadState)throw"emscripten_get_gamepad_status() can only be called after having first called emscripten_sample_gamepad_data() and that function has returned EMSCRIPTEN_RESULT_SUCCESS!";if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;__fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_heap_size(){return HEAP8.length}function _emscripten_get_num_gamepads(){if(!JSEvents.lastGamepadState)throw"emscripten_get_num_gamepads() can only be called after having first called emscripten_sample_gamepad_data() and that function has returned EMSCRIPTEN_RESULT_SUCCESS!";return JSEvents.lastGamepadState.length}function __fillPointerlockChangeEventData(eventStruct,e){var pointerLockElement=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement||document.msPointerLockElement;var isPointerlocked=!!pointerLockElement;HEAP32[eventStruct>>2]=isPointerlocked;var nodeName=JSEvents.getNodeNameForTarget(pointerLockElement);var id=pointerLockElement&&pointerLockElement.id?pointerLockElement.id:"";stringToUTF8(nodeName,eventStruct+4,128);stringToUTF8(id,eventStruct+132,128)}function _emscripten_get_pointerlock_status(pointerlockStatus){if(pointerlockStatus)__fillPointerlockChangeEventData(pointerlockStatus);if(!document.body||!document.body.requestPointerLock&&!document.body.mozRequestPointerLock&&!document.body.webkitRequestPointerLock&&!document.body.msRequestPointerLock){return-1}return 0}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){GL.miniTempBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext("webgl",webGLContextAttributes)||canvas.getContext("experimental-webgl",webGLContextAttributes);return ctx&&GL.registerContext(ctx,webGLContextAttributes)},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle]);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;if(context.version<2){var instancedArraysExt=GLctx.getExtension("ANGLE_instanced_arrays");if(instancedArraysExt){GLctx["vertexAttribDivisor"]=function(index,divisor){instancedArraysExt["vertexAttribDivisorANGLE"](index,divisor)};GLctx["drawArraysInstanced"]=function(mode,first,count,primcount){instancedArraysExt["drawArraysInstancedANGLE"](mode,first,count,primcount)};GLctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){instancedArraysExt["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)}}var vaoExt=GLctx.getExtension("OES_vertex_array_object");if(vaoExt){GLctx["createVertexArray"]=function(){return vaoExt["createVertexArrayOES"]()};GLctx["deleteVertexArray"]=function(vao){vaoExt["deleteVertexArrayOES"](vao)};GLctx["bindVertexArray"]=function(vao){vaoExt["bindVertexArrayOES"](vao)};GLctx["isVertexArray"]=function(vao){return vaoExt["isVertexArrayOES"](vao)}}var drawBuffersExt=GLctx.getExtension("WEBGL_draw_buffers");if(drawBuffersExt){GLctx["drawBuffers"]=function(n,bufs){drawBuffersExt["drawBuffersWEBGL"](n,bufs)}}}GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query");var automaticallyEnabledExtensions=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","EXT_frag_depth","WEBGL_draw_buffers","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","EXT_blend_minmax","EXT_shader_texture_lod","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_sRGB","WEBGL_compressed_texture_etc1","EXT_disjoint_timer_query","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_astc","EXT_color_buffer_float","WEBGL_compressed_texture_s3tc_srgb","EXT_disjoint_timer_query_webgl2"];var exts=GLctx.getSupportedExtensions();if(exts&&exts.length>0){GLctx.getSupportedExtensions().forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})}},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GL.currArrayBuffer)GL.currArrayBuffer=0;if(id==GL.currElementArrayBuffer)GL.currElementArrayBuffer=0}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null;GL.programInfos[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.timerQueriesEXT[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.timerQueriesEXT[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var __tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=__tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.timerQueriesEXT);query.name=id;GL.timerQueriesEXT[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx.getActiveAttrib(program,index);if(!info)return;if(bufSize>0&&name){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx.getActiveUniform(program,index);if(!info)return;if(bufSize>0&&name){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=="Integer"&&type!=="Integer64"){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case"Float":HEAPF32[p+i*4>>2]=result[i];break;case"Boolean":HEAP8[p+i>>0]=result[i]?1:0;break;default:throw"internal glGet error, bad type: "+type}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);return}}switch(type){case"Integer64":tempI64=[ret>>>0,(tempDouble=ret,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[p>>2]=tempI64[0],HEAP32[p+4>>2]=tempI64[1];break;case"Integer":HEAP32[p>>2]=ret;break;case"Float":HEAPF32[p>>2]=ret;break;case"Boolean":HEAP8[p>>0]=ret?1:0;break;default:throw"internal glGet error, bad type: "+type}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,"Boolean")}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){if(GL.lastError){var error=GL.lastError;GL.lastError=0;return error}else{return GLctx.getError()}}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,"Float")}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,"Integer")}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";if(maxLength>0&&infoLog){var numBytesWrittenExclNull=stringToUTF8(log,infoLog,maxLength);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}var ptable=GL.programInfos[program];if(!ptable){GL.recordError(1282);return}if(pname==35716){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){HEAP32[p>>2]=ptable.maxUniformLength}else if(pname==35722){if(ptable.maxAttributeLength==-1){program=GL.programs[program];var numAttribs=GLctx.getProgramParameter(program,35721);ptable.maxAttributeLength=0;for(var i=0;i>2]=ptable.maxAttributeLength}else if(pname==35381){if(ptable.maxUniformBlockNameLength==-1){program=GL.programs[program];var numBlocks=GLctx.getProgramParameter(program,35382);ptable.maxUniformBlockNameLength=0;for(var i=0;i>2]=ptable.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(GL.programs[program],pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}tempI64=[ret>>>0,(tempDouble=ret,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[params>>2]=tempI64[0],HEAP32[params+4>>2]=tempI64[1]}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}tempI64=[ret>>>0,(tempDouble=ret,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[params>>2]=tempI64[0],HEAP32[params+4>>2]=tempI64[1]}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.timerQueriesEXT[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";if(maxLength>0&&infoLog){var numBytesWrittenExclNull=stringToUTF8(log,infoLog,maxLength);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;if(bufSize>0&&source){var numBytesWrittenExclNull=stringToUTF8(result,source,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source===null||source.length==0?0:source.length+1;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){if(GL.stringCache[name_])return GL.stringCache[name_];var ret;switch(name_){case 7939:var exts=GLctx.getSupportedExtensions();var gl_exts=[];for(var i=0;i>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetUniformLocation(program,name){name=UTF8ToString(name);var arrayIndex=0;if(name[name.length-1]=="]"){var leftBrace=name.lastIndexOf("[");arrayIndex=name[leftBrace+1]!="]"?parseInt(name.slice(leftBrace+1)):0;name=name.slice(0,leftBrace)}var uniformInfo=GL.programInfos[program]&&GL.programInfos[program].uniforms[name];if(uniformInfo&&arrayIndex>=0&&arrayIndex>2]=data;break;case"Float":HEAPF32[params>>2]=data;break;default:throw"internal emscriptenWebGLGetUniform() error, bad type: "+type}}else{for(var i=0;i>2]=data[i];break;case"Float":HEAPF32[params+i*4>>2]=data[i];break;default:throw"internal emscriptenWebGLGetUniform() error, bad type: "+type}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,"Float")}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,"Integer")}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case"Integer":HEAP32[params>>2]=data;break;case"Float":HEAPF32[params>>2]=data;break;case"FloatToInteger":HEAP32[params>>2]=Math.fround(data);break;default:throw"internal emscriptenWebGLGetVertexAttrib() error, bad type: "+type}}else{for(var i=0;i>2]=data[i];break;case"Float":HEAPF32[params+i*4>>2]=data[i];break;case"FloatToInteger":HEAP32[params+i*4>>2]=Math.fround(data[i]);break;default:throw"internal emscriptenWebGLGetVertexAttrib() error, bad type: "+type}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,"Float")}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,"FloatToInteger")}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.timerQueriesEXT[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){GLctx.linkProgram(GL.programs[program]);GL.populateUniformTable(program)}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.timerQueriesEXT[id],target)}function __computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}var __colorChannelsInGlTextureFormat={6402:1,6406:1,6407:3,6408:4,6409:1,6410:2,35904:3,35906:4};var __sizeOfGlTextureElementType={5121:1,5123:2,5125:4,5126:4,32819:2,32820:2,33635:2,34042:4,36193:2};function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var sizePerPixel=__colorChannelsInGlTextureFormat[format]*__sizeOfGlTextureElementType[type];if(!sizePerPixel){GL.recordError(1280);return}var bytes=__computeUnpackAlignedImageSize(width,height,sizePerPixel,GL.unpackAlignment);var end=pixels+bytes;switch(type){case 5121:return HEAPU8.subarray(pixels,end);case 5126:return HEAPF32.subarray(pixels>>2,end>>2);case 5125:case 34042:return HEAPU32.subarray(pixels>>2,end>>2);case 5123:case 33635:case 32819:case 32820:case 36193:return HEAPU16.subarray(pixels>>1,end>>1);default:GL.recordError(1280)}}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(GL.uniforms[location],v0)}function _emscripten_glUniform1fv(location,count,value){if(count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(GL.uniforms[location],view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(GL.uniforms[location],v0)}function _emscripten_glUniform1iv(location,count,value){GLctx.uniform1iv(GL.uniforms[location],HEAP32.subarray(value>>2,value+count*4>>2))}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(GL.uniforms[location],v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(2*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(GL.uniforms[location],view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(GL.uniforms[location],v0,v1)}function _emscripten_glUniform2iv(location,count,value){GLctx.uniform2iv(GL.uniforms[location],HEAP32.subarray(value>>2,value+count*8>>2))}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(GL.uniforms[location],v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(3*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(GL.uniforms[location],view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(GL.uniforms[location],v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){GLctx.uniform3iv(GL.uniforms[location],HEAP32.subarray(value>>2,value+count*12>>2))}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(GL.uniforms[location],v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(4*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(GL.uniforms[location],view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(GL.uniforms[location],v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){GLctx.uniform4iv(GL.uniforms[location],HEAP32.subarray(value>>2,value+count*16>>2))}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(4*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(GL.uniforms[location],!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(9*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(GL.uniforms[location],!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(16*count<=GL.MINI_TEMP_BUFFER_SIZE){var view=GL.miniTempBufferViews[16*count-1];for(var i=0;i<16*count;i+=16){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2];view[i+9]=HEAPF32[value+(4*i+36)>>2];view[i+10]=HEAPF32[value+(4*i+40)>>2];view[i+11]=HEAPF32[value+(4*i+44)>>2];view[i+12]=HEAPF32[value+(4*i+48)>>2];view[i+13]=HEAPF32[value+(4*i+52)>>2];view[i+14]=HEAPF32[value+(4*i+56)>>2];view[i+15]=HEAPF32[value+(4*i+60)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(GL.uniforms[location],!!transpose,view)}function _emscripten_glUseProgram(program){GLctx.useProgram(GL.programs[program])}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}var __specialEventTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function __findEventTarget(target){warnOnce("Rules for selecting event targets in HTML5 API are changing: instead of using document.getElementById() that only can refer to elements by their DOM ID, new event target selection mechanism uses the more flexible function document.querySelector() that can look up element names, classes, and complex CSS selectors. Build with -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 to change to the new lookup rules. See https://github.com/emscripten-core/emscripten/pull/7977 for more details.");try{if(!target)return window;if(typeof target==="number")target=__specialEventTargets[target]||UTF8ToString(target);if(target==="#window")return window;else if(target==="#document")return document;else if(target==="#screen")return screen;else if(target==="#canvas")return Module["canvas"];return typeof target==="string"?document.getElementById(target):target}catch(e){return null}}function _emscripten_request_pointerlock(target,deferUntilInEventHandler){if(!target)target="#canvas";target=__findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock&&!target.mozRequestPointerLock&&!target.webkitRequestPointerLock&&!target.msRequestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(__requestPointerLock,2,[target]);return 1}else{return-2}}return __requestPointerLock(target)}function abortOnCannotGrowMemory(requestedSize){abort("Cannot enlarge memory arrays to size "+requestedSize+" bytes (OOM). Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+HEAP8.length+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function _emscripten_resize_heap(requestedSize){abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function __fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=JSEvents.tick();HEAP32[eventStruct+8>>2]=e.screenX;HEAP32[eventStruct+12>>2]=e.screenY;HEAP32[eventStruct+16>>2]=e.clientX;HEAP32[eventStruct+20>>2]=e.clientY;HEAP32[eventStruct+24>>2]=e.ctrlKey;HEAP32[eventStruct+28>>2]=e.shiftKey;HEAP32[eventStruct+32>>2]=e.altKey;HEAP32[eventStruct+36>>2]=e.metaKey;HEAP16[eventStruct+40>>1]=e.button;HEAP16[eventStruct+42>>1]=e.buttons;HEAP32[eventStruct+44>>2]=e["movementX"]||e["mozMovementX"]||e["webkitMovementX"]||e.screenX-JSEvents.previousScreenX;HEAP32[eventStruct+48>>2]=e["movementY"]||e["mozMovementY"]||e["webkitMovementY"]||e.screenY-JSEvents.previousScreenY;if(Module["canvas"]){var rect=Module["canvas"].getBoundingClientRect();HEAP32[eventStruct+60>>2]=e.clientX-rect.left;HEAP32[eventStruct+64>>2]=e.clientY-rect.top}else{HEAP32[eventStruct+60>>2]=0;HEAP32[eventStruct+64>>2]=0}if(target){var rect=JSEvents.getBoundingClientRectOrZeros(target);HEAP32[eventStruct+52>>2]=e.clientX-rect.left;HEAP32[eventStruct+56>>2]=e.clientY-rect.top}else{HEAP32[eventStruct+52>>2]=0;HEAP32[eventStruct+56>>2]=0}if(e.type!=="wheel"&&e.type!=="mousewheel"){JSEvents.previousScreenX=e.screenX;JSEvents.previousScreenY=e.screenY}}function __registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=__findEventTarget(target);var mouseEventHandlerFunc=function(event){var e=event||window.event;__fillMouseEventData(JSEvents.mouseEvent,e,target);if(dynCall_iiii(callbackfunc,eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};if(JSEvents.isInternetExplorer()&&eventTypeString=="mousedown")eventHandler.allowsDeferredCalls=false;JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function __fillFullscreenChangeEventData(eventStruct,e){var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;var isFullscreen=!!fullscreenElement;HEAP32[eventStruct>>2]=isFullscreen;HEAP32[eventStruct+4>>2]=JSEvents.fullscreenEnabled();var reportedElement=isFullscreen?fullscreenElement:JSEvents.previousFullscreenElement;var nodeName=JSEvents.getNodeNameForTarget(reportedElement);var id=reportedElement&&reportedElement.id?reportedElement.id:"";stringToUTF8(nodeName,eventStruct+8,128);stringToUTF8(id,eventStruct+136,128);HEAP32[eventStruct+264>>2]=reportedElement?reportedElement.clientWidth:0;HEAP32[eventStruct+268>>2]=reportedElement?reportedElement.clientHeight:0;HEAP32[eventStruct+272>>2]=screen.width;HEAP32[eventStruct+276>>2]=screen.height;if(isFullscreen){JSEvents.previousFullscreenElement=fullscreenElement}}function __registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.fullscreenChangeEvent)JSEvents.fullscreenChangeEvent=_malloc(280);var fullscreenChangeEventhandlerFunc=function(event){var e=event||window.event;var fullscreenChangeEvent=JSEvents.fullscreenChangeEvent;__fillFullscreenChangeEventData(fullscreenChangeEvent,e);if(dynCall_iiii(callbackfunc,eventTypeId,fullscreenChangeEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:false,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:fullscreenChangeEventhandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_fullscreenchange_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){if(typeof JSEvents.fullscreenEnabled()==="undefined")return-1;target=target?__findEventTarget(target):__specialEventTargets[1];if(!target)return-4;__registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"fullscreenchange",targetThread);__registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"mozfullscreenchange",targetThread);__registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"webkitfullscreenchange",targetThread);__registerFullscreenChangeEventCallback(target,userData,useCapture,callbackfunc,19,"msfullscreenchange",targetThread);return 0}function __registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(event){var e=event||window.event;var gamepadEvent=JSEvents.gamepadEvent;__fillGamepadEventData(gamepadEvent,e.gamepad);if(dynCall_iiii(callbackfunc,eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:__findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;__registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;__registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function __registerKeyEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(164);var keyEventHandlerFunc=function(event){var e=event||window.event;var keyEventData=JSEvents.keyEvent;stringToUTF8(e.key?e.key:"",keyEventData+0,32);stringToUTF8(e.code?e.code:"",keyEventData+32,32);HEAP32[keyEventData+64>>2]=e.location;HEAP32[keyEventData+68>>2]=e.ctrlKey;HEAP32[keyEventData+72>>2]=e.shiftKey;HEAP32[keyEventData+76>>2]=e.altKey;HEAP32[keyEventData+80>>2]=e.metaKey;HEAP32[keyEventData+84>>2]=e.repeat;stringToUTF8(e.locale?e.locale:"",keyEventData+88,32);stringToUTF8(e.char?e.char:"",keyEventData+120,32);HEAP32[keyEventData+152>>2]=e.charCode;HEAP32[keyEventData+156>>2]=e.keyCode;HEAP32[keyEventData+160>>2]=e.which;if(dynCall_iiii(callbackfunc,eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:__findEventTarget(target),allowsDeferredCalls:JSEvents.isInternetExplorer()?false:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_keypress_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerKeyEventCallback(target,userData,useCapture,callbackfunc,1,"keypress",targetThread);return 0}function __registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1684);target=__findEventTarget(target);var touchEventHandlerFunc=function(event){var e=event||window.event;var touches={};for(var i=0;i>2]=e.ctrlKey;HEAP32[ptr+8>>2]=e.shiftKey;HEAP32[ptr+12>>2]=e.altKey;HEAP32[ptr+16>>2]=e.metaKey;ptr+=20;var canvasRect=Module["canvas"]?Module["canvas"].getBoundingClientRect():undefined;var targetRect=JSEvents.getBoundingClientRectOrZeros(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[ptr>>2]=t.identifier;HEAP32[ptr+4>>2]=t.screenX;HEAP32[ptr+8>>2]=t.screenY;HEAP32[ptr+12>>2]=t.clientX;HEAP32[ptr+16>>2]=t.clientY;HEAP32[ptr+20>>2]=t.pageX;HEAP32[ptr+24>>2]=t.pageY;HEAP32[ptr+28>>2]=t.changed;HEAP32[ptr+32>>2]=t.onTarget;if(canvasRect){HEAP32[ptr+44>>2]=t.clientX-canvasRect.left;HEAP32[ptr+48>>2]=t.clientY-canvasRect.top}else{HEAP32[ptr+44>>2]=0;HEAP32[ptr+48>>2]=0}HEAP32[ptr+36>>2]=t.clientX-targetRect.left;HEAP32[ptr+40>>2]=t.clientY-targetRect.top;ptr+=52;if(++numTouches>=32){break}}HEAP32[touchEvent>>2]=numTouches;if(dynCall_iiii(callbackfunc,eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){__registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function _exit(status){exit(status)}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GL.currArrayBuffer)GL.currArrayBuffer=0;if(id==GL.currElementArrayBuffer)GL.currElementArrayBuffer=0}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null;GL.programInfos[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,"Float")}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";if(maxLength>0&&infoLog){var numBytesWrittenExclNull=stringToUTF8(log,infoLog,maxLength);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}var ptable=GL.programInfos[program];if(!ptable){GL.recordError(1282);return}if(pname==35716){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){HEAP32[p>>2]=ptable.maxUniformLength}else if(pname==35722){if(ptable.maxAttributeLength==-1){program=GL.programs[program];var numAttribs=GLctx.getProgramParameter(program,35721);ptable.maxAttributeLength=0;for(var i=0;i>2]=ptable.maxAttributeLength}else if(pname==35381){if(ptable.maxUniformBlockNameLength==-1){program=GL.programs[program];var numBlocks=GLctx.getProgramParameter(program,35382);ptable.maxUniformBlockNameLength=0;for(var i=0;i>2]=ptable.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(GL.programs[program],pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";if(maxLength>0&&infoLog){var numBytesWrittenExclNull=stringToUTF8(log,infoLog,maxLength);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source===null||source.length==0?0:source.length+1;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){if(GL.stringCache[name_])return GL.stringCache[name_];var ret;switch(name_){case 7939:var exts=GLctx.getSupportedExtensions();var gl_exts=[];for(var i=0;i=0&&arrayIndex>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2];view[i+9]=HEAPF32[value+(4*i+36)>>2];view[i+10]=HEAPF32[value+(4*i+40)>>2];view[i+11]=HEAPF32[value+(4*i+44)>>2];view[i+12]=HEAPF32[value+(4*i+48)>>2];view[i+13]=HEAPF32[value+(4*i+52)>>2];view[i+14]=HEAPF32[value+(4*i+56)>>2];view[i+15]=HEAPF32[value+(4*i+60)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(GL.uniforms[location],!!transpose,view)}function _glUseProgram(program){GLctx.useProgram(GL.programs[program])}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}var GLFW={Window:function(id,width,height,title,monitor,share){this.id=id;this.x=0;this.y=0;this.fullscreen=false;this.storedX=0;this.storedY=0;this.width=width;this.height=height;this.storedWidth=width;this.storedHeight=height;this.title=title;this.monitor=monitor;this.share=share;this.attributes=GLFW.hints;this.inputModes={208897:212993,208898:0,208899:0};this.buttons=0;this.keys=new Array;this.domKeys=new Array;this.shouldClose=0;this.title=null;this.windowPosFunc=null;this.windowSizeFunc=null;this.windowCloseFunc=null;this.windowRefreshFunc=null;this.windowFocusFunc=null;this.windowIconifyFunc=null;this.framebufferSizeFunc=null;this.mouseButtonFunc=null;this.cursorPosFunc=null;this.cursorEnterFunc=null;this.scrollFunc=null;this.dropFunc=null;this.keyFunc=null;this.charFunc=null;this.userptr=null},WindowFromId:function(id){if(id<=0||!GLFW.windows)return null;return GLFW.windows[id-1]},joystickFunc:null,errorFunc:null,monitorFunc:null,active:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0},DOMToGLFWKeyCode:function(keycode){switch(keycode){case 32:return 32;case 222:return 39;case 188:return 44;case 173:return 45;case 189:return 45;case 190:return 46;case 191:return 47;case 48:return 48;case 49:return 49;case 50:return 50;case 51:return 51;case 52:return 52;case 53:return 53;case 54:return 54;case 55:return 55;case 56:return 56;case 57:return 57;case 59:return 59;case 61:return 61;case 187:return 61;case 65:return 65;case 66:return 66;case 67:return 67;case 68:return 68;case 69:return 69;case 70:return 70;case 71:return 71;case 72:return 72;case 73:return 73;case 74:return 74;case 75:return 75;case 76:return 76;case 77:return 77;case 78:return 78;case 79:return 79;case 80:return 80;case 81:return 81;case 82:return 82;case 83:return 83;case 84:return 84;case 85:return 85;case 86:return 86;case 87:return 87;case 88:return 88;case 89:return 89;case 90:return 90;case 219:return 91;case 220:return 92;case 221:return 93;case 192:return 94;case 27:return 256;case 13:return 257;case 9:return 258;case 8:return 259;case 45:return 260;case 46:return 261;case 39:return 262;case 37:return 263;case 40:return 264;case 38:return 265;case 33:return 266;case 34:return 267;case 36:return 268;case 35:return 269;case 20:return 280;case 145:return 281;case 144:return 282;case 44:return 283;case 19:return 284;case 112:return 290;case 113:return 291;case 114:return 292;case 115:return 293;case 116:return 294;case 117:return 295;case 118:return 296;case 119:return 297;case 120:return 298;case 121:return 299;case 122:return 300;case 123:return 301;case 124:return 302;case 125:return 303;case 126:return 304;case 127:return 305;case 128:return 306;case 129:return 307;case 130:return 308;case 131:return 309;case 132:return 310;case 133:return 311;case 134:return 312;case 135:return 313;case 136:return 314;case 96:return 320;case 97:return 321;case 98:return 322;case 99:return 323;case 100:return 324;case 101:return 325;case 102:return 326;case 103:return 327;case 104:return 328;case 105:return 329;case 110:return 330;case 111:return 331;case 106:return 332;case 109:return 333;case 107:return 334;case 16:return 340;case 17:return 341;case 18:return 342;case 91:return 343;case 93:return 348;default:return-1}},getModBits:function(win){var mod=0;if(win.keys[340])mod|=1;if(win.keys[341])mod|=2;if(win.keys[342])mod|=4;if(win.keys[343])mod|=8;return mod},onKeyPress:function(event){if(!GLFW.active||!GLFW.active.charFunc)return;if(event.ctrlKey||event.metaKey)return;var charCode=event.charCode;if(charCode==0||charCode>=0&&charCode<=31)return;dynCall_vii(GLFW.active.charFunc,GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;dynCall_viiiii(GLFW.active.keyFunc,GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;dynCall_vii(GLFW.active.cursorEnterFunc,GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;dynCall_vii(GLFW.active.cursorEnterFunc,GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}dynCall_vidd(GLFW.active.scrollFunc,GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;dynCall_viii(GLFW.active.windowSizeFunc,GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;dynCall_viii(GLFW.active.framebufferSizeFunc,GLFW.active.id,GLFW.active.width,GLFW.active.height)},requestFullscreen:function(){var RFS=Module["canvas"]["requestFullscreen"]||Module["canvas"]["mozRequestFullScreen"]||Module["canvas"]["webkitRequestFullScreen"]||function(){};RFS.apply(Module["canvas"],[])},requestFullScreen:function(){err("GLFW.requestFullScreen() is deprecated. Please call GLFW.requestFullscreen instead.");GLFW.requestFullScreen=function(){return GLFW.requestFullscreen()};return GLFW.requestFullscreen()},exitFullscreen:function(){Browser.exitFullscreen()},cancelFullScreen:function(){err("GLFW.cancelFullScreen() is deprecated. Please call GLFW.exitFullscreen instead.");GLFW.cancelFullScreen=function(){return GLFW.exitFullscreen()};return GLFW.exitFullscreen()},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}setValue(x,wx,"i32");setValue(y,wy,"i32")},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}setValue(width,ww,"i32");setValue(height,wh,"i32")},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){GLFW.requestFullscreen()}else{GLFW.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;dynCall_viii(win.windowSizeFunc,win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){GLFW.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}if(!Module.ctx)return 0;var win=new GLFW.Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)dynCall_vi(win.windowCloseFunc,win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}FS.staticInit();Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){err("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead.");Module["requestFullScreen"]=Module["requestFullscreen"];Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function _emscripten_get_now_actual(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else if(typeof performance==="object"&&performance&&typeof performance["now"]==="function"){_emscripten_get_now=function(){return performance["now"]()}}else{_emscripten_get_now=Date.now}var GLctx;GL.init();for(var i=0;i<32;i++)__tempFixedLengthArray.push(new Array(i));function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var debug_table_ff=["0","_stbir__support_zero","_stbir__support_trapezoid","_stbir__support_one","_stbir__support_two","0","0","0"];var debug_table_fff=["0","_stbir__filter_trapezoid","_stbir__filter_triangle","_stbir__filter_cubic","_stbir__filter_catmullrom","_stbir__filter_mitchell","0","0"];var debug_table_i=["0","_emscripten_glCreateProgram","_emscripten_glGetError","0"];var debug_table_ii=["0","___stdio_close","_emscripten_glCheckFramebufferStatus","_emscripten_glCreateShader","_emscripten_glGetString","_emscripten_glIsBuffer","_emscripten_glIsEnabled","_emscripten_glIsFramebuffer","_emscripten_glIsProgram","_emscripten_glIsRenderbuffer","_emscripten_glIsShader","_emscripten_glIsTexture","_emscripten_glIsQueryEXT","_emscripten_glIsVertexArrayOES","0","0"];var debug_table_iii=["0","_emscripten_glGetAttribLocation","_emscripten_glGetUniformLocation","0"];var debug_table_iiii=["0","___stdout_write","___stdio_seek","_sn_write","_EmscriptenFullscreenChangeCallback","_EmscriptenKeyboardCallback","_EmscriptenMouseCallback","_EmscriptenTouchCallback","_EmscriptenGamepadCallback","___stdio_write","___stdio_read","0","0","0","0","0"];var debug_table_iiiii=["0"];var debug_table_v=["0","_UpdateDrawFrame","_emscripten_glFinish","_emscripten_glFlush","_emscripten_glReleaseShaderCompiler","0","0","0"];var debug_table_vf=["0","_emscripten_glClearDepthf$legalf32","_emscripten_glLineWidth$legalf32","0"];var debug_table_vff=["0","_emscripten_glDepthRangef$legalf32","_emscripten_glPolygonOffset$legalf32","0"];var debug_table_vffff=["0","_emscripten_glBlendColor$legalf32","_emscripten_glClearColor$legalf32","0"];var debug_table_vfi=["0","_emscripten_glSampleCoverage$legalf32"];var debug_table_vi=["0","_emscripten_glActiveTexture","_emscripten_glBlendEquation","_emscripten_glClear","_emscripten_glClearStencil","_emscripten_glCompileShader","_emscripten_glCullFace","_emscripten_glDeleteProgram","_emscripten_glDeleteShader","_emscripten_glDepthFunc","_emscripten_glDepthMask","_emscripten_glDisable","_emscripten_glDisableVertexAttribArray","_emscripten_glEnable","_emscripten_glEnableVertexAttribArray","_emscripten_glFrontFace","_emscripten_glGenerateMipmap","_emscripten_glLinkProgram","_emscripten_glStencilMask","_emscripten_glUseProgram","_emscripten_glValidateProgram","_emscripten_glEndQueryEXT","_emscripten_glBindVertexArrayOES","0","0","0","0","0","0","0","0","0"];var debug_table_vidd=["0","_MouseCursorPosCallback","_ScrollCallback","0"];var debug_table_vif=["0","_emscripten_glUniform1f$legalf32","_emscripten_glVertexAttrib1f$legalf32","0"];var debug_table_viff=["0","_emscripten_glUniform2f$legalf32","_emscripten_glVertexAttrib2f$legalf32","0"];var debug_table_vifff=["0","_emscripten_glUniform3f$legalf32","_emscripten_glVertexAttrib3f$legalf32","0"];var debug_table_viffff=["0","_emscripten_glUniform4f$legalf32","_emscripten_glVertexAttrib4f$legalf32","0"];var debug_table_vii=["0","_ErrorCallback","_CursorEnterCallback","_CharCallback","_WindowIconifyCallback","_emscripten_glVertexAttribDivisorANGLE","_emscripten_glAttachShader","_emscripten_glBindBuffer","_emscripten_glBindFramebuffer","_emscripten_glBindRenderbuffer","_emscripten_glBindTexture","_emscripten_glBlendEquationSeparate","_emscripten_glBlendFunc","_emscripten_glDeleteBuffers","_emscripten_glDeleteFramebuffers","_emscripten_glDeleteRenderbuffers","_emscripten_glDeleteTextures","_emscripten_glDetachShader","_emscripten_glGenBuffers","_emscripten_glGenFramebuffers","_emscripten_glGenRenderbuffers","_emscripten_glGenTextures","_emscripten_glGetBooleanv","_emscripten_glGetFloatv","_emscripten_glGetIntegerv","_emscripten_glHint","_emscripten_glPixelStorei","_emscripten_glStencilMaskSeparate","_emscripten_glUniform1i","_emscripten_glVertexAttrib1fv","_emscripten_glVertexAttrib2fv","_emscripten_glVertexAttrib3fv","_emscripten_glVertexAttrib4fv","_emscripten_glGenQueriesEXT","_emscripten_glDeleteQueriesEXT","_emscripten_glBeginQueryEXT","_emscripten_glQueryCounterEXT","_emscripten_glDeleteVertexArraysOES","_emscripten_glGenVertexArraysOES","_emscripten_glDrawBuffersWEBGL","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"];var debug_table_viif=["0","_emscripten_glTexParameterf$legalf32"];var debug_table_viii=["0","_WindowSizeCallback","_WindowDropCallback","_emscripten_glBindAttribLocation","_emscripten_glDrawArrays","_emscripten_glGetBufferParameteriv","_emscripten_glGetProgramiv","_emscripten_glGetRenderbufferParameteriv","_emscripten_glGetShaderiv","_emscripten_glGetTexParameterfv","_emscripten_glGetTexParameteriv","_emscripten_glGetUniformfv","_emscripten_glGetUniformiv","_emscripten_glGetVertexAttribfv","_emscripten_glGetVertexAttribiv","_emscripten_glGetVertexAttribPointerv","_emscripten_glStencilFunc","_emscripten_glStencilOp","_emscripten_glTexParameterfv","_emscripten_glTexParameteri","_emscripten_glTexParameteriv","_emscripten_glUniform1fv","_emscripten_glUniform1iv","_emscripten_glUniform2fv","_emscripten_glUniform2i","_emscripten_glUniform2iv","_emscripten_glUniform3fv","_emscripten_glUniform3iv","_emscripten_glUniform4fv","_emscripten_glUniform4iv","_emscripten_glGetQueryivEXT","_emscripten_glGetQueryObjectivEXT","_emscripten_glGetQueryObjectuivEXT","_emscripten_glGetQueryObjecti64vEXT","_emscripten_glGetQueryObjectui64vEXT","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"];var debug_table_viiii=["0","_MouseButtonCallback","_emscripten_glBlendFuncSeparate","_emscripten_glBufferData","_emscripten_glBufferSubData","_emscripten_glColorMask","_emscripten_glDrawElements","_emscripten_glFramebufferRenderbuffer","_emscripten_glGetAttachedShaders","_emscripten_glGetFramebufferAttachmentParameteriv","_emscripten_glGetProgramInfoLog","_emscripten_glGetShaderInfoLog","_emscripten_glGetShaderPrecisionFormat","_emscripten_glGetShaderSource","_emscripten_glRenderbufferStorage","_emscripten_glScissor","_emscripten_glShaderSource","_emscripten_glStencilFuncSeparate","_emscripten_glStencilOpSeparate","_emscripten_glUniform3i","_emscripten_glUniformMatrix2fv","_emscripten_glUniformMatrix3fv","_emscripten_glUniformMatrix4fv","_emscripten_glViewport","_emscripten_glDrawArraysInstancedANGLE","0","0","0","0","0","0","0"];var debug_table_viiiii=["0","_KeyCallback","_emscripten_glFramebufferTexture2D","_emscripten_glShaderBinary","_emscripten_glUniform4i","_emscripten_glDrawElementsInstancedANGLE","0","0"];var debug_table_viiiiii=["0","_emscripten_glVertexAttribPointer"];var debug_table_viiiiiii=["0","_emscripten_glGetActiveAttrib","_emscripten_glGetActiveUniform","_emscripten_glReadPixels"];var debug_table_viiiiiiii=["0","_emscripten_glCompressedTexImage2D","_emscripten_glCopyTexImage2D","_emscripten_glCopyTexSubImage2D"];var debug_table_viiiiiiiii=["0","_emscripten_glCompressedTexSubImage2D","_emscripten_glTexImage2D","_emscripten_glTexSubImage2D"];var debug_table_viiji=["0"];function nullFunc_ff(x){err("Invalid function pointer '"+x+"' called with signature 'ff'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: fff: "+debug_table_fff[x]+" vff: "+debug_table_vff[x]+" vf: "+debug_table_vf[x]+" viff: "+debug_table_viff[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" i: "+debug_table_i[x]+" v: "+debug_table_v[x]+" ii: "+debug_table_ii[x]+" vi: "+debug_table_vi[x]+" vffff: "+debug_table_vffff[x]+" vifff: "+debug_table_vifff[x]+" viif: "+debug_table_viif[x]+" iii: "+debug_table_iii[x]+" vii: "+debug_table_vii[x]+" viffff: "+debug_table_viffff[x]+" iiii: "+debug_table_iiii[x]+" vidd: "+debug_table_vidd[x]+" viii: "+debug_table_viii[x]+" iiiii: "+debug_table_iiiii[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" viiiii: "+debug_table_viiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_fff(x){err("Invalid function pointer '"+x+"' called with signature 'fff'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: ff: "+debug_table_ff[x]+" vff: "+debug_table_vff[x]+" vf: "+debug_table_vf[x]+" vffff: "+debug_table_vffff[x]+" viff: "+debug_table_viff[x]+" vifff: "+debug_table_vifff[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" viffff: "+debug_table_viffff[x]+" viif: "+debug_table_viif[x]+" ii: "+debug_table_ii[x]+" vi: "+debug_table_vi[x]+" i: "+debug_table_i[x]+" v: "+debug_table_v[x]+" iii: "+debug_table_iii[x]+" vii: "+debug_table_vii[x]+" iiii: "+debug_table_iiii[x]+" vidd: "+debug_table_vidd[x]+" viii: "+debug_table_viii[x]+" iiiii: "+debug_table_iiiii[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" viiiii: "+debug_table_viiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_i(x){err("Invalid function pointer '"+x+"' called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: ii: "+debug_table_ii[x]+" iii: "+debug_table_iii[x]+" iiii: "+debug_table_iiii[x]+" iiiii: "+debug_table_iiiii[x]+" vi: "+debug_table_vi[x]+" v: "+debug_table_v[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" vii: "+debug_table_vii[x]+" ff: "+debug_table_ff[x]+" vf: "+debug_table_vf[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" viif: "+debug_table_viif[x]+" viii: "+debug_table_viii[x]+" fff: "+debug_table_fff[x]+" vff: "+debug_table_vff[x]+" vifff: "+debug_table_vifff[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" viffff: "+debug_table_viffff[x]+" viiiii: "+debug_table_viiiii[x]+" vffff: "+debug_table_vffff[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_ii(x){err("Invalid function pointer '"+x+"' called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: i: "+debug_table_i[x]+" iii: "+debug_table_iii[x]+" iiii: "+debug_table_iiii[x]+" iiiii: "+debug_table_iiiii[x]+" vii: "+debug_table_vii[x]+" vi: "+debug_table_vi[x]+" viif: "+debug_table_viif[x]+" viii: "+debug_table_viii[x]+" vif: "+debug_table_vif[x]+" vfi: "+debug_table_vfi[x]+" v: "+debug_table_v[x]+" ff: "+debug_table_ff[x]+" vf: "+debug_table_vf[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" fff: "+debug_table_fff[x]+" vff: "+debug_table_vff[x]+" viiiii: "+debug_table_viiiii[x]+" vifff: "+debug_table_vifff[x]+" viffff: "+debug_table_viffff[x]+" viiiiii: "+debug_table_viiiiii[x]+" vffff: "+debug_table_vffff[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_iii(x){err("Invalid function pointer '"+x+"' called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: ii: "+debug_table_ii[x]+" iiii: "+debug_table_iiii[x]+" i: "+debug_table_i[x]+" iiiii: "+debug_table_iiiii[x]+" viii: "+debug_table_viii[x]+" vii: "+debug_table_vii[x]+" vi: "+debug_table_vi[x]+" viif: "+debug_table_viif[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" viiiii: "+debug_table_viiiii[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" ff: "+debug_table_ff[x]+" vf: "+debug_table_vf[x]+" v: "+debug_table_v[x]+" fff: "+debug_table_fff[x]+" vff: "+debug_table_vff[x]+" vifff: "+debug_table_vifff[x]+" viiiiii: "+debug_table_viiiiii[x]+" viffff: "+debug_table_viffff[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" vffff: "+debug_table_vffff[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_iiii(x){err("Invalid function pointer '"+x+"' called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: iii: "+debug_table_iii[x]+" ii: "+debug_table_ii[x]+" iiiii: "+debug_table_iiiii[x]+" i: "+debug_table_i[x]+" viii: "+debug_table_viii[x]+" viiii: "+debug_table_viiii[x]+" vii: "+debug_table_vii[x]+" vi: "+debug_table_vi[x]+" viif: "+debug_table_viif[x]+" viiji: "+debug_table_viiji[x]+" viiiii: "+debug_table_viiiii[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" viiiiii: "+debug_table_viiiiii[x]+" ff: "+debug_table_ff[x]+" vf: "+debug_table_vf[x]+" fff: "+debug_table_fff[x]+" v: "+debug_table_v[x]+" vff: "+debug_table_vff[x]+" vifff: "+debug_table_vifff[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viffff: "+debug_table_viffff[x]+" vffff: "+debug_table_vffff[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_iiiii(x){err("Invalid function pointer '"+x+"' called with signature 'iiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: iiii: "+debug_table_iiii[x]+" iii: "+debug_table_iii[x]+" ii: "+debug_table_ii[x]+" i: "+debug_table_i[x]+" viiii: "+debug_table_viiii[x]+" viii: "+debug_table_viii[x]+" viiiii: "+debug_table_viiiii[x]+" vii: "+debug_table_vii[x]+" viiji: "+debug_table_viiji[x]+" vi: "+debug_table_vi[x]+" viif: "+debug_table_viif[x]+" viiiiii: "+debug_table_viiiiii[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" ff: "+debug_table_ff[x]+" vf: "+debug_table_vf[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" fff: "+debug_table_fff[x]+" vff: "+debug_table_vff[x]+" vifff: "+debug_table_vifff[x]+" v: "+debug_table_v[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viffff: "+debug_table_viffff[x]+" vffff: "+debug_table_vffff[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_v(x){err("Invalid function pointer '"+x+"' called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: vf: "+debug_table_vf[x]+" vi: "+debug_table_vi[x]+" vff: "+debug_table_vff[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" vii: "+debug_table_vii[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" viif: "+debug_table_viif[x]+" viii: "+debug_table_viii[x]+" vffff: "+debug_table_vffff[x]+" vifff: "+debug_table_vifff[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" viffff: "+debug_table_viffff[x]+" viiiii: "+debug_table_viiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" i: "+debug_table_i[x]+" ff: "+debug_table_ff[x]+" ii: "+debug_table_ii[x]+" fff: "+debug_table_fff[x]+" iii: "+debug_table_iii[x]+" iiii: "+debug_table_iiii[x]+" iiiii: "+debug_table_iiiii[x]+" ");abort(x)}function nullFunc_vf(x){err("Invalid function pointer '"+x+"' called with signature 'vf'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: v: "+debug_table_v[x]+" vff: "+debug_table_vff[x]+" vfi: "+debug_table_vfi[x]+" vffff: "+debug_table_vffff[x]+" vif: "+debug_table_vif[x]+" ff: "+debug_table_ff[x]+" vi: "+debug_table_vi[x]+" viff: "+debug_table_viff[x]+" viif: "+debug_table_viif[x]+" fff: "+debug_table_fff[x]+" vii: "+debug_table_vii[x]+" i: "+debug_table_i[x]+" ii: "+debug_table_ii[x]+" vifff: "+debug_table_vifff[x]+" vidd: "+debug_table_vidd[x]+" viii: "+debug_table_viii[x]+" iii: "+debug_table_iii[x]+" viffff: "+debug_table_viffff[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" iiii: "+debug_table_iiii[x]+" viiiii: "+debug_table_viiiii[x]+" iiiii: "+debug_table_iiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_vff(x){err("Invalid function pointer '"+x+"' called with signature 'vff'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: vf: "+debug_table_vf[x]+" v: "+debug_table_v[x]+" vffff: "+debug_table_vffff[x]+" ff: "+debug_table_ff[x]+" viff: "+debug_table_viff[x]+" fff: "+debug_table_fff[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" vi: "+debug_table_vi[x]+" vifff: "+debug_table_vifff[x]+" viif: "+debug_table_viif[x]+" vii: "+debug_table_vii[x]+" viffff: "+debug_table_viffff[x]+" vidd: "+debug_table_vidd[x]+" viii: "+debug_table_viii[x]+" ii: "+debug_table_ii[x]+" i: "+debug_table_i[x]+" iii: "+debug_table_iii[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" iiii: "+debug_table_iiii[x]+" viiiii: "+debug_table_viiiii[x]+" iiiii: "+debug_table_iiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_vffff(x){err("Invalid function pointer '"+x+"' called with signature 'vffff'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: vff: "+debug_table_vff[x]+" vf: "+debug_table_vf[x]+" v: "+debug_table_v[x]+" fff: "+debug_table_fff[x]+" ff: "+debug_table_ff[x]+" vifff: "+debug_table_vifff[x]+" viff: "+debug_table_viff[x]+" viffff: "+debug_table_viffff[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" vi: "+debug_table_vi[x]+" viif: "+debug_table_viif[x]+" vii: "+debug_table_vii[x]+" vidd: "+debug_table_vidd[x]+" viii: "+debug_table_viii[x]+" ii: "+debug_table_ii[x]+" iii: "+debug_table_iii[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" i: "+debug_table_i[x]+" iiii: "+debug_table_iiii[x]+" viiiii: "+debug_table_viiiii[x]+" iiiii: "+debug_table_iiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_vfi(x){err("Invalid function pointer '"+x+"' called with signature 'vfi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: vf: "+debug_table_vf[x]+" v: "+debug_table_v[x]+" vi: "+debug_table_vi[x]+" vff: "+debug_table_vff[x]+" vii: "+debug_table_vii[x]+" vif: "+debug_table_vif[x]+" i: "+debug_table_i[x]+" ff: "+debug_table_ff[x]+" ii: "+debug_table_ii[x]+" viif: "+debug_table_viif[x]+" viii: "+debug_table_viii[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" fff: "+debug_table_fff[x]+" iii: "+debug_table_iii[x]+" vffff: "+debug_table_vffff[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" vifff: "+debug_table_vifff[x]+" iiii: "+debug_table_iiii[x]+" viiiii: "+debug_table_viiiii[x]+" viffff: "+debug_table_viffff[x]+" iiiii: "+debug_table_iiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_vi(x){err("Invalid function pointer '"+x+"' called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: v: "+debug_table_v[x]+" vif: "+debug_table_vif[x]+" vii: "+debug_table_vii[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" viif: "+debug_table_viif[x]+" viii: "+debug_table_viii[x]+" vifff: "+debug_table_vifff[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" viffff: "+debug_table_viffff[x]+" viiiii: "+debug_table_viiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" i: "+debug_table_i[x]+" vfi: "+debug_table_vfi[x]+" ii: "+debug_table_ii[x]+" vf: "+debug_table_vf[x]+" iii: "+debug_table_iii[x]+" vff: "+debug_table_vff[x]+" ff: "+debug_table_ff[x]+" iiii: "+debug_table_iiii[x]+" fff: "+debug_table_fff[x]+" iiiii: "+debug_table_iiiii[x]+" vffff: "+debug_table_vffff[x]+" ");abort(x)}function nullFunc_vidd(x){err("Invalid function pointer '"+x+"' called with signature 'vidd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: vi: "+debug_table_vi[x]+" v: "+debug_table_v[x]+" vif: "+debug_table_vif[x]+" vii: "+debug_table_vii[x]+" vfi: "+debug_table_vfi[x]+" ii: "+debug_table_ii[x]+" vf: "+debug_table_vf[x]+" viff: "+debug_table_viff[x]+" viif: "+debug_table_viif[x]+" viii: "+debug_table_viii[x]+" i: "+debug_table_i[x]+" iii: "+debug_table_iii[x]+" vff: "+debug_table_vff[x]+" vifff: "+debug_table_vifff[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" iiii: "+debug_table_iiii[x]+" ff: "+debug_table_ff[x]+" fff: "+debug_table_fff[x]+" viffff: "+debug_table_viffff[x]+" viiiii: "+debug_table_viiiii[x]+" iiiii: "+debug_table_iiiii[x]+" vffff: "+debug_table_vffff[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_vif(x){err("Invalid function pointer '"+x+"' called with signature 'vif'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: vi: "+debug_table_vi[x]+" viff: "+debug_table_viff[x]+" v: "+debug_table_v[x]+" vifff: "+debug_table_vifff[x]+" viffff: "+debug_table_viffff[x]+" vf: "+debug_table_vf[x]+" viif: "+debug_table_viif[x]+" vff: "+debug_table_vff[x]+" vii: "+debug_table_vii[x]+" vfi: "+debug_table_vfi[x]+" i: "+debug_table_i[x]+" ii: "+debug_table_ii[x]+" ff: "+debug_table_ff[x]+" vidd: "+debug_table_vidd[x]+" viii: "+debug_table_viii[x]+" fff: "+debug_table_fff[x]+" iii: "+debug_table_iii[x]+" vffff: "+debug_table_vffff[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" iiii: "+debug_table_iiii[x]+" viiiii: "+debug_table_viiiii[x]+" iiiii: "+debug_table_iiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_viff(x){err("Invalid function pointer '"+x+"' called with signature 'viff'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: vif: "+debug_table_vif[x]+" vi: "+debug_table_vi[x]+" vifff: "+debug_table_vifff[x]+" v: "+debug_table_v[x]+" viffff: "+debug_table_viffff[x]+" vff: "+debug_table_vff[x]+" vf: "+debug_table_vf[x]+" ff: "+debug_table_ff[x]+" viif: "+debug_table_viif[x]+" vii: "+debug_table_vii[x]+" fff: "+debug_table_fff[x]+" vfi: "+debug_table_vfi[x]+" ii: "+debug_table_ii[x]+" vidd: "+debug_table_vidd[x]+" viii: "+debug_table_viii[x]+" vffff: "+debug_table_vffff[x]+" i: "+debug_table_i[x]+" iii: "+debug_table_iii[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" iiii: "+debug_table_iiii[x]+" viiiii: "+debug_table_viiiii[x]+" iiiii: "+debug_table_iiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_vifff(x){err("Invalid function pointer '"+x+"' called with signature 'vifff'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: viff: "+debug_table_viff[x]+" vif: "+debug_table_vif[x]+" vi: "+debug_table_vi[x]+" viffff: "+debug_table_viffff[x]+" v: "+debug_table_v[x]+" vff: "+debug_table_vff[x]+" fff: "+debug_table_fff[x]+" vf: "+debug_table_vf[x]+" ff: "+debug_table_ff[x]+" vffff: "+debug_table_vffff[x]+" viif: "+debug_table_viif[x]+" vii: "+debug_table_vii[x]+" vfi: "+debug_table_vfi[x]+" ii: "+debug_table_ii[x]+" vidd: "+debug_table_vidd[x]+" viii: "+debug_table_viii[x]+" iii: "+debug_table_iii[x]+" i: "+debug_table_i[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" iiii: "+debug_table_iiii[x]+" iiiii: "+debug_table_iiiii[x]+" viiiii: "+debug_table_viiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_viffff(x){err("Invalid function pointer '"+x+"' called with signature 'viffff'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: viff: "+debug_table_viff[x]+" vifff: "+debug_table_vifff[x]+" vif: "+debug_table_vif[x]+" vi: "+debug_table_vi[x]+" v: "+debug_table_v[x]+" vffff: "+debug_table_vffff[x]+" vff: "+debug_table_vff[x]+" fff: "+debug_table_fff[x]+" vf: "+debug_table_vf[x]+" ff: "+debug_table_ff[x]+" viif: "+debug_table_viif[x]+" vii: "+debug_table_vii[x]+" vfi: "+debug_table_vfi[x]+" vidd: "+debug_table_vidd[x]+" viii: "+debug_table_viii[x]+" ii: "+debug_table_ii[x]+" iii: "+debug_table_iii[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" i: "+debug_table_i[x]+" iiii: "+debug_table_iiii[x]+" viiiii: "+debug_table_viiiii[x]+" iiiii: "+debug_table_iiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_vii(x){err("Invalid function pointer '"+x+"' called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: vi: "+debug_table_vi[x]+" viif: "+debug_table_viif[x]+" viii: "+debug_table_viii[x]+" v: "+debug_table_v[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" viiiii: "+debug_table_viiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ii: "+debug_table_ii[x]+" iii: "+debug_table_iii[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" i: "+debug_table_i[x]+" vf: "+debug_table_vf[x]+" iiii: "+debug_table_iiii[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" vff: "+debug_table_vff[x]+" iiiii: "+debug_table_iiiii[x]+" vifff: "+debug_table_vifff[x]+" ff: "+debug_table_ff[x]+" fff: "+debug_table_fff[x]+" viffff: "+debug_table_viffff[x]+" vffff: "+debug_table_vffff[x]+" ");abort(x)}function nullFunc_viif(x){err("Invalid function pointer '"+x+"' called with signature 'viif'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: vii: "+debug_table_vii[x]+" vi: "+debug_table_vi[x]+" v: "+debug_table_v[x]+" vif: "+debug_table_vif[x]+" ii: "+debug_table_ii[x]+" vf: "+debug_table_vf[x]+" viff: "+debug_table_viff[x]+" viii: "+debug_table_viii[x]+" iii: "+debug_table_iii[x]+" vfi: "+debug_table_vfi[x]+" vff: "+debug_table_vff[x]+" ff: "+debug_table_ff[x]+" iiii: "+debug_table_iiii[x]+" vidd: "+debug_table_vidd[x]+" vifff: "+debug_table_vifff[x]+" viiii: "+debug_table_viiii[x]+" viiji: "+debug_table_viiji[x]+" i: "+debug_table_i[x]+" fff: "+debug_table_fff[x]+" iiiii: "+debug_table_iiiii[x]+" vffff: "+debug_table_vffff[x]+" viffff: "+debug_table_viffff[x]+" viiiii: "+debug_table_viiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}function nullFunc_viii(x){err("Invalid function pointer '"+x+"' called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: vii: "+debug_table_vii[x]+" vi: "+debug_table_vi[x]+" viiii: "+debug_table_viiii[x]+" v: "+debug_table_v[x]+" viiiii: "+debug_table_viiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" iii: "+debug_table_iii[x]+" ii: "+debug_table_ii[x]+" iiii: "+debug_table_iiii[x]+" viif: "+debug_table_viif[x]+" viiji: "+debug_table_viiji[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" vf: "+debug_table_vf[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" iiiii: "+debug_table_iiiii[x]+" i: "+debug_table_i[x]+" vff: "+debug_table_vff[x]+" vifff: "+debug_table_vifff[x]+" ff: "+debug_table_ff[x]+" fff: "+debug_table_fff[x]+" viffff: "+debug_table_viffff[x]+" vffff: "+debug_table_vffff[x]+" ");abort(x)}function nullFunc_viiii(x){err("Invalid function pointer '"+x+"' called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: viii: "+debug_table_viii[x]+" vii: "+debug_table_vii[x]+" vi: "+debug_table_vi[x]+" viiiii: "+debug_table_viiiii[x]+" viiiiii: "+debug_table_viiiiii[x]+" v: "+debug_table_v[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" iiii: "+debug_table_iiii[x]+" iii: "+debug_table_iii[x]+" ii: "+debug_table_ii[x]+" iiiii: "+debug_table_iiiii[x]+" viiji: "+debug_table_viiji[x]+" viif: "+debug_table_viif[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" vf: "+debug_table_vf[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" vff: "+debug_table_vff[x]+" i: "+debug_table_i[x]+" vifff: "+debug_table_vifff[x]+" ff: "+debug_table_ff[x]+" fff: "+debug_table_fff[x]+" vffff: "+debug_table_vffff[x]+" viffff: "+debug_table_viffff[x]+" ");abort(x)}function nullFunc_viiiii(x){err("Invalid function pointer '"+x+"' called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: viii: "+debug_table_viii[x]+" viiii: "+debug_table_viiii[x]+" vii: "+debug_table_vii[x]+" vi: "+debug_table_vi[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" v: "+debug_table_v[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" iiii: "+debug_table_iiii[x]+" iiiii: "+debug_table_iiiii[x]+" iii: "+debug_table_iii[x]+" ii: "+debug_table_ii[x]+" viiji: "+debug_table_viiji[x]+" viif: "+debug_table_viif[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" vf: "+debug_table_vf[x]+" vff: "+debug_table_vff[x]+" vifff: "+debug_table_vifff[x]+" i: "+debug_table_i[x]+" ff: "+debug_table_ff[x]+" viffff: "+debug_table_viffff[x]+" fff: "+debug_table_fff[x]+" vffff: "+debug_table_vffff[x]+" ");abort(x)}function nullFunc_viiiiii(x){err("Invalid function pointer '"+x+"' called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: viii: "+debug_table_viii[x]+" viiii: "+debug_table_viiii[x]+" viiiii: "+debug_table_viiiii[x]+" vii: "+debug_table_vii[x]+" vi: "+debug_table_vi[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" v: "+debug_table_v[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" iiii: "+debug_table_iiii[x]+" iiiii: "+debug_table_iiiii[x]+" iii: "+debug_table_iii[x]+" viiji: "+debug_table_viiji[x]+" viif: "+debug_table_viif[x]+" ii: "+debug_table_ii[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" vf: "+debug_table_vf[x]+" vff: "+debug_table_vff[x]+" vifff: "+debug_table_vifff[x]+" i: "+debug_table_i[x]+" ff: "+debug_table_ff[x]+" viffff: "+debug_table_viffff[x]+" fff: "+debug_table_fff[x]+" vffff: "+debug_table_vffff[x]+" ");abort(x)}function nullFunc_viiiiiii(x){err("Invalid function pointer '"+x+"' called with signature 'viiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: viii: "+debug_table_viii[x]+" viiii: "+debug_table_viiii[x]+" viiiii: "+debug_table_viiiii[x]+" vii: "+debug_table_vii[x]+" viiiiii: "+debug_table_viiiiii[x]+" vi: "+debug_table_vi[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" v: "+debug_table_v[x]+" iiii: "+debug_table_iiii[x]+" iiiii: "+debug_table_iiiii[x]+" iii: "+debug_table_iii[x]+" viiji: "+debug_table_viiji[x]+" viif: "+debug_table_viif[x]+" ii: "+debug_table_ii[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" vf: "+debug_table_vf[x]+" vff: "+debug_table_vff[x]+" vifff: "+debug_table_vifff[x]+" ff: "+debug_table_ff[x]+" fff: "+debug_table_fff[x]+" viffff: "+debug_table_viffff[x]+" vffff: "+debug_table_vffff[x]+" i: "+debug_table_i[x]+" ");abort(x)}function nullFunc_viiiiiiii(x){err("Invalid function pointer '"+x+"' called with signature 'viiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: viii: "+debug_table_viii[x]+" viiii: "+debug_table_viiii[x]+" viiiii: "+debug_table_viiiii[x]+" vii: "+debug_table_vii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" vi: "+debug_table_vi[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" v: "+debug_table_v[x]+" iiiii: "+debug_table_iiiii[x]+" iiii: "+debug_table_iiii[x]+" iii: "+debug_table_iii[x]+" viiji: "+debug_table_viiji[x]+" viif: "+debug_table_viif[x]+" ii: "+debug_table_ii[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" vf: "+debug_table_vf[x]+" vff: "+debug_table_vff[x]+" vifff: "+debug_table_vifff[x]+" fff: "+debug_table_fff[x]+" viffff: "+debug_table_viffff[x]+" vffff: "+debug_table_vffff[x]+" ff: "+debug_table_ff[x]+" i: "+debug_table_i[x]+" ");abort(x)}function nullFunc_viiiiiiiii(x){err("Invalid function pointer '"+x+"' called with signature 'viiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: viiii: "+debug_table_viiii[x]+" viii: "+debug_table_viii[x]+" viiiii: "+debug_table_viiiii[x]+" vii: "+debug_table_vii[x]+" viiiiii: "+debug_table_viiiiii[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" vi: "+debug_table_vi[x]+" v: "+debug_table_v[x]+" iiiii: "+debug_table_iiiii[x]+" iiii: "+debug_table_iiii[x]+" iii: "+debug_table_iii[x]+" viiji: "+debug_table_viiji[x]+" viif: "+debug_table_viif[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" ii: "+debug_table_ii[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" vff: "+debug_table_vff[x]+" vf: "+debug_table_vf[x]+" vifff: "+debug_table_vifff[x]+" fff: "+debug_table_fff[x]+" viffff: "+debug_table_viffff[x]+" vffff: "+debug_table_vffff[x]+" ff: "+debug_table_ff[x]+" i: "+debug_table_i[x]+" ");abort(x)}function nullFunc_viiji(x){err("Invalid function pointer '"+x+"' called with signature 'viiji'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");err("This pointer might make sense in another type signature: vii: "+debug_table_vii[x]+" vi: "+debug_table_vi[x]+" v: "+debug_table_v[x]+" viii: "+debug_table_viii[x]+" iii: "+debug_table_iii[x]+" ii: "+debug_table_ii[x]+" viiii: "+debug_table_viiii[x]+" viif: "+debug_table_viif[x]+" iiii: "+debug_table_iiii[x]+" vfi: "+debug_table_vfi[x]+" vif: "+debug_table_vif[x]+" iiiii: "+debug_table_iiiii[x]+" vf: "+debug_table_vf[x]+" vidd: "+debug_table_vidd[x]+" viff: "+debug_table_viff[x]+" viiiii: "+debug_table_viiiii[x]+" vff: "+debug_table_vff[x]+" i: "+debug_table_i[x]+" vifff: "+debug_table_vifff[x]+" viiiiii: "+debug_table_viiiiii[x]+" ff: "+debug_table_ff[x]+" fff: "+debug_table_fff[x]+" vffff: "+debug_table_vffff[x]+" viffff: "+debug_table_viffff[x]+" viiiiiii: "+debug_table_viiiiiii[x]+" viiiiiiii: "+debug_table_viiiiiiii[x]+" viiiiiiiii: "+debug_table_viiiiiiiii[x]+" ");abort(x)}var asmGlobalArg={};var asmLibraryArg={"b":abortStackOverflow,"x":nullFunc_ff,"G":nullFunc_fff,"P":nullFunc_i,"z":nullFunc_ii,"I":nullFunc_iii,"j":nullFunc_iiii,"Na":nullFunc_iiiii,"r":nullFunc_v,"H":nullFunc_vf,"ia":nullFunc_vff,"ha":nullFunc_vffff,"je":nullFunc_vfi,"g":nullFunc_vi,"ga":nullFunc_vidd,"fa":nullFunc_vif,"ea":nullFunc_viff,"da":nullFunc_vifff,"ca":nullFunc_viffff,"e":nullFunc_vii,"Kc":nullFunc_viif,"d":nullFunc_viii,"i":nullFunc_viiii,"F":nullFunc_viiiii,"fc":nullFunc_viiiiii,"ac":nullFunc_viiiiiii,"Wb":nullFunc_viiiiiiii,"Ob":nullFunc_viiiiiiiii,"Gb":nullFunc_viiji,"c":___assert_fail,"qb":___lock,"O":___setErrNo,"pb":___syscall140,"ob":___syscall145,"N":___syscall146,"s":___syscall221,"nb":___syscall5,"M":___syscall54,"L":___syscall6,"A":___unlock,"y":_eglGetProcAddress,"K":_emscripten_exit_pointerlock,"mb":_emscripten_get_gamepad_status,"lb":_emscripten_get_heap_size,"kb":_emscripten_get_num_gamepads,"J":_emscripten_get_pointerlock_status,"jb":_emscripten_glActiveTexture,"ib":_emscripten_glAttachShader,"hb":_emscripten_glBeginQueryEXT,"gb":_emscripten_glBindAttribLocation,"fb":_emscripten_glBindBuffer,"eb":_emscripten_glBindFramebuffer,"db":_emscripten_glBindRenderbuffer,"cb":_emscripten_glBindTexture,"bb":_emscripten_glBindVertexArrayOES,"ab":_emscripten_glBlendColor,"$a":_emscripten_glBlendEquation,"_a":_emscripten_glBlendEquationSeparate,"Za":_emscripten_glBlendFunc,"Ya":_emscripten_glBlendFuncSeparate,"Xa":_emscripten_glBufferData,"Wa":_emscripten_glBufferSubData,"Va":_emscripten_glCheckFramebufferStatus,"Ua":_emscripten_glClear,"Ta":_emscripten_glClearColor,"Sa":_emscripten_glClearDepthf,"Ra":_emscripten_glClearStencil,"Qa":_emscripten_glColorMask,"Pa":_emscripten_glCompileShader,"Oa":_emscripten_glCompressedTexImage2D,"Ma":_emscripten_glCompressedTexSubImage2D,"La":_emscripten_glCopyTexImage2D,"Ka":_emscripten_glCopyTexSubImage2D,"Ja":_emscripten_glCreateProgram,"Ia":_emscripten_glCreateShader,"Ha":_emscripten_glCullFace,"Ga":_emscripten_glDeleteBuffers,"Fa":_emscripten_glDeleteFramebuffers,"Ea":_emscripten_glDeleteProgram,"Da":_emscripten_glDeleteQueriesEXT,"Ca":_emscripten_glDeleteRenderbuffers,"Ba":_emscripten_glDeleteShader,"Aa":_emscripten_glDeleteTextures,"za":_emscripten_glDeleteVertexArraysOES,"ya":_emscripten_glDepthFunc,"xa":_emscripten_glDepthMask,"wa":_emscripten_glDepthRangef,"va":_emscripten_glDetachShader,"ua":_emscripten_glDisable,"ta":_emscripten_glDisableVertexAttribArray,"sa":_emscripten_glDrawArrays,"ra":_emscripten_glDrawArraysInstancedANGLE,"qa":_emscripten_glDrawBuffersWEBGL,"pa":_emscripten_glDrawElements,"oa":_emscripten_glDrawElementsInstancedANGLE,"na":_emscripten_glEnable,"ma":_emscripten_glEnableVertexAttribArray,"la":_emscripten_glEndQueryEXT,"ka":_emscripten_glFinish,"ja":_emscripten_glFlush,"De":_emscripten_glFramebufferRenderbuffer,"Ce":_emscripten_glFramebufferTexture2D,"Be":_emscripten_glFrontFace,"Ae":_emscripten_glGenBuffers,"ze":_emscripten_glGenFramebuffers,"ye":_emscripten_glGenQueriesEXT,"xe":_emscripten_glGenRenderbuffers,"we":_emscripten_glGenTextures,"ve":_emscripten_glGenVertexArraysOES,"ue":_emscripten_glGenerateMipmap,"te":_emscripten_glGetActiveAttrib,"se":_emscripten_glGetActiveUniform,"re":_emscripten_glGetAttachedShaders,"qe":_emscripten_glGetAttribLocation,"pe":_emscripten_glGetBooleanv,"oe":_emscripten_glGetBufferParameteriv,"ne":_emscripten_glGetError,"me":_emscripten_glGetFloatv,"le":_emscripten_glGetFramebufferAttachmentParameteriv,"ke":_emscripten_glGetIntegerv,"ie":_emscripten_glGetProgramInfoLog,"he":_emscripten_glGetProgramiv,"ge":_emscripten_glGetQueryObjecti64vEXT,"fe":_emscripten_glGetQueryObjectivEXT,"ee":_emscripten_glGetQueryObjectui64vEXT,"de":_emscripten_glGetQueryObjectuivEXT,"ce":_emscripten_glGetQueryivEXT,"be":_emscripten_glGetRenderbufferParameteriv,"ae":_emscripten_glGetShaderInfoLog,"$d":_emscripten_glGetShaderPrecisionFormat,"_d":_emscripten_glGetShaderSource,"Zd":_emscripten_glGetShaderiv,"Yd":_emscripten_glGetString,"Xd":_emscripten_glGetTexParameterfv,"Wd":_emscripten_glGetTexParameteriv,"Vd":_emscripten_glGetUniformLocation,"Ud":_emscripten_glGetUniformfv,"Td":_emscripten_glGetUniformiv,"Sd":_emscripten_glGetVertexAttribPointerv,"Rd":_emscripten_glGetVertexAttribfv,"Qd":_emscripten_glGetVertexAttribiv,"Pd":_emscripten_glHint,"Od":_emscripten_glIsBuffer,"Nd":_emscripten_glIsEnabled,"Md":_emscripten_glIsFramebuffer,"Ld":_emscripten_glIsProgram,"Kd":_emscripten_glIsQueryEXT,"Jd":_emscripten_glIsRenderbuffer,"Id":_emscripten_glIsShader,"Hd":_emscripten_glIsTexture,"Gd":_emscripten_glIsVertexArrayOES,"Fd":_emscripten_glLineWidth,"Ed":_emscripten_glLinkProgram,"Dd":_emscripten_glPixelStorei,"Cd":_emscripten_glPolygonOffset,"Bd":_emscripten_glQueryCounterEXT,"Ad":_emscripten_glReadPixels,"zd":_emscripten_glReleaseShaderCompiler,"yd":_emscripten_glRenderbufferStorage,"xd":_emscripten_glSampleCoverage,"wd":_emscripten_glScissor,"vd":_emscripten_glShaderBinary,"ud":_emscripten_glShaderSource,"td":_emscripten_glStencilFunc,"sd":_emscripten_glStencilFuncSeparate,"rd":_emscripten_glStencilMask,"qd":_emscripten_glStencilMaskSeparate,"pd":_emscripten_glStencilOp,"od":_emscripten_glStencilOpSeparate,"nd":_emscripten_glTexImage2D,"md":_emscripten_glTexParameterf,"ld":_emscripten_glTexParameterfv,"kd":_emscripten_glTexParameteri,"jd":_emscripten_glTexParameteriv,"id":_emscripten_glTexSubImage2D,"hd":_emscripten_glUniform1f,"gd":_emscripten_glUniform1fv,"fd":_emscripten_glUniform1i,"ed":_emscripten_glUniform1iv,"dd":_emscripten_glUniform2f,"cd":_emscripten_glUniform2fv,"bd":_emscripten_glUniform2i,"ad":_emscripten_glUniform2iv,"$c":_emscripten_glUniform3f,"_c":_emscripten_glUniform3fv,"Zc":_emscripten_glUniform3i,"Yc":_emscripten_glUniform3iv,"Xc":_emscripten_glUniform4f,"Wc":_emscripten_glUniform4fv,"Vc":_emscripten_glUniform4i,"Uc":_emscripten_glUniform4iv,"Tc":_emscripten_glUniformMatrix2fv,"Sc":_emscripten_glUniformMatrix3fv,"Rc":_emscripten_glUniformMatrix4fv,"Qc":_emscripten_glUseProgram,"Pc":_emscripten_glValidateProgram,"Oc":_emscripten_glVertexAttrib1f,"Nc":_emscripten_glVertexAttrib1fv,"Mc":_emscripten_glVertexAttrib2f,"Lc":_emscripten_glVertexAttrib2fv,"Jc":_emscripten_glVertexAttrib3f,"Ic":_emscripten_glVertexAttrib3fv,"Hc":_emscripten_glVertexAttrib4f,"Gc":_emscripten_glVertexAttrib4fv,"Fc":_emscripten_glVertexAttribDivisorANGLE,"Ec":_emscripten_glVertexAttribPointer,"Dc":_emscripten_glViewport,"Cc":_emscripten_memcpy_big,"Bc":_emscripten_request_pointerlock,"Ac":_emscripten_resize_heap,"ba":_emscripten_run_script,"zc":_emscripten_sample_gamepad_data,"yc":_emscripten_set_click_callback_on_thread,"xc":_emscripten_set_fullscreenchange_callback_on_thread,"wc":_emscripten_set_gamepadconnected_callback_on_thread,"vc":_emscripten_set_gamepaddisconnected_callback_on_thread,"uc":_emscripten_set_keypress_callback_on_thread,"tc":_emscripten_set_main_loop,"sc":_emscripten_set_touchcancel_callback_on_thread,"rc":_emscripten_set_touchend_callback_on_thread,"qc":_emscripten_set_touchmove_callback_on_thread,"pc":_emscripten_set_touchstart_callback_on_thread,"oc":_exit,"nc":_glActiveTexture,"aa":_glAttachShader,"o":_glBindAttribLocation,"f":_glBindBuffer,"q":_glBindTexture,"mc":_glBlendFunc,"w":_glBufferData,"E":_glBufferSubData,"$":_glClear,"_":_glClearColor,"lc":_glClearDepthf,"kc":_glCompileShader,"jc":_glCompressedTexImage2D,"ic":_glCreateProgram,"hc":_glCreateShader,"gc":_glCullFace,"v":_glDeleteBuffers,"Z":_glDeleteProgram,"Y":_glDeleteShader,"X":_glDeleteTextures,"ec":_glDepthFunc,"W":_glDetachShader,"dc":_glDisable,"u":_glDisableVertexAttribArray,"cc":_glDrawArrays,"bc":_glDrawElements,"V":_glEnable,"n":_glEnableVertexAttribArray,"$b":_glFrontFace,"t":_glGenBuffers,"_b":_glGenTextures,"D":_glGetAttribLocation,"Zb":_glGetFloatv,"Yb":_glGetProgramInfoLog,"U":_glGetProgramiv,"Xb":_glGetShaderInfoLog,"T":_glGetShaderiv,"p":_glGetString,"C":_glGetUniformLocation,"Vb":_glLinkProgram,"Ub":_glPixelStorei,"Tb":_glReadPixels,"Sb":_glShaderSource,"Rb":_glTexImage2D,"m":_glTexParameteri,"Qb":_glUniform1i,"Pb":_glUniform4f,"Nb":_glUniformMatrix4fv,"B":_glUseProgram,"l":_glVertexAttribPointer,"Mb":_glViewport,"Lb":_glfwCreateWindow,"Kb":_glfwDefaultWindowHints,"Jb":_glfwDestroyWindow,"Ib":_glfwGetCursorPos,"k":_glfwGetTime,"Hb":_glfwInit,"Fb":_glfwMakeContextCurrent,"Eb":_glfwSetCharCallback,"Db":_glfwSetCursorEnterCallback,"Cb":_glfwSetCursorPosCallback,"Bb":_glfwSetDropCallback,"Ab":_glfwSetErrorCallback,"zb":_glfwSetKeyCallback,"yb":_glfwSetMouseButtonCallback,"xb":_glfwSetScrollCallback,"wb":_glfwSetWindowIconifyCallback,"vb":_glfwSetWindowShouldClose,"ub":_glfwSetWindowSizeCallback,"tb":_glfwSwapBuffers,"S":_glfwTerminate,"h":_glfwWindowHint,"R":_llvm_stackrestore,"Q":_llvm_stacksave,"sb":_time,"rb":abortOnCannotGrowMemory,"a":DYNAMICTOP_PTR};var asm=Module["asm"](asmGlobalArg,asmLibraryArg,buffer);var real____errno_location=asm["Ee"];asm["Ee"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____errno_location.apply(null,arguments)};var real__emscripten_GetProcAddress=asm["Fe"];asm["Fe"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__emscripten_GetProcAddress.apply(null,arguments)};var real__fflush=asm["Ge"];asm["Ge"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__fflush.apply(null,arguments)};var real__free=asm["He"];asm["He"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__free.apply(null,arguments)};var real__llvm_round_f32=asm["Ie"];asm["Ie"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__llvm_round_f32.apply(null,arguments)};var real__ma_device_process_pcm_frames_capture__webaudio=asm["Je"];asm["Je"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__ma_device_process_pcm_frames_capture__webaudio.apply(null,arguments)};var real__ma_device_process_pcm_frames_playback__webaudio=asm["Ke"];asm["Ke"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__ma_device_process_pcm_frames_playback__webaudio.apply(null,arguments)};var real__main=asm["Le"];asm["Le"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__main.apply(null,arguments)};var real__malloc=asm["Me"];asm["Me"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__malloc.apply(null,arguments)};var real__memmove=asm["Ne"];asm["Ne"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__memmove.apply(null,arguments)};var real__sbrk=asm["Oe"];asm["Oe"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__sbrk.apply(null,arguments)};var real__strstr=asm["Pe"];asm["Pe"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__strstr.apply(null,arguments)};var real_establishStackSpace=asm["Ye"];asm["Ye"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real_establishStackSpace.apply(null,arguments)};var real_stackAlloc=asm["Ze"];asm["Ze"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real_stackAlloc.apply(null,arguments)};var real_stackRestore=asm["_e"];asm["_e"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real_stackRestore.apply(null,arguments)};var real_stackSave=asm["$e"];asm["$e"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real_stackSave.apply(null,arguments)};Module["asm"]=asm;var ___errno_location=Module["___errno_location"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Ee"].apply(null,arguments)};var _emscripten_GetProcAddress=Module["_emscripten_GetProcAddress"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Fe"].apply(null,arguments)};var _fflush=Module["_fflush"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Ge"].apply(null,arguments)};var _free=Module["_free"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["He"].apply(null,arguments)};var _llvm_round_f32=Module["_llvm_round_f32"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Ie"].apply(null,arguments)};var _ma_device_process_pcm_frames_capture__webaudio=Module["_ma_device_process_pcm_frames_capture__webaudio"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Je"].apply(null,arguments)};var _ma_device_process_pcm_frames_playback__webaudio=Module["_ma_device_process_pcm_frames_playback__webaudio"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Ke"].apply(null,arguments)};var _main=Module["_main"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Le"].apply(null,arguments)};var _malloc=Module["_malloc"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Me"].apply(null,arguments)};var _memmove=Module["_memmove"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Ne"].apply(null,arguments)};var _sbrk=Module["_sbrk"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Oe"].apply(null,arguments)};var _strstr=Module["_strstr"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Pe"].apply(null,arguments)};var establishStackSpace=Module["establishStackSpace"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Ye"].apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Ze"].apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["_e"].apply(null,arguments)};var stackSave=Module["stackSave"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["$e"].apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Qe"].apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Re"].apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Se"].apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Te"].apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Ue"].apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Ve"].apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["We"].apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return Module["asm"]["Xe"].apply(null,arguments)};Module["asm"]=asm;if(!Module["intArrayFromString"])Module["intArrayFromString"]=function(){abort("'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["intArrayToString"])Module["intArrayToString"]=function(){abort("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["ccall"])Module["ccall"]=function(){abort("'ccall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["cwrap"])Module["cwrap"]=function(){abort("'cwrap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["setValue"])Module["setValue"]=function(){abort("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["getValue"])Module["getValue"]=function(){abort("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["allocate"])Module["allocate"]=function(){abort("'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};Module["getMemory"]=getMemory;if(!Module["AsciiToString"])Module["AsciiToString"]=function(){abort("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["stringToAscii"])Module["stringToAscii"]=function(){abort("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["UTF8ArrayToString"])Module["UTF8ArrayToString"]=function(){abort("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["UTF8ToString"])Module["UTF8ToString"]=function(){abort("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["stringToUTF8Array"])Module["stringToUTF8Array"]=function(){abort("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["stringToUTF8"])Module["stringToUTF8"]=function(){abort("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["lengthBytesUTF8"])Module["lengthBytesUTF8"]=function(){abort("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["UTF16ToString"])Module["UTF16ToString"]=function(){abort("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["stringToUTF16"])Module["stringToUTF16"]=function(){abort("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["lengthBytesUTF16"])Module["lengthBytesUTF16"]=function(){abort("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["UTF32ToString"])Module["UTF32ToString"]=function(){abort("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["stringToUTF32"])Module["stringToUTF32"]=function(){abort("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["lengthBytesUTF32"])Module["lengthBytesUTF32"]=function(){abort("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["allocateUTF8"])Module["allocateUTF8"]=function(){abort("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["stackTrace"])Module["stackTrace"]=function(){abort("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["addOnPreRun"])Module["addOnPreRun"]=function(){abort("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["addOnInit"])Module["addOnInit"]=function(){abort("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["addOnPreMain"])Module["addOnPreMain"]=function(){abort("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["addOnExit"])Module["addOnExit"]=function(){abort("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["addOnPostRun"])Module["addOnPostRun"]=function(){abort("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["writeStringToMemory"])Module["writeStringToMemory"]=function(){abort("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["writeArrayToMemory"])Module["writeArrayToMemory"]=function(){abort("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["writeAsciiToMemory"])Module["writeAsciiToMemory"]=function(){abort("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;if(!Module["ENV"])Module["ENV"]=function(){abort("'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["FS"])Module["FS"]=function(){abort("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;if(!Module["GL"])Module["GL"]=function(){abort("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["dynamicAlloc"])Module["dynamicAlloc"]=function(){abort("'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["warnOnce"])Module["warnOnce"]=function(){abort("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["loadDynamicLibrary"])Module["loadDynamicLibrary"]=function(){abort("'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["loadWebAssemblyModule"])Module["loadWebAssemblyModule"]=function(){abort("'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["getLEB"])Module["getLEB"]=function(){abort("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["getFunctionTables"])Module["getFunctionTables"]=function(){abort("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["alignFunctionTables"])Module["alignFunctionTables"]=function(){abort("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["registerFunctions"])Module["registerFunctions"]=function(){abort("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["addFunction"])Module["addFunction"]=function(){abort("'addFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["removeFunction"])Module["removeFunction"]=function(){abort("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["getFuncWrapper"])Module["getFuncWrapper"]=function(){abort("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["prettyPrint"])Module["prettyPrint"]=function(){abort("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["makeBigInt"])Module["makeBigInt"]=function(){abort("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["dynCall"])Module["dynCall"]=function(){abort("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["getCompilerSetting"])Module["getCompilerSetting"]=function(){abort("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["stackSave"])Module["stackSave"]=function(){abort("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["stackRestore"])Module["stackRestore"]=function(){abort("'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["stackAlloc"])Module["stackAlloc"]=function(){abort("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["establishStackSpace"])Module["establishStackSpace"]=function(){abort("'establishStackSpace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["print"])Module["print"]=function(){abort("'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["printErr"])Module["printErr"]=function(){abort("'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["getTempRet0"])Module["getTempRet0"]=function(){abort("'getTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["setTempRet0"])Module["setTempRet0"]=function(){abort("'setTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["Pointer_stringify"])Module["Pointer_stringify"]=function(){abort("'Pointer_stringify' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")};if(!Module["ALLOC_NORMAL"])Object.defineProperty(Module,"ALLOC_NORMAL",{get:function(){abort("'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}});if(!Module["ALLOC_STACK"])Object.defineProperty(Module,"ALLOC_STACK",{get:function(){abort("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}});if(!Module["ALLOC_DYNAMIC"])Object.defineProperty(Module,"ALLOC_DYNAMIC",{get:function(){abort("'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}});if(!Module["ALLOC_NONE"])Object.defineProperty(Module,"ALLOC_NONE",{get:function(){abort("'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}});function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=function callMain(args){assert(runDependencies==0,'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])');assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;var argv=stackAlloc((argc+1)*4);HEAP32[argv>>2]=allocateUTF8OnStack(Module["thisProgram"]);for(var i=1;i>2)+i]=allocateUTF8OnStack(args[i-1])}HEAP32[(argv>>2)+argc]=0;try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}err("exception thrown: "+toLog);Module["quit"](1,e)}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}writeStackCookie();preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}checkStackCookie()}Module["run"]=run;function checkUnflushedContent(){var print=out;var printErr=err;var has=false;out=err=function(x){has=true};try{var flush=Module["_fflush"];if(flush)flush(0);var hasFS=true;if(hasFS){["stdout","stderr"].forEach(function(name){var info=FS.analyzePath("/dev/"+name);if(!info)return;var stream=info.object;var rdev=stream.rdev;var tty=TTY.ttys[rdev];if(tty&&tty.output&&tty.output.length){has=true}})}}catch(e){}out=print;err=printErr;if(has){warnOnce("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}}function exit(status,implicit){checkUnflushedContent();if(implicit&&Module["noExitRuntime"]&&status===0){return}if(Module["noExitRuntime"]){if(!implicit){err("exit("+status+") called, but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)")}}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module["onExit"])Module["onExit"](status)}Module["quit"](status,new ExitStatus(status))}var abortDecorators=[];function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach(function(decorator){output=decorator(output,what)})}throw output}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}Module["noExitRuntime"]=true;run(); diff --git a/examples/web/core/core_gestures_detection.png b/examples/web/core/core_gestures_detection.png deleted file mode 100644 index d2bbb5d..0000000 Binary files a/examples/web/core/core_gestures_detection.png and /dev/null differ diff --git a/examples/web/core/core_gestures_detection.wasm b/examples/web/core/core_gestures_detection.wasm deleted file mode 100644 index c40d281..0000000 Binary files a/examples/web/core/core_gestures_detection.wasm and /dev/null differ diff --git a/examples/web/core/core_input_gestures.png b/examples/web/core/core_input_gestures.png new file mode 100644 index 0000000..d2bbb5d Binary files /dev/null and b/examples/web/core/core_input_gestures.png differ diff --git a/examples/web/core/core_input_mouse_wheel.png b/examples/web/core/core_input_mouse_wheel.png new file mode 100644 index 0000000..26a1f24 Binary files /dev/null and b/examples/web/core/core_input_mouse_wheel.png differ diff --git a/examples/web/core/core_input_multitouch.png b/examples/web/core/core_input_multitouch.png new file mode 100644 index 0000000..74284f8 Binary files /dev/null and b/examples/web/core/core_input_multitouch.png differ diff --git a/examples/web/core/core_loading_thread.png b/examples/web/core/core_loading_thread.png new file mode 100644 index 0000000..957bd19 Binary files /dev/null and b/examples/web/core/core_loading_thread.png differ diff --git a/examples/web/core/core_mouse_wheel.c b/examples/web/core/core_mouse_wheel.c deleted file mode 100644 index 93d72bc..0000000 --- a/examples/web/core/core_mouse_wheel.c +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Mouse wheel (adapted for HTML5 platform) -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#if defined(PLATFORM_WEB) - #include -#endif - -#if defined(PLATFORM_ANDROID) - #include "android_native_app_glue.h" -#endif - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -int screenWidth = 800; -int screenHeight = 450; - -int boxPositionY; -int scrollSpeed = 4; // Scrolling speed in pixels - -//---------------------------------------------------------------------------------- -// Module Functions Declaration -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void); // Update and Draw one frame - -//---------------------------------------------------------------------------------- -// Main Enry Point -//---------------------------------------------------------------------------------- -#if defined(PLATFORM_ANDROID) -void android_main(struct android_app *app) -#else -int main(void) -#endif -{ - // Initialization - //-------------------------------------------------------------------------------------- -#if defined(PLATFORM_ANDROID) - InitWindow(screenWidth, screenHeight, app); -#else - InitWindow(screenWidth, screenHeight, "raylib [core] example - mouse wheel"); -#endif - - boxPositionY = screenHeight/2 - 40; - -#if defined(PLATFORM_WEB) - emscripten_set_main_loop(UpdateDrawFrame, 0, 1); -#else - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - UpdateDrawFrame(); - } -#endif - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- -#if !defined(PLATFORM_ANDROID) - return 0; -#endif -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void) -{ - // Update - //---------------------------------------------------------------------------------- - boxPositionY -= (GetMouseWheelMove()*scrollSpeed); - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawRectangle(screenWidth/2 - 40, boxPositionY, 80, 80, MAROON); - - DrawText("Use mouse wheel to move the cube up and down!", 10, 10, 20, GRAY); - DrawText(FormatText("Box position Y: %03i", boxPositionY), 10, 40, 20, LIGHTGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- -} \ No newline at end of file diff --git a/examples/web/core/core_mouse_wheel.html b/examples/web/core/core_mouse_wheel.html deleted file mode 100644 index d3b86e7..0000000 --- a/examples/web/core/core_mouse_wheel.html +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - - raylib HTML5 GAME - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
Downloading...
- - - - - -
- -
-
- -
- -
- - - - - - - \ No newline at end of file diff --git a/examples/web/core/core_mouse_wheel.js b/examples/web/core/core_mouse_wheel.js deleted file mode 100644 index f41b954..0000000 --- a/examples/web/core/core_mouse_wheel.js +++ /dev/null @@ -1,24478 +0,0 @@ -// The Module object: Our interface to the outside world. We import -// and export values on it, and do the work to get that through -// closure compiler if necessary. There are various ways Module can be used: -// 1. Not defined. We create it here -// 2. A function parameter, function(Module) { ..generated code.. } -// 3. pre-run appended it, var Module = {}; ..generated code.. -// 4. External script tag defines var Module. -// We need to do an eval in order to handle the closure compiler -// case, where this code here is minified but Module was defined -// elsewhere (e.g. case 4 above). We also need to check if Module -// already exists (e.g. case 3 above). -// Note that if you want to run closure, and also to use Module -// after the generated code, you will need to define var Module = {}; -// before the code. Then that object will be used in the code, and you -// can continue to use Module afterwards as well. -var Module; -if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {}; - -// Sometimes an existing Module object exists with properties -// meant to overwrite the default module functionality. Here -// we collect those properties and reapply _after_ we configure -// the current environment's defaults to avoid having to be so -// defensive during initialization. -var moduleOverrides = {}; -for (var key in Module) { - if (Module.hasOwnProperty(key)) { - moduleOverrides[key] = Module[key]; - } -} - -// The environment setup code below is customized to use Module. -// *** Environment setup code *** -var ENVIRONMENT_IS_WEB = false; -var ENVIRONMENT_IS_WORKER = false; -var ENVIRONMENT_IS_NODE = false; -var ENVIRONMENT_IS_SHELL = false; - -// Three configurations we can be running in: -// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) -// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) -// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) - -if (Module['ENVIRONMENT']) { - if (Module['ENVIRONMENT'] === 'WEB') { - ENVIRONMENT_IS_WEB = true; - } else if (Module['ENVIRONMENT'] === 'WORKER') { - ENVIRONMENT_IS_WORKER = true; - } else if (Module['ENVIRONMENT'] === 'NODE') { - ENVIRONMENT_IS_NODE = true; - } else if (Module['ENVIRONMENT'] === 'SHELL') { - ENVIRONMENT_IS_SHELL = true; - } else { - throw new Error('The provided Module[\'ENVIRONMENT\'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.'); - } -} else { - ENVIRONMENT_IS_WEB = typeof window === 'object'; - ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; - ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; - ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; -} - - -if (ENVIRONMENT_IS_NODE) { - // Expose functionality in the same simple way that the shells work - // Note that we pollute the global namespace here, otherwise we break in node - if (!Module['print']) Module['print'] = console.log; - if (!Module['printErr']) Module['printErr'] = console.warn; - - var nodeFS; - var nodePath; - - Module['read'] = function shell_read(filename, binary) { - if (!nodeFS) nodeFS = require('fs'); - if (!nodePath) nodePath = require('path'); - filename = nodePath['normalize'](filename); - var ret = nodeFS['readFileSync'](filename); - return binary ? ret : ret.toString(); - }; - - Module['readBinary'] = function readBinary(filename) { - var ret = Module['read'](filename, true); - if (!ret.buffer) { - ret = new Uint8Array(ret); - } - assert(ret.buffer); - return ret; - }; - - Module['load'] = function load(f) { - globalEval(read(f)); - }; - - if (!Module['thisProgram']) { - if (process['argv'].length > 1) { - Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); - } else { - Module['thisProgram'] = 'unknown-program'; - } - } - - Module['arguments'] = process['argv'].slice(2); - - if (typeof module !== 'undefined') { - module['exports'] = Module; - } - - process['on']('uncaughtException', function(ex) { - // suppress ExitStatus exceptions from showing an error - if (!(ex instanceof ExitStatus)) { - throw ex; - } - }); - - Module['inspect'] = function () { return '[Emscripten Module object]'; }; -} -else if (ENVIRONMENT_IS_SHELL) { - if (!Module['print']) Module['print'] = print; - if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm - - if (typeof read != 'undefined') { - Module['read'] = read; - } else { - Module['read'] = function shell_read() { throw 'no read() available' }; - } - - Module['readBinary'] = function readBinary(f) { - if (typeof readbuffer === 'function') { - return new Uint8Array(readbuffer(f)); - } - var data = read(f, 'binary'); - assert(typeof data === 'object'); - return data; - }; - - if (typeof scriptArgs != 'undefined') { - Module['arguments'] = scriptArgs; - } else if (typeof arguments != 'undefined') { - Module['arguments'] = arguments; - } - - if (typeof quit === 'function') { - Module['quit'] = function(status, toThrow) { - quit(status); - } - } - -} -else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { - Module['read'] = function shell_read(url) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.send(null); - return xhr.responseText; - }; - - if (ENVIRONMENT_IS_WORKER) { - Module['readBinary'] = function readBinary(url) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.responseType = 'arraybuffer'; - xhr.send(null); - return new Uint8Array(xhr.response); - }; - } - - Module['readAsync'] = function readAsync(url, onload, onerror) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.onload = function xhr_onload() { - if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 - onload(xhr.response); - } else { - onerror(); - } - }; - xhr.onerror = onerror; - xhr.send(null); - }; - - if (typeof arguments != 'undefined') { - Module['arguments'] = arguments; - } - - if (typeof console !== 'undefined') { - if (!Module['print']) Module['print'] = function shell_print(x) { - console.log(x); - }; - if (!Module['printErr']) Module['printErr'] = function shell_printErr(x) { - console.warn(x); - }; - } else { - // Probably a worker, and without console.log. We can do very little here... - var TRY_USE_DUMP = false; - if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) { - dump(x); - }) : (function(x) { - // self.postMessage(x); // enable this if you want stdout to be sent as messages - })); - } - - if (ENVIRONMENT_IS_WORKER) { - Module['load'] = importScripts; - } - - if (typeof Module['setWindowTitle'] === 'undefined') { - Module['setWindowTitle'] = function(title) { document.title = title }; - } -} -else { - // Unreachable because SHELL is dependant on the others - throw 'Unknown runtime environment. Where are we?'; -} - -function globalEval(x) { - eval.call(null, x); -} -if (!Module['load'] && Module['read']) { - Module['load'] = function load(f) { - globalEval(Module['read'](f)); - }; -} -if (!Module['print']) { - Module['print'] = function(){}; -} -if (!Module['printErr']) { - Module['printErr'] = Module['print']; -} -if (!Module['arguments']) { - Module['arguments'] = []; -} -if (!Module['thisProgram']) { - Module['thisProgram'] = './this.program'; -} -if (!Module['quit']) { - Module['quit'] = function(status, toThrow) { - throw toThrow; - } -} - -// *** Environment setup code *** - -// Closure helpers -Module.print = Module['print']; -Module.printErr = Module['printErr']; - -// Callbacks -Module['preRun'] = []; -Module['postRun'] = []; - -// Merge back in the overrides -for (var key in moduleOverrides) { - if (moduleOverrides.hasOwnProperty(key)) { - Module[key] = moduleOverrides[key]; - } -} -// Free the object hierarchy contained in the overrides, this lets the GC -// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. -moduleOverrides = undefined; - - - -// {{PREAMBLE_ADDITIONS}} - -// === Preamble library stuff === - -// Documentation for the public APIs defined in this file must be updated in: -// site/source/docs/api_reference/preamble.js.rst -// A prebuilt local version of the documentation is available at: -// site/build/text/docs/api_reference/preamble.js.txt -// You can also build docs locally as HTML or other formats in site/ -// An online HTML version (which may be of a different version of Emscripten) -// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html - -//======================================== -// Runtime code shared with compiler -//======================================== - -var Runtime = { - setTempRet0: function (value) { - tempRet0 = value; - return value; - }, - getTempRet0: function () { - return tempRet0; - }, - stackSave: function () { - return STACKTOP; - }, - stackRestore: function (stackTop) { - STACKTOP = stackTop; - }, - getNativeTypeSize: function (type) { - switch (type) { - case 'i1': case 'i8': return 1; - case 'i16': return 2; - case 'i32': return 4; - case 'i64': return 8; - case 'float': return 4; - case 'double': return 8; - default: { - if (type[type.length-1] === '*') { - return Runtime.QUANTUM_SIZE; // A pointer - } else if (type[0] === 'i') { - var bits = parseInt(type.substr(1)); - assert(bits % 8 === 0); - return bits/8; - } else { - return 0; - } - } - } - }, - getNativeFieldSize: function (type) { - return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE); - }, - STACK_ALIGN: 16, - prepVararg: function (ptr, type) { - if (type === 'double' || type === 'i64') { - // move so the load is aligned - if (ptr & 7) { - assert((ptr & 7) === 4); - ptr += 4; - } - } else { - assert((ptr & 3) === 0); - } - return ptr; - }, - getAlignSize: function (type, size, vararg) { - // we align i64s and doubles on 64-bit boundaries, unlike x86 - if (!vararg && (type == 'i64' || type == 'double')) return 8; - if (!type) return Math.min(size, 8); // align structures internally to 64 bits - return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE); - }, - dynCall: function (sig, ptr, args) { - if (args && args.length) { - assert(args.length == sig.length-1); - assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); - return Module['dynCall_' + sig].apply(null, [ptr].concat(args)); - } else { - assert(sig.length == 1); - assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); - return Module['dynCall_' + sig].call(null, ptr); - } - }, - functionPointers: [], - addFunction: function (func) { - for (var i = 0; i < Runtime.functionPointers.length; i++) { - if (!Runtime.functionPointers[i]) { - Runtime.functionPointers[i] = func; - return 2*(1 + i); - } - } - throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; - }, - removeFunction: function (index) { - Runtime.functionPointers[(index-2)/2] = null; - }, - warnOnce: function (text) { - if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; - if (!Runtime.warnOnce.shown[text]) { - Runtime.warnOnce.shown[text] = 1; - Module.printErr(text); - } - }, - funcWrappers: {}, - getFuncWrapper: function (func, sig) { - assert(sig); - if (!Runtime.funcWrappers[sig]) { - Runtime.funcWrappers[sig] = {}; - } - var sigCache = Runtime.funcWrappers[sig]; - if (!sigCache[func]) { - // optimize away arguments usage in common cases - if (sig.length === 1) { - sigCache[func] = function dynCall_wrapper() { - return Runtime.dynCall(sig, func); - }; - } else if (sig.length === 2) { - sigCache[func] = function dynCall_wrapper(arg) { - return Runtime.dynCall(sig, func, [arg]); - }; - } else { - // general case - sigCache[func] = function dynCall_wrapper() { - return Runtime.dynCall(sig, func, Array.prototype.slice.call(arguments)); - }; - } - } - return sigCache[func]; - }, - getCompilerSetting: function (name) { - throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work'; - }, - stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+15)&-16);(assert((((STACKTOP|0) < (STACK_MAX|0))|0))|0); return ret; }, - staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + (assert(!staticSealed),size))|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; }, - dynamicAlloc: function (size) { assert(DYNAMICTOP_PTR);var ret = HEAP32[DYNAMICTOP_PTR>>2];var end = (((ret + size + 15)|0) & -16);HEAP32[DYNAMICTOP_PTR>>2] = end;if (end >= TOTAL_MEMORY) {var success = enlargeMemory();if (!success) {HEAP32[DYNAMICTOP_PTR>>2] = ret;return 0;}}return ret;}, - alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 16))*(quantum ? quantum : 16); return ret; }, - makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0))); return ret; }, - GLOBAL_BASE: 8, - QUANTUM_SIZE: 4, - __dummy__: 0 -} - - - -Module["Runtime"] = Runtime; - - - -//======================================== -// Runtime essentials -//======================================== - -var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort() -var EXITSTATUS = 0; - -/** @type {function(*, string=)} */ -function assert(condition, text) { - if (!condition) { - abort('Assertion failed: ' + text); - } -} - -var globalScope = this; - -// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) -function getCFunc(ident) { - var func = Module['_' + ident]; // closure exported function - if (!func) { - try { func = eval('_' + ident); } catch(e) {} - } - assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)'); - return func; -} - -var cwrap, ccall; -(function(){ - var JSfuncs = { - // Helpers for cwrap -- it can't refer to Runtime directly because it might - // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find - // out what the minified function name is. - 'stackSave': function() { - Runtime.stackSave() - }, - 'stackRestore': function() { - Runtime.stackRestore() - }, - // type conversion from js to c - 'arrayToC' : function(arr) { - var ret = Runtime.stackAlloc(arr.length); - writeArrayToMemory(arr, ret); - return ret; - }, - 'stringToC' : function(str) { - var ret = 0; - if (str !== null && str !== undefined && str !== 0) { // null string - // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' - var len = (str.length << 2) + 1; - ret = Runtime.stackAlloc(len); - stringToUTF8(str, ret, len); - } - return ret; - } - }; - // For fast lookup of conversion functions - var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']}; - - // C calling interface. - ccall = function ccallFunc(ident, returnType, argTypes, args, opts) { - var func = getCFunc(ident); - var cArgs = []; - var stack = 0; - assert(returnType !== 'array', 'Return type should not be "array".'); - if (args) { - for (var i = 0; i < args.length; i++) { - var converter = toC[argTypes[i]]; - if (converter) { - if (stack === 0) stack = Runtime.stackSave(); - cArgs[i] = converter(args[i]); - } else { - cArgs[i] = args[i]; - } - } - } - var ret = func.apply(null, cArgs); - if ((!opts || !opts.async) && typeof EmterpreterAsync === 'object') { - assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling ccall'); - } - if (opts && opts.async) assert(!returnType, 'async ccalls cannot return values'); - if (returnType === 'string') ret = Pointer_stringify(ret); - if (stack !== 0) { - if (opts && opts.async) { - EmterpreterAsync.asyncFinalizers.push(function() { - Runtime.stackRestore(stack); - }); - return; - } - Runtime.stackRestore(stack); - } - return ret; - } - - var sourceRegex = /^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; - function parseJSFunc(jsfunc) { - // Match the body and the return value of a javascript function source - var parsed = jsfunc.toString().match(sourceRegex).slice(1); - return {arguments : parsed[0], body : parsed[1], returnValue: parsed[2]} - } - - // sources of useful functions. we create this lazily as it can trigger a source decompression on this entire file - var JSsource = null; - function ensureJSsource() { - if (!JSsource) { - JSsource = {}; - for (var fun in JSfuncs) { - if (JSfuncs.hasOwnProperty(fun)) { - // Elements of toCsource are arrays of three items: - // the code, and the return value - JSsource[fun] = parseJSFunc(JSfuncs[fun]); - } - } - } - } - - cwrap = function cwrap(ident, returnType, argTypes) { - argTypes = argTypes || []; - var cfunc = getCFunc(ident); - // When the function takes numbers and returns a number, we can just return - // the original function - var numericArgs = argTypes.every(function(type){ return type === 'number'}); - var numericRet = (returnType !== 'string'); - if ( numericRet && numericArgs) { - return cfunc; - } - // Creation of the arguments list (["$1","$2",...,"$nargs"]) - var argNames = argTypes.map(function(x,i){return '$'+i}); - var funcstr = "(function(" + argNames.join(',') + ") {"; - var nargs = argTypes.length; - if (!numericArgs) { - // Generate the code needed to convert the arguments from javascript - // values to pointers - ensureJSsource(); - funcstr += 'var stack = ' + JSsource['stackSave'].body + ';'; - for (var i = 0; i < nargs; i++) { - var arg = argNames[i], type = argTypes[i]; - if (type === 'number') continue; - var convertCode = JSsource[type + 'ToC']; // [code, return] - funcstr += 'var ' + convertCode.arguments + ' = ' + arg + ';'; - funcstr += convertCode.body + ';'; - funcstr += arg + '=(' + convertCode.returnValue + ');'; - } - } - - // When the code is compressed, the name of cfunc is not literally 'cfunc' anymore - var cfuncname = parseJSFunc(function(){return cfunc}).returnValue; - // Call the function - funcstr += 'var ret = ' + cfuncname + '(' + argNames.join(',') + ');'; - if (!numericRet) { // Return type can only by 'string' or 'number' - // Convert the result to a string - var strgfy = parseJSFunc(function(){return Pointer_stringify}).returnValue; - funcstr += 'ret = ' + strgfy + '(ret);'; - } - funcstr += "if (typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling cwrap') }"; - if (!numericArgs) { - // If we had a stack, restore it - ensureJSsource(); - funcstr += JSsource['stackRestore'].body.replace('()', '(stack)') + ';'; - } - funcstr += 'return ret})'; - return eval(funcstr); - }; -})(); -Module["ccall"] = ccall; -Module["cwrap"] = cwrap; - -/** @type {function(number, number, string, boolean=)} */ -function setValue(ptr, value, type, noSafe) { - type = type || 'i8'; - if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit - switch(type) { - case 'i1': HEAP8[((ptr)>>0)]=value; break; - case 'i8': HEAP8[((ptr)>>0)]=value; break; - case 'i16': HEAP16[((ptr)>>1)]=value; break; - case 'i32': HEAP32[((ptr)>>2)]=value; break; - case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; - case 'float': HEAPF32[((ptr)>>2)]=value; break; - case 'double': HEAPF64[((ptr)>>3)]=value; break; - default: abort('invalid type for setValue: ' + type); - } -} -Module["setValue"] = setValue; - -/** @type {function(number, string, boolean=)} */ -function getValue(ptr, type, noSafe) { - type = type || 'i8'; - if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit - switch(type) { - case 'i1': return HEAP8[((ptr)>>0)]; - case 'i8': return HEAP8[((ptr)>>0)]; - case 'i16': return HEAP16[((ptr)>>1)]; - case 'i32': return HEAP32[((ptr)>>2)]; - case 'i64': return HEAP32[((ptr)>>2)]; - case 'float': return HEAPF32[((ptr)>>2)]; - case 'double': return HEAPF64[((ptr)>>3)]; - default: abort('invalid type for setValue: ' + type); - } - return null; -} -Module["getValue"] = getValue; - -var ALLOC_NORMAL = 0; // Tries to use _malloc() -var ALLOC_STACK = 1; // Lives for the duration of the current function call -var ALLOC_STATIC = 2; // Cannot be freed -var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk -var ALLOC_NONE = 4; // Do not allocate -Module["ALLOC_NORMAL"] = ALLOC_NORMAL; -Module["ALLOC_STACK"] = ALLOC_STACK; -Module["ALLOC_STATIC"] = ALLOC_STATIC; -Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC; -Module["ALLOC_NONE"] = ALLOC_NONE; - -// allocate(): This is for internal use. You can use it yourself as well, but the interface -// is a little tricky (see docs right below). The reason is that it is optimized -// for multiple syntaxes to save space in generated code. So you should -// normally not use allocate(), and instead allocate memory using _malloc(), -// initialize it with setValue(), and so forth. -// @slab: An array of data, or a number. If a number, then the size of the block to allocate, -// in *bytes* (note that this is sometimes confusing: the next parameter does not -// affect this!) -// @types: Either an array of types, one for each byte (or 0 if no type at that position), -// or a single type which is used for the entire block. This only matters if there -// is initial data - if @slab is a number, then this does not matter at all and is -// ignored. -// @allocator: How to allocate memory, see ALLOC_* -/** @type {function((TypedArray|Array|number), string, number, number=)} */ -function allocate(slab, types, allocator, ptr) { - var zeroinit, size; - if (typeof slab === 'number') { - zeroinit = true; - size = slab; - } else { - zeroinit = false; - size = slab.length; - } - - var singleType = typeof types === 'string' ? types : null; - - var ret; - if (allocator == ALLOC_NONE) { - ret = ptr; - } else { - ret = [typeof _malloc === 'function' ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); - } - - if (zeroinit) { - var ptr = ret, stop; - assert((ret & 3) == 0); - stop = ret + (size & ~3); - for (; ptr < stop; ptr += 4) { - HEAP32[((ptr)>>2)]=0; - } - stop = ret + size; - while (ptr < stop) { - HEAP8[((ptr++)>>0)]=0; - } - return ret; - } - - if (singleType === 'i8') { - if (slab.subarray || slab.slice) { - HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret); - } else { - HEAPU8.set(new Uint8Array(slab), ret); - } - return ret; - } - - var i = 0, type, typeSize, previousType; - while (i < size) { - var curr = slab[i]; - - if (typeof curr === 'function') { - curr = Runtime.getFunctionIndex(curr); - } - - type = singleType || types[i]; - if (type === 0) { - i++; - continue; - } - assert(type, 'Must know what type to store in allocate!'); - - if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later - - setValue(ret+i, curr, type); - - // no need to look up size unless type changes, so cache it - if (previousType !== type) { - typeSize = Runtime.getNativeTypeSize(type); - previousType = type; - } - i += typeSize; - } - - return ret; -} -Module["allocate"] = allocate; - -// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready -function getMemory(size) { - if (!staticSealed) return Runtime.staticAlloc(size); - if (!runtimeInitialized) return Runtime.dynamicAlloc(size); - return _malloc(size); -} -Module["getMemory"] = getMemory; - -/** @type {function(number, number=)} */ -function Pointer_stringify(ptr, length) { - if (length === 0 || !ptr) return ''; - // TODO: use TextDecoder - // Find the length, and check for UTF while doing so - var hasUtf = 0; - var t; - var i = 0; - while (1) { - assert(ptr + i < TOTAL_MEMORY); - t = HEAPU8[(((ptr)+(i))>>0)]; - hasUtf |= t; - if (t == 0 && !length) break; - i++; - if (length && i == length) break; - } - if (!length) length = i; - - var ret = ''; - - if (hasUtf < 128) { - var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack - var curr; - while (length > 0) { - curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); - ret = ret ? ret + curr : curr; - ptr += MAX_CHUNK; - length -= MAX_CHUNK; - } - return ret; - } - return Module['UTF8ToString'](ptr); -} -Module["Pointer_stringify"] = Pointer_stringify; - -// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -function AsciiToString(ptr) { - var str = ''; - while (1) { - var ch = HEAP8[((ptr++)>>0)]; - if (!ch) return str; - str += String.fromCharCode(ch); - } -} -Module["AsciiToString"] = AsciiToString; - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. - -function stringToAscii(str, outPtr) { - return writeAsciiToMemory(str, outPtr, false); -} -Module["stringToAscii"] = stringToAscii; - -// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns -// a copy of that string as a Javascript String object. - -var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; -function UTF8ArrayToString(u8Array, idx) { - var endPtr = idx; - // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. - // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. - while (u8Array[endPtr]) ++endPtr; - - if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { - return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); - } else { - var u0, u1, u2, u3, u4, u5; - - var str = ''; - while (1) { - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 - u0 = u8Array[idx++]; - if (!u0) return str; - if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } - u1 = u8Array[idx++] & 63; - if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } - u2 = u8Array[idx++] & 63; - if ((u0 & 0xF0) == 0xE0) { - u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; - } else { - u3 = u8Array[idx++] & 63; - if ((u0 & 0xF8) == 0xF0) { - u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; - } else { - u4 = u8Array[idx++] & 63; - if ((u0 & 0xFC) == 0xF8) { - u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; - } else { - u5 = u8Array[idx++] & 63; - u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; - } - } - } - if (u0 < 0x10000) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } - } - } -} -Module["UTF8ArrayToString"] = UTF8ArrayToString; - -// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -function UTF8ToString(ptr) { - return UTF8ArrayToString(HEAPU8,ptr); -} -Module["UTF8ToString"] = UTF8ToString; - -// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', -// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. -// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element. -// outIdx: The starting offset in the array to begin the copying. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. -// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { - if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. - return 0; - - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); - if (u <= 0x7F) { - if (outIdx >= endIdx) break; - outU8Array[outIdx++] = u; - } else if (u <= 0x7FF) { - if (outIdx + 1 >= endIdx) break; - outU8Array[outIdx++] = 0xC0 | (u >> 6); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0xFFFF) { - if (outIdx + 2 >= endIdx) break; - outU8Array[outIdx++] = 0xE0 | (u >> 12); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0x1FFFFF) { - if (outIdx + 3 >= endIdx) break; - outU8Array[outIdx++] = 0xF0 | (u >> 18); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0x3FFFFFF) { - if (outIdx + 4 >= endIdx) break; - outU8Array[outIdx++] = 0xF8 | (u >> 24); - outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else { - if (outIdx + 5 >= endIdx) break; - outU8Array[outIdx++] = 0xFC | (u >> 30); - outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } - } - // Null-terminate the pointer to the buffer. - outU8Array[outIdx] = 0; - return outIdx - startIdx; -} -Module["stringToUTF8Array"] = stringToUTF8Array; - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. -// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF8(str, outPtr, maxBytesToWrite) { - assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); -} -Module["stringToUTF8"] = stringToUTF8; - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); - if (u <= 0x7F) { - ++len; - } else if (u <= 0x7FF) { - len += 2; - } else if (u <= 0xFFFF) { - len += 3; - } else if (u <= 0x1FFFFF) { - len += 4; - } else if (u <= 0x3FFFFFF) { - len += 5; - } else { - len += 6; - } - } - return len; -} -Module["lengthBytesUTF8"] = lengthBytesUTF8; - -// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; -function UTF16ToString(ptr) { - assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); - var endPtr = ptr; - // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. - // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. - var idx = endPtr >> 1; - while (HEAP16[idx]) ++idx; - endPtr = idx << 1; - - if (endPtr - ptr > 32 && UTF16Decoder) { - return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); - } else { - var i = 0; - - var str = ''; - while (1) { - var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; - if (codeUnit == 0) return str; - ++i; - // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. - str += String.fromCharCode(codeUnit); - } - } -} - - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. -// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outPtr: Byte address in Emscripten HEAP where to write the string to. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. -// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF16(str, outPtr, maxBytesToWrite) { - assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); - assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. - if (maxBytesToWrite === undefined) { - maxBytesToWrite = 0x7FFFFFFF; - } - if (maxBytesToWrite < 2) return 0; - maxBytesToWrite -= 2; // Null terminator. - var startPtr = outPtr; - var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; - for (var i = 0; i < numCharsToWrite; ++i) { - // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. - var codeUnit = str.charCodeAt(i); // possibly a lead surrogate - HEAP16[((outPtr)>>1)]=codeUnit; - outPtr += 2; - } - // Null-terminate the pointer to the HEAP. - HEAP16[((outPtr)>>1)]=0; - return outPtr - startPtr; -} - - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF16(str) { - return str.length*2; -} - - -function UTF32ToString(ptr) { - assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); - var i = 0; - - var str = ''; - while (1) { - var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; - if (utf32 == 0) - return str; - ++i; - // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - if (utf32 >= 0x10000) { - var ch = utf32 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } else { - str += String.fromCharCode(utf32); - } - } -} - - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. -// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outPtr: Byte address in Emscripten HEAP where to write the string to. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. -// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF32(str, outPtr, maxBytesToWrite) { - assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); - assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. - if (maxBytesToWrite === undefined) { - maxBytesToWrite = 0x7FFFFFFF; - } - if (maxBytesToWrite < 4) return 0; - var startPtr = outPtr; - var endPtr = startPtr + maxBytesToWrite - 4; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var codeUnit = str.charCodeAt(i); // possibly a lead surrogate - if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { - var trailSurrogate = str.charCodeAt(++i); - codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); - } - HEAP32[((outPtr)>>2)]=codeUnit; - outPtr += 4; - if (outPtr + 4 > endPtr) break; - } - // Null-terminate the pointer to the HEAP. - HEAP32[((outPtr)>>2)]=0; - return outPtr - startPtr; -} - - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF32(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var codeUnit = str.charCodeAt(i); - if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. - len += 4; - } - - return len; -} - - -function demangle(func) { - var __cxa_demangle_func = Module['___cxa_demangle'] || Module['__cxa_demangle']; - if (__cxa_demangle_func) { - try { - var s = - func.substr(1); - var len = lengthBytesUTF8(s)+1; - var buf = _malloc(len); - stringToUTF8(s, buf, len); - var status = _malloc(4); - var ret = __cxa_demangle_func(buf, 0, 0, status); - if (getValue(status, 'i32') === 0 && ret) { - return Pointer_stringify(ret); - } - // otherwise, libcxxabi failed - } catch(e) { - // ignore problems here - } finally { - if (buf) _free(buf); - if (status) _free(status); - if (ret) _free(ret); - } - // failure when using libcxxabi, don't demangle - return func; - } - Runtime.warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); - return func; -} - -function demangleAll(text) { - var regex = - /__Z[\w\d_]+/g; - return text.replace(regex, - function(x) { - var y = demangle(x); - return x === y ? x : (x + ' [' + y + ']'); - }); -} - -function jsStackTrace() { - var err = new Error(); - if (!err.stack) { - // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, - // so try that as a special-case. - try { - throw new Error(0); - } catch(e) { - err = e; - } - if (!err.stack) { - return '(no stack trace available)'; - } - } - return err.stack.toString(); -} - -function stackTrace() { - var js = jsStackTrace(); - if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace'](); - return demangleAll(js); -} -Module["stackTrace"] = stackTrace; - -// Memory management - -var PAGE_SIZE = 16384; -var WASM_PAGE_SIZE = 65536; -var ASMJS_PAGE_SIZE = 16777216; -var MIN_TOTAL_MEMORY = 16777216; - -function alignUp(x, multiple) { - if (x % multiple > 0) { - x += multiple - (x % multiple); - } - return x; -} - -var HEAP, -/** @type {ArrayBuffer} */ - buffer, -/** @type {Int8Array} */ - HEAP8, -/** @type {Uint8Array} */ - HEAPU8, -/** @type {Int16Array} */ - HEAP16, -/** @type {Uint16Array} */ - HEAPU16, -/** @type {Int32Array} */ - HEAP32, -/** @type {Uint32Array} */ - HEAPU32, -/** @type {Float32Array} */ - HEAPF32, -/** @type {Float64Array} */ - HEAPF64; - -function updateGlobalBuffer(buf) { - Module['buffer'] = buffer = buf; -} - -function updateGlobalBufferViews() { - Module['HEAP8'] = HEAP8 = new Int8Array(buffer); - Module['HEAP16'] = HEAP16 = new Int16Array(buffer); - Module['HEAP32'] = HEAP32 = new Int32Array(buffer); - Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer); - Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer); - Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer); - Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer); - Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer); -} - -var STATIC_BASE, STATICTOP, staticSealed; // static area -var STACK_BASE, STACKTOP, STACK_MAX; // stack area -var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk - - STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; - staticSealed = false; - - -// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. -function writeStackCookie() { - assert((STACK_MAX & 3) == 0); - HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467; - HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE; -} - -function checkStackCookie() { - if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) { - abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16)); - } - // Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own. - if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!'; -} - -function abortStackOverflow(allocSize) { - abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - Module['asm'].stackSave() + allocSize) + ' bytes available!'); -} - -function abortOnCannotGrowMemory() { - abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); -} - - -function enlargeMemory() { - abortOnCannotGrowMemory(); -} - - -var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; -var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216; -if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); - -// Initialize the runtime's memory -// check for full engine support (use string 'subarray' to avoid closure compiler confusion) -assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined, - 'JS engine does not provide full typed array support'); - - - -// Use a provided buffer, if there is one, or else allocate a new one -if (Module['buffer']) { - buffer = Module['buffer']; - assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength); -} else { - // Use a WebAssembly memory where available - { - buffer = new ArrayBuffer(TOTAL_MEMORY); - } - assert(buffer.byteLength === TOTAL_MEMORY); -} -updateGlobalBufferViews(); - - -function getTotalMemory() { - return TOTAL_MEMORY; -} - -// Endianness check (note: assumes compiler arch was little-endian) - HEAP32[0] = 0x63736d65; /* 'emsc' */ -HEAP16[1] = 0x6373; -if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!'; - -Module['HEAP'] = HEAP; -Module['buffer'] = buffer; -Module['HEAP8'] = HEAP8; -Module['HEAP16'] = HEAP16; -Module['HEAP32'] = HEAP32; -Module['HEAPU8'] = HEAPU8; -Module['HEAPU16'] = HEAPU16; -Module['HEAPU32'] = HEAPU32; -Module['HEAPF32'] = HEAPF32; -Module['HEAPF64'] = HEAPF64; - -function callRuntimeCallbacks(callbacks) { - while(callbacks.length > 0) { - var callback = callbacks.shift(); - if (typeof callback == 'function') { - callback(); - continue; - } - var func = callback.func; - if (typeof func === 'number') { - if (callback.arg === undefined) { - Module['dynCall_v'](func); - } else { - Module['dynCall_vi'](func, callback.arg); - } - } else { - func(callback.arg === undefined ? null : callback.arg); - } - } -} - -var __ATPRERUN__ = []; // functions called before the runtime is initialized -var __ATINIT__ = []; // functions called during startup -var __ATMAIN__ = []; // functions called when main() is to be run -var __ATEXIT__ = []; // functions called during shutdown -var __ATPOSTRUN__ = []; // functions called after the runtime has exited - -var runtimeInitialized = false; -var runtimeExited = false; - - -function preRun() { - // compatibility - merge in anything from Module['preRun'] at this time - if (Module['preRun']) { - if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; - while (Module['preRun'].length) { - addOnPreRun(Module['preRun'].shift()); - } - } - callRuntimeCallbacks(__ATPRERUN__); -} - -function ensureInitRuntime() { - checkStackCookie(); - if (runtimeInitialized) return; - runtimeInitialized = true; - callRuntimeCallbacks(__ATINIT__); -} - -function preMain() { - checkStackCookie(); - callRuntimeCallbacks(__ATMAIN__); -} - -function exitRuntime() { - checkStackCookie(); - callRuntimeCallbacks(__ATEXIT__); - runtimeExited = true; -} - -function postRun() { - checkStackCookie(); - // compatibility - merge in anything from Module['postRun'] at this time - if (Module['postRun']) { - if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; - while (Module['postRun'].length) { - addOnPostRun(Module['postRun'].shift()); - } - } - callRuntimeCallbacks(__ATPOSTRUN__); -} - -function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); -} -Module["addOnPreRun"] = addOnPreRun; - -function addOnInit(cb) { - __ATINIT__.unshift(cb); -} -Module["addOnInit"] = addOnInit; - -function addOnPreMain(cb) { - __ATMAIN__.unshift(cb); -} -Module["addOnPreMain"] = addOnPreMain; - -function addOnExit(cb) { - __ATEXIT__.unshift(cb); -} -Module["addOnExit"] = addOnExit; - -function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); -} -Module["addOnPostRun"] = addOnPostRun; - -// Tools - -/** @type {function(string, boolean=, number=)} */ -function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) u8array.length = numBytesWritten; - return u8array; -} -Module["intArrayFromString"] = intArrayFromString; - -function intArrayToString(array) { - var ret = []; - for (var i = 0; i < array.length; i++) { - var chr = array[i]; - if (chr > 0xFF) { - assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); - chr &= 0xFF; - } - ret.push(String.fromCharCode(chr)); - } - return ret.join(''); -} -Module["intArrayToString"] = intArrayToString; - -// Deprecated: This function should not be called because it is unsafe and does not provide -// a maximum length limit of how many bytes it is allowed to write. Prefer calling the -// function stringToUTF8Array() instead, which takes in a maximum length that can be used -// to be secure from out of bounds writes. -/** @deprecated */ -function writeStringToMemory(string, buffer, dontAddNull) { - Runtime.warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); - - var /** @type {number} */ lastChar, /** @type {number} */ end; - if (dontAddNull) { - // stringToUTF8Array always appends null. If we don't want to do that, remember the - // character that existed at the location where the null will be placed, and restore - // that after the write (below). - end = buffer + lengthBytesUTF8(string); - lastChar = HEAP8[end]; - } - stringToUTF8(string, buffer, Infinity); - if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. -} -Module["writeStringToMemory"] = writeStringToMemory; - -function writeArrayToMemory(array, buffer) { - assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') - HEAP8.set(array, buffer); -} -Module["writeArrayToMemory"] = writeArrayToMemory; - -function writeAsciiToMemory(str, buffer, dontAddNull) { - for (var i = 0; i < str.length; ++i) { - assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); - HEAP8[((buffer++)>>0)]=str.charCodeAt(i); - } - // Null-terminate the pointer to the HEAP. - if (!dontAddNull) HEAP8[((buffer)>>0)]=0; -} -Module["writeAsciiToMemory"] = writeAsciiToMemory; - -function unSign(value, bits, ignore) { - if (value >= 0) { - return value; - } - return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts - : Math.pow(2, bits) + value; -} -function reSign(value, bits, ignore) { - if (value <= 0) { - return value; - } - var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 - : Math.pow(2, bits-1); - if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that - // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors - // TODO: In i64 mode 1, resign the two parts separately and safely - value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts - } - return value; -} - -// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 ) -if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) { - var ah = a >>> 16; - var al = a & 0xffff; - var bh = b >>> 16; - var bl = b & 0xffff; - return (al*bl + ((ah*bl + al*bh) << 16))|0; -}; -Math.imul = Math['imul']; - - -if (!Math['clz32']) Math['clz32'] = function(x) { - x = x >>> 0; - for (var i = 0; i < 32; i++) { - if (x & (1 << (31 - i))) return i; - } - return 32; -}; -Math.clz32 = Math['clz32'] - -if (!Math['trunc']) Math['trunc'] = function(x) { - return x < 0 ? Math.ceil(x) : Math.floor(x); -}; -Math.trunc = Math['trunc']; - -var Math_abs = Math.abs; -var Math_cos = Math.cos; -var Math_sin = Math.sin; -var Math_tan = Math.tan; -var Math_acos = Math.acos; -var Math_asin = Math.asin; -var Math_atan = Math.atan; -var Math_atan2 = Math.atan2; -var Math_exp = Math.exp; -var Math_log = Math.log; -var Math_sqrt = Math.sqrt; -var Math_ceil = Math.ceil; -var Math_floor = Math.floor; -var Math_pow = Math.pow; -var Math_imul = Math.imul; -var Math_fround = Math.fround; -var Math_round = Math.round; -var Math_min = Math.min; -var Math_clz32 = Math.clz32; -var Math_trunc = Math.trunc; - -// A counter of dependencies for calling run(). If we need to -// do asynchronous work before running, increment this and -// decrement it. Incrementing must happen in a place like -// PRE_RUN_ADDITIONS (used by emcc to add file preloading). -// Note that you can add dependencies in preRun, even though -// it happens right before run - run will be postponed until -// the dependencies are met. -var runDependencies = 0; -var runDependencyWatcher = null; -var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled -var runDependencyTracking = {}; - -function getUniqueRunDependency(id) { - var orig = id; - while (1) { - if (!runDependencyTracking[id]) return id; - id = orig + Math.random(); - } - return id; -} - -function addRunDependency(id) { - runDependencies++; - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - if (id) { - assert(!runDependencyTracking[id]); - runDependencyTracking[id] = 1; - if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { - // Check for missing dependencies every few seconds - runDependencyWatcher = setInterval(function() { - if (ABORT) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - return; - } - var shown = false; - for (var dep in runDependencyTracking) { - if (!shown) { - shown = true; - Module.printErr('still waiting on run dependencies:'); - } - Module.printErr('dependency: ' + dep); - } - if (shown) { - Module.printErr('(end of list)'); - } - }, 10000); - } - } else { - Module.printErr('warning: run dependency added without ID'); - } -} -Module["addRunDependency"] = addRunDependency; - -function removeRunDependency(id) { - runDependencies--; - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - if (id) { - assert(runDependencyTracking[id]); - delete runDependencyTracking[id]; - } else { - Module.printErr('warning: run dependency removed without ID'); - } - if (runDependencies == 0) { - if (runDependencyWatcher !== null) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - } - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); // can add another dependenciesFulfilled - } - } -} -Module["removeRunDependency"] = removeRunDependency; - -Module["preloadedImages"] = {}; // maps url to image data -Module["preloadedAudios"] = {}; // maps url to audio data - - - -var memoryInitializer = null; - - - -var /* show errors on likely calls to FS when it was not included */ FS = { - error: function() { - abort('Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -s FORCE_FILESYSTEM=1'); - }, - init: function() { FS.error() }, - createDataFile: function() { FS.error() }, - createPreloadedFile: function() { FS.error() }, - createLazyFile: function() { FS.error() }, - open: function() { FS.error() }, - mkdev: function() { FS.error() }, - registerDevice: function() { FS.error() }, - analyzePath: function() { FS.error() }, - loadFilesFromDB: function() { FS.error() }, - - ErrnoError: function ErrnoError() { FS.error() }, -}; -Module['FS_createDataFile'] = FS.createDataFile; -Module['FS_createPreloadedFile'] = FS.createPreloadedFile; - - - -// === Body === - -var ASM_CONSTS = [function($0, $1) { Module.printErr('bad name in getProcAddress: ' + [Pointer_stringify($0), Pointer_stringify($1)]) }]; - -function _emscripten_asm_const_iii(code, a0, a1) { - return ASM_CONSTS[code](a0, a1); -} - - - -STATIC_BASE = Runtime.GLOBAL_BASE; - -STATICTOP = STATIC_BASE + 19568; -/* global initializers */ __ATINIT__.push(); - - -/* memory initializer */ allocate([32,3,0,0,194,1,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,176,1,0,0,0,0,0,0,0,0,0,32,37,249,142,0,10,2,0,0,128,190,125,95,244,125,31,160,242,43,74,30,9,82,8,0,64,34,65,80,20,4,16,32,32,41,46,18,8,34,8,0,32,34,65,80,20,4,16,32,32,249,16,76,8,250,62,60,16,34,125,222,247,125,16,32,32,161,232,50,8,34,8,0,8,34,5,16,4,69,16,0,240,163,164,50,8,82,8,0,4,34,5,16,4,69,16,32,32,249,226,94,8,2,0,129,2,62,125,31,244,125,16,0,0,32,0,0,176,1,128,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,0,0,0,0,190,15,0,192,15,224,247,251,125,126,191,95,232,190,80,0,162,8,8,68,232,47,20,10,133,2,129,80,72,160,80,0,162,40,228,73,40,40,20,10,132,2,129,64,72,160,72,0,190,15,2,16,175,235,247,9,132,62,159,216,79,160,71,0,34,136,228,9,161,42,20,10,132,2,129,80,72,160,72,0,34,40,8,4,160,47,20,10,133,2,129,80,72,162,80,0,190,143,0,0,33,32,244,251,125,126,129,95,232,156,208,7,0,128,0,0,224,15,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,0,0,128,1,12,0,130,66,191,223,239,247,251,11,5,5,133,66,191,4,72,0,198,66,161,80,40,20,64,8,5,37,133,66,160,8,168,0,170,70,161,80,40,20,64,8,5,37,133,66,144,16,8,0,146,74,161,95,232,247,67,8,5,37,121,126,136,32,8,0,130,82,161,64,40,1,66,8,137,36,133,64,132,64,8,0,130,98,161,64,42,2,66,8,81,36,133,64,130,128,8,0,130,66,191,192,47,244,67,248,33,252,133,126,191,0,9,62,0,0,0,0,4,0,0,0,0,0,0,0,128,1,12,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,2,4,0,4,0,32,72,65,0,0,0,0,0,8,0,0,4,4,0,4,60,32,0,65,0,0,0,0,0,8,0,0,240,125,223,247,133,239,75,81,190,239,251,190,239,59,81,4,0,69,65,20,133,40,74,73,170,40,138,162,32,8,81,4,240,69,65,244,157,40,74,71,170,40,138,162,224,11,81,4,16,69,65,20,132,40,74,73,170,40,138,162,0,10,145,2,240,125,223,247,133,47,74,209,170,232,251,190,224,123,31,1,0,0,0,0,4,8,64,0,0,0,8,32,0,0,0,0,0,0,0,0,132,15,96,0,0,0,8,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,1,15,0,0,0,0,0,0,0,0,0,0,0,0,0,36,1,15,0,0,0,0,0,0,0,0,0,6,0,0,0,36,1,15,0,0,0,0,0,0,0,128,16,9,162,40,250,36,1,15,0,0,0,0,0,0,0,0,62,1,42,37,66,34,82,15,0,0,0,0,0,0,0,128,138,3,42,34,34,36,41,15,0,0,0,0,0,0,0,128,10,1,42,37,18,36,1,15,0,0,0,0,0,0,0,128,10,1,190,232,251,36,1,15,0,0,0,0,0,0,0,128,190,14,0,0,2,172,1,15,0,0,0,0,0,0,0,128,4,0,0,224,3,0,0,15,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,14,184,67,132,3,58,32,0,128,160,190,2,32,0,0,240,138,32,82,196,2,43,32,4,34,145,2,248,59,0,240,7,142,56,75,228,2,58,32,2,28,138,30,8,42,233,17,4,224,11,66,244,2,130,36,1,20,4,20,232,186,4,209,5,128,184,195,231,10,58,137,0,28,14,60,40,2,9,80,4,128,0,64,196,2,128,68,0,34,132,32,232,2,0,80,4,0,0,64,128,2,0,32,5,0,142,62,8,2,0,16,4,224,3,64,128,66,0,0,7,0,132,0,248,3,0,240,7,0,0,64,128,34,0,0,4,0,0,0,0,0,0,0,0,0,0,64,128,2,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,128,0,194,160,72,24,0,0,1,132,33,9,146,2,66,38,4,1,33,81,0,0,127,63,2,66,2,16,41,0,34,20,192,239,247,251,253,126,9,161,223,239,247,187,187,3,18,15,68,40,20,10,133,66,9,129,64,32,16,16,17,1,8,4,68,40,20,10,133,66,127,129,64,32,16,16,17,1,4,130,199,239,247,251,253,126,9,129,207,231,243,17,17,1,50,169,80,40,20,10,133,66,9,161,64,32,16,16,17,1,64,184,80,40,20,10,133,66,121,191,223,239,247,187,187,3,32,160,31,0,0,0,0,0,0,16,0,0,0,0,0,0,112,32,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,40,2,8,131,34,1,0,2,8,67,2,1,0,1,1,124,20,4,132,68,1,0,32,4,132,4,128,8,63,130,0,132,66,191,223,239,247,3,126,161,80,40,20,10,33,0,0,132,70,161,80,40,20,138,82,161,80,40,20,122,161,239,3,158,74,161,80,40,20,82,82,161,80,40,20,74,31,8,2,132,82,161,80,40,20,34,74,161,80,40,244,75,161,239,3,132,98,161,80,40,20,82,74,161,80,40,4,122,161,40,2,124,66,191,223,239,247,139,126,191,223,239,247,11,189,239,3,0,0,0,0,0,0,0,4,0,0,0,0,8,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,8,5,32,0,0,4,132,0,34,129,69,17,16,66,1,0,148,66,81,0,0,8,66,81,148,42,162,32,8,165,80,0,0,0,32,0,0,0,0,0,0,0,5,0,0,0,0,8,190,239,251,254,251,190,239,251,20,145,235,251,190,239,251,0,32,8,130,32,10,162,40,138,20,145,40,138,162,40,138,62,190,239,251,254,11,190,239,251,20,145,40,138,162,40,138,0,162,40,138,34,8,130,32,8,20,145,40,138,162,40,138,8,190,239,251,254,251,190,239,251,20,145,47,250,190,239,251,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,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,1,33,0,4,0,0,0,0,0,0,0,0,0,0,0,0,130,80,20,2,20,0,0,0,0,0,0,0,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,190,40,138,162,40,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,168,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,190,239,251,190,47,62,0,0,0,0,0,0,0,0,0,0,4,0,0,0,40,32,0,0,0,0,0,0,0,0,0,0,0,0,0,128,15,62,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,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,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,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,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,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,3,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,7,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,7,0,0,0,3,0,0,0,5,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,5,0,0,0,0,0,128,191,255,255,255,255,255,255,255,255,0,1,0,0,255,255,255,255,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,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,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,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,236,66,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,0,0,160,12,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,99,72,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,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,160,12,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,3,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,255,255,255,255,255,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,114,97,121,108,105,98,32,91,99,111,114,101,93,32,101,120,97,109,112,108,101,32,45,32,109,111,117,115,101,32,119,104,101,101,108,0,85,115,101,32,109,111,117,115,101,32,119,104,101,101,108,32,116,111,32,109,111,118,101,32,116,104,101,32,99,117,98,101,32,117,112,32,97,110,100,32,100,111,119,110,33,0,66,111,120,32,112,111,115,105,116,105,111,110,32,89,58,32,37,48,51,105,0,73,78,70,79,58,32,0,87,65,82,78,73,78,71,58,32,0,91,84,69,88,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,102,111,110,116,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,80,97,114,97,109,101,116,101,114,115,58,32,37,105,120,37,105,44,32,37,105,32,109,105,112,115,44,32,102,111,114,109,97,116,32,37,105,0,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,50,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,84,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,84,101,120,116,117,114,101,32,99,114,101,97,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,84,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,99,114,101,97,116,101,100,0,73,109,97,103,101,32,100,97,116,97,32,102,111,114,109,97,116,32,105,115,32,99,111,109,112,114,101,115,115,101,100,44,32,99,97,110,32,110,111,116,32,98,101,32,99,111,110,118,101,114,116,101,100,0,70,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,112,105,120,101,108,32,100,97,116,97,32,114,101,116,114,105,101,118,97,108,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,77,65,88,95,76,73,78,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,84,82,73,65,78,71,76,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,81,85,65,68,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,83,116,97,99,107,32,66,117,102,102,101,114,32,79,118,101,114,102,108,111,119,32,40,77,65,88,32,37,105,32,77,97,116,114,105,120,41,0,73,110,105,116,105,97,108,105,122,105,110,103,32,114,97,121,108,105,98,32,40,118,49,46,56,46,48,41,0,35,99,97,110,118,97,115,0,84,97,114,103,101,116,32,116,105,109,101,32,112,101,114,32,102,114,97,109,101,58,32,37,48,50,46,48,51,102,32,109,105,108,108,105,115,101,99,111,110,100,115,0,69,115,99,97,112,101,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,102,117,108,108,115,99,114,101,101,110,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,119,105,110,100,111,119,101,100,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,71,76,70,87,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,77,83,65,65,32,120,52,0,67,108,111,115,101,115,116,32,102,117,108,108,115,99,114,101,101,110,32,118,105,100,101,111,109,111,100,101,58,32,37,105,32,120,32,37,105,0,71,76,70,87,32,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,87,105,110,100,111,119,0,68,105,115,112,108,97,121,32,100,101,118,105,99,101,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,82,101,110,100,101,114,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,83,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,86,105,101,119,112,111,114,116,32,111,102,102,115,101,116,115,58,32,37,105,44,32,37,105,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,86,83,89,78,67,0,71,80,85,58,32,86,101,110,100,111,114,58,32,32,32,37,115,0,71,80,85,58,32,82,101,110,100,101,114,101,114,58,32,37,115,0,71,80,85,58,32,86,101,114,115,105,111,110,58,32,32,37,115,0,71,80,85,58,32,71,76,83,76,58,32,32,32,32,32,37,115,0,32,0,78,117,109,98,101,114,32,111,102,32,115,117,112,112,111,114,116,101,100,32,101,120,116,101,110,115,105,111,110,115,58,32,37,105,0,71,76,95,79,69,83,95,118,101,114,116,101,120,95,97,114,114,97,121,95,111,98,106,101,99,116,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,79,69,83,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,71,76,95,79,69,83,95,116,101,120,116,117,114,101,95,110,112,111,116,0,79,69,83,95,116,101,120,116,117,114,101,95,102,108,111,97,116,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,115,51,116,99,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,87,69,66,75,73,84,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,79,69,83,95,99,111,109,112,114,101,115,115,101,100,95,69,84,67,49,95,82,71,66,56,95,116,101,120,116,117,114,101,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,101,116,99,49,0,71,76,95,65,82,66,95,69,83,51,95,99,111,109,112,97,116,105,98,105,108,105,116,121,0,71,76,95,73,77,71,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,112,118,114,116,99,0,71,76,95,75,72,82,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,97,115,116,99,95,104,100,114,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,102,105,108,116,101,114,95,97,110,105,115,111,116,114,111,112,105,99,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,109,105,114,114,111,114,95,99,108,97,109,112,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,86,65,79,32,102,117,110,99,116,105,111,110,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,86,65,79,32,117,115,97,103,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,102,117,108,108,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,108,105,109,105,116,101,100,32,78,80,79,84,32,115,117,112,112,111,114,116,32,40,110,111,45,109,105,112,109,97,112,115,44,32,110,111,45,114,101,112,101,97,116,41,0,91,69,88,84,69,78,83,73,79,78,93,32,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,50,47,69,65,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,110,105,115,111,116,114,111,112,105,99,32,116,101,120,116,117,114,101,115,32,102,105,108,116,101,114,105,110,103,32,115,117,112,112,111,114,116,101,100,32,40,109,97,120,58,32,37,46,48,102,88,41,0,91,69,88,84,69,78,83,73,79,78,93,32,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,116,101,120,116,117,114,101,32,109,111,100,101,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,79,112,101,110,71,76,32,100,101,102,97,117,108,116,32,115,116,97,116,101,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,67,80,85,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,44,32,116,114,105,97,110,103,108,101,115,44,32,113,117,97,100,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,51,32,118,101,114,116,101,120,80,111,115,105,116,105,111,110,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,50,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,52,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,109,97,116,52,32,109,118,112,59,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,102,114,97,103,84,101,120,67,111,111,114,100,32,61,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,10,32,32,32,32,102,114,97,103,67,111,108,111,114,32,61,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,10,32,32,32,32,103,108,95,80,111,115,105,116,105,111,110,32,61,32,109,118,112,42,118,101,99,52,40,118,101,114,116,101,120,80,111,115,105,116,105,111,110,44,32,49,46,48,41,59,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,112,114,101,99,105,115,105,111,110,32,109,101,100,105,117,109,112,32,102,108,111,97,116,59,32,32,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,116,101,120,116,117,114,101,48,59,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,118,101,99,52,32,99,111,108,68,105,102,102,117,115,101,59,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,118,101,99,52,32,116,101,120,101,108,67,111,108,111,114,32,61,32,116,101,120,116,117,114,101,50,68,40,116,101,120,116,117,114,101,48,44,32,102,114,97,103,84,101,120,67,111,111,114,100,41,59,32,10,32,32,32,32,103,108,95,70,114,97,103,67,111,108,111,114,32,61,32,116,101,120,101,108,67,111,108,111,114,42,99,111,108,68,105,102,102,117,115,101,42,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,118,101,114,116,101,120,80,111,115,105,116,105,111,110,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,0,118,101,114,116,101,120,67,111,108,111,114,0,109,118,112,0,99,111,108,68,105,102,102,117,115,101,0,116,101,120,116,117,114,101,48,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,118,101,114,116,101,120,32,115,104,97,100,101,114,46,46,46,0,37,115,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,86,101,114,116,101,120,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,102,114,97,103,109,101,110,116,32,115,104,97,100,101,114,46,46,46,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,114,97,103,109,101,110,116,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,118,101,114,116,101,120,78,111,114,109,97,108,0,118,101,114,116,101,120,84,97,110,103,101,110,116,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,50,0,91,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,108,105,110,107,32,115,104,97,100,101,114,32,112,114,111,103,114,97,109,46,46,46,0,91,83,72,68,82,32,73,68,32,37,105,93,32,83,104,97,100,101,114,32,112,114,111,103,114,97,109,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,79,87,78,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,32,40,37,105,120,37,105,41,32,105,115,32,98,105,103,103,101,114,32,116,104,97,110,32,100,105,115,112,108,97,121,32,115,105,122,101,32,40,37,105,120,37,105,41,0,68,111,119,110,115,99,97,108,101,32,109,97,116,114,105,120,32,103,101,110,101,114,97,116,101,100,44,32,99,111,110,116,101,110,116,32,119,105,108,108,32,98,101,32,114,101,110,100,101,114,101,100,32,97,116,58,32,37,105,32,120,32,37,105,0,85,80,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,32,45,62,32,68,105,115,112,108,97,121,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,91,71,76,70,87,51,32,69,114,114,111,114,93,32,67,111,100,101,58,32,37,105,32,68,101,99,114,105,112,116,105,111,110,58,32,37,115,0,87,105,110,100,111,119,32,99,108,111,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,40,98,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,41,32,102,114,111,109,32,86,82,65,77,0,69,88,84,0,65,82,66,0,79,69,83,0,65,78,71,76,69,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,0,103,108,85,115,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,85,115,101,80,114,111,103,114,97,109,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,0,103,108,65,116,116,97,99,104,79,98,106,101,99,116,0,103,108,65,116,116,97,99,104,83,104,97,100,101,114,0,103,108,68,101,116,97,99,104,79,98,106,101,99,116,0,103,108,68,101,116,97,99,104,83,104,97,100,101,114,0,103,108,80,105,120,101,108,83,116,111,114,101,105,0,103,108,71,101,116,83,116,114,105,110,103,0,103,108,71,101,116,73,110,116,101,103,101,114,118,0,103,108,71,101,116,70,108,111,97,116,118,0,103,108,71,101,116,66,111,111,108,101,97,110,118,0,103,108,71,101,110,84,101,120,116,117,114,101,115,0,103,108,68,101,108,101,116,101,84,101,120,116,117,114,101,115,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,84,101,120,73,109,97,103,101,50,68,0,103,108,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,82,101,97,100,80,105,120,101,108,115,0,103,108,66,105,110,100,84,101,120,116,117,114,101,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,84,101,120,116,117,114,101,0,103,108,71,101,110,66,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,66,117,102,102,101,114,115,0,103,108,71,101,116,66,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,66,117,102,102,101,114,68,97,116,97,0,103,108,66,117,102,102,101,114,83,117,98,68,97,116,97,0,103,108,73,115,66,117,102,102,101,114,0,103,108,71,101,110,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,66,105,110,100,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,82,101,110,100,101,114,98,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,85,110,105,102,111,114,109,102,118,0,103,108,71,101,116,85,110,105,102,111,114,109,105,118,0,103,108,71,101,116,85,110,105,102,111,114,109,76,111,99,97,116,105,111,110,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,102,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,105,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,118,0,103,108,71,101,116,65,99,116,105,118,101,85,110,105,102,111,114,109,0,103,108,85,110,105,102,111,114,109,49,102,0,103,108,85,110,105,102,111,114,109,50,102,0,103,108,85,110,105,102,111,114,109,51,102,0,103,108,85,110,105,102,111,114,109,52,102,0,103,108,85,110,105,102,111,114,109,49,105,0,103,108,85,110,105,102,111,114,109,50,105,0,103,108,85,110,105,102,111,114,109,51,105,0,103,108,85,110,105,102,111,114,109,52,105,0,103,108,85,110,105,102,111,114,109,49,105,118,0,103,108,85,110,105,102,111,114,109,50,105,118,0,103,108,85,110,105,102,111,114,109,51,105,118,0,103,108,85,110,105,102,111,114,109,52,105,118,0,103,108,85,110,105,102,111,114,109,49,102,118,0,103,108,85,110,105,102,111,114,109,50,102,118,0,103,108,85,110,105,102,111,114,109,51,102,118,0,103,108,85,110,105,102,111,114,109,52,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,50,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,51,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,52,102,118,0,103,108,66,105,110,100,66,117,102,102,101,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,118,0,103,108,71,101,116,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,71,101,116,65,99,116,105,118,101,65,116,116,114,105,98,0,103,108,68,101,108,101,116,101,83,104,97,100,101,114,0,103,108,71,101,116,65,116,116,97,99,104,101,100,83,104,97,100,101,114,115,0,103,108,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,71,101,116,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,67,111,109,112,105,108,101,83,104,97,100,101,114,0,103,108,71,101,116,83,104,97,100,101,114,73,110,102,111,76,111,103,0,103,108,71,101,116,83,104,97,100,101,114,105,118,0,103,108,71,101,116,80,114,111,103,114,97,109,105,118,0,103,108,73,115,83,104,97,100,101,114,0,103,108,68,101,108,101,116,101,80,114,111,103,114,97,109,0,103,108,71,101,116,83,104,97,100,101,114,80,114,101,99,105,115,105,111,110,70,111,114,109,97,116,0,103,108,76,105,110,107,80,114,111,103,114,97,109,0,103,108,71,101,116,80,114,111,103,114,97,109,73,110,102,111,76,111,103,0,103,108,86,97,108,105,100,97,116,101,80,114,111,103,114,97,109,0,103,108,73,115,80,114,111,103,114,97,109,0,103,108,66,105,110,100,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,66,105,110,100,70,114,97,109,101,98,117,102,102,101,114,0,103,108,71,101,110,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,70,114,97,109,101,98,117,102,102,101,114,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,70,114,97,109,101,98,117,102,102,101,114,84,101,120,116,117,114,101,50,68,0,103,108,71,101,116,70,114,97,109,101,98,117,102,102,101,114,65,116,116,97,99,104,109,101,110,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,70,114,97,109,101,98,117,102,102,101,114,0,103,108,68,101,108,101,116,101,79,98,106,101,99,116,0,103,108,71,101,116,79,98,106,101,99,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,71,101,116,73,110,102,111,76,111,103,0,103,108,66,105,110,100,80,114,111,103,114,97,109,0,103,108,71,101,116,80,111,105,110,116,101,114,118,0,103,108,68,114,97,119,82,97,110,103,101,69,108,101,109,101,110,116,115,0,103,108,69,110,97,98,108,101,67,108,105,101,110,116,83,116,97,116,101,0,103,108,86,101,114,116,101,120,80,111,105,110,116,101,114,0,103,108,84,101,120,67,111,111,114,100,80,111,105,110,116,101,114,0,103,108,78,111,114,109,97,108,80,111,105,110,116,101,114,0,103,108,67,111,108,111,114,80,111,105,110,116,101,114,0,103,108,67,108,105,101,110,116,65,99], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); -/* memory initializer */ allocate([116,105,118,101,84,101,120,116,117,114,101,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,0,103,108,77,97,116,114,105,120,77,111,100,101,0,103,108,76,111,97,100,73,100,101,110,116,105,116,121,0,103,108,76,111,97,100,77,97,116,114,105,120,102,0,103,108,70,114,117,115,116,117,109,0,103,108,82,111,116,97,116,101,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,0,103,108,69,110,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,105,115,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,114,97,119,65,114,114,97,121,115,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,0,103,108,83,104,97,100,101,114,66,105,110,97,114,121,0,103,108,82,101,108,101,97,115,101,83,104,97,100,101,114,67,111,109,112,105,108,101,114,0,103,108,71,101,116,69,114,114,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,68,105,118,105,115,111,114,0,103,108,68,114,97,119,65,114,114,97,121,115,73,110,115,116,97,110,99,101,100,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,73,110,115,116,97,110,99,101,100,0,103,108,70,105,110,105,115,104,0,103,108,70,108,117,115,104,0,103,108,67,108,101,97,114,68,101,112,116,104,0,103,108,67,108,101,97,114,68,101,112,116,104,102,0,103,108,68,101,112,116,104,70,117,110,99,0,103,108,69,110,97,98,108,101,0,103,108,68,105,115,97,98,108,101,0,103,108,70,114,111,110,116,70,97,99,101,0,103,108,67,117,108,108,70,97,99,101,0,103,108,67,108,101,97,114,0,103,108,76,105,110,101,87,105,100,116,104,0,103,108,67,108,101,97,114,83,116,101,110,99,105,108,0,103,108,68,101,112,116,104,77,97,115,107,0,103,108,83,116,101,110,99,105,108,77,97,115,107,0,103,108,67,104,101,99,107,70,114,97,109,101,98,117,102,102,101,114,83,116,97,116,117,115,0,103,108,71,101,110,101,114,97,116,101,77,105,112,109,97,112,0,103,108,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,0,103,108,73,115,69,110,97,98,108,101,100,0,103,108,66,108,101,110,100,70,117,110,99,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,83,101,112,97,114,97,116,101,0,103,108,68,101,112,116,104,82,97,110,103,101,0,103,108,68,101,112,116,104,82,97,110,103,101,102,0,103,108,83,116,101,110,99,105,108,77,97,115,107,83,101,112,97,114,97,116,101,0,103,108,72,105,110,116,0,103,108,80,111,108,121,103,111,110,79,102,102,115,101,116,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,0,103,108,83,97,109,112,108,101,67,111,118,101,114,97,103,101,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,0,103,108,83,116,101,110,99,105,108,70,117,110,99,0,103,108,83,116,101,110,99,105,108,79,112,0,103,108,86,105,101,119,112,111,114,116,0,103,108,67,108,101,97,114,67,111,108,111,114,0,103,108,83,99,105,115,115,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,0,103,108,67,111,108,111,114,77,97,115,107,0,103,108,82,101,110,100,101,114,98,117,102,102,101,114,83,116,111,114,97,103,101,0,103,108,66,108,101,110,100,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,66,108,101,110,100,67,111,108,111,114,0,103,108,83,116,101,110,99,105,108,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,83,116,101,110,99,105,108,79,112,83,101,112,97,114,97,116,101,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,0,103,108,67,111,112,121,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,112,121,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,68,114,97,119,66,117,102,102,101,114,115,0,77,111,100,117,108,101,46,112,114,105,110,116,69,114,114,40,39,98,97,100,32,110,97,109,101,32,105,110,32,103,101,116,80,114,111,99,65,100,100,114,101,115,115,58,32,39,32,43,32,91,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,48,41,44,32,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,49,41,93,41,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,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,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,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,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,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,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,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,18,0,0,0,18,18,18,0,0,0,0,0,0,9,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,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,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,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240); - - - - - -/* no memory initializer */ -var tempDoublePtr = STATICTOP; STATICTOP += 16; - -assert(tempDoublePtr % 8 == 0); - -function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much - - HEAP8[tempDoublePtr] = HEAP8[ptr]; - - HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; - - HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; - - HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; - -} - -function copyTempDouble(ptr) { - - HEAP8[tempDoublePtr] = HEAP8[ptr]; - - HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; - - HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; - - HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; - - HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; - - HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; - - HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; - - HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; - -} - -// {{PRE_LIBRARY}} - - - - var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},tempFixedLengthArray:[],packAlignment:4,unpackAlignment:4,init:function () { - GL.miniTempBuffer = new Float32Array(GL.MINI_TEMP_BUFFER_SIZE); - for (var i = 0; i < GL.MINI_TEMP_BUFFER_SIZE; i++) { - GL.miniTempBufferViews[i] = GL.miniTempBuffer.subarray(0, i+1); - } - - // For functions such as glDrawBuffers, glInvalidateFramebuffer and glInvalidateSubFramebuffer that need to pass a short array to the WebGL API, - // create a set of short fixed-length arrays to avoid having to generate any garbage when calling those functions. - for (var i = 0; i < 32; i++) { - GL.tempFixedLengthArray.push(new Array(i)); - } - },recordError:function recordError(errorCode) { - if (!GL.lastError) { - GL.lastError = errorCode; - } - },getNewId:function (table) { - var ret = GL.counter++; - for (var i = table.length; i < ret; i++) { - table[i] = null; - } - return ret; - },MINI_TEMP_BUFFER_SIZE:256,miniTempBuffer:null,miniTempBufferViews:[0],getSource:function (shader, count, string, length) { - var source = ''; - for (var i = 0; i < count; ++i) { - var frag; - if (length) { - var len = HEAP32[(((length)+(i*4))>>2)]; - if (len < 0) { - frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); - } else { - frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)], len); - } - } else { - frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); - } - source += frag; - } - return source; - },createContext:function (canvas, webGLContextAttributes) { - if (typeof webGLContextAttributes['majorVersion'] === 'undefined' && typeof webGLContextAttributes['minorVersion'] === 'undefined') { - webGLContextAttributes['majorVersion'] = 1; - webGLContextAttributes['minorVersion'] = 0; - } - - - var ctx; - var errorInfo = '?'; - function onContextCreationError(event) { - errorInfo = event.statusMessage || errorInfo; - } - try { - canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false); - try { - if (webGLContextAttributes['majorVersion'] == 1 && webGLContextAttributes['minorVersion'] == 0) { - ctx = canvas.getContext("webgl", webGLContextAttributes) || canvas.getContext("experimental-webgl", webGLContextAttributes); - } else if (webGLContextAttributes['majorVersion'] == 2 && webGLContextAttributes['minorVersion'] == 0) { - ctx = canvas.getContext("webgl2", webGLContextAttributes); - } else { - throw 'Unsupported WebGL context version ' + majorVersion + '.' + minorVersion + '!' - } - } finally { - canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false); - } - if (!ctx) throw ':('; - } catch (e) { - Module.print('Could not create canvas: ' + [errorInfo, e, JSON.stringify(webGLContextAttributes)]); - return 0; - } - // possible GL_DEBUG entry point: ctx = wrapDebugGL(ctx); - - if (!ctx) return 0; - return GL.registerContext(ctx, webGLContextAttributes); - },registerContext:function (ctx, webGLContextAttributes) { - var handle = GL.getNewId(GL.contexts); - var context = { - handle: handle, - attributes: webGLContextAttributes, - version: webGLContextAttributes['majorVersion'], - GLctx: ctx - }; - - - // Store the created context object so that we can access the context given a canvas without having to pass the parameters again. - if (ctx.canvas) ctx.canvas.GLctxObject = context; - GL.contexts[handle] = context; - if (typeof webGLContextAttributes['enableExtensionsByDefault'] === 'undefined' || webGLContextAttributes['enableExtensionsByDefault']) { - GL.initExtensions(context); - } - return handle; - },makeContextCurrent:function (contextHandle) { - var context = GL.contexts[contextHandle]; - if (!context) return false; - GLctx = Module.ctx = context.GLctx; // Active WebGL context object. - GL.currentContext = context; // Active Emscripten GL layer context object. - return true; - },getContext:function (contextHandle) { - return GL.contexts[contextHandle]; - },deleteContext:function (contextHandle) { - if (GL.currentContext === GL.contexts[contextHandle]) GL.currentContext = null; - if (typeof JSEvents === 'object') JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); // Release all JS event handlers on the DOM element that the GL context is associated with since the context is now deleted. - if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; // Make sure the canvas object no longer refers to the context object so there are no GC surprises. - GL.contexts[contextHandle] = null; - },initExtensions:function (context) { - // If this function is called without a specific context object, init the extensions of the currently active context. - if (!context) context = GL.currentContext; - - if (context.initExtensionsDone) return; - context.initExtensionsDone = true; - - var GLctx = context.GLctx; - - context.maxVertexAttribs = GLctx.getParameter(GLctx.MAX_VERTEX_ATTRIBS); - - // Detect the presence of a few extensions manually, this GL interop layer itself will need to know if they exist. - - if (context.version < 2) { - // Extension available from Firefox 26 and Google Chrome 30 - var instancedArraysExt = GLctx.getExtension('ANGLE_instanced_arrays'); - if (instancedArraysExt) { - GLctx['vertexAttribDivisor'] = function(index, divisor) { instancedArraysExt['vertexAttribDivisorANGLE'](index, divisor); }; - GLctx['drawArraysInstanced'] = function(mode, first, count, primcount) { instancedArraysExt['drawArraysInstancedANGLE'](mode, first, count, primcount); }; - GLctx['drawElementsInstanced'] = function(mode, count, type, indices, primcount) { instancedArraysExt['drawElementsInstancedANGLE'](mode, count, type, indices, primcount); }; - } - - // Extension available from Firefox 25 and WebKit - var vaoExt = GLctx.getExtension('OES_vertex_array_object'); - if (vaoExt) { - GLctx['createVertexArray'] = function() { return vaoExt['createVertexArrayOES'](); }; - GLctx['deleteVertexArray'] = function(vao) { vaoExt['deleteVertexArrayOES'](vao); }; - GLctx['bindVertexArray'] = function(vao) { vaoExt['bindVertexArrayOES'](vao); }; - GLctx['isVertexArray'] = function(vao) { return vaoExt['isVertexArrayOES'](vao); }; - } - - var drawBuffersExt = GLctx.getExtension('WEBGL_draw_buffers'); - if (drawBuffersExt) { - GLctx['drawBuffers'] = function(n, bufs) { drawBuffersExt['drawBuffersWEBGL'](n, bufs); }; - } - } - - GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); - - // These are the 'safe' feature-enabling extensions that don't add any performance impact related to e.g. debugging, and - // should be enabled by default so that client GLES2/GL code will not need to go through extra hoops to get its stuff working. - // As new extensions are ratified at http://www.khronos.org/registry/webgl/extensions/ , feel free to add your new extensions - // here, as long as they don't produce a performance impact for users that might not be using those extensions. - // E.g. debugging-related extensions should probably be off by default. - var automaticallyEnabledExtensions = [ "OES_texture_float", "OES_texture_half_float", "OES_standard_derivatives", - "OES_vertex_array_object", "WEBGL_compressed_texture_s3tc", "WEBGL_depth_texture", - "OES_element_index_uint", "EXT_texture_filter_anisotropic", "ANGLE_instanced_arrays", - "OES_texture_float_linear", "OES_texture_half_float_linear", "WEBGL_compressed_texture_atc", - "WEBGL_compressed_texture_pvrtc", "EXT_color_buffer_half_float", "WEBGL_color_buffer_float", - "EXT_frag_depth", "EXT_sRGB", "WEBGL_draw_buffers", "WEBGL_shared_resources", - "EXT_shader_texture_lod", "EXT_color_buffer_float"]; - - function shouldEnableAutomatically(extension) { - var ret = false; - automaticallyEnabledExtensions.forEach(function(include) { - if (ext.indexOf(include) != -1) { - ret = true; - } - }); - return ret; - } - - var exts = GLctx.getSupportedExtensions(); - if (exts && exts.length > 0) { - GLctx.getSupportedExtensions().forEach(function(ext) { - if (automaticallyEnabledExtensions.indexOf(ext) != -1) { - GLctx.getExtension(ext); // Calling .getExtension enables that extension permanently, no need to store the return value to be enabled. - } - }); - } - },populateUniformTable:function (program) { - var p = GL.programs[program]; - GL.programInfos[program] = { - uniforms: {}, - maxUniformLength: 0, // This is eagerly computed below, since we already enumerate all uniforms anyway. - maxAttributeLength: -1, // This is lazily computed and cached, computed when/if first asked, "-1" meaning not computed yet. - maxUniformBlockNameLength: -1 // Lazily computed as well - }; - - var ptable = GL.programInfos[program]; - var utable = ptable.uniforms; - // A program's uniform table maps the string name of an uniform to an integer location of that uniform. - // The global GL.uniforms map maps integer locations to WebGLUniformLocations. - var numUniforms = GLctx.getProgramParameter(p, GLctx.ACTIVE_UNIFORMS); - for (var i = 0; i < numUniforms; ++i) { - var u = GLctx.getActiveUniform(p, i); - - var name = u.name; - ptable.maxUniformLength = Math.max(ptable.maxUniformLength, name.length+1); - - // Strip off any trailing array specifier we might have got, e.g. "[0]". - if (name.indexOf(']', name.length-1) !== -1) { - var ls = name.lastIndexOf('['); - name = name.slice(0, ls); - } - - // Optimize memory usage slightly: If we have an array of uniforms, e.g. 'vec3 colors[3];', then - // only store the string 'colors' in utable, and 'colors[0]', 'colors[1]' and 'colors[2]' will be parsed as 'colors'+i. - // Note that for the GL.uniforms table, we still need to fetch the all WebGLUniformLocations for all the indices. - var loc = GLctx.getUniformLocation(p, name); - if (loc != null) - { - var id = GL.getNewId(GL.uniforms); - utable[name] = [u.size, id]; - GL.uniforms[id] = loc; - - for (var j = 1; j < u.size; ++j) { - var n = name + '['+j+']'; - loc = GLctx.getUniformLocation(p, n); - id = GL.getNewId(GL.uniforms); - - GL.uniforms[id] = loc; - } - } - } - }};function _emscripten_glIsRenderbuffer(renderbuffer) { - var rb = GL.renderbuffers[renderbuffer]; - if (!rb) return 0; - return GLctx.isRenderbuffer(rb); - } - - function _emscripten_glStencilMaskSeparate(x0, x1) { GLctx['stencilMaskSeparate'](x0, x1) } - - - - function _emscripten_get_now() { abort() } - - - - function _emscripten_set_main_loop_timing(mode, value) { - Browser.mainLoop.timingMode = mode; - Browser.mainLoop.timingValue = value; - - if (!Browser.mainLoop.func) { - console.error('emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.'); - return 1; // Return non-zero on failure, can't set timing mode when there is no main loop. - } - - if (mode == 0 /*EM_TIMING_SETTIMEOUT*/) { - Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { - var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now())|0; - setTimeout(Browser.mainLoop.runner, timeUntilNextTick); // doing this each time means that on exception, we stop - }; - Browser.mainLoop.method = 'timeout'; - } else if (mode == 1 /*EM_TIMING_RAF*/) { - Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { - Browser.requestAnimationFrame(Browser.mainLoop.runner); - }; - Browser.mainLoop.method = 'rAF'; - } else if (mode == 2 /*EM_TIMING_SETIMMEDIATE*/) { - if (!window['setImmediate']) { - // Emulate setImmediate. (note: not a complete polyfill, we don't emulate clearImmediate() to keep code size to minimum, since not needed) - var setImmediates = []; - var emscriptenMainLoopMessageId = 'setimmediate'; - function Browser_setImmediate_messageHandler(event) { - if (event.source === window && event.data === emscriptenMainLoopMessageId) { - event.stopPropagation(); - setImmediates.shift()(); - } - } - window.addEventListener("message", Browser_setImmediate_messageHandler, true); - window['setImmediate'] = function Browser_emulated_setImmediate(func) { - setImmediates.push(func); - if (ENVIRONMENT_IS_WORKER) { - if (Module['setImmediates'] === undefined) Module['setImmediates'] = []; - Module['setImmediates'].push(func); - window.postMessage({target: emscriptenMainLoopMessageId}); // In --proxy-to-worker, route the message via proxyClient.js - } else window.postMessage(emscriptenMainLoopMessageId, "*"); // On the main thread, can just send the message to itself. - } - } - Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { - window['setImmediate'](Browser.mainLoop.runner); - }; - Browser.mainLoop.method = 'immediate'; - } - return 0; - }function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) { - Module['noExitRuntime'] = true; - - assert(!Browser.mainLoop.func, 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.'); - - Browser.mainLoop.func = func; - Browser.mainLoop.arg = arg; - - var browserIterationFunc; - if (typeof arg !== 'undefined') { - browserIterationFunc = function() { - Module['dynCall_vi'](func, arg); - }; - } else { - browserIterationFunc = function() { - Module['dynCall_v'](func); - }; - } - - var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; - - Browser.mainLoop.runner = function Browser_mainLoop_runner() { - if (ABORT) return; - if (Browser.mainLoop.queue.length > 0) { - var start = Date.now(); - var blocker = Browser.mainLoop.queue.shift(); - blocker.func(blocker.arg); - if (Browser.mainLoop.remainingBlockers) { - var remaining = Browser.mainLoop.remainingBlockers; - var next = remaining%1 == 0 ? remaining-1 : Math.floor(remaining); - if (blocker.counted) { - Browser.mainLoop.remainingBlockers = next; - } else { - // not counted, but move the progress along a tiny bit - next = next + 0.5; // do not steal all the next one's progress - Browser.mainLoop.remainingBlockers = (8*remaining + next)/9; - } - } - console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers); - Browser.mainLoop.updateStatus(); - - // catches pause/resume main loop from blocker execution - if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; - - setTimeout(Browser.mainLoop.runner, 0); - return; - } - - // catch pauses from non-main loop sources - if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; - - // Implement very basic swap interval control - Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; - if (Browser.mainLoop.timingMode == 1/*EM_TIMING_RAF*/ && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { - // Not the scheduled time to render this frame - skip. - Browser.mainLoop.scheduler(); - return; - } else if (Browser.mainLoop.timingMode == 0/*EM_TIMING_SETTIMEOUT*/) { - Browser.mainLoop.tickStartTime = _emscripten_get_now(); - } - - // Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize - // VBO double-buffering and reduce GPU stalls. - - - if (Browser.mainLoop.method === 'timeout' && Module.ctx) { - Module.printErr('Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!'); - Browser.mainLoop.method = ''; // just warn once per call to set main loop - } - - Browser.mainLoop.runIter(browserIterationFunc); - - checkStackCookie(); - - // catch pauses from the main loop itself - if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; - - // Queue new audio data. This is important to be right after the main loop invocation, so that we will immediately be able - // to queue the newest produced audio samples. - // TODO: Consider adding pre- and post- rAF callbacks so that GL.newRenderingFrameStarted() and SDL.audio.queueNewAudioData() - // do not need to be hardcoded into this function, but can be more generic. - if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); - - Browser.mainLoop.scheduler(); - } - - if (!noSetTiming) { - if (fps && fps > 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 1000.0 / fps); - else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, 1); // Do rAF by rendering each frame (no decimating) - - Browser.mainLoop.scheduler(); - } - - if (simulateInfiniteLoop) { - throw 'SimulateInfiniteLoop'; - } - }var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function () { - Browser.mainLoop.scheduler = null; - Browser.mainLoop.currentlyRunningMainloop++; // Incrementing this signals the previous main loop that it's now become old, and it must return. - },resume:function () { - Browser.mainLoop.currentlyRunningMainloop++; - var timingMode = Browser.mainLoop.timingMode; - var timingValue = Browser.mainLoop.timingValue; - var func = Browser.mainLoop.func; - Browser.mainLoop.func = null; - _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true /* do not set timing and call scheduler, we will do it on the next lines */); - _emscripten_set_main_loop_timing(timingMode, timingValue); - Browser.mainLoop.scheduler(); - },updateStatus:function () { - if (Module['setStatus']) { - var message = Module['statusMessage'] || 'Please wait...'; - var remaining = Browser.mainLoop.remainingBlockers; - var expected = Browser.mainLoop.expectedBlockers; - if (remaining) { - if (remaining < expected) { - Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')'); - } else { - Module['setStatus'](message); - } - } else { - Module['setStatus'](''); - } - } - },runIter:function (func) { - if (ABORT) return; - if (Module['preMainLoop']) { - var preRet = Module['preMainLoop'](); - if (preRet === false) { - return; // |return false| skips a frame - } - } - try { - func(); - } catch (e) { - if (e instanceof ExitStatus) { - return; - } else { - if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); - throw e; - } - } - if (Module['postMainLoop']) Module['postMainLoop'](); - }},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () { - if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers - - if (Browser.initted) return; - Browser.initted = true; - - try { - new Blob(); - Browser.hasBlobConstructor = true; - } catch(e) { - Browser.hasBlobConstructor = false; - console.log("warning: no blob constructor, cannot create blobs with mimetypes"); - } - Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null)); - Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined; - if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') { - console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); - Module.noImageDecoding = true; - } - - // Support for plugins that can process preloaded files. You can add more of these to - // your app by creating and appending to Module.preloadPlugins. - // - // Each plugin is asked if it can handle a file based on the file's name. If it can, - // it is given the file's raw data. When it is done, it calls a callback with the file's - // (possibly modified) data. For example, a plugin might decompress a file, or it - // might create some side data structure for use later (like an Image element, etc.). - - var imagePlugin = {}; - imagePlugin['canHandle'] = function imagePlugin_canHandle(name) { - return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); - }; - imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) { - var b = null; - if (Browser.hasBlobConstructor) { - try { - b = new Blob([byteArray], { type: Browser.getMimetype(name) }); - if (b.size !== byteArray.length) { // Safari bug #118630 - // Safari's Blob can only take an ArrayBuffer - b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) }); - } - } catch(e) { - Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder'); - } - } - if (!b) { - var bb = new Browser.BlobBuilder(); - bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range - b = bb.getBlob(); - } - var url = Browser.URLObject.createObjectURL(b); - assert(typeof url == 'string', 'createObjectURL must return a url as a string'); - var img = new Image(); - img.onload = function img_onload() { - assert(img.complete, 'Image ' + name + ' could not be decoded'); - var canvas = document.createElement('canvas'); - canvas.width = img.width; - canvas.height = img.height; - var ctx = canvas.getContext('2d'); - ctx.drawImage(img, 0, 0); - Module["preloadedImages"][name] = canvas; - Browser.URLObject.revokeObjectURL(url); - if (onload) onload(byteArray); - }; - img.onerror = function img_onerror(event) { - console.log('Image ' + url + ' could not be decoded'); - if (onerror) onerror(); - }; - img.src = url; - }; - Module['preloadPlugins'].push(imagePlugin); - - var audioPlugin = {}; - audioPlugin['canHandle'] = function audioPlugin_canHandle(name) { - return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 }; - }; - audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) { - var done = false; - function finish(audio) { - if (done) return; - done = true; - Module["preloadedAudios"][name] = audio; - if (onload) onload(byteArray); - } - function fail() { - if (done) return; - done = true; - Module["preloadedAudios"][name] = new Audio(); // empty shim - if (onerror) onerror(); - } - if (Browser.hasBlobConstructor) { - try { - var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); - } catch(e) { - return fail(); - } - var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this! - assert(typeof url == 'string', 'createObjectURL must return a url as a string'); - var audio = new Audio(); - audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926 - audio.onerror = function audio_onerror(event) { - if (done) return; - console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach'); - function encode64(data) { - var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - var PAD = '='; - var ret = ''; - var leftchar = 0; - var leftbits = 0; - for (var i = 0; i < data.length; i++) { - leftchar = (leftchar << 8) | data[i]; - leftbits += 8; - while (leftbits >= 6) { - var curr = (leftchar >> (leftbits-6)) & 0x3f; - leftbits -= 6; - ret += BASE[curr]; - } - } - if (leftbits == 2) { - ret += BASE[(leftchar&3) << 4]; - ret += PAD + PAD; - } else if (leftbits == 4) { - ret += BASE[(leftchar&0xf) << 2]; - ret += PAD; - } - return ret; - } - audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray); - finish(audio); // we don't wait for confirmation this worked - but it's worth trying - }; - audio.src = url; - // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror - Browser.safeSetTimeout(function() { - finish(audio); // try to use it even though it is not necessarily ready to play - }, 10000); - } else { - return fail(); - } - }; - Module['preloadPlugins'].push(audioPlugin); - - // Canvas event setup - - function pointerLockChange() { - Browser.pointerLock = document['pointerLockElement'] === Module['canvas'] || - document['mozPointerLockElement'] === Module['canvas'] || - document['webkitPointerLockElement'] === Module['canvas'] || - document['msPointerLockElement'] === Module['canvas']; - } - var canvas = Module['canvas']; - if (canvas) { - // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module - // Module['forcedAspectRatio'] = 4 / 3; - - canvas.requestPointerLock = canvas['requestPointerLock'] || - canvas['mozRequestPointerLock'] || - canvas['webkitRequestPointerLock'] || - canvas['msRequestPointerLock'] || - function(){}; - canvas.exitPointerLock = document['exitPointerLock'] || - document['mozExitPointerLock'] || - document['webkitExitPointerLock'] || - document['msExitPointerLock'] || - function(){}; // no-op if function does not exist - canvas.exitPointerLock = canvas.exitPointerLock.bind(document); - - document.addEventListener('pointerlockchange', pointerLockChange, false); - document.addEventListener('mozpointerlockchange', pointerLockChange, false); - document.addEventListener('webkitpointerlockchange', pointerLockChange, false); - document.addEventListener('mspointerlockchange', pointerLockChange, false); - - if (Module['elementPointerLock']) { - canvas.addEventListener("click", function(ev) { - if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { - Module['canvas'].requestPointerLock(); - ev.preventDefault(); - } - }, false); - } - } - },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) { - if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; // no need to recreate GL context if it's already been created for this canvas. - - var ctx; - var contextHandle; - if (useWebGL) { - // For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults. - var contextAttributes = { - antialias: false, - alpha: false - }; - - if (webGLContextAttributes) { - for (var attribute in webGLContextAttributes) { - contextAttributes[attribute] = webGLContextAttributes[attribute]; - } - } - - contextHandle = GL.createContext(canvas, contextAttributes); - if (contextHandle) { - ctx = GL.getContext(contextHandle).GLctx; - } - } else { - ctx = canvas.getContext('2d'); - } - - if (!ctx) return null; - - if (setInModule) { - if (!useWebGL) assert(typeof GLctx === 'undefined', 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it'); - - Module.ctx = ctx; - if (useWebGL) GL.makeContextCurrent(contextHandle); - Module.useWebGL = useWebGL; - Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() }); - Browser.init(); - } - return ctx; - },destroyContext:function (canvas, useWebGL, setInModule) {},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function (lockPointer, resizeCanvas, vrDevice) { - Browser.lockPointer = lockPointer; - Browser.resizeCanvas = resizeCanvas; - Browser.vrDevice = vrDevice; - if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true; - if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false; - if (typeof Browser.vrDevice === 'undefined') Browser.vrDevice = null; - - var canvas = Module['canvas']; - function fullscreenChange() { - Browser.isFullscreen = false; - var canvasContainer = canvas.parentNode; - if ((document['fullscreenElement'] || document['mozFullScreenElement'] || - document['msFullscreenElement'] || document['webkitFullscreenElement'] || - document['webkitCurrentFullScreenElement']) === canvasContainer) { - canvas.exitFullscreen = document['exitFullscreen'] || - document['cancelFullScreen'] || - document['mozCancelFullScreen'] || - document['msExitFullscreen'] || - document['webkitCancelFullScreen'] || - function() {}; - canvas.exitFullscreen = canvas.exitFullscreen.bind(document); - if (Browser.lockPointer) canvas.requestPointerLock(); - Browser.isFullscreen = true; - if (Browser.resizeCanvas) Browser.setFullscreenCanvasSize(); - } else { - - // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen - canvasContainer.parentNode.insertBefore(canvas, canvasContainer); - canvasContainer.parentNode.removeChild(canvasContainer); - - if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); - } - if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullscreen); - if (Module['onFullscreen']) Module['onFullscreen'](Browser.isFullscreen); - Browser.updateCanvasDimensions(canvas); - } - - if (!Browser.fullscreenHandlersInstalled) { - Browser.fullscreenHandlersInstalled = true; - document.addEventListener('fullscreenchange', fullscreenChange, false); - document.addEventListener('mozfullscreenchange', fullscreenChange, false); - document.addEventListener('webkitfullscreenchange', fullscreenChange, false); - document.addEventListener('MSFullscreenChange', fullscreenChange, false); - } - - // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root - var canvasContainer = document.createElement("div"); - canvas.parentNode.insertBefore(canvasContainer, canvas); - canvasContainer.appendChild(canvas); - - // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) - canvasContainer.requestFullscreen = canvasContainer['requestFullscreen'] || - canvasContainer['mozRequestFullScreen'] || - canvasContainer['msRequestFullscreen'] || - (canvasContainer['webkitRequestFullscreen'] ? function() { canvasContainer['webkitRequestFullscreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null) || - (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null); - - if (vrDevice) { - canvasContainer.requestFullscreen({ vrDisplay: vrDevice }); - } else { - canvasContainer.requestFullscreen(); - } - },requestFullScreen:function (lockPointer, resizeCanvas, vrDevice) { - Module.printErr('Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.'); - Browser.requestFullScreen = function(lockPointer, resizeCanvas, vrDevice) { - return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); - } - return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); - },nextRAF:0,fakeRequestAnimationFrame:function (func) { - // try to keep 60fps between calls to here - var now = Date.now(); - if (Browser.nextRAF === 0) { - Browser.nextRAF = now + 1000/60; - } else { - while (now + 2 >= Browser.nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0 - Browser.nextRAF += 1000/60; - } - } - var delay = Math.max(Browser.nextRAF - now, 0); - setTimeout(func, delay); - },requestAnimationFrame:function requestAnimationFrame(func) { - if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js) - Browser.fakeRequestAnimationFrame(func); - } else { - if (!window.requestAnimationFrame) { - window.requestAnimationFrame = window['requestAnimationFrame'] || - window['mozRequestAnimationFrame'] || - window['webkitRequestAnimationFrame'] || - window['msRequestAnimationFrame'] || - window['oRequestAnimationFrame'] || - Browser.fakeRequestAnimationFrame; - } - window.requestAnimationFrame(func); - } - },safeCallback:function (func) { - return function() { - if (!ABORT) return func.apply(null, arguments); - }; - },allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function () { - Browser.allowAsyncCallbacks = false; - },resumeAsyncCallbacks:function () { // marks future callbacks as ok to execute, and synchronously runs any remaining ones right now - Browser.allowAsyncCallbacks = true; - if (Browser.queuedAsyncCallbacks.length > 0) { - var callbacks = Browser.queuedAsyncCallbacks; - Browser.queuedAsyncCallbacks = []; - callbacks.forEach(function(func) { - func(); - }); - } - },safeRequestAnimationFrame:function (func) { - return Browser.requestAnimationFrame(function() { - if (ABORT) return; - if (Browser.allowAsyncCallbacks) { - func(); - } else { - Browser.queuedAsyncCallbacks.push(func); - } - }); - },safeSetTimeout:function (func, timeout) { - Module['noExitRuntime'] = true; - return setTimeout(function() { - if (ABORT) return; - if (Browser.allowAsyncCallbacks) { - func(); - } else { - Browser.queuedAsyncCallbacks.push(func); - } - }, timeout); - },safeSetInterval:function (func, timeout) { - Module['noExitRuntime'] = true; - return setInterval(function() { - if (ABORT) return; - if (Browser.allowAsyncCallbacks) { - func(); - } // drop it on the floor otherwise, next interval will kick in - }, timeout); - },getMimetype:function (name) { - return { - 'jpg': 'image/jpeg', - 'jpeg': 'image/jpeg', - 'png': 'image/png', - 'bmp': 'image/bmp', - 'ogg': 'audio/ogg', - 'wav': 'audio/wav', - 'mp3': 'audio/mpeg' - }[name.substr(name.lastIndexOf('.')+1)]; - },getUserMedia:function (func) { - if(!window.getUserMedia) { - window.getUserMedia = navigator['getUserMedia'] || - navigator['mozGetUserMedia']; - } - window.getUserMedia(func); - },getMovementX:function (event) { - return event['movementX'] || - event['mozMovementX'] || - event['webkitMovementX'] || - 0; - },getMovementY:function (event) { - return event['movementY'] || - event['mozMovementY'] || - event['webkitMovementY'] || - 0; - },getMouseWheelDelta:function (event) { - var delta = 0; - switch (event.type) { - case 'DOMMouseScroll': - delta = event.detail; - break; - case 'mousewheel': - delta = event.wheelDelta; - break; - case 'wheel': - delta = event['deltaY']; - break; - default: - throw 'unrecognized mouse wheel event: ' + event.type; - } - return delta; - },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup - if (Browser.pointerLock) { - // When the pointer is locked, calculate the coordinates - // based on the movement of the mouse. - // Workaround for Firefox bug 764498 - if (event.type != 'mousemove' && - ('mozMovementX' in event)) { - Browser.mouseMovementX = Browser.mouseMovementY = 0; - } else { - Browser.mouseMovementX = Browser.getMovementX(event); - Browser.mouseMovementY = Browser.getMovementY(event); - } - - // check if SDL is available - if (typeof SDL != "undefined") { - Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; - Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; - } else { - // just add the mouse delta to the current absolut mouse position - // FIXME: ideally this should be clamped against the canvas size and zero - Browser.mouseX += Browser.mouseMovementX; - Browser.mouseY += Browser.mouseMovementY; - } - } else { - // Otherwise, calculate the movement based on the changes - // in the coordinates. - var rect = Module["canvas"].getBoundingClientRect(); - var cw = Module["canvas"].width; - var ch = Module["canvas"].height; - - // Neither .scrollX or .pageXOffset are defined in a spec, but - // we prefer .scrollX because it is currently in a spec draft. - // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) - var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset); - var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset); - // If this assert lands, it's likely because the browser doesn't support scrollX or pageXOffset - // and we have no viable fallback. - assert((typeof scrollX !== 'undefined') && (typeof scrollY !== 'undefined'), 'Unable to retrieve scroll position, mouse positions likely broken.'); - - if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') { - var touch = event.touch; - if (touch === undefined) { - return; // the "touch" property is only defined in SDL - - } - var adjustedX = touch.pageX - (scrollX + rect.left); - var adjustedY = touch.pageY - (scrollY + rect.top); - - adjustedX = adjustedX * (cw / rect.width); - adjustedY = adjustedY * (ch / rect.height); - - var coords = { x: adjustedX, y: adjustedY }; - - if (event.type === 'touchstart') { - Browser.lastTouches[touch.identifier] = coords; - Browser.touches[touch.identifier] = coords; - } else if (event.type === 'touchend' || event.type === 'touchmove') { - var last = Browser.touches[touch.identifier]; - if (!last) last = coords; - Browser.lastTouches[touch.identifier] = last; - Browser.touches[touch.identifier] = coords; - } - return; - } - - var x = event.pageX - (scrollX + rect.left); - var y = event.pageY - (scrollY + rect.top); - - // the canvas might be CSS-scaled compared to its backbuffer; - // SDL-using content will want mouse coordinates in terms - // of backbuffer units. - x = x * (cw / rect.width); - y = y * (ch / rect.height); - - Browser.mouseMovementX = x - Browser.mouseX; - Browser.mouseMovementY = y - Browser.mouseY; - Browser.mouseX = x; - Browser.mouseY = y; - } - },asyncLoad:function (url, onload, onerror, noRunDep) { - var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; - Module['readAsync'](url, function(arrayBuffer) { - assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); - onload(new Uint8Array(arrayBuffer)); - if (dep) removeRunDependency(dep); - }, function(event) { - if (onerror) { - onerror(); - } else { - throw 'Loading data file "' + url + '" failed.'; - } - }); - if (dep) addRunDependency(dep); - },resizeListeners:[],updateResizeListeners:function () { - var canvas = Module['canvas']; - Browser.resizeListeners.forEach(function(listener) { - listener(canvas.width, canvas.height); - }); - },setCanvasSize:function (width, height, noUpdates) { - var canvas = Module['canvas']; - Browser.updateCanvasDimensions(canvas, width, height); - if (!noUpdates) Browser.updateResizeListeners(); - },windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function () { - // check if SDL is available - if (typeof SDL != "undefined") { - var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; - flags = flags | 0x00800000; // set SDL_FULLSCREEN flag - HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags - } - Browser.updateResizeListeners(); - },setWindowedCanvasSize:function () { - // check if SDL is available - if (typeof SDL != "undefined") { - var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; - flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag - HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags - } - Browser.updateResizeListeners(); - },updateCanvasDimensions:function (canvas, wNative, hNative) { - if (wNative && hNative) { - canvas.widthNative = wNative; - canvas.heightNative = hNative; - } else { - wNative = canvas.widthNative; - hNative = canvas.heightNative; - } - var w = wNative; - var h = hNative; - if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) { - if (w/h < Module['forcedAspectRatio']) { - w = Math.round(h * Module['forcedAspectRatio']); - } else { - h = Math.round(w / Module['forcedAspectRatio']); - } - } - if (((document['fullscreenElement'] || document['mozFullScreenElement'] || - document['msFullscreenElement'] || document['webkitFullscreenElement'] || - document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) { - var factor = Math.min(screen.width / w, screen.height / h); - w = Math.round(w * factor); - h = Math.round(h * factor); - } - if (Browser.resizeCanvas) { - if (canvas.width != w) canvas.width = w; - if (canvas.height != h) canvas.height = h; - if (typeof canvas.style != 'undefined') { - canvas.style.removeProperty( "width"); - canvas.style.removeProperty("height"); - } - } else { - if (canvas.width != wNative) canvas.width = wNative; - if (canvas.height != hNative) canvas.height = hNative; - if (typeof canvas.style != 'undefined') { - if (w != wNative || h != hNative) { - canvas.style.setProperty( "width", w + "px", "important"); - canvas.style.setProperty("height", h + "px", "important"); - } else { - canvas.style.removeProperty( "width"); - canvas.style.removeProperty("height"); - } - } - } - },wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function () { - var handle = Browser.nextWgetRequestHandle; - Browser.nextWgetRequestHandle++; - return handle; - }};var GLFW={Window:function (id, width, height, title, monitor, share) { - this.id = id; - this.x = 0; - this.y = 0; - this.fullscreen = false; // Used to determine if app in fullscreen mode - this.storedX = 0; // Used to store X before fullscreen - this.storedY = 0; // Used to store Y before fullscreen - this.width = width; - this.height = height; - this.storedWidth = width; // Used to store width before fullscreen - this.storedHeight = height; // Used to store height before fullscreen - this.title = title; - this.monitor = monitor; - this.share = share; - this.attributes = GLFW.hints; - this.inputModes = { - 0x00033001:0x00034001, // GLFW_CURSOR (GLFW_CURSOR_NORMAL) - 0x00033002:0, // GLFW_STICKY_KEYS - 0x00033003:0, // GLFW_STICKY_MOUSE_BUTTONS - }; - this.buttons = 0; - this.keys = new Array(); - this.domKeys = new Array(); - this.shouldClose = 0; - this.title = null; - this.windowPosFunc = null; // GLFWwindowposfun - this.windowSizeFunc = null; // GLFWwindowsizefun - this.windowCloseFunc = null; // GLFWwindowclosefun - this.windowRefreshFunc = null; // GLFWwindowrefreshfun - this.windowFocusFunc = null; // GLFWwindowfocusfun - this.windowIconifyFunc = null; // GLFWwindowiconifyfun - this.framebufferSizeFunc = null; // GLFWframebuffersizefun - this.mouseButtonFunc = null; // GLFWmousebuttonfun - this.cursorPosFunc = null; // GLFWcursorposfun - this.cursorEnterFunc = null; // GLFWcursorenterfun - this.scrollFunc = null; // GLFWscrollfun - this.dropFunc = null; // GLFWdropfun - this.keyFunc = null; // GLFWkeyfun - this.charFunc = null; // GLFWcharfun - this.userptr = null; - },WindowFromId:function (id) { - if (id <= 0 || !GLFW.windows) return null; - return GLFW.windows[id - 1]; - },joystickFunc:null,errorFunc:null,monitorFunc:null,active:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0},DOMToGLFWKeyCode:function (keycode) { - switch (keycode) { - // these keycodes are only defined for GLFW3, assume they are the same for GLFW2 - case 0x20:return 32; // DOM_VK_SPACE -> GLFW_KEY_SPACE - case 0xDE:return 39; // DOM_VK_QUOTE -> GLFW_KEY_APOSTROPHE - case 0xBC:return 44; // DOM_VK_COMMA -> GLFW_KEY_COMMA - case 0xAD:return 45; // DOM_VK_HYPHEN_MINUS -> GLFW_KEY_MINUS - case 0xBD:return 45; // DOM_VK_MINUS -> GLFW_KEY_MINUS - case 0xBE:return 46; // DOM_VK_PERIOD -> GLFW_KEY_PERIOD - case 0xBF:return 47; // DOM_VK_SLASH -> GLFW_KEY_SLASH - case 0x30:return 48; // DOM_VK_0 -> GLFW_KEY_0 - case 0x31:return 49; // DOM_VK_1 -> GLFW_KEY_1 - case 0x32:return 50; // DOM_VK_2 -> GLFW_KEY_2 - case 0x33:return 51; // DOM_VK_3 -> GLFW_KEY_3 - case 0x34:return 52; // DOM_VK_4 -> GLFW_KEY_4 - case 0x35:return 53; // DOM_VK_5 -> GLFW_KEY_5 - case 0x36:return 54; // DOM_VK_6 -> GLFW_KEY_6 - case 0x37:return 55; // DOM_VK_7 -> GLFW_KEY_7 - case 0x38:return 56; // DOM_VK_8 -> GLFW_KEY_8 - case 0x39:return 57; // DOM_VK_9 -> GLFW_KEY_9 - case 0x3B:return 59; // DOM_VK_SEMICOLON -> GLFW_KEY_SEMICOLON - case 0x3D:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL - case 0xBB:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL - case 0x41:return 65; // DOM_VK_A -> GLFW_KEY_A - case 0x42:return 66; // DOM_VK_B -> GLFW_KEY_B - case 0x43:return 67; // DOM_VK_C -> GLFW_KEY_C - case 0x44:return 68; // DOM_VK_D -> GLFW_KEY_D - case 0x45:return 69; // DOM_VK_E -> GLFW_KEY_E - case 0x46:return 70; // DOM_VK_F -> GLFW_KEY_F - case 0x47:return 71; // DOM_VK_G -> GLFW_KEY_G - case 0x48:return 72; // DOM_VK_H -> GLFW_KEY_H - case 0x49:return 73; // DOM_VK_I -> GLFW_KEY_I - case 0x4A:return 74; // DOM_VK_J -> GLFW_KEY_J - case 0x4B:return 75; // DOM_VK_K -> GLFW_KEY_K - case 0x4C:return 76; // DOM_VK_L -> GLFW_KEY_L - case 0x4D:return 77; // DOM_VK_M -> GLFW_KEY_M - case 0x4E:return 78; // DOM_VK_N -> GLFW_KEY_N - case 0x4F:return 79; // DOM_VK_O -> GLFW_KEY_O - case 0x50:return 80; // DOM_VK_P -> GLFW_KEY_P - case 0x51:return 81; // DOM_VK_Q -> GLFW_KEY_Q - case 0x52:return 82; // DOM_VK_R -> GLFW_KEY_R - case 0x53:return 83; // DOM_VK_S -> GLFW_KEY_S - case 0x54:return 84; // DOM_VK_T -> GLFW_KEY_T - case 0x55:return 85; // DOM_VK_U -> GLFW_KEY_U - case 0x56:return 86; // DOM_VK_V -> GLFW_KEY_V - case 0x57:return 87; // DOM_VK_W -> GLFW_KEY_W - case 0x58:return 88; // DOM_VK_X -> GLFW_KEY_X - case 0x59:return 89; // DOM_VK_Y -> GLFW_KEY_Y - case 0x5a:return 90; // DOM_VK_Z -> GLFW_KEY_Z - case 0xDB:return 91; // DOM_VK_OPEN_BRACKET -> GLFW_KEY_LEFT_BRACKET - case 0xDC:return 92; // DOM_VK_BACKSLASH -> GLFW_KEY_BACKSLASH - case 0xDD:return 93; // DOM_VK_CLOSE_BRACKET -> GLFW_KEY_RIGHT_BRACKET - case 0xC0:return 94; // DOM_VK_BACK_QUOTE -> GLFW_KEY_GRAVE_ACCENT - - - case 0x1B:return 256; // DOM_VK_ESCAPE -> GLFW_KEY_ESCAPE - case 0x0D:return 257; // DOM_VK_RETURN -> GLFW_KEY_ENTER - case 0x09:return 258; // DOM_VK_TAB -> GLFW_KEY_TAB - case 0x08:return 259; // DOM_VK_BACK -> GLFW_KEY_BACKSPACE - case 0x2D:return 260; // DOM_VK_INSERT -> GLFW_KEY_INSERT - case 0x2E:return 261; // DOM_VK_DELETE -> GLFW_KEY_DELETE - case 0x27:return 262; // DOM_VK_RIGHT -> GLFW_KEY_RIGHT - case 0x25:return 263; // DOM_VK_LEFT -> GLFW_KEY_LEFT - case 0x28:return 264; // DOM_VK_DOWN -> GLFW_KEY_DOWN - case 0x26:return 265; // DOM_VK_UP -> GLFW_KEY_UP - case 0x21:return 266; // DOM_VK_PAGE_UP -> GLFW_KEY_PAGE_UP - case 0x22:return 267; // DOM_VK_PAGE_DOWN -> GLFW_KEY_PAGE_DOWN - case 0x24:return 268; // DOM_VK_HOME -> GLFW_KEY_HOME - case 0x23:return 269; // DOM_VK_END -> GLFW_KEY_END - case 0x14:return 280; // DOM_VK_CAPS_LOCK -> GLFW_KEY_CAPS_LOCK - case 0x91:return 281; // DOM_VK_SCROLL_LOCK -> GLFW_KEY_SCROLL_LOCK - case 0x90:return 282; // DOM_VK_NUM_LOCK -> GLFW_KEY_NUM_LOCK - case 0x2C:return 283; // DOM_VK_SNAPSHOT -> GLFW_KEY_PRINT_SCREEN - case 0x13:return 284; // DOM_VK_PAUSE -> GLFW_KEY_PAUSE - case 0x70:return 290; // DOM_VK_F1 -> GLFW_KEY_F1 - case 0x71:return 291; // DOM_VK_F2 -> GLFW_KEY_F2 - case 0x72:return 292; // DOM_VK_F3 -> GLFW_KEY_F3 - case 0x73:return 293; // DOM_VK_F4 -> GLFW_KEY_F4 - case 0x74:return 294; // DOM_VK_F5 -> GLFW_KEY_F5 - case 0x75:return 295; // DOM_VK_F6 -> GLFW_KEY_F6 - case 0x76:return 296; // DOM_VK_F7 -> GLFW_KEY_F7 - case 0x77:return 297; // DOM_VK_F8 -> GLFW_KEY_F8 - case 0x78:return 298; // DOM_VK_F9 -> GLFW_KEY_F9 - case 0x79:return 299; // DOM_VK_F10 -> GLFW_KEY_F10 - case 0x7A:return 300; // DOM_VK_F11 -> GLFW_KEY_F11 - case 0x7B:return 301; // DOM_VK_F12 -> GLFW_KEY_F12 - case 0x7C:return 302; // DOM_VK_F13 -> GLFW_KEY_F13 - case 0x7D:return 303; // DOM_VK_F14 -> GLFW_KEY_F14 - case 0x7E:return 304; // DOM_VK_F15 -> GLFW_KEY_F15 - case 0x7F:return 305; // DOM_VK_F16 -> GLFW_KEY_F16 - case 0x80:return 306; // DOM_VK_F17 -> GLFW_KEY_F17 - case 0x81:return 307; // DOM_VK_F18 -> GLFW_KEY_F18 - case 0x82:return 308; // DOM_VK_F19 -> GLFW_KEY_F19 - case 0x83:return 309; // DOM_VK_F20 -> GLFW_KEY_F20 - case 0x84:return 310; // DOM_VK_F21 -> GLFW_KEY_F21 - case 0x85:return 311; // DOM_VK_F22 -> GLFW_KEY_F22 - case 0x86:return 312; // DOM_VK_F23 -> GLFW_KEY_F23 - case 0x87:return 313; // DOM_VK_F24 -> GLFW_KEY_F24 - case 0x88:return 314; // 0x88 (not used?) -> GLFW_KEY_F25 - case 0x60:return 320; // DOM_VK_NUMPAD0 -> GLFW_KEY_KP_0 - case 0x61:return 321; // DOM_VK_NUMPAD1 -> GLFW_KEY_KP_1 - case 0x62:return 322; // DOM_VK_NUMPAD2 -> GLFW_KEY_KP_2 - case 0x63:return 323; // DOM_VK_NUMPAD3 -> GLFW_KEY_KP_3 - case 0x64:return 324; // DOM_VK_NUMPAD4 -> GLFW_KEY_KP_4 - case 0x65:return 325; // DOM_VK_NUMPAD5 -> GLFW_KEY_KP_5 - case 0x66:return 326; // DOM_VK_NUMPAD6 -> GLFW_KEY_KP_6 - case 0x67:return 327; // DOM_VK_NUMPAD7 -> GLFW_KEY_KP_7 - case 0x68:return 328; // DOM_VK_NUMPAD8 -> GLFW_KEY_KP_8 - case 0x69:return 329; // DOM_VK_NUMPAD9 -> GLFW_KEY_KP_9 - case 0x6E:return 330; // DOM_VK_DECIMAL -> GLFW_KEY_KP_DECIMAL - case 0x6F:return 331; // DOM_VK_DIVIDE -> GLFW_KEY_KP_DIVIDE - case 0x6A:return 332; // DOM_VK_MULTIPLY -> GLFW_KEY_KP_MULTIPLY - case 0x6D:return 333; // DOM_VK_SUBTRACT -> GLFW_KEY_KP_SUBTRACT - case 0x6B:return 334; // DOM_VK_ADD -> GLFW_KEY_KP_ADD - // case 0x0D:return 335; // DOM_VK_RETURN -> GLFW_KEY_KP_ENTER (DOM_KEY_LOCATION_RIGHT) - // case 0x61:return 336; // DOM_VK_EQUALS -> GLFW_KEY_KP_EQUAL (DOM_KEY_LOCATION_RIGHT) - case 0x10:return 340; // DOM_VK_SHIFT -> GLFW_KEY_LEFT_SHIFT - case 0x11:return 341; // DOM_VK_CONTROL -> GLFW_KEY_LEFT_CONTROL - case 0x12:return 342; // DOM_VK_ALT -> GLFW_KEY_LEFT_ALT - case 0x5B:return 343; // DOM_VK_WIN -> GLFW_KEY_LEFT_SUPER - // case 0x10:return 344; // DOM_VK_SHIFT -> GLFW_KEY_RIGHT_SHIFT (DOM_KEY_LOCATION_RIGHT) - // case 0x11:return 345; // DOM_VK_CONTROL -> GLFW_KEY_RIGHT_CONTROL (DOM_KEY_LOCATION_RIGHT) - // case 0x12:return 346; // DOM_VK_ALT -> GLFW_KEY_RIGHT_ALT (DOM_KEY_LOCATION_RIGHT) - // case 0x5B:return 347; // DOM_VK_WIN -> GLFW_KEY_RIGHT_SUPER (DOM_KEY_LOCATION_RIGHT) - case 0x5D:return 348; // DOM_VK_CONTEXT_MENU -> GLFW_KEY_MENU - // XXX: GLFW_KEY_WORLD_1, GLFW_KEY_WORLD_2 what are these? - default:return -1; // GLFW_KEY_UNKNOWN - }; - },getModBits:function (win) { - var mod = 0; - if (win.keys[340]) mod |= 0x0001; // GLFW_MOD_SHIFT - if (win.keys[341]) mod |= 0x0002; // GLFW_MOD_CONTROL - if (win.keys[342]) mod |= 0x0004; // GLFW_MOD_ALT - if (win.keys[343]) mod |= 0x0008; // GLFW_MOD_SUPER - return mod; - },onKeyPress:function (event) { - if (!GLFW.active || !GLFW.active.charFunc) return; - if (event.ctrlKey || event.metaKey) return; - - // correct unicode charCode is only available with onKeyPress event - var charCode = event.charCode; - if (charCode == 0 || (charCode >= 0x00 && charCode <= 0x1F)) return; - - - Module['dynCall_vii'](GLFW.active.charFunc, GLFW.active.id, charCode); - },onKeyChanged:function (keyCode, status) { - if (!GLFW.active) return; - - var key = GLFW.DOMToGLFWKeyCode(keyCode); - if (key == -1) return; - - var repeat = status && GLFW.active.keys[key]; - GLFW.active.keys[key] = status; - GLFW.active.domKeys[keyCode] = status; - if (!GLFW.active.keyFunc) return; - - - if (repeat) status = 2; // GLFW_REPEAT - Module['dynCall_viiiii'](GLFW.active.keyFunc, GLFW.active.id, key, keyCode, status, GLFW.getModBits(GLFW.active)); - },onGamepadConnected:function (event) { - GLFW.refreshJoysticks(); - },onGamepadDisconnected:function (event) { - GLFW.refreshJoysticks(); - },onKeydown:function (event) { - GLFW.onKeyChanged(event.keyCode, 1); // GLFW_PRESS or GLFW_REPEAT - - // This logic comes directly from the sdl implementation. We cannot - // call preventDefault on all keydown events otherwise onKeyPress will - // not get called - if (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */) { - event.preventDefault(); - } - },onKeyup:function (event) { - GLFW.onKeyChanged(event.keyCode, 0); // GLFW_RELEASE - },onBlur:function (event) { - if (!GLFW.active) return; - - for (var i = 0; i < GLFW.active.domKeys.length; ++i) { - if (GLFW.active.domKeys[i]) { - GLFW.onKeyChanged(i, 0); // GLFW_RELEASE - } - } - },onMousemove:function (event) { - if (!GLFW.active) return; - - Browser.calculateMouseEvent(event); - - if (event.target != Module["canvas"] || !GLFW.active.cursorPosFunc) return; - - - Module['dynCall_vidd'](GLFW.active.cursorPosFunc, GLFW.active.id, Browser.mouseX, Browser.mouseY); - },DOMToGLFWMouseButton:function (event) { - // DOM and glfw have different button codes. - // See http://www.w3schools.com/jsref/event_button.asp. - var eventButton = event['button']; - if (eventButton > 0) { - if (eventButton == 1) { - eventButton = 2; - } else { - eventButton = 1; - } - } - return eventButton; - },onMouseenter:function (event) { - if (!GLFW.active) return; - - if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; - - Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 1); - },onMouseleave:function (event) { - if (!GLFW.active) return; - - if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; - - Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 0); - },onMouseButtonChanged:function (event, status) { - if (!GLFW.active) return; - - Browser.calculateMouseEvent(event); - - if (event.target != Module["canvas"]) return; - - eventButton = GLFW.DOMToGLFWMouseButton(event); - - if (status == 1) { // GLFW_PRESS - GLFW.active.buttons |= (1 << eventButton); - try { - event.target.setCapture(); - } catch (e) {} - } else { // GLFW_RELEASE - GLFW.active.buttons &= ~(1 << eventButton); - } - - if (!GLFW.active.mouseButtonFunc) return; - - - Module['dynCall_viiii'](GLFW.active.mouseButtonFunc, GLFW.active.id, eventButton, status, GLFW.getModBits(GLFW.active)); - },onMouseButtonDown:function (event) { - if (!GLFW.active) return; - GLFW.onMouseButtonChanged(event, 1); // GLFW_PRESS - },onMouseButtonUp:function (event) { - if (!GLFW.active) return; - GLFW.onMouseButtonChanged(event, 0); // GLFW_RELEASE - },onMouseWheel:function (event) { - // Note the minus sign that flips browser wheel direction (positive direction scrolls page down) to native wheel direction (positive direction is mouse wheel up) - var delta = -Browser.getMouseWheelDelta(event); - delta = (delta == 0) ? 0 : (delta > 0 ? Math.max(delta, 1) : Math.min(delta, -1)); // Quantize to integer so that minimum scroll is at least +/- 1. - GLFW.wheelPos += delta; - - if (!GLFW.active || !GLFW.active.scrollFunc || event.target != Module['canvas']) return; - - - var sx = 0; - var sy = 0; - if (event.type == 'mousewheel') { - sx = event.wheelDeltaX; - sy = event.wheelDeltaY; - } else { - sx = event.deltaX; - sy = event.deltaY; - } - - Module['dynCall_vidd'](GLFW.active.scrollFunc, GLFW.active.id, sx, sy); - - event.preventDefault(); - },onCanvasResize:function (width, height) { - if (!GLFW.active) return; - - var resizeNeeded = true; - - // If the client is requestiong fullscreen mode - if (document["fullscreen"] || document["fullScreen"] || document["mozFullScreen"] || document["webkitIsFullScreen"]) { - GLFW.active.storedX = GLFW.active.x; - GLFW.active.storedY = GLFW.active.y; - GLFW.active.storedWidth = GLFW.active.width; - GLFW.active.storedHeight = GLFW.active.height; - GLFW.active.x = GLFW.active.y = 0; - GLFW.active.width = screen.width; - GLFW.active.height = screen.height; - GLFW.active.fullscreen = true; - - // If the client is reverting from fullscreen mode - } else if (GLFW.active.fullscreen == true) { - GLFW.active.x = GLFW.active.storedX; - GLFW.active.y = GLFW.active.storedY; - GLFW.active.width = GLFW.active.storedWidth; - GLFW.active.height = GLFW.active.storedHeight; - GLFW.active.fullscreen = false; - - // If the width/height values do not match current active window sizes - } else if (GLFW.active.width != width || GLFW.active.height != height) { - GLFW.active.width = width; - GLFW.active.height = height; - } else { - resizeNeeded = false; - } - - // If any of the above conditions were true, we need to resize the canvas - if (resizeNeeded) { - // resets the canvas size to counter the aspect preservation of Browser.updateCanvasDimensions - Browser.setCanvasSize(GLFW.active.width, GLFW.active.height, true); - // TODO: Client dimensions (clientWidth/clientHeight) vs pixel dimensions (width/height) of - // the canvas should drive window and framebuffer size respectfully. - GLFW.onWindowSizeChanged(); - GLFW.onFramebufferSizeChanged(); - } - },onWindowSizeChanged:function () { - if (!GLFW.active) return; - - if (!GLFW.active.windowSizeFunc) return; - - - Module['dynCall_viii'](GLFW.active.windowSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); - },onFramebufferSizeChanged:function () { - if (!GLFW.active) return; - - if (!GLFW.active.framebufferSizeFunc) return; - - Module['dynCall_viii'](GLFW.active.framebufferSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); - },requestFullscreen:function () { - var RFS = Module["canvas"]['requestFullscreen'] || - Module["canvas"]['mozRequestFullScreen'] || - Module["canvas"]['webkitRequestFullScreen'] || - (function() {}); - RFS.apply(Module["canvas"], []); - },requestFullScreen:function () { - Module.printErr('GLFW.requestFullScreen() is deprecated. Please call GLFW.requestFullscreen instead.'); - GLFW.requestFullScreen = function() { - return GLFW.requestFullscreen(); - } - return GLFW.requestFullscreen(); - },exitFullscreen:function () { - var CFS = document['exitFullscreen'] || - document['cancelFullScreen'] || - document['mozCancelFullScreen'] || - document['webkitCancelFullScreen'] || - (function() {}); - CFS.apply(document, []); - },cancelFullScreen:function () { - Module.printErr('GLFW.cancelFullScreen() is deprecated. Please call GLFW.exitFullscreen instead.'); - GLFW.cancelFullScreen = function() { - return GLFW.exitFullscreen(); - } - return GLFW.exitFullscreen(); - },getTime:function () { - return _emscripten_get_now() / 1000; - },setWindowTitle:function (winid, title) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - win.title = Pointer_stringify(title); - if (GLFW.active.id == win.id) { - document.title = win.title; - } - },setJoystickCallback:function (cbfun) { - GLFW.joystickFunc = cbfun; - GLFW.refreshJoysticks(); - },joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function () { - // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation. - if (Browser.mainLoop.currentFrameNumber !== GLFW.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) { - GLFW.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null); - GLFW.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber; - - for (var joy = 0; joy < GLFW.lastGamepadState.length; ++joy) { - var gamepad = GLFW.lastGamepadState[joy]; - - if (gamepad) { - if (!GLFW.joys[joy]) { - console.log('glfw joystick connected:',joy); - GLFW.joys[joy] = { - id: allocate(intArrayFromString(gamepad.id), 'i8', ALLOC_NORMAL), - buttonsCount: gamepad.buttons.length, - axesCount: gamepad.axes.length, - buttons: allocate(new Array(gamepad.buttons.length), 'i8', ALLOC_NORMAL), - axes: allocate(new Array(gamepad.axes.length*4), 'float', ALLOC_NORMAL) - }; - - if (GLFW.joystickFunc) { - Module['dynCall_vii'](GLFW.joystickFunc, joy, 0x00040001); // GLFW_CONNECTED - } - } - - var data = GLFW.joys[joy]; - - for (var i = 0; i < gamepad.buttons.length; ++i) { - setValue(data.buttons + i, gamepad.buttons[i].pressed, 'i8'); - } - - for (var i = 0; i < gamepad.axes.length; ++i) { - setValue(data.axes + i*4, gamepad.axes[i], 'float'); - } - } else { - if (GLFW.joys[joy]) { - console.log('glfw joystick disconnected',joy); - - if (GLFW.joystickFunc) { - Module['dynCall_vii'](GLFW.joystickFunc, joy, 0x00040002); // GLFW_DISCONNECTED - } - - _free(GLFW.joys[joy].id); - _free(GLFW.joys[joy].buttons); - _free(GLFW.joys[joy].axes); - - delete GLFW.joys[joy]; - } - } - } - } - },setKeyCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.keyFunc = cbfun; - },setCharCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.charFunc = cbfun; - },setMouseButtonCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.mouseButtonFunc = cbfun; - },setCursorPosCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.cursorPosFunc = cbfun; - },setScrollCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.scrollFunc = cbfun; - },setDropCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.dropFunc = cbfun; - },onDrop:function (event) { - if (!GLFW.active || !GLFW.active.dropFunc) return; - if (!event.dataTransfer || !event.dataTransfer.files || event.dataTransfer.files.length == 0) return; - - event.preventDefault(); - - var filenames = allocate(new Array(event.dataTransfer.files.length*4), 'i8*', ALLOC_NORMAL); - var filenamesArray = []; - var count = event.dataTransfer.files.length; - - // Read and save the files to emscripten's FS - var written = 0; - var drop_dir = '.glfw_dropped_files'; - FS.createPath('/', drop_dir); - - function save(file) { - var path = '/' + drop_dir + '/' + file.name.replace(/\//g, '_'); - var reader = new FileReader(); - reader.onloadend = function(e) { - if (reader.readyState != 2) { // not DONE - ++written; - console.log('failed to read dropped file: '+file.name+': '+reader.error); - return; - } - - var data = e.target.result; - FS.writeFile(path, new Uint8Array(data), { encoding: 'binary' }); - if (++written === count) { - Module['dynCall_viii'](GLFW.active.dropFunc, GLFW.active.id, count, filenames); - - for (var i = 0; i < filenamesArray.length; ++i) { - _free(filenamesArray[i]); - } - _free(filenames); - } - }; - reader.readAsArrayBuffer(file); - - var filename = allocate(intArrayFromString(path), 'i8', ALLOC_NORMAL); - filenamesArray.push(filename); - setValue(filenames + i*4, filename, 'i8*'); - } - - for (var i = 0; i < count; ++i) { - save(event.dataTransfer.files[i]); - } - - return false; - },onDragover:function (event) { - if (!GLFW.active || !GLFW.active.dropFunc) return; - - event.preventDefault(); - return false; - },setWindowSizeCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowSizeFunc = cbfun; - - },setWindowCloseCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowCloseFunc = cbfun; - },setWindowRefreshCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowRefreshFunc = cbfun; - },onClickRequestPointerLock:function (e) { - if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { - Module['canvas'].requestPointerLock(); - e.preventDefault(); - } - },setInputMode:function (winid, mode, value) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - switch(mode) { - case 0x00033001: { // GLFW_CURSOR - switch(value) { - case 0x00034001: { // GLFW_CURSOR_NORMAL - win.inputModes[mode] = value; - Module['canvas'].removeEventListener('click', GLFW.onClickRequestPointerLock, true); - Module['canvas'].exitPointerLock(); - break; - } - case 0x00034002: { // GLFW_CURSOR_HIDDEN - console.log("glfwSetInputMode called with GLFW_CURSOR_HIDDEN value not implemented."); - break; - } - case 0x00034003: { // GLFW_CURSOR_DISABLED - win.inputModes[mode] = value; - Module['canvas'].addEventListener('click', GLFW.onClickRequestPointerLock, true); - Module['canvas'].requestPointerLock(); - break; - } - default: { - console.log("glfwSetInputMode called with unknown value parameter value: " + value + "."); - break; - } - } - break; - } - case 0x00033002: { // GLFW_STICKY_KEYS - console.log("glfwSetInputMode called with GLFW_STICKY_KEYS mode not implemented."); - break; - } - case 0x00033003: { // GLFW_STICKY_MOUSE_BUTTONS - console.log("glfwSetInputMode called with GLFW_STICKY_MOUSE_BUTTONS mode not implemented."); - break; - } - default: { - console.log("glfwSetInputMode called with unknown mode parameter value: " + mode + "."); - break; - } - } - },getKey:function (winid, key) { - var win = GLFW.WindowFromId(winid); - if (!win) return 0; - return win.keys[key]; - },getMouseButton:function (winid, button) { - var win = GLFW.WindowFromId(winid); - if (!win) return 0; - return (win.buttons & (1 << button)) > 0; - },getCursorPos:function (winid, x, y) { - setValue(x, Browser.mouseX, 'double'); - setValue(y, Browser.mouseY, 'double'); - },getMousePos:function (winid, x, y) { - setValue(x, Browser.mouseX, 'i32'); - setValue(y, Browser.mouseY, 'i32'); - },setCursorPos:function (winid, x, y) { - },getWindowPos:function (winid, x, y) { - var wx = 0; - var wy = 0; - - var win = GLFW.WindowFromId(winid); - if (win) { - wx = win.x; - wy = win.y; - } - - setValue(x, wx, 'i32'); - setValue(y, wy, 'i32'); - },setWindowPos:function (winid, x, y) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.x = x; - win.y = y; - },getWindowSize:function (winid, width, height) { - var ww = 0; - var wh = 0; - - var win = GLFW.WindowFromId(winid); - if (win) { - ww = win.width; - wh = win.height; - } - - setValue(width, ww, 'i32'); - setValue(height, wh, 'i32'); - },setWindowSize:function (winid, width, height) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - if (GLFW.active.id == win.id) { - if (width == screen.width && height == screen.height) { - GLFW.requestFullscreen(); - } else { - GLFW.exitFullscreen(); - Browser.setCanvasSize(width, height); - win.width = width; - win.height = height; - } - } - - if (!win.windowSizeFunc) return; - - - Module['dynCall_viii'](win.windowSizeFunc, win.id, width, height); - },createWindow:function (width, height, title, monitor, share) { - var i, id; - for (i = 0; i < GLFW.windows.length && GLFW.windows[i] !== null; i++); - if (i > 0) throw "glfwCreateWindow only supports one window at time currently"; - - // id for window - id = i + 1; - - // not valid - if (width <= 0 || height <= 0) return 0; - - if (monitor) { - GLFW.requestFullscreen(); - } else { - Browser.setCanvasSize(width, height); - } - - // Create context when there are no existing alive windows - for (i = 0; i < GLFW.windows.length && GLFW.windows[i] == null; i++); - if (i == GLFW.windows.length) { - var contextAttributes = { - antialias: (GLFW.hints[0x0002100D] > 1), // GLFW_SAMPLES - depth: (GLFW.hints[0x00021005] > 0), // GLFW_DEPTH_BITS - stencil: (GLFW.hints[0x00021006] > 0), // GLFW_STENCIL_BITS - alpha: (GLFW.hints[0x00021004] > 0) // GLFW_ALPHA_BITS - } - Module.ctx = Browser.createContext(Module['canvas'], true, true, contextAttributes); - } - - // If context creation failed, do not return a valid window - if (!Module.ctx) return 0; - - // Get non alive id - var win = new GLFW.Window(id, width, height, title, monitor, share); - - // Set window to array - if (id - 1 == GLFW.windows.length) { - GLFW.windows.push(win); - } else { - GLFW.windows[id - 1] = win; - } - - GLFW.active = win; - return win.id; - },destroyWindow:function (winid) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - if (win.windowCloseFunc) - Module['dynCall_vi'](win.windowCloseFunc, win.id); - - GLFW.windows[win.id - 1] = null; - if (GLFW.active.id == win.id) - GLFW.active = null; - - // Destroy context when no alive windows - for (var i = 0; i < GLFW.windows.length; i++) - if (GLFW.windows[i] !== null) return; - - Module.ctx = Browser.destroyContext(Module['canvas'], true, true); - },swapBuffers:function (winid) { - },GLFW2ParamToGLFW3Param:function (param) { - table = { - 0x00030001:0, // GLFW_MOUSE_CURSOR - 0x00030002:0, // GLFW_STICKY_KEYS - 0x00030003:0, // GLFW_STICKY_MOUSE_BUTTONS - 0x00030004:0, // GLFW_SYSTEM_KEYS - 0x00030005:0, // GLFW_KEY_REPEAT - 0x00030006:0, // GLFW_AUTO_POLL_EVENTS - 0x00020001:0, // GLFW_OPENED - 0x00020002:0, // GLFW_ACTIVE - 0x00020003:0, // GLFW_ICONIFIED - 0x00020004:0, // GLFW_ACCELERATED - 0x00020005:0x00021001, // GLFW_RED_BITS - 0x00020006:0x00021002, // GLFW_GREEN_BITS - 0x00020007:0x00021003, // GLFW_BLUE_BITS - 0x00020008:0x00021004, // GLFW_ALPHA_BITS - 0x00020009:0x00021005, // GLFW_DEPTH_BITS - 0x0002000A:0x00021006, // GLFW_STENCIL_BITS - 0x0002000B:0x0002100F, // GLFW_REFRESH_RATE - 0x0002000C:0x00021007, // GLFW_ACCUM_RED_BITS - 0x0002000D:0x00021008, // GLFW_ACCUM_GREEN_BITS - 0x0002000E:0x00021009, // GLFW_ACCUM_BLUE_BITS - 0x0002000F:0x0002100A, // GLFW_ACCUM_ALPHA_BITS - 0x00020010:0x0002100B, // GLFW_AUX_BUFFERS - 0x00020011:0x0002100C, // GLFW_STEREO - 0x00020012:0, // GLFW_WINDOW_NO_RESIZE - 0x00020013:0x0002100D, // GLFW_FSAA_SAMPLES - 0x00020014:0x00022002, // GLFW_OPENGL_VERSION_MAJOR - 0x00020015:0x00022003, // GLFW_OPENGL_VERSION_MINOR - 0x00020016:0x00022006, // GLFW_OPENGL_FORWARD_COMPAT - 0x00020017:0x00022007, // GLFW_OPENGL_DEBUG_CONTEXT - 0x00020018:0x00022008, // GLFW_OPENGL_PROFILE - }; - return table[param]; - }};function _glfwGetVideoModes(monitor, count) { - setValue(count, 0, 'i32'); - return 0; - } - - function _glLinkProgram(program) { - GLctx.linkProgram(GL.programs[program]); - GL.programInfos[program] = null; // uniforms no longer keep the same names after linking - GL.populateUniformTable(program); - } - - function _glBindTexture(target, texture) { - GLctx.bindTexture(target, texture ? GL.textures[texture] : null); - } - - function _emscripten_glStencilFunc(x0, x1, x2) { GLctx['stencilFunc'](x0, x1, x2) } - - function _glGetString(name_) { - if (GL.stringCache[name_]) return GL.stringCache[name_]; - var ret; - switch(name_) { - case 0x1F00 /* GL_VENDOR */: - case 0x1F01 /* GL_RENDERER */: - case 0x9245 /* UNMASKED_VENDOR_WEBGL */: - case 0x9246 /* UNMASKED_RENDERER_WEBGL */: - ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); - break; - case 0x1F02 /* GL_VERSION */: - var glVersion = GLctx.getParameter(GLctx.VERSION); - // return GLES version string corresponding to the version of the WebGL context - { - glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; - } - ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); - break; - case 0x1F03 /* GL_EXTENSIONS */: - var exts = GLctx.getSupportedExtensions(); - var gl_exts = []; - for (var i = 0; i < exts.length; ++i) { - gl_exts.push(exts[i]); - gl_exts.push("GL_" + exts[i]); - } - ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); - break; - case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: - var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); - // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' - var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; - var ver_num = glslVersion.match(ver_re); - if (ver_num !== null) { - if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits - glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; - } - ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); - break; - default: - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - return 0; - } - GL.stringCache[name_] = ret; - return ret; - } - - function _emscripten_glUniform3iv(location, count, value) { - - - GLctx.uniform3iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*12)>>2)); - } - - function _emscripten_glShaderSource(shader, count, string, length) { - var source = GL.getSource(shader, count, string, length); - - - GLctx.shaderSource(GL.shaders[shader], source); - } - - function _emscripten_glReleaseShaderCompiler() { - // NOP (as allowed by GLES 2.0 spec) - } - - function _glfwSetScrollCallback(winid, cbfun) { - GLFW.setScrollCallback(winid, cbfun); - } - - function _emscripten_glTexParameterf(x0, x1, x2) { GLctx['texParameterf'](x0, x1, x2) } - - function _emscripten_glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } - - function _glCompileShader(shader) { - GLctx.compileShader(GL.shaders[shader]); - } - - - var SYSCALLS={varargs:0,get:function (varargs) { - SYSCALLS.varargs += 4; - var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; - return ret; - },getStr:function () { - var ret = Pointer_stringify(SYSCALLS.get()); - return ret; - },get64:function () { - var low = SYSCALLS.get(), high = SYSCALLS.get(); - if (low >= 0) assert(high === 0); - else assert(high === -1); - return low; - },getZero:function () { - assert(SYSCALLS.get() === 0); - }};function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; - try { - // ioctl - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function _emscripten_glSampleCoverage(value, invert) { - GLctx.sampleCoverage(value, !!invert); - } - - function _glDeleteTextures(n, textures) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((textures)+(i*4))>>2)]; - var texture = GL.textures[id]; - if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". - GLctx.deleteTexture(texture); - texture.name = 0; - GL.textures[id] = null; - } - } - - function _emscripten_glFrustum() { - Module['printErr']('missing function: emscripten_glFrustum'); abort(-1); - } - - function _glfwSetWindowSizeCallback(winid, cbfun) { - GLFW.setWindowSizeCallback(winid, cbfun); - } - - function _emscripten_glGetTexParameterfv(target, pname, params) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAPF32[((params)>>2)]=GLctx.getTexParameter(target, pname); - } - - function _emscripten_glUniform4i(location, v0, v1, v2, v3) { - GLctx.uniform4i(GL.uniforms[location], v0, v1, v2, v3); - } - - function _emscripten_glBindRenderbuffer(target, renderbuffer) { - GLctx.bindRenderbuffer(target, renderbuffer ? GL.renderbuffers[renderbuffer] : null); - } - - function _emscripten_glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } - - - - var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,lastGamepadState:null,lastGamepadStateFrame:null,numGamepadsConnected:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,staticInit:function () { - if (typeof window !== 'undefined') { - window.addEventListener("gamepadconnected", function() { ++JSEvents.numGamepadsConnected; }); - window.addEventListener("gamepaddisconnected", function() { --JSEvents.numGamepadsConnected; }); - - // Chromium does not fire the gamepadconnected event on reload, so we need to get the number of gamepads here as a workaround. - // See https://bugs.chromium.org/p/chromium/issues/detail?id=502824 - var firstState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : null); - if (firstState) { - JSEvents.numGamepadsConnected = firstState.length; - } - } - },registerRemoveEventListeners:function () { - if (!JSEvents.removeEventListenersRegistered) { - __ATEXIT__.push(function() { - for(var i = JSEvents.eventHandlers.length-1; i >= 0; --i) { - JSEvents._removeHandler(i); - } - }); - JSEvents.removeEventListenersRegistered = true; - } - },findEventTarget:function (target) { - if (target) { - if (typeof target == "number") { - target = Pointer_stringify(target); - } - if (target == '#window') return window; - else if (target == '#document') return document; - else if (target == '#screen') return window.screen; - else if (target == '#canvas') return Module['canvas']; - - if (typeof target == 'string') return document.getElementById(target); - else return target; - } else { - // The sensible target varies between events, but use window as the default - // since DOM events mostly can default to that. Specific callback registrations - // override their own defaults. - return window; - } - },deferredCalls:[],deferCall:function (targetFunction, precedence, argsList) { - function arraysHaveEqualContent(arrA, arrB) { - if (arrA.length != arrB.length) return false; - - for(var i in arrA) { - if (arrA[i] != arrB[i]) return false; - } - return true; - } - // Test if the given call was already queued, and if so, don't add it again. - for(var i in JSEvents.deferredCalls) { - var call = JSEvents.deferredCalls[i]; - if (call.targetFunction == targetFunction && arraysHaveEqualContent(call.argsList, argsList)) { - return; - } - } - JSEvents.deferredCalls.push({ - targetFunction: targetFunction, - precedence: precedence, - argsList: argsList - }); - - JSEvents.deferredCalls.sort(function(x,y) { return x.precedence < y.precedence; }); - },removeDeferredCalls:function (targetFunction) { - for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { - if (JSEvents.deferredCalls[i].targetFunction == targetFunction) { - JSEvents.deferredCalls.splice(i, 1); - --i; - } - } - },canPerformEventHandlerRequests:function () { - return JSEvents.inEventHandler && JSEvents.currentEventHandler.allowsDeferredCalls; - },runDeferredCalls:function () { - if (!JSEvents.canPerformEventHandlerRequests()) { - return; - } - for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { - var call = JSEvents.deferredCalls[i]; - JSEvents.deferredCalls.splice(i, 1); - --i; - call.targetFunction.apply(this, call.argsList); - } - },inEventHandler:0,currentEventHandler:null,eventHandlers:[],isInternetExplorer:function () { return navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0; },removeAllHandlersOnTarget:function (target, eventTypeString) { - for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { - if (JSEvents.eventHandlers[i].target == target && - (!eventTypeString || eventTypeString == JSEvents.eventHandlers[i].eventTypeString)) { - JSEvents._removeHandler(i--); - } - } - },_removeHandler:function (i) { - var h = JSEvents.eventHandlers[i]; - h.target.removeEventListener(h.eventTypeString, h.eventListenerFunc, h.useCapture); - JSEvents.eventHandlers.splice(i, 1); - },registerOrRemoveHandler:function (eventHandler) { - var jsEventHandler = function jsEventHandler(event) { - // Increment nesting count for the event handler. - ++JSEvents.inEventHandler; - JSEvents.currentEventHandler = eventHandler; - // Process any old deferred calls the user has placed. - JSEvents.runDeferredCalls(); - // Process the actual event, calls back to user C code handler. - eventHandler.handlerFunc(event); - // Process any new deferred calls that were placed right now from this event handler. - JSEvents.runDeferredCalls(); - // Out of event handler - restore nesting count. - --JSEvents.inEventHandler; - } - - if (eventHandler.callbackfunc) { - eventHandler.eventListenerFunc = jsEventHandler; - eventHandler.target.addEventListener(eventHandler.eventTypeString, jsEventHandler, eventHandler.useCapture); - JSEvents.eventHandlers.push(eventHandler); - JSEvents.registerRemoveEventListeners(); - } else { - for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { - if (JSEvents.eventHandlers[i].target == eventHandler.target - && JSEvents.eventHandlers[i].eventTypeString == eventHandler.eventTypeString) { - JSEvents._removeHandler(i--); - } - } - } - },registerKeyEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.keyEvent) { - JSEvents.keyEvent = _malloc( 164 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - stringToUTF8(e.key ? e.key : "", JSEvents.keyEvent + 0, 32); - stringToUTF8(e.code ? e.code : "", JSEvents.keyEvent + 32, 32); - HEAP32[(((JSEvents.keyEvent)+(64))>>2)]=e.location; - HEAP32[(((JSEvents.keyEvent)+(68))>>2)]=e.ctrlKey; - HEAP32[(((JSEvents.keyEvent)+(72))>>2)]=e.shiftKey; - HEAP32[(((JSEvents.keyEvent)+(76))>>2)]=e.altKey; - HEAP32[(((JSEvents.keyEvent)+(80))>>2)]=e.metaKey; - HEAP32[(((JSEvents.keyEvent)+(84))>>2)]=e.repeat; - stringToUTF8(e.locale ? e.locale : "", JSEvents.keyEvent + 88, 32); - stringToUTF8(e.char ? e.char : "", JSEvents.keyEvent + 120, 32); - HEAP32[(((JSEvents.keyEvent)+(152))>>2)]=e.charCode; - HEAP32[(((JSEvents.keyEvent)+(156))>>2)]=e.keyCode; - HEAP32[(((JSEvents.keyEvent)+(160))>>2)]=e.which; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.keyEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: JSEvents.isInternetExplorer() ? false : true, // MSIE doesn't allow fullscreen and pointerlock requests from key handlers, others do. - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },getBoundingClientRectOrZeros:function (target) { - return target.getBoundingClientRect ? target.getBoundingClientRect() : { left: 0, top: 0 }; - },fillMouseEventData:function (eventStruct, e, target) { - HEAPF64[((eventStruct)>>3)]=JSEvents.tick(); - HEAP32[(((eventStruct)+(8))>>2)]=e.screenX; - HEAP32[(((eventStruct)+(12))>>2)]=e.screenY; - HEAP32[(((eventStruct)+(16))>>2)]=e.clientX; - HEAP32[(((eventStruct)+(20))>>2)]=e.clientY; - HEAP32[(((eventStruct)+(24))>>2)]=e.ctrlKey; - HEAP32[(((eventStruct)+(28))>>2)]=e.shiftKey; - HEAP32[(((eventStruct)+(32))>>2)]=e.altKey; - HEAP32[(((eventStruct)+(36))>>2)]=e.metaKey; - HEAP16[(((eventStruct)+(40))>>1)]=e.button; - HEAP16[(((eventStruct)+(42))>>1)]=e.buttons; - HEAP32[(((eventStruct)+(44))>>2)]=e["movementX"] || e["mozMovementX"] || e["webkitMovementX"] || (e.screenX-JSEvents.previousScreenX); - HEAP32[(((eventStruct)+(48))>>2)]=e["movementY"] || e["mozMovementY"] || e["webkitMovementY"] || (e.screenY-JSEvents.previousScreenY); - - if (Module['canvas']) { - var rect = Module['canvas'].getBoundingClientRect(); - HEAP32[(((eventStruct)+(60))>>2)]=e.clientX - rect.left; - HEAP32[(((eventStruct)+(64))>>2)]=e.clientY - rect.top; - } else { // Canvas is not initialized, return 0. - HEAP32[(((eventStruct)+(60))>>2)]=0; - HEAP32[(((eventStruct)+(64))>>2)]=0; - } - if (target) { - var rect = JSEvents.getBoundingClientRectOrZeros(target); - HEAP32[(((eventStruct)+(52))>>2)]=e.clientX - rect.left; - HEAP32[(((eventStruct)+(56))>>2)]=e.clientY - rect.top; - } else { // No specific target passed, return 0. - HEAP32[(((eventStruct)+(52))>>2)]=0; - HEAP32[(((eventStruct)+(56))>>2)]=0; - } - // wheel and mousewheel events contain wrong screenX/screenY on chrome/opera - // https://github.com/kripken/emscripten/pull/4997 - // https://bugs.chromium.org/p/chromium/issues/detail?id=699956 - if (e.type !== 'wheel' && e.type !== 'mousewheel') { - JSEvents.previousScreenX = e.screenX; - JSEvents.previousScreenY = e.screenY; - } - },registerMouseEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.mouseEvent) { - JSEvents.mouseEvent = _malloc( 72 ); - } - target = JSEvents.findEventTarget(target); - var handlerFunc = function(event) { - var e = event || window.event; - JSEvents.fillMouseEventData(JSEvents.mouseEvent, e, target); - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.mouseEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: eventTypeString != 'mousemove' && eventTypeString != 'mouseenter' && eventTypeString != 'mouseleave', // Mouse move events do not allow fullscreen/pointer lock requests to be handled in them! - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - // In IE, mousedown events don't either allow deferred calls to be run! - if (JSEvents.isInternetExplorer() && eventTypeString == 'mousedown') eventHandler.allowsDeferredCalls = false; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerWheelEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.wheelEvent) { - JSEvents.wheelEvent = _malloc( 104 ); - } - target = JSEvents.findEventTarget(target); - // The DOM Level 3 events spec event 'wheel' - var wheelHandlerFunc = function(event) { - var e = event || window.event; - JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); - HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["deltaX"]; - HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=e["deltaY"]; - HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=e["deltaZ"]; - HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=e["deltaMode"]; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - // The 'mousewheel' event as implemented in Safari 6.0.5 - var mouseWheelHandlerFunc = function(event) { - var e = event || window.event; - JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); - HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["wheelDeltaX"] || 0; - HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=-(e["wheelDeltaY"] ? e["wheelDeltaY"] : e["wheelDelta"]) /* 1. Invert to unify direction with the DOM Level 3 wheel event. 2. MSIE does not provide wheelDeltaY, so wheelDelta is used as a fallback. */; - HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=0 /* Not available */; - HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=0 /* DOM_DELTA_PIXEL */; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: true, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: (eventTypeString == 'wheel') ? wheelHandlerFunc : mouseWheelHandlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },pageScrollPos:function () { - if (window.pageXOffset > 0 || window.pageYOffset > 0) { - return [window.pageXOffset, window.pageYOffset]; - } - if (typeof document.documentElement.scrollLeft !== 'undefined' || typeof document.documentElement.scrollTop !== 'undefined') { - return [document.documentElement.scrollLeft, document.documentElement.scrollTop]; - } - return [document.body.scrollLeft|0, document.body.scrollTop|0]; - },registerUiEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.uiEvent) { - JSEvents.uiEvent = _malloc( 36 ); - } - - if (eventTypeString == "scroll" && !target) { - target = document; // By default read scroll events on document rather than window. - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - if (e.target != target) { - // Never take ui events such as scroll via a 'bubbled' route, but always from the direct element that - // was targeted. Otherwise e.g. if app logs a message in response to a page scroll, the Emscripten log - // message box could cause to scroll, generating a new (bubbled) scroll message, causing a new log print, - // causing a new scroll, etc.. - return; - } - var scrollPos = JSEvents.pageScrollPos(); - HEAP32[((JSEvents.uiEvent)>>2)]=e.detail; - HEAP32[(((JSEvents.uiEvent)+(4))>>2)]=document.body.clientWidth; - HEAP32[(((JSEvents.uiEvent)+(8))>>2)]=document.body.clientHeight; - HEAP32[(((JSEvents.uiEvent)+(12))>>2)]=window.innerWidth; - HEAP32[(((JSEvents.uiEvent)+(16))>>2)]=window.innerHeight; - HEAP32[(((JSEvents.uiEvent)+(20))>>2)]=window.outerWidth; - HEAP32[(((JSEvents.uiEvent)+(24))>>2)]=window.outerHeight; - HEAP32[(((JSEvents.uiEvent)+(28))>>2)]=scrollPos[0]; - HEAP32[(((JSEvents.uiEvent)+(32))>>2)]=scrollPos[1]; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.uiEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, // Neither scroll or resize events allow running requests inside them. - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },getNodeNameForTarget:function (target) { - if (!target) return ''; - if (target == window) return '#window'; - if (target == window.screen) return '#screen'; - return (target && target.nodeName) ? target.nodeName : ''; - },registerFocusEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.focusEvent) { - JSEvents.focusEvent = _malloc( 256 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - - var nodeName = JSEvents.getNodeNameForTarget(e.target); - var id = e.target.id ? e.target.id : ''; - stringToUTF8(nodeName, JSEvents.focusEvent + 0, 128); - stringToUTF8(id, JSEvents.focusEvent + 128, 128); - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.focusEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },tick:function () { - if (window['performance'] && window['performance']['now']) return window['performance']['now'](); - else return Date.now(); - },registerDeviceOrientationEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.deviceOrientationEvent) { - JSEvents.deviceOrientationEvent = _malloc( 40 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - - HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); - HEAPF64[(((JSEvents.deviceOrientationEvent)+(8))>>3)]=e.alpha; - HEAPF64[(((JSEvents.deviceOrientationEvent)+(16))>>3)]=e.beta; - HEAPF64[(((JSEvents.deviceOrientationEvent)+(24))>>3)]=e.gamma; - HEAP32[(((JSEvents.deviceOrientationEvent)+(32))>>2)]=e.absolute; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceOrientationEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerDeviceMotionEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.deviceMotionEvent) { - JSEvents.deviceMotionEvent = _malloc( 80 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - - HEAPF64[((JSEvents.deviceMotionEvent)>>3)]=JSEvents.tick(); - HEAPF64[(((JSEvents.deviceMotionEvent)+(8))>>3)]=e.acceleration.x; - HEAPF64[(((JSEvents.deviceMotionEvent)+(16))>>3)]=e.acceleration.y; - HEAPF64[(((JSEvents.deviceMotionEvent)+(24))>>3)]=e.acceleration.z; - HEAPF64[(((JSEvents.deviceMotionEvent)+(32))>>3)]=e.accelerationIncludingGravity.x; - HEAPF64[(((JSEvents.deviceMotionEvent)+(40))>>3)]=e.accelerationIncludingGravity.y; - HEAPF64[(((JSEvents.deviceMotionEvent)+(48))>>3)]=e.accelerationIncludingGravity.z; - HEAPF64[(((JSEvents.deviceMotionEvent)+(56))>>3)]=e.rotationRate.alpha; - HEAPF64[(((JSEvents.deviceMotionEvent)+(64))>>3)]=e.rotationRate.beta; - HEAPF64[(((JSEvents.deviceMotionEvent)+(72))>>3)]=e.rotationRate.gamma; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceMotionEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },screenOrientation:function () { - if (!window.screen) return undefined; - return window.screen.orientation || window.screen.mozOrientation || window.screen.webkitOrientation || window.screen.msOrientation; - },fillOrientationChangeEventData:function (eventStruct, e) { - var orientations = ["portrait-primary", "portrait-secondary", "landscape-primary", "landscape-secondary"]; - var orientations2 = ["portrait", "portrait", "landscape", "landscape"]; - - var orientationString = JSEvents.screenOrientation(); - var orientation = orientations.indexOf(orientationString); - if (orientation == -1) { - orientation = orientations2.indexOf(orientationString); - } - - HEAP32[((eventStruct)>>2)]=1 << orientation; - HEAP32[(((eventStruct)+(4))>>2)]=window.orientation; - },registerOrientationChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.orientationChangeEvent) { - JSEvents.orientationChangeEvent = _malloc( 8 ); - } - - if (!target) { - target = window.screen; // Orientation events need to be captured from 'window.screen' instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillOrientationChangeEventData(JSEvents.orientationChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.orientationChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - if (eventTypeString == "orientationchange" && window.screen.mozOrientation !== undefined) { - eventTypeString = "mozorientationchange"; - } - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },fullscreenEnabled:function () { - return document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled; - },fillFullscreenChangeEventData:function (eventStruct, e) { - var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; - var isFullscreen = !!fullscreenElement; - HEAP32[((eventStruct)>>2)]=isFullscreen; - HEAP32[(((eventStruct)+(4))>>2)]=JSEvents.fullscreenEnabled(); - // If transitioning to fullscreen, report info about the element that is now fullscreen. - // If transitioning to windowed mode, report info about the element that just was fullscreen. - var reportedElement = isFullscreen ? fullscreenElement : JSEvents.previousFullscreenElement; - var nodeName = JSEvents.getNodeNameForTarget(reportedElement); - var id = (reportedElement && reportedElement.id) ? reportedElement.id : ''; - stringToUTF8(nodeName, eventStruct + 8, 128); - stringToUTF8(id, eventStruct + 136, 128); - HEAP32[(((eventStruct)+(264))>>2)]=reportedElement ? reportedElement.clientWidth : 0; - HEAP32[(((eventStruct)+(268))>>2)]=reportedElement ? reportedElement.clientHeight : 0; - HEAP32[(((eventStruct)+(272))>>2)]=screen.width; - HEAP32[(((eventStruct)+(276))>>2)]=screen.height; - if (isFullscreen) { - JSEvents.previousFullscreenElement = fullscreenElement; - } - },registerFullscreenChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.fullscreenChangeEvent) { - JSEvents.fullscreenChangeEvent = _malloc( 280 ); - } - - if (!target) { - target = document; // Fullscreen change events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillFullscreenChangeEventData(JSEvents.fullscreenChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.fullscreenChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },resizeCanvasForFullscreen:function (target, strategy) { - var restoreOldStyle = __registerRestoreOldStyle(target); - var cssWidth = strategy.softFullscreen ? window.innerWidth : screen.width; - var cssHeight = strategy.softFullscreen ? window.innerHeight : screen.height; - var rect = target.getBoundingClientRect(); - var windowedCssWidth = rect.right - rect.left; - var windowedCssHeight = rect.bottom - rect.top; - var windowedRttWidth = target.width; - var windowedRttHeight = target.height; - - if (strategy.scaleMode == 3) { - __setLetterbox(target, (cssHeight - windowedCssHeight) / 2, (cssWidth - windowedCssWidth) / 2); - cssWidth = windowedCssWidth; - cssHeight = windowedCssHeight; - } else if (strategy.scaleMode == 2) { - if (cssWidth*windowedRttHeight < windowedRttWidth*cssHeight) { - var desiredCssHeight = windowedRttHeight * cssWidth / windowedRttWidth; - __setLetterbox(target, (cssHeight - desiredCssHeight) / 2, 0); - cssHeight = desiredCssHeight; - } else { - var desiredCssWidth = windowedRttWidth * cssHeight / windowedRttHeight; - __setLetterbox(target, 0, (cssWidth - desiredCssWidth) / 2); - cssWidth = desiredCssWidth; - } - } - - // If we are adding padding, must choose a background color or otherwise Chrome will give the - // padding a default white color. Do it only if user has not customized their own background color. - if (!target.style.backgroundColor) target.style.backgroundColor = 'black'; - // IE11 does the same, but requires the color to be set in the document body. - if (!document.body.style.backgroundColor) document.body.style.backgroundColor = 'black'; // IE11 - // Firefox always shows black letterboxes independent of style color. - - target.style.width = cssWidth + 'px'; - target.style.height = cssHeight + 'px'; - - if (strategy.filteringMode == 1) { - target.style.imageRendering = 'optimizeSpeed'; - target.style.imageRendering = '-moz-crisp-edges'; - target.style.imageRendering = '-o-crisp-edges'; - target.style.imageRendering = '-webkit-optimize-contrast'; - target.style.imageRendering = 'optimize-contrast'; - target.style.imageRendering = 'crisp-edges'; - target.style.imageRendering = 'pixelated'; - } - - var dpiScale = (strategy.canvasResolutionScaleMode == 2) ? window.devicePixelRatio : 1; - if (strategy.canvasResolutionScaleMode != 0) { - target.width = cssWidth * dpiScale; - target.height = cssHeight * dpiScale; - if (target.GLctxObject) target.GLctxObject.GLctx.viewport(0, 0, target.width, target.height); - } - return restoreOldStyle; - },requestFullscreen:function (target, strategy) { - // EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT + EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE is a mode where no extra logic is performed to the DOM elements. - if (strategy.scaleMode != 0 || strategy.canvasResolutionScaleMode != 0) { - JSEvents.resizeCanvasForFullscreen(target, strategy); - } - - if (target.requestFullscreen) { - target.requestFullscreen(); - } else if (target.msRequestFullscreen) { - target.msRequestFullscreen(); - } else if (target.mozRequestFullScreen) { - target.mozRequestFullScreen(); - } else if (target.mozRequestFullscreen) { - target.mozRequestFullscreen(); - } else if (target.webkitRequestFullscreen) { - target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); - } else { - if (typeof JSEvents.fullscreenEnabled() === 'undefined') { - return -1; - } else { - return -3; - } - } - - if (strategy.canvasResizedCallback) { - Module['dynCall_iiii'](strategy.canvasResizedCallback, 37, 0, strategy.canvasResizedCallbackUserData); - } - - return 0; - },fillPointerlockChangeEventData:function (eventStruct, e) { - var pointerLockElement = document.pointerLockElement || document.mozPointerLockElement || document.webkitPointerLockElement || document.msPointerLockElement; - var isPointerlocked = !!pointerLockElement; - HEAP32[((eventStruct)>>2)]=isPointerlocked; - var nodeName = JSEvents.getNodeNameForTarget(pointerLockElement); - var id = (pointerLockElement && pointerLockElement.id) ? pointerLockElement.id : ''; - stringToUTF8(nodeName, eventStruct + 4, 128); - stringToUTF8(id, eventStruct + 132, 128); - },registerPointerlockChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.pointerlockChangeEvent) { - JSEvents.pointerlockChangeEvent = _malloc( 260 ); - } - - if (!target) { - target = document; // Pointer lock change events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillPointerlockChangeEventData(JSEvents.pointerlockChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.pointerlockChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerPointerlockErrorEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!target) { - target = document; // Pointer lock events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },requestPointerLock:function (target) { - if (target.requestPointerLock) { - target.requestPointerLock(); - } else if (target.mozRequestPointerLock) { - target.mozRequestPointerLock(); - } else if (target.webkitRequestPointerLock) { - target.webkitRequestPointerLock(); - } else if (target.msRequestPointerLock) { - target.msRequestPointerLock(); - } else { - // document.body is known to accept pointer lock, so use that to differentiate if the user passed a bad element, - // or if the whole browser just doesn't support the feature. - if (document.body.requestPointerLock || document.body.mozRequestPointerLock || document.body.webkitRequestPointerLock || document.body.msRequestPointerLock) { - return -3; - } else { - return -1; - } - } - return 0; - },fillVisibilityChangeEventData:function (eventStruct, e) { - var visibilityStates = [ "hidden", "visible", "prerender", "unloaded" ]; - var visibilityState = visibilityStates.indexOf(document.visibilityState); - - HEAP32[((eventStruct)>>2)]=document.hidden; - HEAP32[(((eventStruct)+(4))>>2)]=visibilityState; - },registerVisibilityChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.visibilityChangeEvent) { - JSEvents.visibilityChangeEvent = _malloc( 8 ); - } - - if (!target) { - target = document; // Visibility change events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillVisibilityChangeEventData(JSEvents.visibilityChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.visibilityChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerTouchEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.touchEvent) { - JSEvents.touchEvent = _malloc( 1684 ); - } - - target = JSEvents.findEventTarget(target); - - var handlerFunc = function(event) { - var e = event || window.event; - - var touches = {}; - for(var i = 0; i < e.touches.length; ++i) { - var touch = e.touches[i]; - touches[touch.identifier] = touch; - } - for(var i = 0; i < e.changedTouches.length; ++i) { - var touch = e.changedTouches[i]; - touches[touch.identifier] = touch; - touch.changed = true; - } - for(var i = 0; i < e.targetTouches.length; ++i) { - var touch = e.targetTouches[i]; - touches[touch.identifier].onTarget = true; - } - - var ptr = JSEvents.touchEvent; - HEAP32[(((ptr)+(4))>>2)]=e.ctrlKey; - HEAP32[(((ptr)+(8))>>2)]=e.shiftKey; - HEAP32[(((ptr)+(12))>>2)]=e.altKey; - HEAP32[(((ptr)+(16))>>2)]=e.metaKey; - ptr += 20; // Advance to the start of the touch array. - var canvasRect = Module['canvas'] ? Module['canvas'].getBoundingClientRect() : undefined; - var targetRect = JSEvents.getBoundingClientRectOrZeros(target); - var numTouches = 0; - for(var i in touches) { - var t = touches[i]; - HEAP32[((ptr)>>2)]=t.identifier; - HEAP32[(((ptr)+(4))>>2)]=t.screenX; - HEAP32[(((ptr)+(8))>>2)]=t.screenY; - HEAP32[(((ptr)+(12))>>2)]=t.clientX; - HEAP32[(((ptr)+(16))>>2)]=t.clientY; - HEAP32[(((ptr)+(20))>>2)]=t.pageX; - HEAP32[(((ptr)+(24))>>2)]=t.pageY; - HEAP32[(((ptr)+(28))>>2)]=t.changed; - HEAP32[(((ptr)+(32))>>2)]=t.onTarget; - if (canvasRect) { - HEAP32[(((ptr)+(44))>>2)]=t.clientX - canvasRect.left; - HEAP32[(((ptr)+(48))>>2)]=t.clientY - canvasRect.top; - } else { - HEAP32[(((ptr)+(44))>>2)]=0; - HEAP32[(((ptr)+(48))>>2)]=0; - } - HEAP32[(((ptr)+(36))>>2)]=t.clientX - targetRect.left; - HEAP32[(((ptr)+(40))>>2)]=t.clientY - targetRect.top; - - ptr += 52; - - if (++numTouches >= 32) { - break; - } - } - HEAP32[((JSEvents.touchEvent)>>2)]=numTouches; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.touchEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: eventTypeString == 'touchstart' || eventTypeString == 'touchend', - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },fillGamepadEventData:function (eventStruct, e) { - HEAPF64[((eventStruct)>>3)]=e.timestamp; - for(var i = 0; i < e.axes.length; ++i) { - HEAPF64[(((eventStruct+i*8)+(16))>>3)]=e.axes[i]; - } - for(var i = 0; i < e.buttons.length; ++i) { - if (typeof(e.buttons[i]) === 'object') { - HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i].value; - } else { - HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i]; - } - } - for(var i = 0; i < e.buttons.length; ++i) { - if (typeof(e.buttons[i]) === 'object') { - HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i].pressed; - } else { - HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i] == 1.0; - } - } - HEAP32[(((eventStruct)+(1296))>>2)]=e.connected; - HEAP32[(((eventStruct)+(1300))>>2)]=e.index; - HEAP32[(((eventStruct)+(8))>>2)]=e.axes.length; - HEAP32[(((eventStruct)+(12))>>2)]=e.buttons.length; - stringToUTF8(e.id, eventStruct + 1304, 64); - stringToUTF8(e.mapping, eventStruct + 1368, 64); - },registerGamepadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.gamepadEvent) { - JSEvents.gamepadEvent = _malloc( 1432 ); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillGamepadEventData(JSEvents.gamepadEvent, e.gamepad); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.gamepadEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: true, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerBeforeUnloadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - var handlerFunc = function(event) { - var e = event || window.event; - - var confirmationMessage = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); - - if (confirmationMessage) { - confirmationMessage = Pointer_stringify(confirmationMessage); - } - if (confirmationMessage) { - e.preventDefault(); - e.returnValue = confirmationMessage; - return confirmationMessage; - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },battery:function () { return navigator.battery || navigator.mozBattery || navigator.webkitBattery; },fillBatteryEventData:function (eventStruct, e) { - HEAPF64[((eventStruct)>>3)]=e.chargingTime; - HEAPF64[(((eventStruct)+(8))>>3)]=e.dischargingTime; - HEAPF64[(((eventStruct)+(16))>>3)]=e.level; - HEAP32[(((eventStruct)+(24))>>2)]=e.charging; - },registerBatteryEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.batteryEvent) { - JSEvents.batteryEvent = _malloc( 32 ); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillBatteryEventData(JSEvents.batteryEvent, JSEvents.battery()); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.batteryEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerWebGlEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!target) { - target = Module['canvas']; - } - var handlerFunc = function(event) { - var e = event || window.event; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - }};function __emscripten_sample_gamepad_data() { - // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. - if (!JSEvents.numGamepadsConnected) return; - - // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation. - if (Browser.mainLoop.currentFrameNumber !== JSEvents.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) { - JSEvents.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null); - JSEvents.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber; - } - }function _emscripten_get_gamepad_status(index, gamepadState) { - __emscripten_sample_gamepad_data(); - if (!JSEvents.lastGamepadState) return -1; - - // INVALID_PARAM is returned on a Gamepad index that never was there. - if (index < 0 || index >= JSEvents.lastGamepadState.length) return -5; - - // NO_DATA is returned on a Gamepad index that was removed. - // For previously disconnected gamepads there should be an empty slot (null/undefined/false) at the index. - // This is because gamepads must keep their original position in the array. - // For example, removing the first of two gamepads produces [null/undefined/false, gamepad]. - if (!JSEvents.lastGamepadState[index]) return -7; - - JSEvents.fillGamepadEventData(gamepadState, JSEvents.lastGamepadState[index]); - return 0; - } - - function _emscripten_glCopyTexImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } - - function _emscripten_glTexParameterfv(target, pname, params) { - var param = HEAPF32[((params)>>2)]; - GLctx.texParameterf(target, pname, param); - } - - function _emscripten_glLinkProgram(program) { - GLctx.linkProgram(GL.programs[program]); - GL.programInfos[program] = null; // uniforms no longer keep the same names after linking - GL.populateUniformTable(program); - } - - function _emscripten_glUniform3f(location, v0, v1, v2) { - GLctx.uniform3f(GL.uniforms[location], v0, v1, v2); - } - - function _emscripten_glGetObjectParameterivARB() { - Module['printErr']('missing function: emscripten_glGetObjectParameterivARB'); abort(-1); - } - - function _emscripten_glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } - - function _emscripten_glUniform3i(location, v0, v1, v2) { - GLctx.uniform3i(GL.uniforms[location], v0, v1, v2); - } - - function _emscripten_glStencilOp(x0, x1, x2) { GLctx['stencilOp'](x0, x1, x2) } - - function _glCreateShader(shaderType) { - var id = GL.getNewId(GL.shaders); - GL.shaders[id] = GLctx.createShader(shaderType); - return id; - } - - function _glUniform1i(location, v0) { - GLctx.uniform1i(GL.uniforms[location], v0); - } - - function _emscripten_glBindAttribLocation(program, index, name) { - name = Pointer_stringify(name); - GLctx.bindAttribLocation(GL.programs[program], index, name); - } - - function _glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { - GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); - } - - function _glDisable(x0) { GLctx['disable'](x0) } - - function _emscripten_glEnableVertexAttribArray(index) { - GLctx.enableVertexAttribArray(index); - } - - - - function _glfwMakeContextCurrent(winid) {} - - function _emscripten_set_touchcancel_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 25, "touchcancel"); - return 0; - } - - function ___lock() {} - - function _emscripten_glBlendFuncSeparate(x0, x1, x2, x3) { GLctx['blendFuncSeparate'](x0, x1, x2, x3) } - - function _glCullFace(x0) { GLctx['cullFace'](x0) } - - function _emscripten_glGetVertexAttribPointerv(index, pname, pointer) { - if (!pointer) { - // GLES2 specification does not specify how to behave if pointer is a null pointer. Since calling this function does not make sense - // if pointer == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((pointer)>>2)]=GLctx.getVertexAttribOffset(index, pname); - } - - function _emscripten_glVertexAttrib3f(x0, x1, x2, x3) { GLctx['vertexAttrib3f'](x0, x1, x2, x3) } - - function _emscripten_glEnable(x0) { GLctx['enable'](x0) } - - function _emscripten_glNormalPointer() { - Module['printErr']('missing function: emscripten_glNormalPointer'); abort(-1); - } - - - var EGL={errorCode:12288,defaultDisplayInitialized:false,currentContext:0,currentReadSurface:0,currentDrawSurface:0,stringCache:{},setErrorCode:function (code) { - EGL.errorCode = code; - },chooseConfig:function (display, attribList, config, config_size, numConfigs) { - if (display != 62000 /* Magic ID for Emscripten 'default display' */) { - EGL.setErrorCode(0x3008 /* EGL_BAD_DISPLAY */); - return 0; - } - // TODO: read attribList. - if ((!config || !config_size) && !numConfigs) { - EGL.setErrorCode(0x300C /* EGL_BAD_PARAMETER */); - return 0; - } - if (numConfigs) { - HEAP32[((numConfigs)>>2)]=1; // Total number of supported configs: 1. - } - if (config && config_size > 0) { - HEAP32[((config)>>2)]=62002; - } - - EGL.setErrorCode(0x3000 /* EGL_SUCCESS */); - return 1; - }};function _eglGetProcAddress(name_) { - return _emscripten_GetProcAddress(name_); - } - - function _glDeleteProgram(id) { - if (!id) return; - var program = GL.programs[id]; - if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteProgram(program); - program.name = 0; - GL.programs[id] = null; - GL.programInfos[id] = null; - } - - function _emscripten_get_pointerlock_status(pointerlockStatus) { - if (pointerlockStatus) JSEvents.fillPointerlockChangeEventData(pointerlockStatus); - if (!document.body || (!document.body.requestPointerLock && !document.body.mozRequestPointerLock && !document.body.webkitRequestPointerLock && !document.body.msRequestPointerLock)) { - return -1; - } - return 0; - } - - function _glAttachShader(program, shader) { - GLctx.attachShader(GL.programs[program], - GL.shaders[shader]); - } - - function _glfwGetPrimaryMonitor() { - return 1; - } - - - function emscriptenWebGLGetVertexAttrib(index, pname, params, type) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if params == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - var data = GLctx.getVertexAttrib(index, pname); - if (pname == 0x889F/*VERTEX_ATTRIB_ARRAY_BUFFER_BINDING*/) { - HEAP32[((params)>>2)]=data["name"]; - } else if (typeof data == 'number' || typeof data == 'boolean') { - switch (type) { - case 'Integer': HEAP32[((params)>>2)]=data; break; - case 'Float': HEAPF32[((params)>>2)]=data; break; - case 'FloatToInteger': HEAP32[((params)>>2)]=Math.fround(data); break; - default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; - } - } else { - for (var i = 0; i < data.length; i++) { - switch (type) { - case 'Integer': HEAP32[(((params)+(i*4))>>2)]=data[i]; break; - case 'Float': HEAPF32[(((params)+(i*4))>>2)]=data[i]; break; - case 'FloatToInteger': HEAP32[(((params)+(i*4))>>2)]=Math.fround(data[i]); break; - default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; - } - } - } - }function _emscripten_glGetVertexAttribfv(index, pname, params) { - // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), - // otherwise the results are undefined. (GLES3 spec 6.1.12) - emscriptenWebGLGetVertexAttrib(index, pname, params, 'Float'); - } - - function _emscripten_set_touchstart_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 22, "touchstart"); - return 0; - } - - function _emscripten_glDeleteShader(id) { - if (!id) return; - var shader = GL.shaders[id]; - if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteShader(shader); - GL.shaders[id] = null; - } - - function _emscripten_glVertexPointer(){ throw 'Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } - - function _emscripten_glDeleteBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((buffers)+(i*4))>>2)]; - var buffer = GL.buffers[id]; - - // From spec: "glDeleteBuffers silently ignores 0's and names that do not - // correspond to existing buffer objects." - if (!buffer) continue; - - GLctx.deleteBuffer(buffer); - buffer.name = 0; - GL.buffers[id] = null; - - if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; - if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; - } - } - - function _emscripten_glTexParameteriv(target, pname, params) { - var param = HEAP32[((params)>>2)]; - GLctx.texParameteri(target, pname, param); - } - - function _glDrawElements(mode, count, type, indices) { - - GLctx.drawElements(mode, count, type, indices); - - } - - function _glfwTerminate() { - window.removeEventListener("gamepadconnected", GLFW.onGamepadConnected, true); - window.removeEventListener("gamepaddisconnected", GLFW.onGamepadDisconnected, true); - window.removeEventListener("keydown", GLFW.onKeydown, true); - window.removeEventListener("keypress", GLFW.onKeyPress, true); - window.removeEventListener("keyup", GLFW.onKeyup, true); - window.removeEventListener("blur", GLFW.onBlur, true); - Module["canvas"].removeEventListener("mousemove", GLFW.onMousemove, true); - Module["canvas"].removeEventListener("mousedown", GLFW.onMouseButtonDown, true); - Module["canvas"].removeEventListener("mouseup", GLFW.onMouseButtonUp, true); - Module["canvas"].removeEventListener('wheel', GLFW.onMouseWheel, true); - Module["canvas"].removeEventListener('mousewheel', GLFW.onMouseWheel, true); - Module["canvas"].removeEventListener('mouseenter', GLFW.onMouseenter, true); - Module["canvas"].removeEventListener('mouseleave', GLFW.onMouseleave, true); - Module["canvas"].removeEventListener('drop', GLFW.onDrop, true); - Module["canvas"].removeEventListener('dragover', GLFW.onDragover, true); - - - Module["canvas"].width = Module["canvas"].height = 1; - GLFW.windows = null; - GLFW.active = null; - } - - function _emscripten_glUniformMatrix2fv(location, count, transpose, value) { - - - var view; - if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[4*count-1]; - for (var i = 0; i < 4*count; i += 4) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); - } - GLctx.uniformMatrix2fv(GL.uniforms[location], !!transpose, view); - } - - function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; - try { - // close - var stream = SYSCALLS.getStreamFromFD(); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function _llvm_stacksave() { - var self = _llvm_stacksave; - if (!self.LLVM_SAVEDSTACKS) { - self.LLVM_SAVEDSTACKS = []; - } - self.LLVM_SAVEDSTACKS.push(Runtime.stackSave()); - return self.LLVM_SAVEDSTACKS.length-1; - } - - function _emscripten_glGetVertexAttribiv(index, pname, params) { - // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), - // otherwise the results are undefined. (GLES3 spec 6.1.12) - emscriptenWebGLGetVertexAttrib(index, pname, params, 'FloatToInteger'); - } - - function _emscripten_glUniformMatrix4fv(location, count, transpose, value) { - - - var view; - if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[16*count-1]; - for (var i = 0; i < 16*count; i += 16) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; - view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; - view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; - view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; - view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; - view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; - view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; - view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; - view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; - view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; - view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; - view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); - } - GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); - } - - function _emscripten_glDrawArraysInstanced(mode, first, count, primcount) { - GLctx['drawArraysInstanced'](mode, first, count, primcount); - } - - function _emscripten_glEnableClientState() { - Module['printErr']('missing function: emscripten_glEnableClientState'); abort(-1); - } - - function _emscripten_glGetPointerv() { - Module['printErr']('missing function: emscripten_glGetPointerv'); abort(-1); - } - - function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; - try { - // llseek - var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); - // NOTE: offset_high is unused - Emscripten's off_t is 32-bit - var offset = offset_low; - FS.llseek(stream, offset, whence); - HEAP32[((result)>>2)]=stream.position; - if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; - try { - // writev - // hack to support printf in NO_FILESYSTEM - var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); - var ret = 0; - if (!___syscall146.buffer) { - ___syscall146.buffers = [null, [], []]; // 1 => stdout, 2 => stderr - ___syscall146.printChar = function(stream, curr) { - var buffer = ___syscall146.buffers[stream]; - assert(buffer); - if (curr === 0 || curr === 10) { - (stream === 1 ? Module['print'] : Module['printErr'])(UTF8ArrayToString(buffer, 0)); - buffer.length = 0; - } else { - buffer.push(curr); - } - }; - } - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAP32[(((iov)+(i*8))>>2)]; - var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; - for (var j = 0; j < len; j++) { - ___syscall146.printChar(stream, HEAPU8[ptr+j]); - } - ret += len; - } - return ret; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function _emscripten_glUniform1i(location, v0) { - GLctx.uniform1i(GL.uniforms[location], v0); - } - - function _emscripten_glStencilMask(x0) { GLctx['stencilMask'](x0) } - - function _emscripten_glStencilFuncSeparate(x0, x1, x2, x3) { GLctx['stencilFuncSeparate'](x0, x1, x2, x3) } - - - - - - function _emscripten_set_touchend_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 23, "touchend"); - return 0; - } - - function _glUseProgram(program) { - GLctx.useProgram(program ? GL.programs[program] : null); - } - - function _emscripten_glDisableVertexAttribArray(index) { - GLctx.disableVertexAttribArray(index); - } - - function _emscripten_glVertexAttrib1f(x0, x1) { GLctx['vertexAttrib1f'](x0, x1) } - - function _emscripten_glFinish() { GLctx['finish']() } - - function _glDrawArrays(mode, first, count) { - - GLctx.drawArrays(mode, first, count); - - } - - function _emscripten_glDepthFunc(x0) { GLctx['depthFunc'](x0) } - - function _emscripten_get_num_gamepads() { - // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. - if (!JSEvents.numGamepadsConnected) return 0; - - __emscripten_sample_gamepad_data(); - if (!JSEvents.lastGamepadState) return -1; - return JSEvents.lastGamepadState.length; - } - - function _emscripten_glUniform4iv(location, count, value) { - - - GLctx.uniform4iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*16)>>2)); - } - - function _glClear(x0) { GLctx['clear'](x0) } - - function _emscripten_glLoadIdentity(){ throw 'Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } - - function _emscripten_glUniform3fv(location, count, value) { - - - var view; - if (3*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[3*count-1]; - for (var i = 0; i < 3*count; i += 3) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*12)>>2); - } - GLctx.uniform3fv(GL.uniforms[location], view); - } - - function _emscripten_glIsTexture(texture) { - var texture = GL.textures[texture]; - if (!texture) return 0; - return GLctx.isTexture(texture); - } - - function _glEnableVertexAttribArray(index) { - GLctx.enableVertexAttribArray(index); - } - - function _emscripten_glAttachShader(program, shader) { - GLctx.attachShader(GL.programs[program], - GL.shaders[shader]); - } - - function _glUniform4f(location, v0, v1, v2, v3) { - GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); - } - - function _emscripten_request_pointerlock(target, deferUntilInEventHandler) { - if (!target) target = '#canvas'; - target = JSEvents.findEventTarget(target); - if (!target) return -4; - if (!target.requestPointerLock && !target.mozRequestPointerLock && !target.webkitRequestPointerLock && !target.msRequestPointerLock) { - return -1; - } - - var canPerformRequests = JSEvents.canPerformEventHandlerRequests(); - - // Queue this function call if we're not currently in an event handler and the user saw it appropriate to do so. - if (!canPerformRequests) { - if (deferUntilInEventHandler) { - JSEvents.deferCall(JSEvents.requestPointerLock, 2 /* priority below fullscreen */, [target]); - return 1; - } else { - return -2; - } - } - - return JSEvents.requestPointerLock(target); - } - - - - var cttz_i8 = allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0], "i8", ALLOC_STATIC); - - function _glfwCreateWindow(width, height, title, monitor, share) { - return GLFW.createWindow(width, height, title, monitor, share); - } - - function _glfwDefaultWindowHints() { - GLFW.hints = GLFW.defaultHints; - } - - function _emscripten_glClearStencil(x0) { GLctx['clearStencil'](x0) } - - function _emscripten_glDetachShader(program, shader) { - GLctx.detachShader(GL.programs[program], - GL.shaders[shader]); - } - - function _emscripten_glDeleteVertexArrays(n, vaos) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((vaos)+(i*4))>>2)]; - GLctx['deleteVertexArray'](GL.vaos[id]); - GL.vaos[id] = null; - } - } - - function _glfwInit() { - if (GLFW.windows) return 1; // GL_TRUE - - GLFW.initialTime = GLFW.getTime(); - GLFW.hints = GLFW.defaultHints; - GLFW.windows = new Array() - GLFW.active = null; - - window.addEventListener("gamepadconnected", GLFW.onGamepadConnected, true); - window.addEventListener("gamepaddisconnected", GLFW.onGamepadDisconnected, true); - window.addEventListener("keydown", GLFW.onKeydown, true); - window.addEventListener("keypress", GLFW.onKeyPress, true); - window.addEventListener("keyup", GLFW.onKeyup, true); - window.addEventListener("blur", GLFW.onBlur, true); - Module["canvas"].addEventListener("mousemove", GLFW.onMousemove, true); - Module["canvas"].addEventListener("mousedown", GLFW.onMouseButtonDown, true); - Module["canvas"].addEventListener("mouseup", GLFW.onMouseButtonUp, true); - Module["canvas"].addEventListener('wheel', GLFW.onMouseWheel, true); - Module["canvas"].addEventListener('mousewheel', GLFW.onMouseWheel, true); - Module["canvas"].addEventListener('mouseenter', GLFW.onMouseenter, true); - Module["canvas"].addEventListener('mouseleave', GLFW.onMouseleave, true); - Module["canvas"].addEventListener('drop', GLFW.onDrop, true); - Module["canvas"].addEventListener('dragover', GLFW.onDragover, true); - - Browser.resizeListeners.push(function(width, height) { - GLFW.onCanvasResize(width, height); - }); - return 1; // GL_TRUE - } - - function _emscripten_glGetTexParameteriv(target, pname, params) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((params)>>2)]=GLctx.getTexParameter(target, pname); - } - - function _glfwSwapBuffers(winid) { - GLFW.swapBuffers(winid); - } - - function _emscripten_glGenerateMipmap(x0) { GLctx['generateMipmap'](x0) } - - function _emscripten_glCullFace(x0) { GLctx['cullFace'](x0) } - - function _emscripten_glUniform4f(location, v0, v1, v2, v3) { - GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); - } - - function _glDisableVertexAttribArray(index) { - GLctx.disableVertexAttribArray(index); - } - - function _emscripten_glUseProgram(program) { - GLctx.useProgram(program ? GL.programs[program] : null); - } - - function _emscripten_glHint(x0, x1) { GLctx['hint'](x0, x1) } - - function _emscripten_glUniform2fv(location, count, value) { - - - var view; - if (2*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[2*count-1]; - for (var i = 0; i < 2*count; i += 2) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*8)>>2); - } - GLctx.uniform2fv(GL.uniforms[location], view); - } - - function _glfwSwapInterval(interval) { - interval = Math.abs(interval); // GLFW uses negative values to enable GLX_EXT_swap_control_tear, which we don't have, so just treat negative and positive the same. - if (interval == 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 0); - else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, interval); - } - - function _glGetShaderInfoLog(shader, maxLength, length, infoLog) { - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _emscripten_glMatrixMode(){ throw 'Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } - - function _abort() { - Module['abort'](); - } - - function _emscripten_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) { - GLctx.framebufferRenderbuffer(target, attachment, renderbuffertarget, - GL.renderbuffers[renderbuffer]); - } - - function _emscripten_glDeleteFramebuffers(n, framebuffers) { - for (var i = 0; i < n; ++i) { - var id = HEAP32[(((framebuffers)+(i*4))>>2)]; - var framebuffer = GL.framebuffers[id]; - if (!framebuffer) continue; // GL spec: "glDeleteFramebuffers silently ignores 0s and names that do not correspond to existing framebuffer objects". - GLctx.deleteFramebuffer(framebuffer); - framebuffer.name = 0; - GL.framebuffers[id] = null; - } - } - - function _emscripten_glIsBuffer(buffer) { - var b = GL.buffers[buffer]; - if (!b) return 0; - return GLctx.isBuffer(b); - } - - function _emscripten_glUniform2iv(location, count, value) { - - - GLctx.uniform2iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*8)>>2)); - } - - function _emscripten_glVertexAttrib1fv(index, v) { - - GLctx.vertexAttrib1f(index, HEAPF32[v>>2]); - } - - function _glEnable(x0) { GLctx['enable'](x0) } - - - - function emscriptenWebGLComputeImageSize(width, height, sizePerPixel, alignment) { - function roundedToNextMultipleOf(x, y) { - return Math.floor((x + y - 1) / y) * y - } - var plainRowSize = width * sizePerPixel; - var alignedRowSize = roundedToNextMultipleOf(plainRowSize, alignment); - return (height <= 0) ? 0 : - ((height - 1) * alignedRowSize + plainRowSize); - }function emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) { - var sizePerPixel; - var numChannels; - switch(format) { - case 0x1906 /* GL_ALPHA */: - case 0x1909 /* GL_LUMINANCE */: - case 0x1902 /* GL_DEPTH_COMPONENT */: - numChannels = 1; - break; - case 0x190A /* GL_LUMINANCE_ALPHA */: - numChannels = 2; - break; - case 0x1907 /* GL_RGB */: - case 0x8C40 /* GL_SRGB_EXT */: - numChannels = 3; - break; - case 0x1908 /* GL_RGBA */: - case 0x8C42 /* GL_SRGB_ALPHA_EXT */: - numChannels = 4; - break; - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return null; - } - switch (type) { - case 0x1401 /* GL_UNSIGNED_BYTE */: - sizePerPixel = numChannels*1; - break; - case 0x1403 /* GL_UNSIGNED_SHORT */: - case 0x8D61 /* GL_HALF_FLOAT_OES */: - sizePerPixel = numChannels*2; - break; - case 0x1405 /* GL_UNSIGNED_INT */: - case 0x1406 /* GL_FLOAT */: - sizePerPixel = numChannels*4; - break; - case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: - sizePerPixel = 4; - break; - case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: - case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: - case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: - sizePerPixel = 2; - break; - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return null; - } - var bytes = emscriptenWebGLComputeImageSize(width, height, sizePerPixel, GL.unpackAlignment); - switch(type) { - case 0x1401 /* GL_UNSIGNED_BYTE */: - return HEAPU8.subarray((pixels),(pixels+bytes)); - case 0x1406 /* GL_FLOAT */: - return HEAPF32.subarray((pixels)>>2,(pixels+bytes)>>2); - case 0x1405 /* GL_UNSIGNED_INT */: - case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: - return HEAPU32.subarray((pixels)>>2,(pixels+bytes)>>2); - case 0x1403 /* GL_UNSIGNED_SHORT */: - case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: - case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: - case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: - case 0x8D61 /* GL_HALF_FLOAT_OES */: - return HEAPU16.subarray((pixels)>>1,(pixels+bytes)>>1); - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return null; - } - }function _emscripten_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) { - var pixelData = null; - if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, 0); - GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData); - } - - function _emscripten_glPolygonOffset(x0, x1) { GLctx['polygonOffset'](x0, x1) } - - var _emscripten_asm_const_int=true; - - function _emscripten_glUniform2f(location, v0, v1) { - GLctx.uniform2f(GL.uniforms[location], v0, v1); - } - - function _glGetAttribLocation(program, name) { - program = GL.programs[program]; - name = Pointer_stringify(name); - return GLctx.getAttribLocation(program, name); - } - - function _glfwWindowHint(target, hint) { - GLFW.hints[target] = hint; - } - - function _emscripten_glUniform2i(location, v0, v1) { - GLctx.uniform2i(GL.uniforms[location], v0, v1); - } - - function _glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } - - function _glCreateProgram() { - var id = GL.getNewId(GL.programs); - var program = GLctx.createProgram(); - program.name = id; - GL.programs[id] = program; - return id; - } - - function _emscripten_glDeleteRenderbuffers(n, renderbuffers) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((renderbuffers)+(i*4))>>2)]; - var renderbuffer = GL.renderbuffers[id]; - if (!renderbuffer) continue; // GL spec: "glDeleteRenderbuffers silently ignores 0s and names that do not correspond to existing renderbuffer objects". - GLctx.deleteRenderbuffer(renderbuffer); - renderbuffer.name = 0; - GL.renderbuffers[id] = null; - } - } - - function _emscripten_glGetBufferParameteriv(target, value, data) { - if (!data) { - // GLES2 specification does not specify how to behave if data is a null pointer. Since calling this function does not make sense - // if data == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((data)>>2)]=GLctx.getBufferParameter(target, value); - } - - - function emscriptenWebGLGetUniform(program, location, params, type) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if params == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - var data = GLctx.getUniform(GL.programs[program], GL.uniforms[location]); - if (typeof data == 'number' || typeof data == 'boolean') { - switch (type) { - case 'Integer': HEAP32[((params)>>2)]=data; break; - case 'Float': HEAPF32[((params)>>2)]=data; break; - default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; - } - } else { - for (var i = 0; i < data.length; i++) { - switch (type) { - case 'Integer': HEAP32[(((params)+(i*4))>>2)]=data[i]; break; - case 'Float': HEAPF32[(((params)+(i*4))>>2)]=data[i]; break; - default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; - } - } - } - }function _emscripten_glGetUniformiv(program, location, params) { - emscriptenWebGLGetUniform(program, location, params, 'Integer'); - } - - function _emscripten_glDepthMask(flag) { - GLctx.depthMask(!!flag); - } - - - function _emscripten_glDepthRangef(x0, x1) { GLctx['depthRange'](x0, x1) } - - function _emscripten_glDepthRange(x0, x1) { GLctx['depthRange'](x0, x1) } - - function _emscripten_set_fullscreenchange_callback(target, userData, useCapture, callbackfunc) { - if (typeof JSEvents.fullscreenEnabled() === 'undefined') return -1; - if (!target) target = document; - else { - target = JSEvents.findEventTarget(target); - if (!target) return -4; - } - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "fullscreenchange"); - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "mozfullscreenchange"); - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "webkitfullscreenchange"); - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "msfullscreenchange"); - return 0; - } - - function _emscripten_glGetShaderPrecisionFormat(shaderType, precisionType, range, precision) { - var result = GLctx.getShaderPrecisionFormat(shaderType, precisionType); - HEAP32[((range)>>2)]=result.rangeMin; - HEAP32[(((range)+(4))>>2)]=result.rangeMax; - HEAP32[((precision)>>2)]=result.precision; - } - - function _emscripten_glUniform1fv(location, count, value) { - - - var view; - if (count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[count-1]; - for (var i = 0; i < count; ++i) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*4)>>2); - } - GLctx.uniform1fv(GL.uniforms[location], view); - } - - function _glfwSetMouseButtonCallback(winid, cbfun) { - GLFW.setMouseButtonCallback(winid, cbfun); - } - - function _emscripten_set_gamepaddisconnected_callback(userData, useCapture, callbackfunc) { - if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; - JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 27, "gamepaddisconnected"); - return 0; - } - - function _emscripten_glBindProgramARB() { - Module['printErr']('missing function: emscripten_glBindProgramARB'); abort(-1); - } - - function _emscripten_glBindTexture(target, texture) { - GLctx.bindTexture(target, texture ? GL.textures[texture] : null); - } - - function _emscripten_glCheckFramebufferStatus(x0) { return GLctx['checkFramebufferStatus'](x0) } - - function _emscripten_glDeleteProgram(id) { - if (!id) return; - var program = GL.programs[id]; - if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteProgram(program); - program.name = 0; - GL.programs[id] = null; - GL.programInfos[id] = null; - } - - function _emscripten_glDisable(x0) { GLctx['disable'](x0) } - - function _emscripten_glVertexAttrib3fv(index, v) { - - GLctx.vertexAttrib3f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2]); - } - - function _glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } - - function _emscripten_glGetActiveAttrib(program, index, bufSize, length, size, type, name) { - program = GL.programs[program]; - var info = GLctx.getActiveAttrib(program, index); - if (!info) return; // If an error occurs, nothing will be written to length, size and type and name. - - if (bufSize > 0 && name) { - var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - - if (size) HEAP32[((size)>>2)]=info.size; - if (type) HEAP32[((type)>>2)]=info.type; - } - - function _emscripten_glIsFramebuffer(framebuffer) { - var fb = GL.framebuffers[framebuffer]; - if (!fb) return 0; - return GLctx.isFramebuffer(fb); - } - - function _emscripten_glLineWidth(x0) { GLctx['lineWidth'](x0) } - - function _glfwGetCursorPos(winid, x, y) { - GLFW.getCursorPos(winid, x, y); - } - - function _emscripten_glGetString(name_) { - if (GL.stringCache[name_]) return GL.stringCache[name_]; - var ret; - switch(name_) { - case 0x1F00 /* GL_VENDOR */: - case 0x1F01 /* GL_RENDERER */: - case 0x9245 /* UNMASKED_VENDOR_WEBGL */: - case 0x9246 /* UNMASKED_RENDERER_WEBGL */: - ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); - break; - case 0x1F02 /* GL_VERSION */: - var glVersion = GLctx.getParameter(GLctx.VERSION); - // return GLES version string corresponding to the version of the WebGL context - { - glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; - } - ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); - break; - case 0x1F03 /* GL_EXTENSIONS */: - var exts = GLctx.getSupportedExtensions(); - var gl_exts = []; - for (var i = 0; i < exts.length; ++i) { - gl_exts.push(exts[i]); - gl_exts.push("GL_" + exts[i]); - } - ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); - break; - case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: - var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); - // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' - var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; - var ver_num = glslVersion.match(ver_re); - if (ver_num !== null) { - if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits - glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; - } - ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); - break; - default: - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - return 0; - } - GL.stringCache[name_] = ret; - return ret; - } - - function _emscripten_glGetAttribLocation(program, name) { - program = GL.programs[program]; - name = Pointer_stringify(name); - return GLctx.getAttribLocation(program, name); - } - - function _emscripten_glRotatef() { - Module['printErr']('missing function: emscripten_glRotatef'); abort(-1); - } - - - function emscriptenWebGLGet(name_, p, type) { - // Guard against user passing a null pointer. - // Note that GLES2 spec does not say anything about how passing a null pointer should be treated. - // Testing on desktop core GL 3, the application crashes on glGetIntegerv to a null pointer, but - // better to report an error instead of doing anything random. - if (!p) { - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - var ret = undefined; - switch(name_) { // Handle a few trivial GLES values - case 0x8DFA: // GL_SHADER_COMPILER - ret = 1; - break; - case 0x8DF8: // GL_SHADER_BINARY_FORMATS - if (type !== 'Integer' && type !== 'Integer64') { - GL.recordError(0x0500); // GL_INVALID_ENUM - } - return; // Do not write anything to the out pointer, since no binary formats are supported. - case 0x8DF9: // GL_NUM_SHADER_BINARY_FORMATS - ret = 0; - break; - case 0x86A2: // GL_NUM_COMPRESSED_TEXTURE_FORMATS - // WebGL doesn't have GL_NUM_COMPRESSED_TEXTURE_FORMATS (it's obsolete since GL_COMPRESSED_TEXTURE_FORMATS returns a JS array that can be queried for length), - // so implement it ourselves to allow C++ GLES2 code get the length. - var formats = GLctx.getParameter(0x86A3 /*GL_COMPRESSED_TEXTURE_FORMATS*/); - ret = formats.length; - break; - } - - if (ret === undefined) { - var result = GLctx.getParameter(name_); - switch (typeof(result)) { - case "number": - ret = result; - break; - case "boolean": - ret = result ? 1 : 0; - break; - case "string": - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - case "object": - if (result === null) { - // null is a valid result for some (e.g., which buffer is bound - perhaps nothing is bound), but otherwise - // can mean an invalid name_, which we need to report as an error - switch(name_) { - case 0x8894: // ARRAY_BUFFER_BINDING - case 0x8B8D: // CURRENT_PROGRAM - case 0x8895: // ELEMENT_ARRAY_BUFFER_BINDING - case 0x8CA6: // FRAMEBUFFER_BINDING - case 0x8CA7: // RENDERBUFFER_BINDING - case 0x8069: // TEXTURE_BINDING_2D - case 0x8514: { // TEXTURE_BINDING_CUBE_MAP - ret = 0; - break; - } - default: { - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - } - } - } else if (result instanceof Float32Array || - result instanceof Uint32Array || - result instanceof Int32Array || - result instanceof Array) { - for (var i = 0; i < result.length; ++i) { - switch (type) { - case 'Integer': HEAP32[(((p)+(i*4))>>2)]=result[i]; break; - case 'Float': HEAPF32[(((p)+(i*4))>>2)]=result[i]; break; - case 'Boolean': HEAP8[(((p)+(i))>>0)]=result[i] ? 1 : 0; break; - default: throw 'internal glGet error, bad type: ' + type; - } - } - return; - } else if (result instanceof WebGLBuffer || - result instanceof WebGLProgram || - result instanceof WebGLFramebuffer || - result instanceof WebGLRenderbuffer || - result instanceof WebGLTexture) { - ret = result.name | 0; - } else { - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - } - break; - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - } - } - - switch (type) { - case 'Integer64': (tempI64 = [ret>>>0,(tempDouble=ret,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((p)>>2)]=tempI64[0],HEAP32[(((p)+(4))>>2)]=tempI64[1]); break; - case 'Integer': HEAP32[((p)>>2)]=ret; break; - case 'Float': HEAPF32[((p)>>2)]=ret; break; - case 'Boolean': HEAP8[((p)>>0)]=ret ? 1 : 0; break; - default: throw 'internal glGet error, bad type: ' + type; - } - }function _emscripten_glGetIntegerv(name_, p) { - emscriptenWebGLGet(name_, p, 'Integer'); - } - - function _emscripten_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) { - var result = GLctx.getFramebufferAttachmentParameter(target, attachment, pname); - HEAP32[((params)>>2)]=result; - } - - function _llvm_stackrestore(p) { - var self = _llvm_stacksave; - var ret = self.LLVM_SAVEDSTACKS[p]; - self.LLVM_SAVEDSTACKS.splice(p, 1); - Runtime.stackRestore(ret); - } - - function _glfwSetWindowShouldClose(winid, value) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.shouldClose = value; - } - - function _emscripten_glClientActiveTexture() { - Module['printErr']('missing function: emscripten_glClientActiveTexture'); abort(-1); - } - - function _glGenBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var buffer = GLctx.createBuffer(); - if (!buffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.buffers); - buffer.name = id; - GL.buffers[id] = buffer; - HEAP32[(((buffers)+(i*4))>>2)]=id; - } - } - - - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.set(HEAPU8.subarray(src, src+num), dest); - return dest; - } - - function _emscripten_glGetShaderInfoLog(shader, maxLength, length, infoLog) { - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _glfwGetTime() { - return GLFW.getTime() - GLFW.initialTime; - } - - function _emscripten_glGetRenderbufferParameteriv(target, pname, params) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if params == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((params)>>2)]=GLctx.getRenderbufferParameter(target, pname); - } - - function _emscripten_glStencilOpSeparate(x0, x1, x2, x3) { GLctx['stencilOpSeparate'](x0, x1, x2, x3) } - - function _emscripten_glReadPixels(x, y, width, height, format, type, pixels) { - var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, format); - if (!pixelData) { - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - return; - } - GLctx.readPixels(x, y, width, height, format, type, pixelData); - } - - function _emscripten_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) { - GLctx['compressedTexSubImage2D'](target, level, xoffset, yoffset, width, height, format, data ? HEAPU8.subarray((data),(data+imageSize)) : null); - } - - function _emscripten_glGetError() { - // First return any GL error generated by the emscripten library_gl.js interop layer. - if (GL.lastError) { - var error = GL.lastError; - GL.lastError = 0/*GL_NO_ERROR*/; - return error; - } else { // If there were none, return the GL error from the browser GL context. - return GLctx.getError(); - } - } - - function _emscripten_glFramebufferTexture2D(target, attachment, textarget, texture, level) { - GLctx.framebufferTexture2D(target, attachment, textarget, - GL.textures[texture], level); - } - - function _emscripten_glIsEnabled(x0) { return GLctx['isEnabled'](x0) } - - function _glClearDepthf(x0) { GLctx['clearDepth'](x0) } - - - - function _glGenTextures(n, textures) { - for (var i = 0; i < n; i++) { - var texture = GLctx.createTexture(); - if (!texture) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. - while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.textures); - texture.name = id; - GL.textures[id] = texture; - HEAP32[(((textures)+(i*4))>>2)]=id; - } - } - - function _emscripten_glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) } - - function _glDepthFunc(x0) { GLctx['depthFunc'](x0) } - - - - function _emscripten_glClearDepthf(x0) { GLctx['clearDepth'](x0) } - - function _emscripten_glClear(x0) { GLctx['clear'](x0) } - - function _emscripten_glBindBuffer(target, buffer) { - var bufferObj = buffer ? GL.buffers[buffer] : null; - - - GLctx.bindBuffer(target, bufferObj); - } - - function _emscripten_glGetUniformfv(program, location, params) { - emscriptenWebGLGetUniform(program, location, params, 'Float'); - } - - function _glGetProgramiv(program, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - if (program >= GL.counter) { - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - return; - } - - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { - HEAP32[((p)>>2)]=ptable.maxUniformLength; - } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { - if (ptable.maxAttributeLength == -1) { - var program = GL.programs[program]; - var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); - ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. - for (var i = 0; i < numAttribs; ++i) { - var activeAttrib = GLctx.getActiveAttrib(program, i); - ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxAttributeLength; - } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { - if (ptable.maxUniformBlockNameLength == -1) { - var program = GL.programs[program]; - var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); - ptable.maxUniformBlockNameLength = 0; - for (var i = 0; i < numBlocks; ++i) { - var activeBlockName = GLctx.getActiveUniformBlockName(program, i); - ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; - } else { - HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); - } - } - - function _glVertexAttribPointer(index, size, type, normalized, stride, ptr) { - GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); - } - - function _emscripten_exit_pointerlock() { - // Make sure no queued up calls will fire after this. - JSEvents.removeDeferredCalls(JSEvents.requestPointerLock); - - if (document.exitPointerLock) { - document.exitPointerLock(); - } else if (document.msExitPointerLock) { - document.msExitPointerLock(); - } else if (document.mozExitPointerLock) { - document.mozExitPointerLock(); - } else if (document.webkitExitPointerLock) { - document.webkitExitPointerLock(); - } else { - return -1; - } - return 0; - } - - function _glGetUniformLocation(program, name) { - name = Pointer_stringify(name); - - var arrayOffset = 0; - // If user passed an array accessor "[index]", parse the array index off the accessor. - if (name.indexOf(']', name.length-1) !== -1) { - var ls = name.lastIndexOf('['); - var arrayIndex = name.slice(ls+1, -1); - if (arrayIndex.length > 0) { - arrayOffset = parseInt(arrayIndex); - if (arrayOffset < 0) { - return -1; - } - } - name = name.slice(0, ls); - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - return -1; - } - var utable = ptable.uniforms; - var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] - if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. - return uniformInfo[1]+arrayOffset; - } else { - return -1; - } - } - - function _emscripten_glGetAttachedShaders(program, maxCount, count, shaders) { - var result = GLctx.getAttachedShaders(GL.programs[program]); - var len = result.length; - if (len > maxCount) { - len = maxCount; - } - HEAP32[((count)>>2)]=len; - for (var i = 0; i < len; ++i) { - var id = GL.shaders.indexOf(result[i]); - assert(id !== -1, 'shader not bound to local id'); - HEAP32[(((shaders)+(i*4))>>2)]=id; - } - } - - function _emscripten_glGenRenderbuffers(n, renderbuffers) { - for (var i = 0; i < n; i++) { - var renderbuffer = GLctx.createRenderbuffer(); - if (!renderbuffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((renderbuffers)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.renderbuffers); - renderbuffer.name = id; - GL.renderbuffers[id] = renderbuffer; - HEAP32[(((renderbuffers)+(i*4))>>2)]=id; - } - } - - function _emscripten_glFrontFace(x0) { GLctx['frontFace'](x0) } - - function _emscripten_glActiveTexture(x0) { GLctx['activeTexture'](x0) } - - function _emscripten_glUniform1iv(location, count, value) { - - - GLctx.uniform1iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*4)>>2)); - } - - function _emscripten_glTexCoordPointer() { - Module['printErr']('missing function: emscripten_glTexCoordPointer'); abort(-1); - } - - function _emscripten_glGetInfoLogARB() { - Module['printErr']('missing function: emscripten_glGetInfoLogARB'); abort(-1); - } - - - function __exit(status) { - // void _exit(int status); - // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html - Module['exit'](status); - }function _exit(status) { - __exit(status); - } - - function _emscripten_glRenderbufferStorage(x0, x1, x2, x3) { GLctx['renderbufferStorage'](x0, x1, x2, x3) } - - function _emscripten_glCopyTexSubImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexSubImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } - - function _glfwSetCursorPosCallback(winid, cbfun) { - GLFW.setCursorPosCallback(winid, cbfun); - } - - function _glBindAttribLocation(program, index, name) { - name = Pointer_stringify(name); - GLctx.bindAttribLocation(GL.programs[program], index, name); - } - - function _emscripten_glShaderBinary() { - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - } - - function _emscripten_glIsProgram(program) { - var program = GL.programs[program]; - if (!program) return 0; - return GLctx.isProgram(program); - } - - function _emscripten_glBlendColor(x0, x1, x2, x3) { GLctx['blendColor'](x0, x1, x2, x3) } - - function _emscripten_glGetShaderiv(shader, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B88) { // GL_SHADER_SOURCE_LENGTH - var source = GLctx.getShaderSource(GL.shaders[shader]); - var sourceLength = (source === null || source.length == 0) ? 0 : source.length + 1; - HEAP32[((p)>>2)]=sourceLength; - } else { - HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); - } - } - - function _emscripten_glUniformMatrix3fv(location, count, transpose, value) { - - - var view; - if (9*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[9*count-1]; - for (var i = 0; i < 9*count; i += 9) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; - view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; - view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; - view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; - view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*36)>>2); - } - GLctx.uniformMatrix3fv(GL.uniforms[location], !!transpose, view); - } - - function _emscripten_glVertexAttrib2f(x0, x1, x2) { GLctx['vertexAttrib2f'](x0, x1, x2) } - - function _emscripten_glUniform4fv(location, count, value) { - - - var view; - if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[4*count-1]; - for (var i = 0; i < 4*count; i += 4) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); - } - GLctx.uniform4fv(GL.uniforms[location], view); - } - - function _glBufferSubData(target, offset, size, data) { - GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); - } - - function _emscripten_glGenFramebuffers(n, ids) { - for (var i = 0; i < n; ++i) { - var framebuffer = GLctx.createFramebuffer(); - if (!framebuffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((ids)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.framebuffers); - framebuffer.name = id; - GL.framebuffers[id] = framebuffer; - HEAP32[(((ids)+(i*4))>>2)]=id; - } - } - - function _glGetShaderiv(shader, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B88) { // GL_SHADER_SOURCE_LENGTH - var source = GLctx.getShaderSource(GL.shaders[shader]); - var sourceLength = (source === null || source.length == 0) ? 0 : source.length + 1; - HEAP32[((p)>>2)]=sourceLength; - } else { - HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); - } - } - - function _emscripten_glBlendEquationSeparate(x0, x1) { GLctx['blendEquationSeparate'](x0, x1) } - - function _glfwSetWindowIconifyCallback(winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowIconifyFunc = cbfun; - } - - function _emscripten_glDrawRangeElements() { - Module['printErr']('missing function: emscripten_glDrawRangeElements'); abort(-1); - } - - function _emscripten_glGenTextures(n, textures) { - for (var i = 0; i < n; i++) { - var texture = GLctx.createTexture(); - if (!texture) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. - while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.textures); - texture.name = id; - GL.textures[id] = texture; - HEAP32[(((textures)+(i*4))>>2)]=id; - } - } - - function _emscripten_glVertexAttrib2fv(index, v) { - - GLctx.vertexAttrib2f(index, HEAPF32[v>>2], HEAPF32[v+4>>2]); - } - - function _emscripten_glGetActiveUniform(program, index, bufSize, length, size, type, name) { - program = GL.programs[program]; - var info = GLctx.getActiveUniform(program, index); - if (!info) return; // If an error occurs, nothing will be written to length, size, type and name. - - if (bufSize > 0 && name) { - var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - - if (size) HEAP32[((size)>>2)]=info.size; - if (type) HEAP32[((type)>>2)]=info.type; - } - - - - function _emscripten_glDeleteObjectARB() { - Module['printErr']('missing function: emscripten_glDeleteObjectARB'); abort(-1); - } - - function _emscripten_set_touchmove_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 24, "touchmove"); - return 0; - } - - function _emscripten_glUniform1f(location, v0) { - GLctx.uniform1f(GL.uniforms[location], v0); - } - - function _emscripten_glVertexAttribPointer(index, size, type, normalized, stride, ptr) { - GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); - } - - function _glShaderSource(shader, count, string, length) { - var source = GL.getSource(shader, count, string, length); - - - GLctx.shaderSource(GL.shaders[shader], source); - } - - function _emscripten_glDrawArrays(mode, first, count) { - - GLctx.drawArrays(mode, first, count); - - } - - function _emscripten_glGenBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var buffer = GLctx.createBuffer(); - if (!buffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.buffers); - buffer.name = id; - GL.buffers[id] = buffer; - HEAP32[(((buffers)+(i*4))>>2)]=id; - } - } - - function _emscripten_glClearDepth(x0) { GLctx['clearDepth'](x0) } - - function _emscripten_set_keypress_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerKeyEventCallback(target, userData, useCapture, callbackfunc, 1, "keypress"); - return 0; - } - - function _glfwSetCharCallback(winid, cbfun) { - GLFW.setCharCallback(winid, cbfun); - } - - function _emscripten_glGetUniformLocation(program, name) { - name = Pointer_stringify(name); - - var arrayOffset = 0; - // If user passed an array accessor "[index]", parse the array index off the accessor. - if (name.indexOf(']', name.length-1) !== -1) { - var ls = name.lastIndexOf('['); - var arrayIndex = name.slice(ls+1, -1); - if (arrayIndex.length > 0) { - arrayOffset = parseInt(arrayIndex); - if (arrayOffset < 0) { - return -1; - } - } - name = name.slice(0, ls); - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - return -1; - } - var utable = ptable.uniforms; - var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] - if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. - return uniformInfo[1]+arrayOffset; - } else { - return -1; - } - } - - function _glActiveTexture(x0) { GLctx['activeTexture'](x0) } - - function _glBindBuffer(target, buffer) { - var bufferObj = buffer ? GL.buffers[buffer] : null; - - - GLctx.bindBuffer(target, bufferObj); - } - - function _emscripten_glVertexAttrib4fv(index, v) { - - GLctx.vertexAttrib4f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2], HEAPF32[v+12>>2]); - } - - function _emscripten_glScissor(x0, x1, x2, x3) { GLctx['scissor'](x0, x1, x2, x3) } - - function _glfwSetCursorEnterCallback(winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.cursorEnterFunc = cbfun; - } - - - - function _glBufferData(target, size, data, usage) { - if (!data) { - GLctx.bufferData(target, size, usage); - } else { - GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); - } - } - - function _emscripten_glIsShader(shader) { - var s = GL.shaders[shader]; - if (!s) return 0; - return GLctx.isShader(s); - } - - function _emscripten_glDrawBuffers(n, bufs) { - - var bufArray = GL.tempFixedLengthArray[n]; - for (var i = 0; i < n; i++) { - bufArray[i] = HEAP32[(((bufs)+(i*4))>>2)]; - } - - GLctx['drawBuffers'](bufArray); - } - - function _glGetFloatv(name_, p) { - emscriptenWebGLGet(name_, p, 'Float'); - } - - function _emscripten_glBindFramebuffer(target, framebuffer) { - GLctx.bindFramebuffer(target, framebuffer ? GL.framebuffers[framebuffer] : null); - } - - function _emscripten_glBlendEquation(x0) { GLctx['blendEquation'](x0) } - - function _emscripten_glBufferSubData(target, offset, size, data) { - GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); - } - - function _emscripten_glBufferData(target, size, data, usage) { - if (!data) { - GLctx.bufferData(target, size, usage); - } else { - GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); - } - } - - - function ___setErrNo(value) { - if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; - else Module.printErr('failed to set errno from JS'); - return value; - } - - - - function _emscripten_glGetShaderSource(shader, bufSize, length, source) { - var result = GLctx.getShaderSource(GL.shaders[shader]); - if (!result) return; // If an error occurs, nothing will be written to length or source. - if (bufSize > 0 && source) { - var numBytesWrittenExclNull = stringToUTF8(result, source, bufSize); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - - - function _glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } - - function _glfwSetKeyCallback(winid, cbfun) { - GLFW.setKeyCallback(winid, cbfun); - } - - function _emscripten_set_gamepadconnected_callback(userData, useCapture, callbackfunc) { - if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; - JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 26, "gamepadconnected"); - return 0; - } - - function _emscripten_glGetFloatv(name_, p) { - emscriptenWebGLGet(name_, p, 'Float'); - } - - function _glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { - - var pixelData = null; - if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); - GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); - } - - function _glGetProgramInfoLog(program, maxLength, length, infoLog) { - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _emscripten_glVertexAttribDivisor(index, divisor) { - GLctx['vertexAttribDivisor'](index, divisor); - } - - function _emscripten_glDrawElementsInstanced(mode, count, type, indices, primcount) { - GLctx['drawElementsInstanced'](mode, count, type, indices, primcount); - } - - function _emscripten_glDrawElements(mode, count, type, indices) { - - GLctx.drawElements(mode, count, type, indices); - - } - - function _glDeleteBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((buffers)+(i*4))>>2)]; - var buffer = GL.buffers[id]; - - // From spec: "glDeleteBuffers silently ignores 0's and names that do not - // correspond to existing buffer objects." - if (!buffer) continue; - - GLctx.deleteBuffer(buffer); - buffer.name = 0; - GL.buffers[id] = null; - - if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; - if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; - } - } - - function _emscripten_glCreateProgram() { - var id = GL.getNewId(GL.programs); - var program = GLctx.createProgram(); - program.name = id; - GL.programs[id] = program; - return id; - } - - function _emscripten_glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { - GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); - } - - function _emscripten_glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } - - function _emscripten_glBindVertexArray(vao) { - GLctx['bindVertexArray'](GL.vaos[vao]); - } - - function _emscripten_glLoadMatrixf() { - Module['printErr']('missing function: emscripten_glLoadMatrixf'); abort(-1); - } - - function _glDeleteShader(id) { - if (!id) return; - var shader = GL.shaders[id]; - if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteShader(shader); - GL.shaders[id] = null; - } - - function _emscripten_glGetProgramiv(program, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - if (program >= GL.counter) { - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - return; - } - - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { - HEAP32[((p)>>2)]=ptable.maxUniformLength; - } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { - if (ptable.maxAttributeLength == -1) { - var program = GL.programs[program]; - var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); - ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. - for (var i = 0; i < numAttribs; ++i) { - var activeAttrib = GLctx.getActiveAttrib(program, i); - ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxAttributeLength; - } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { - if (ptable.maxUniformBlockNameLength == -1) { - var program = GL.programs[program]; - var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); - ptable.maxUniformBlockNameLength = 0; - for (var i = 0; i < numBlocks; ++i) { - var activeBlockName = GLctx.getActiveUniformBlockName(program, i); - ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; - } else { - HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); - } - } - - function _emscripten_glGetProgramInfoLog(program, maxLength, length, infoLog) { - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _emscripten_glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { - - var pixelData = null; - if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); - GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); - } - - function _glPixelStorei(pname, param) { - if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { - GL.packAlignment = param; - } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { - GL.unpackAlignment = param; - } - GLctx.pixelStorei(pname, param); - } - - function ___unlock() {} - - function _emscripten_glColorPointer() { - Module['printErr']('missing function: emscripten_glColorPointer'); abort(-1); - } - - function _glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } - - function _glfwDestroyWindow(winid) { - return GLFW.destroyWindow(winid); - } - - function _emscripten_glFlush() { GLctx['flush']() } - - function _glfwSetErrorCallback(cbfun) { - GLFW.errorFunc = cbfun; - } - - function _emscripten_glCreateShader(shaderType) { - var id = GL.getNewId(GL.shaders); - GL.shaders[id] = GLctx.createShader(shaderType); - return id; - } - - function _glUniformMatrix4fv(location, count, transpose, value) { - - - var view; - if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[16*count-1]; - for (var i = 0; i < 16*count; i += 16) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; - view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; - view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; - view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; - view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; - view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; - view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; - view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; - view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; - view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; - view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; - view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); - } - GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); - } - - function _emscripten_glValidateProgram(program) { - GLctx.validateProgram(GL.programs[program]); - } - - function _emscripten_set_click_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerMouseEventCallback(target, userData, useCapture, callbackfunc, 4, "click"); - return 0; - } - - function _glFrontFace(x0) { GLctx['frontFace'](x0) } - - function _emscripten_glColorMask(red, green, blue, alpha) { - GLctx.colorMask(!!red, !!green, !!blue, !!alpha); - } - - function _emscripten_glPixelStorei(pname, param) { - if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { - GL.packAlignment = param; - } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { - GL.unpackAlignment = param; - } - GLctx.pixelStorei(pname, param); - } - - function _emscripten_glDeleteTextures(n, textures) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((textures)+(i*4))>>2)]; - var texture = GL.textures[id]; - if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". - GLctx.deleteTexture(texture); - texture.name = 0; - GL.textures[id] = null; - } - } - - function _emscripten_glGenVertexArrays(n, arrays) { - - for (var i = 0; i < n; i++) { - var vao = GLctx['createVertexArray'](); - if (!vao) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((arrays)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.vaos); - vao.name = id; - GL.vaos[id] = vao; - HEAP32[(((arrays)+(i*4))>>2)]=id; - } - } - - function _time(ptr) { - var ret = (Date.now()/1000)|0; - if (ptr) { - HEAP32[((ptr)>>2)]=ret; - } - return ret; - } - - function _emscripten_glGetBooleanv(name_, p) { - emscriptenWebGLGet(name_, p, 'Boolean'); - } - - function _emscripten_glCompileShader(shader) { - GLctx.compileShader(GL.shaders[shader]); - } -var GLctx; GL.init(); -if (ENVIRONMENT_IS_NODE) { - _emscripten_get_now = function _emscripten_get_now_actual() { - var t = process['hrtime'](); - return t[0] * 1e3 + t[1] / 1e6; - }; - } else if (typeof dateNow !== 'undefined') { - _emscripten_get_now = dateNow; - } else if (typeof self === 'object' && self['performance'] && typeof self['performance']['now'] === 'function') { - _emscripten_get_now = function() { return self['performance']['now'](); }; - } else if (typeof performance === 'object' && typeof performance['now'] === 'function') { - _emscripten_get_now = function() { return performance['now'](); }; - } else { - _emscripten_get_now = Date.now; - }; -Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."); Module["requestFullScreen"] = Module["requestFullscreen"]; Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice) }; - Module["requestFullscreen"] = function Module_requestFullscreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice) }; - Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) }; - Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) }; - Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() }; - Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() }; - Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() } - Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) }; -JSEvents.staticInit();; -/* flush anything remaining in the buffer during shutdown */ __ATEXIT__.push(function() { var fflush = Module["_fflush"]; if (fflush) fflush(0); var printChar = ___syscall146.printChar; if (!printChar) return; var buffers = ___syscall146.buffers; if (buffers[1].length) printChar(1, 10); if (buffers[2].length) printChar(2, 10); });; -DYNAMICTOP_PTR = allocate(1, "i32", ALLOC_STATIC); - -STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); - -STACK_MAX = STACK_BASE + TOTAL_STACK; - -DYNAMIC_BASE = Runtime.alignMemory(STACK_MAX); - -HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; - -staticSealed = true; // seal the static portion of memory - -assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); - - -function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vd(x) { Module["printErr"]("Invalid function pointer called with signature 'vd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vid(x) { Module["printErr"]("Invalid function pointer called with signature 'vid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viddd(x) { Module["printErr"]("Invalid function pointer called with signature 'viddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vidd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vidddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdi(x) { Module["printErr"]("Invalid function pointer called with signature 'vdi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdddddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viid(x) { Module["printErr"]("Invalid function pointer called with signature 'viid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function invoke_viiiii(index,a1,a2,a3,a4,a5) { - try { - Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vd(index,a1) { - try { - Module["dynCall_vd"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vid(index,a1,a2) { - try { - Module["dynCall_vid"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vi(index,a1) { - try { - Module["dynCall_vi"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vii(index,a1,a2) { - try { - Module["dynCall_vii"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_ii(index,a1) { - try { - return Module["dynCall_ii"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viddd(index,a1,a2,a3,a4) { - try { - Module["dynCall_viddd"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vidd(index,a1,a2,a3) { - try { - Module["dynCall_vidd"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_iiii(index,a1,a2,a3) { - try { - return Module["dynCall_iiii"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { - try { - Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { - try { - Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viii(index,a1,a2,a3) { - try { - Module["dynCall_viii"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vidddd(index,a1,a2,a3,a4,a5) { - try { - Module["dynCall_vidddd"](index,a1,a2,a3,a4,a5); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdi(index,a1,a2) { - try { - Module["dynCall_vdi"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { - try { - Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { - try { - Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_iii(index,a1,a2) { - try { - return Module["dynCall_iii"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_i(index) { - try { - return Module["dynCall_i"](index); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdddddd(index,a1,a2,a3,a4,a5,a6) { - try { - Module["dynCall_vdddddd"](index,a1,a2,a3,a4,a5,a6); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdddd(index,a1,a2,a3,a4) { - try { - Module["dynCall_vdddd"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdd(index,a1,a2) { - try { - Module["dynCall_vdd"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_v(index) { - try { - Module["dynCall_v"](index); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viid(index,a1,a2,a3) { - try { - Module["dynCall_viid"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiii(index,a1,a2,a3,a4) { - try { - Module["dynCall_viiii"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; - -Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vd": nullFunc_vd, "nullFunc_vid": nullFunc_vid, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viddd": nullFunc_viddd, "nullFunc_vidd": nullFunc_vidd, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiiiiii": nullFunc_viiiiiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_viii": nullFunc_viii, "nullFunc_vidddd": nullFunc_vidddd, "nullFunc_vdi": nullFunc_vdi, "nullFunc_viiiiiii": nullFunc_viiiiiii, "nullFunc_viiiiiiiii": nullFunc_viiiiiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_i": nullFunc_i, "nullFunc_vdddddd": nullFunc_vdddddd, "nullFunc_vdddd": nullFunc_vdddd, "nullFunc_vdd": nullFunc_vdd, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_viiii": nullFunc_viiii, "invoke_viiiii": invoke_viiiii, "invoke_vd": invoke_vd, "invoke_vid": invoke_vid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viddd": invoke_viddd, "invoke_vidd": invoke_vidd, "invoke_iiii": invoke_iiii, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viii": invoke_viii, "invoke_vidddd": invoke_vidddd, "invoke_vdi": invoke_vdi, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiii": invoke_viiiiiiiii, "invoke_iii": invoke_iii, "invoke_i": invoke_i, "invoke_vdddddd": invoke_vdddddd, "invoke_vdddd": invoke_vdddd, "invoke_vdd": invoke_vdd, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_viiii": invoke_viiii, "_emscripten_glGetTexParameterfv": _emscripten_glGetTexParameterfv, "_glUseProgram": _glUseProgram, "_emscripten_glShaderSource": _emscripten_glShaderSource, "_glfwCreateWindow": _glfwCreateWindow, "_emscripten_glReleaseShaderCompiler": _emscripten_glReleaseShaderCompiler, "_emscripten_glBlendFuncSeparate": _emscripten_glBlendFuncSeparate, "_emscripten_glVertexAttribPointer": _emscripten_glVertexAttribPointer, "_emscripten_glGetIntegerv": _emscripten_glGetIntegerv, "_emscripten_glCullFace": _emscripten_glCullFace, "_emscripten_glIsProgram": _emscripten_glIsProgram, "_emscripten_glStencilMaskSeparate": _emscripten_glStencilMaskSeparate, "_emscripten_glViewport": _emscripten_glViewport, "_emscripten_glFrontFace": _emscripten_glFrontFace, "_glDeleteProgram": _glDeleteProgram, "_emscripten_glUniform3fv": _emscripten_glUniform3fv, "_emscripten_glPolygonOffset": _emscripten_glPolygonOffset, "_emscripten_glUseProgram": _emscripten_glUseProgram, "_emscripten_glBlendColor": _emscripten_glBlendColor, "_glBindBuffer": _glBindBuffer, "_emscripten_glDepthFunc": _emscripten_glDepthFunc, "_glGetShaderInfoLog": _glGetShaderInfoLog, "_emscripten_set_fullscreenchange_callback": _emscripten_set_fullscreenchange_callback, "_emscripten_set_touchmove_callback": _emscripten_set_touchmove_callback, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_glDisable": _glDisable, "_glBlendFunc": _glBlendFunc, "_emscripten_glDisableVertexAttribArray": _emscripten_glDisableVertexAttribArray, "_glGetAttribLocation": _glGetAttribLocation, "_glDisableVertexAttribArray": _glDisableVertexAttribArray, "_glCreateShader": _glCreateShader, "_emscripten_glReadPixels": _emscripten_glReadPixels, "_emscripten_glSampleCoverage": _emscripten_glSampleCoverage, "_emscripten_glVertexPointer": _emscripten_glVertexPointer, "_emscripten_set_touchstart_callback": _emscripten_set_touchstart_callback, "emscriptenWebGLComputeImageSize": emscriptenWebGLComputeImageSize, "_emscripten_glGetBooleanv": _emscripten_glGetBooleanv, "_emscripten_glGetShaderSource": _emscripten_glGetShaderSource, "_glUniform4f": _glUniform4f, "_llvm_stacksave": _llvm_stacksave, "_emscripten_glUniform1i": _emscripten_glUniform1i, "_emscripten_glStencilFuncSeparate": _emscripten_glStencilFuncSeparate, "_emscripten_glLoadMatrixf": _emscripten_glLoadMatrixf, "_emscripten_glGenBuffers": _emscripten_glGenBuffers, "_emscripten_glDeleteObjectARB": _emscripten_glDeleteObjectARB, "_glfwSetWindowSizeCallback": _glfwSetWindowSizeCallback, "_emscripten_glGetShaderPrecisionFormat": _emscripten_glGetShaderPrecisionFormat, "_glfwInit": _glfwInit, "_glGenBuffers": _glGenBuffers, "_glShaderSource": _glShaderSource, "_emscripten_glGetString": _emscripten_glGetString, "_emscripten_glIsFramebuffer": _emscripten_glIsFramebuffer, "_emscripten_glIsEnabled": _emscripten_glIsEnabled, "_emscripten_glScissor": _emscripten_glScissor, "_emscripten_glVertexAttrib4fv": _emscripten_glVertexAttrib4fv, "_emscripten_glFramebufferTexture2D": _emscripten_glFramebufferTexture2D, "_emscripten_glTexParameteriv": _emscripten_glTexParameteriv, "_emscripten_glBindProgramARB": _emscripten_glBindProgramARB, "_emscripten_glStencilOpSeparate": _emscripten_glStencilOpSeparate, "_emscripten_glFramebufferRenderbuffer": _emscripten_glFramebufferRenderbuffer, "___syscall140": ___syscall140, "_glfwSetErrorCallback": _glfwSetErrorCallback, "_glfwDefaultWindowHints": _glfwDefaultWindowHints, "_glfwDestroyWindow": _glfwDestroyWindow, "_emscripten_glVertexAttrib1f": _emscripten_glVertexAttrib1f, "_emscripten_glGetActiveAttrib": _emscripten_glGetActiveAttrib, "_emscripten_glAttachShader": _emscripten_glAttachShader, "_glVertexAttribPointer": _glVertexAttribPointer, "_emscripten_glUniform2i": _emscripten_glUniform2i, "_emscripten_glUniform2f": _emscripten_glUniform2f, "_emscripten_glTexParameterfv": _emscripten_glTexParameterfv, "_emscripten_glUniformMatrix2fv": _emscripten_glUniformMatrix2fv, "_glGetProgramInfoLog": _glGetProgramInfoLog, "_glfwSetScrollCallback": _glfwSetScrollCallback, "_emscripten_glTexParameterf": _emscripten_glTexParameterf, "_emscripten_glGetAttachedShaders": _emscripten_glGetAttachedShaders, "_emscripten_glGenTextures": _emscripten_glGenTextures, "_emscripten_glTexParameteri": _emscripten_glTexParameteri, "_llvm_stackrestore": _llvm_stackrestore, "_glfwMakeContextCurrent": _glfwMakeContextCurrent, "_emscripten_glClear": _emscripten_glClear, "_glDrawElements": _glDrawElements, "_glBufferSubData": _glBufferSubData, "_emscripten_glValidateProgram": _emscripten_glValidateProgram, "_emscripten_glVertexAttrib2fv": _emscripten_glVertexAttrib2fv, "_glViewport": _glViewport, "_emscripten_glUniform4iv": _emscripten_glUniform4iv, "_emscripten_glGetTexParameteriv": _emscripten_glGetTexParameteriv, "___setErrNo": ___setErrNo, "_eglGetProcAddress": _eglGetProcAddress, "_emscripten_glBindAttribLocation": _emscripten_glBindAttribLocation, "_glDeleteTextures": _glDeleteTextures, "_glDepthFunc": _glDepthFunc, "_emscripten_glClientActiveTexture": _emscripten_glClientActiveTexture, "_emscripten_glVertexAttrib2f": _emscripten_glVertexAttrib2f, "_emscripten_glFlush": _emscripten_glFlush, "_emscripten_glCheckFramebufferStatus": _emscripten_glCheckFramebufferStatus, "_emscripten_glGenerateMipmap": _emscripten_glGenerateMipmap, "_emscripten_glGetError": _emscripten_glGetError, "_emscripten_glClearDepthf": _emscripten_glClearDepthf, "_emscripten_glBufferData": _emscripten_glBufferData, "_emscripten_glUniform3i": _emscripten_glUniform3i, "_emscripten_glRotatef": _emscripten_glRotatef, "_emscripten_glDeleteShader": _emscripten_glDeleteShader, "_glEnable": _glEnable, "_glGenTextures": _glGenTextures, "_emscripten_glMatrixMode": _emscripten_glMatrixMode, "_glGetString": _glGetString, "_emscripten_glClearStencil": _emscripten_glClearStencil, "_emscripten_glGetUniformLocation": _emscripten_glGetUniformLocation, "emscriptenWebGLGet": emscriptenWebGLGet, "_emscripten_glEnableVertexAttribArray": _emscripten_glEnableVertexAttribArray, "_emscripten_glGetAttribLocation": _emscripten_glGetAttribLocation, "_emscripten_get_now": _emscripten_get_now, "_emscripten_glNormalPointer": _emscripten_glNormalPointer, "_glAttachShader": _glAttachShader, "_emscripten_glTexCoordPointer": _emscripten_glTexCoordPointer, "_emscripten_glEnable": _emscripten_glEnable, "_glCreateProgram": _glCreateProgram, "_glUniformMatrix4fv": _glUniformMatrix4fv, "_emscripten_glClearDepth": _emscripten_glClearDepth, "___lock": ___lock, "emscriptenWebGLGetTexPixelData": emscriptenWebGLGetTexPixelData, "___syscall6": ___syscall6, "_emscripten_glIsBuffer": _emscripten_glIsBuffer, "_emscripten_glVertexAttrib3f": _emscripten_glVertexAttrib3f, "_time": _time, "___syscall146": ___syscall146, "_glfwSetMouseButtonCallback": _glfwSetMouseButtonCallback, "_emscripten_glBlendEquationSeparate": _emscripten_glBlendEquationSeparate, "_exit": _exit, "_emscripten_glEnableClientState": _emscripten_glEnableClientState, "_emscripten_glUniform4i": _emscripten_glUniform4i, "_emscripten_glDrawRangeElements": _emscripten_glDrawRangeElements, "_glCullFace": _glCullFace, "_emscripten_glGetPointerv": _emscripten_glGetPointerv, "_emscripten_set_keypress_callback": _emscripten_set_keypress_callback, "__emscripten_sample_gamepad_data": __emscripten_sample_gamepad_data, "_emscripten_get_gamepad_status": _emscripten_get_gamepad_status, "_emscripten_glUniform4f": _emscripten_glUniform4f, "_emscripten_glUniform2fv": _emscripten_glUniform2fv, "_glfwGetVideoModes": _glfwGetVideoModes, "_emscripten_set_click_callback": _emscripten_set_click_callback, "_emscripten_glFinish": _emscripten_glFinish, "_emscripten_glShaderBinary": _emscripten_glShaderBinary, "_emscripten_glDrawElements": _emscripten_glDrawElements, "_emscripten_glBlendFunc": _emscripten_glBlendFunc, "_emscripten_get_num_gamepads": _emscripten_get_num_gamepads, "_glCompressedTexImage2D": _glCompressedTexImage2D, "_emscripten_glUniform1iv": _emscripten_glUniform1iv, "_emscripten_glGetVertexAttribPointerv": _emscripten_glGetVertexAttribPointerv, "_glClearDepthf": _glClearDepthf, "_emscripten_glCompressedTexSubImage2D": _emscripten_glCompressedTexSubImage2D, "emscriptenWebGLGetUniform": emscriptenWebGLGetUniform, "_emscripten_glGenRenderbuffers": _emscripten_glGenRenderbuffers, "_emscripten_glDeleteVertexArrays": _emscripten_glDeleteVertexArrays, "_glfwSetWindowShouldClose": _glfwSetWindowShouldClose, "_emscripten_glUniform1fv": _emscripten_glUniform1fv, "_emscripten_glGetActiveUniform": _emscripten_glGetActiveUniform, "_glBindTexture": _glBindTexture, "_emscripten_glUniform3iv": _emscripten_glUniform3iv, "_emscripten_glUniform2iv": _emscripten_glUniform2iv, "_emscripten_glHint": _emscripten_glHint, "_glfwSetCharCallback": _glfwSetCharCallback, "emscriptenWebGLGetVertexAttrib": emscriptenWebGLGetVertexAttrib, "_glGetFloatv": _glGetFloatv, "_emscripten_glDeleteProgram": _emscripten_glDeleteProgram, "_emscripten_glDeleteRenderbuffers": _emscripten_glDeleteRenderbuffers, "_emscripten_glDrawElementsInstanced": _emscripten_glDrawElementsInstanced, "_emscripten_glVertexAttrib4f": _emscripten_glVertexAttrib4f, "_glDrawArrays": _glDrawArrays, "_emscripten_glTexSubImage2D": _emscripten_glTexSubImage2D, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_glPixelStorei": _emscripten_glPixelStorei, "_glCompileShader": _glCompileShader, "_emscripten_get_pointerlock_status": _emscripten_get_pointerlock_status, "_emscripten_glUniformMatrix3fv": _emscripten_glUniformMatrix3fv, "_emscripten_glColorPointer": _emscripten_glColorPointer, "_emscripten_glGetBufferParameteriv": _emscripten_glGetBufferParameteriv, "_glActiveTexture": _glActiveTexture, "_emscripten_request_pointerlock": _emscripten_request_pointerlock, "_emscripten_set_gamepaddisconnected_callback": _emscripten_set_gamepaddisconnected_callback, "_emscripten_asm_const_iii": _emscripten_asm_const_iii, "_emscripten_glDepthMask": _emscripten_glDepthMask, "_glfwSetWindowIconifyCallback": _glfwSetWindowIconifyCallback, "_emscripten_glDrawBuffers": _emscripten_glDrawBuffers, "_glfwTerminate": _glfwTerminate, "_glFrontFace": _glFrontFace, "_emscripten_glGetObjectParameterivARB": _emscripten_glGetObjectParameterivARB, "_emscripten_exit_pointerlock": _emscripten_exit_pointerlock, "_glfwSwapInterval": _glfwSwapInterval, "_glUniform1i": _glUniform1i, "_glEnableVertexAttribArray": _glEnableVertexAttribArray, "_emscripten_glStencilFunc": _emscripten_glStencilFunc, "_abort": _abort, "_emscripten_glGetUniformiv": _emscripten_glGetUniformiv, "_glDeleteBuffers": _glDeleteBuffers, "_glBufferData": _glBufferData, "_glTexImage2D": _glTexImage2D, "_emscripten_glGetShaderiv": _emscripten_glGetShaderiv, "_glfwSetKeyCallback": _glfwSetKeyCallback, "_emscripten_glGenFramebuffers": _emscripten_glGenFramebuffers, "_emscripten_glUniformMatrix4fv": _emscripten_glUniformMatrix4fv, "_emscripten_glLoadIdentity": _emscripten_glLoadIdentity, "_glDeleteShader": _glDeleteShader, "_emscripten_glUniform1f": _emscripten_glUniform1f, "_glGetProgramiv": _glGetProgramiv, "_emscripten_glBindFramebuffer": _emscripten_glBindFramebuffer, "_emscripten_glIsRenderbuffer": _emscripten_glIsRenderbuffer, "_glfwGetTime": _glfwGetTime, "_emscripten_glRenderbufferStorage": _emscripten_glRenderbufferStorage, "_emscripten_set_gamepadconnected_callback": _emscripten_set_gamepadconnected_callback, "_emscripten_glGetVertexAttribiv": _emscripten_glGetVertexAttribiv, "_emscripten_glBindVertexArray": _emscripten_glBindVertexArray, "_emscripten_glDrawArraysInstanced": _emscripten_glDrawArraysInstanced, "_emscripten_set_touchcancel_callback": _emscripten_set_touchcancel_callback, "_emscripten_glCreateShader": _emscripten_glCreateShader, "_emscripten_glStencilMask": _emscripten_glStencilMask, "_emscripten_glDeleteTextures": _emscripten_glDeleteTextures, "_emscripten_glBindRenderbuffer": _emscripten_glBindRenderbuffer, "_glfwGetPrimaryMonitor": _glfwGetPrimaryMonitor, "_glLinkProgram": _glLinkProgram, "_emscripten_glVertexAttribDivisor": _emscripten_glVertexAttribDivisor, "_emscripten_set_touchend_callback": _emscripten_set_touchend_callback, "_emscripten_glGetUniformfv": _emscripten_glGetUniformfv, "_emscripten_glGetVertexAttribfv": _emscripten_glGetVertexAttribfv, "_emscripten_glGetRenderbufferParameteriv": _emscripten_glGetRenderbufferParameteriv, "_emscripten_glDeleteFramebuffers": _emscripten_glDeleteFramebuffers, "_glGetShaderiv": _glGetShaderiv, "_emscripten_glVertexAttrib3fv": _emscripten_glVertexAttrib3fv, "_glGetUniformLocation": _glGetUniformLocation, "_emscripten_glGetInfoLogARB": _emscripten_glGetInfoLogARB, "_emscripten_glCompileShader": _emscripten_glCompileShader, "_glClear": _glClear, "_emscripten_glFrustum": _emscripten_glFrustum, "_emscripten_glDisable": _emscripten_glDisable, "_emscripten_glDepthRangef": _emscripten_glDepthRangef, "__exit": __exit, "_emscripten_glLineWidth": _emscripten_glLineWidth, "_emscripten_glUniform3f": _emscripten_glUniform3f, "_emscripten_glGetShaderInfoLog": _emscripten_glGetShaderInfoLog, "_emscripten_glStencilOp": _emscripten_glStencilOp, "_glBindAttribLocation": _glBindAttribLocation, "_glPixelStorei": _glPixelStorei, "_emscripten_glColorMask": _emscripten_glColorMask, "_emscripten_glLinkProgram": _emscripten_glLinkProgram, "_emscripten_glBlendEquation": _emscripten_glBlendEquation, "_emscripten_glIsTexture": _emscripten_glIsTexture, "_emscripten_glGetProgramiv": _emscripten_glGetProgramiv, "_emscripten_glVertexAttrib1fv": _emscripten_glVertexAttrib1fv, "_emscripten_glBindTexture": _emscripten_glBindTexture, "_emscripten_glGetFramebufferAttachmentParameteriv": _emscripten_glGetFramebufferAttachmentParameteriv, "_glfwGetCursorPos": _glfwGetCursorPos, "_emscripten_glActiveTexture": _emscripten_glActiveTexture, "_emscripten_glDeleteBuffers": _emscripten_glDeleteBuffers, "___syscall54": ___syscall54, "___unlock": ___unlock, "_emscripten_glBufferSubData": _emscripten_glBufferSubData, "_glfwSwapBuffers": _glfwSwapBuffers, "_emscripten_glDepthRange": _emscripten_glDepthRange, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_emscripten_glGetProgramInfoLog": _emscripten_glGetProgramInfoLog, "_glfwWindowHint": _glfwWindowHint, "_emscripten_glIsShader": _emscripten_glIsShader, "_emscripten_glUniform4fv": _emscripten_glUniform4fv, "_emscripten_glGenVertexArrays": _emscripten_glGenVertexArrays, "_emscripten_glDrawArrays": _emscripten_glDrawArrays, "_emscripten_glCompressedTexImage2D": _emscripten_glCompressedTexImage2D, "_emscripten_glClearColor": _emscripten_glClearColor, "_emscripten_glCreateProgram": _emscripten_glCreateProgram, "_emscripten_glCopyTexSubImage2D": _emscripten_glCopyTexSubImage2D, "_glTexParameteri": _glTexParameteri, "_emscripten_glBindBuffer": _emscripten_glBindBuffer, "_emscripten_glGetFloatv": _emscripten_glGetFloatv, "_emscripten_glDetachShader": _emscripten_glDetachShader, "_glClearColor": _glClearColor, "_glfwSetCursorPosCallback": _glfwSetCursorPosCallback, "_glfwSetCursorEnterCallback": _glfwSetCursorEnterCallback, "_emscripten_glCopyTexImage2D": _emscripten_glCopyTexImage2D, "_emscripten_glTexImage2D": _emscripten_glTexImage2D, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "cttz_i8": cttz_i8 }; -// EMSCRIPTEN_START_ASM -var asm = (function(global, env, buffer) { -'use asm'; - - - var HEAP8 = new global.Int8Array(buffer); - var HEAP16 = new global.Int16Array(buffer); - var HEAP32 = new global.Int32Array(buffer); - var HEAPU8 = new global.Uint8Array(buffer); - var HEAPU16 = new global.Uint16Array(buffer); - var HEAPU32 = new global.Uint32Array(buffer); - var HEAPF32 = new global.Float32Array(buffer); - var HEAPF64 = new global.Float64Array(buffer); - - var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0; - var tempDoublePtr=env.tempDoublePtr|0; - var ABORT=env.ABORT|0; - var STACKTOP=env.STACKTOP|0; - var STACK_MAX=env.STACK_MAX|0; - var cttz_i8=env.cttz_i8|0; - - var __THREW__ = 0; - var threwValue = 0; - var setjmpId = 0; - var undef = 0; - var nan = global.NaN, inf = global.Infinity; - var tempInt = 0, tempBigInt = 0, tempBigIntS = 0, tempValue = 0, tempDouble = 0.0; - var tempRet0 = 0; - - var Math_floor=global.Math.floor; - var Math_abs=global.Math.abs; - var Math_sqrt=global.Math.sqrt; - var Math_pow=global.Math.pow; - var Math_cos=global.Math.cos; - var Math_sin=global.Math.sin; - var Math_tan=global.Math.tan; - var Math_acos=global.Math.acos; - var Math_asin=global.Math.asin; - var Math_atan=global.Math.atan; - var Math_atan2=global.Math.atan2; - var Math_exp=global.Math.exp; - var Math_log=global.Math.log; - var Math_ceil=global.Math.ceil; - var Math_imul=global.Math.imul; - var Math_min=global.Math.min; - var Math_max=global.Math.max; - var Math_clz32=global.Math.clz32; - var abort=env.abort; - var assert=env.assert; - var enlargeMemory=env.enlargeMemory; - var getTotalMemory=env.getTotalMemory; - var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory; - var abortStackOverflow=env.abortStackOverflow; - var nullFunc_viiiii=env.nullFunc_viiiii; - var nullFunc_vd=env.nullFunc_vd; - var nullFunc_vid=env.nullFunc_vid; - var nullFunc_vi=env.nullFunc_vi; - var nullFunc_vii=env.nullFunc_vii; - var nullFunc_ii=env.nullFunc_ii; - var nullFunc_viddd=env.nullFunc_viddd; - var nullFunc_vidd=env.nullFunc_vidd; - var nullFunc_iiii=env.nullFunc_iiii; - var nullFunc_viiiiiiii=env.nullFunc_viiiiiiii; - var nullFunc_viiiiii=env.nullFunc_viiiiii; - var nullFunc_viii=env.nullFunc_viii; - var nullFunc_vidddd=env.nullFunc_vidddd; - var nullFunc_vdi=env.nullFunc_vdi; - var nullFunc_viiiiiii=env.nullFunc_viiiiiii; - var nullFunc_viiiiiiiii=env.nullFunc_viiiiiiiii; - var nullFunc_iii=env.nullFunc_iii; - var nullFunc_i=env.nullFunc_i; - var nullFunc_vdddddd=env.nullFunc_vdddddd; - var nullFunc_vdddd=env.nullFunc_vdddd; - var nullFunc_vdd=env.nullFunc_vdd; - var nullFunc_v=env.nullFunc_v; - var nullFunc_viid=env.nullFunc_viid; - var nullFunc_viiii=env.nullFunc_viiii; - var invoke_viiiii=env.invoke_viiiii; - var invoke_vd=env.invoke_vd; - var invoke_vid=env.invoke_vid; - var invoke_vi=env.invoke_vi; - var invoke_vii=env.invoke_vii; - var invoke_ii=env.invoke_ii; - var invoke_viddd=env.invoke_viddd; - var invoke_vidd=env.invoke_vidd; - var invoke_iiii=env.invoke_iiii; - var invoke_viiiiiiii=env.invoke_viiiiiiii; - var invoke_viiiiii=env.invoke_viiiiii; - var invoke_viii=env.invoke_viii; - var invoke_vidddd=env.invoke_vidddd; - var invoke_vdi=env.invoke_vdi; - var invoke_viiiiiii=env.invoke_viiiiiii; - var invoke_viiiiiiiii=env.invoke_viiiiiiiii; - var invoke_iii=env.invoke_iii; - var invoke_i=env.invoke_i; - var invoke_vdddddd=env.invoke_vdddddd; - var invoke_vdddd=env.invoke_vdddd; - var invoke_vdd=env.invoke_vdd; - var invoke_v=env.invoke_v; - var invoke_viid=env.invoke_viid; - var invoke_viiii=env.invoke_viiii; - var _emscripten_glGetTexParameterfv=env._emscripten_glGetTexParameterfv; - var _glUseProgram=env._glUseProgram; - var _emscripten_glShaderSource=env._emscripten_glShaderSource; - var _glfwCreateWindow=env._glfwCreateWindow; - var _emscripten_glReleaseShaderCompiler=env._emscripten_glReleaseShaderCompiler; - var _emscripten_glBlendFuncSeparate=env._emscripten_glBlendFuncSeparate; - var _emscripten_glVertexAttribPointer=env._emscripten_glVertexAttribPointer; - var _emscripten_glGetIntegerv=env._emscripten_glGetIntegerv; - var _emscripten_glCullFace=env._emscripten_glCullFace; - var _emscripten_glIsProgram=env._emscripten_glIsProgram; - var _emscripten_glStencilMaskSeparate=env._emscripten_glStencilMaskSeparate; - var _emscripten_glViewport=env._emscripten_glViewport; - var _emscripten_glFrontFace=env._emscripten_glFrontFace; - var _glDeleteProgram=env._glDeleteProgram; - var _emscripten_glUniform3fv=env._emscripten_glUniform3fv; - var _emscripten_glPolygonOffset=env._emscripten_glPolygonOffset; - var _emscripten_glUseProgram=env._emscripten_glUseProgram; - var _emscripten_glBlendColor=env._emscripten_glBlendColor; - var _glBindBuffer=env._glBindBuffer; - var _emscripten_glDepthFunc=env._emscripten_glDepthFunc; - var _glGetShaderInfoLog=env._glGetShaderInfoLog; - var _emscripten_set_fullscreenchange_callback=env._emscripten_set_fullscreenchange_callback; - var _emscripten_set_touchmove_callback=env._emscripten_set_touchmove_callback; - var _emscripten_set_main_loop_timing=env._emscripten_set_main_loop_timing; - var _glDisable=env._glDisable; - var _glBlendFunc=env._glBlendFunc; - var _emscripten_glDisableVertexAttribArray=env._emscripten_glDisableVertexAttribArray; - var _glGetAttribLocation=env._glGetAttribLocation; - var _glDisableVertexAttribArray=env._glDisableVertexAttribArray; - var _glCreateShader=env._glCreateShader; - var _emscripten_glReadPixels=env._emscripten_glReadPixels; - var _emscripten_glSampleCoverage=env._emscripten_glSampleCoverage; - var _emscripten_glVertexPointer=env._emscripten_glVertexPointer; - var _emscripten_set_touchstart_callback=env._emscripten_set_touchstart_callback; - var emscriptenWebGLComputeImageSize=env.emscriptenWebGLComputeImageSize; - var _emscripten_glGetBooleanv=env._emscripten_glGetBooleanv; - var _emscripten_glGetShaderSource=env._emscripten_glGetShaderSource; - var _glUniform4f=env._glUniform4f; - var _llvm_stacksave=env._llvm_stacksave; - var _emscripten_glUniform1i=env._emscripten_glUniform1i; - var _emscripten_glStencilFuncSeparate=env._emscripten_glStencilFuncSeparate; - var _emscripten_glLoadMatrixf=env._emscripten_glLoadMatrixf; - var _emscripten_glGenBuffers=env._emscripten_glGenBuffers; - var _emscripten_glDeleteObjectARB=env._emscripten_glDeleteObjectARB; - var _glfwSetWindowSizeCallback=env._glfwSetWindowSizeCallback; - var _emscripten_glGetShaderPrecisionFormat=env._emscripten_glGetShaderPrecisionFormat; - var _glfwInit=env._glfwInit; - var _glGenBuffers=env._glGenBuffers; - var _glShaderSource=env._glShaderSource; - var _emscripten_glGetString=env._emscripten_glGetString; - var _emscripten_glIsFramebuffer=env._emscripten_glIsFramebuffer; - var _emscripten_glIsEnabled=env._emscripten_glIsEnabled; - var _emscripten_glScissor=env._emscripten_glScissor; - var _emscripten_glVertexAttrib4fv=env._emscripten_glVertexAttrib4fv; - var _emscripten_glFramebufferTexture2D=env._emscripten_glFramebufferTexture2D; - var _emscripten_glTexParameteriv=env._emscripten_glTexParameteriv; - var _emscripten_glBindProgramARB=env._emscripten_glBindProgramARB; - var _emscripten_glStencilOpSeparate=env._emscripten_glStencilOpSeparate; - var _emscripten_glFramebufferRenderbuffer=env._emscripten_glFramebufferRenderbuffer; - var ___syscall140=env.___syscall140; - var _glfwSetErrorCallback=env._glfwSetErrorCallback; - var _glfwDefaultWindowHints=env._glfwDefaultWindowHints; - var _glfwDestroyWindow=env._glfwDestroyWindow; - var _emscripten_glVertexAttrib1f=env._emscripten_glVertexAttrib1f; - var _emscripten_glGetActiveAttrib=env._emscripten_glGetActiveAttrib; - var _emscripten_glAttachShader=env._emscripten_glAttachShader; - var _glVertexAttribPointer=env._glVertexAttribPointer; - var _emscripten_glUniform2i=env._emscripten_glUniform2i; - var _emscripten_glUniform2f=env._emscripten_glUniform2f; - var _emscripten_glTexParameterfv=env._emscripten_glTexParameterfv; - var _emscripten_glUniformMatrix2fv=env._emscripten_glUniformMatrix2fv; - var _glGetProgramInfoLog=env._glGetProgramInfoLog; - var _glfwSetScrollCallback=env._glfwSetScrollCallback; - var _emscripten_glTexParameterf=env._emscripten_glTexParameterf; - var _emscripten_glGetAttachedShaders=env._emscripten_glGetAttachedShaders; - var _emscripten_glGenTextures=env._emscripten_glGenTextures; - var _emscripten_glTexParameteri=env._emscripten_glTexParameteri; - var _llvm_stackrestore=env._llvm_stackrestore; - var _glfwMakeContextCurrent=env._glfwMakeContextCurrent; - var _emscripten_glClear=env._emscripten_glClear; - var _glDrawElements=env._glDrawElements; - var _glBufferSubData=env._glBufferSubData; - var _emscripten_glValidateProgram=env._emscripten_glValidateProgram; - var _emscripten_glVertexAttrib2fv=env._emscripten_glVertexAttrib2fv; - var _glViewport=env._glViewport; - var _emscripten_glUniform4iv=env._emscripten_glUniform4iv; - var _emscripten_glGetTexParameteriv=env._emscripten_glGetTexParameteriv; - var ___setErrNo=env.___setErrNo; - var _eglGetProcAddress=env._eglGetProcAddress; - var _emscripten_glBindAttribLocation=env._emscripten_glBindAttribLocation; - var _glDeleteTextures=env._glDeleteTextures; - var _glDepthFunc=env._glDepthFunc; - var _emscripten_glClientActiveTexture=env._emscripten_glClientActiveTexture; - var _emscripten_glVertexAttrib2f=env._emscripten_glVertexAttrib2f; - var _emscripten_glFlush=env._emscripten_glFlush; - var _emscripten_glCheckFramebufferStatus=env._emscripten_glCheckFramebufferStatus; - var _emscripten_glGenerateMipmap=env._emscripten_glGenerateMipmap; - var _emscripten_glGetError=env._emscripten_glGetError; - var _emscripten_glClearDepthf=env._emscripten_glClearDepthf; - var _emscripten_glBufferData=env._emscripten_glBufferData; - var _emscripten_glUniform3i=env._emscripten_glUniform3i; - var _emscripten_glRotatef=env._emscripten_glRotatef; - var _emscripten_glDeleteShader=env._emscripten_glDeleteShader; - var _glEnable=env._glEnable; - var _glGenTextures=env._glGenTextures; - var _emscripten_glMatrixMode=env._emscripten_glMatrixMode; - var _glGetString=env._glGetString; - var _emscripten_glClearStencil=env._emscripten_glClearStencil; - var _emscripten_glGetUniformLocation=env._emscripten_glGetUniformLocation; - var emscriptenWebGLGet=env.emscriptenWebGLGet; - var _emscripten_glEnableVertexAttribArray=env._emscripten_glEnableVertexAttribArray; - var _emscripten_glGetAttribLocation=env._emscripten_glGetAttribLocation; - var _emscripten_get_now=env._emscripten_get_now; - var _emscripten_glNormalPointer=env._emscripten_glNormalPointer; - var _glAttachShader=env._glAttachShader; - var _emscripten_glTexCoordPointer=env._emscripten_glTexCoordPointer; - var _emscripten_glEnable=env._emscripten_glEnable; - var _glCreateProgram=env._glCreateProgram; - var _glUniformMatrix4fv=env._glUniformMatrix4fv; - var _emscripten_glClearDepth=env._emscripten_glClearDepth; - var ___lock=env.___lock; - var emscriptenWebGLGetTexPixelData=env.emscriptenWebGLGetTexPixelData; - var ___syscall6=env.___syscall6; - var _emscripten_glIsBuffer=env._emscripten_glIsBuffer; - var _emscripten_glVertexAttrib3f=env._emscripten_glVertexAttrib3f; - var _time=env._time; - var ___syscall146=env.___syscall146; - var _glfwSetMouseButtonCallback=env._glfwSetMouseButtonCallback; - var _emscripten_glBlendEquationSeparate=env._emscripten_glBlendEquationSeparate; - var _exit=env._exit; - var _emscripten_glEnableClientState=env._emscripten_glEnableClientState; - var _emscripten_glUniform4i=env._emscripten_glUniform4i; - var _emscripten_glDrawRangeElements=env._emscripten_glDrawRangeElements; - var _glCullFace=env._glCullFace; - var _emscripten_glGetPointerv=env._emscripten_glGetPointerv; - var _emscripten_set_keypress_callback=env._emscripten_set_keypress_callback; - var __emscripten_sample_gamepad_data=env.__emscripten_sample_gamepad_data; - var _emscripten_get_gamepad_status=env._emscripten_get_gamepad_status; - var _emscripten_glUniform4f=env._emscripten_glUniform4f; - var _emscripten_glUniform2fv=env._emscripten_glUniform2fv; - var _glfwGetVideoModes=env._glfwGetVideoModes; - var _emscripten_set_click_callback=env._emscripten_set_click_callback; - var _emscripten_glFinish=env._emscripten_glFinish; - var _emscripten_glShaderBinary=env._emscripten_glShaderBinary; - var _emscripten_glDrawElements=env._emscripten_glDrawElements; - var _emscripten_glBlendFunc=env._emscripten_glBlendFunc; - var _emscripten_get_num_gamepads=env._emscripten_get_num_gamepads; - var _glCompressedTexImage2D=env._glCompressedTexImage2D; - var _emscripten_glUniform1iv=env._emscripten_glUniform1iv; - var _emscripten_glGetVertexAttribPointerv=env._emscripten_glGetVertexAttribPointerv; - var _glClearDepthf=env._glClearDepthf; - var _emscripten_glCompressedTexSubImage2D=env._emscripten_glCompressedTexSubImage2D; - var emscriptenWebGLGetUniform=env.emscriptenWebGLGetUniform; - var _emscripten_glGenRenderbuffers=env._emscripten_glGenRenderbuffers; - var _emscripten_glDeleteVertexArrays=env._emscripten_glDeleteVertexArrays; - var _glfwSetWindowShouldClose=env._glfwSetWindowShouldClose; - var _emscripten_glUniform1fv=env._emscripten_glUniform1fv; - var _emscripten_glGetActiveUniform=env._emscripten_glGetActiveUniform; - var _glBindTexture=env._glBindTexture; - var _emscripten_glUniform3iv=env._emscripten_glUniform3iv; - var _emscripten_glUniform2iv=env._emscripten_glUniform2iv; - var _emscripten_glHint=env._emscripten_glHint; - var _glfwSetCharCallback=env._glfwSetCharCallback; - var emscriptenWebGLGetVertexAttrib=env.emscriptenWebGLGetVertexAttrib; - var _glGetFloatv=env._glGetFloatv; - var _emscripten_glDeleteProgram=env._emscripten_glDeleteProgram; - var _emscripten_glDeleteRenderbuffers=env._emscripten_glDeleteRenderbuffers; - var _emscripten_glDrawElementsInstanced=env._emscripten_glDrawElementsInstanced; - var _emscripten_glVertexAttrib4f=env._emscripten_glVertexAttrib4f; - var _glDrawArrays=env._glDrawArrays; - var _emscripten_glTexSubImage2D=env._emscripten_glTexSubImage2D; - var _emscripten_memcpy_big=env._emscripten_memcpy_big; - var _emscripten_glPixelStorei=env._emscripten_glPixelStorei; - var _glCompileShader=env._glCompileShader; - var _emscripten_get_pointerlock_status=env._emscripten_get_pointerlock_status; - var _emscripten_glUniformMatrix3fv=env._emscripten_glUniformMatrix3fv; - var _emscripten_glColorPointer=env._emscripten_glColorPointer; - var _emscripten_glGetBufferParameteriv=env._emscripten_glGetBufferParameteriv; - var _glActiveTexture=env._glActiveTexture; - var _emscripten_request_pointerlock=env._emscripten_request_pointerlock; - var _emscripten_set_gamepaddisconnected_callback=env._emscripten_set_gamepaddisconnected_callback; - var _emscripten_asm_const_iii=env._emscripten_asm_const_iii; - var _emscripten_glDepthMask=env._emscripten_glDepthMask; - var _glfwSetWindowIconifyCallback=env._glfwSetWindowIconifyCallback; - var _emscripten_glDrawBuffers=env._emscripten_glDrawBuffers; - var _glfwTerminate=env._glfwTerminate; - var _glFrontFace=env._glFrontFace; - var _emscripten_glGetObjectParameterivARB=env._emscripten_glGetObjectParameterivARB; - var _emscripten_exit_pointerlock=env._emscripten_exit_pointerlock; - var _glfwSwapInterval=env._glfwSwapInterval; - var _glUniform1i=env._glUniform1i; - var _glEnableVertexAttribArray=env._glEnableVertexAttribArray; - var _emscripten_glStencilFunc=env._emscripten_glStencilFunc; - var _abort=env._abort; - var _emscripten_glGetUniformiv=env._emscripten_glGetUniformiv; - var _glDeleteBuffers=env._glDeleteBuffers; - var _glBufferData=env._glBufferData; - var _glTexImage2D=env._glTexImage2D; - var _emscripten_glGetShaderiv=env._emscripten_glGetShaderiv; - var _glfwSetKeyCallback=env._glfwSetKeyCallback; - var _emscripten_glGenFramebuffers=env._emscripten_glGenFramebuffers; - var _emscripten_glUniformMatrix4fv=env._emscripten_glUniformMatrix4fv; - var _emscripten_glLoadIdentity=env._emscripten_glLoadIdentity; - var _glDeleteShader=env._glDeleteShader; - var _emscripten_glUniform1f=env._emscripten_glUniform1f; - var _glGetProgramiv=env._glGetProgramiv; - var _emscripten_glBindFramebuffer=env._emscripten_glBindFramebuffer; - var _emscripten_glIsRenderbuffer=env._emscripten_glIsRenderbuffer; - var _glfwGetTime=env._glfwGetTime; - var _emscripten_glRenderbufferStorage=env._emscripten_glRenderbufferStorage; - var _emscripten_set_gamepadconnected_callback=env._emscripten_set_gamepadconnected_callback; - var _emscripten_glGetVertexAttribiv=env._emscripten_glGetVertexAttribiv; - var _emscripten_glBindVertexArray=env._emscripten_glBindVertexArray; - var _emscripten_glDrawArraysInstanced=env._emscripten_glDrawArraysInstanced; - var _emscripten_set_touchcancel_callback=env._emscripten_set_touchcancel_callback; - var _emscripten_glCreateShader=env._emscripten_glCreateShader; - var _emscripten_glStencilMask=env._emscripten_glStencilMask; - var _emscripten_glDeleteTextures=env._emscripten_glDeleteTextures; - var _emscripten_glBindRenderbuffer=env._emscripten_glBindRenderbuffer; - var _glfwGetPrimaryMonitor=env._glfwGetPrimaryMonitor; - var _glLinkProgram=env._glLinkProgram; - var _emscripten_glVertexAttribDivisor=env._emscripten_glVertexAttribDivisor; - var _emscripten_set_touchend_callback=env._emscripten_set_touchend_callback; - var _emscripten_glGetUniformfv=env._emscripten_glGetUniformfv; - var _emscripten_glGetVertexAttribfv=env._emscripten_glGetVertexAttribfv; - var _emscripten_glGetRenderbufferParameteriv=env._emscripten_glGetRenderbufferParameteriv; - var _emscripten_glDeleteFramebuffers=env._emscripten_glDeleteFramebuffers; - var _glGetShaderiv=env._glGetShaderiv; - var _emscripten_glVertexAttrib3fv=env._emscripten_glVertexAttrib3fv; - var _glGetUniformLocation=env._glGetUniformLocation; - var _emscripten_glGetInfoLogARB=env._emscripten_glGetInfoLogARB; - var _emscripten_glCompileShader=env._emscripten_glCompileShader; - var _glClear=env._glClear; - var _emscripten_glFrustum=env._emscripten_glFrustum; - var _emscripten_glDisable=env._emscripten_glDisable; - var _emscripten_glDepthRangef=env._emscripten_glDepthRangef; - var __exit=env.__exit; - var _emscripten_glLineWidth=env._emscripten_glLineWidth; - var _emscripten_glUniform3f=env._emscripten_glUniform3f; - var _emscripten_glGetShaderInfoLog=env._emscripten_glGetShaderInfoLog; - var _emscripten_glStencilOp=env._emscripten_glStencilOp; - var _glBindAttribLocation=env._glBindAttribLocation; - var _glPixelStorei=env._glPixelStorei; - var _emscripten_glColorMask=env._emscripten_glColorMask; - var _emscripten_glLinkProgram=env._emscripten_glLinkProgram; - var _emscripten_glBlendEquation=env._emscripten_glBlendEquation; - var _emscripten_glIsTexture=env._emscripten_glIsTexture; - var _emscripten_glGetProgramiv=env._emscripten_glGetProgramiv; - var _emscripten_glVertexAttrib1fv=env._emscripten_glVertexAttrib1fv; - var _emscripten_glBindTexture=env._emscripten_glBindTexture; - var _emscripten_glGetFramebufferAttachmentParameteriv=env._emscripten_glGetFramebufferAttachmentParameteriv; - var _glfwGetCursorPos=env._glfwGetCursorPos; - var _emscripten_glActiveTexture=env._emscripten_glActiveTexture; - var _emscripten_glDeleteBuffers=env._emscripten_glDeleteBuffers; - var ___syscall54=env.___syscall54; - var ___unlock=env.___unlock; - var _emscripten_glBufferSubData=env._emscripten_glBufferSubData; - var _glfwSwapBuffers=env._glfwSwapBuffers; - var _emscripten_glDepthRange=env._emscripten_glDepthRange; - var _emscripten_set_main_loop=env._emscripten_set_main_loop; - var _emscripten_glGetProgramInfoLog=env._emscripten_glGetProgramInfoLog; - var _glfwWindowHint=env._glfwWindowHint; - var _emscripten_glIsShader=env._emscripten_glIsShader; - var _emscripten_glUniform4fv=env._emscripten_glUniform4fv; - var _emscripten_glGenVertexArrays=env._emscripten_glGenVertexArrays; - var _emscripten_glDrawArrays=env._emscripten_glDrawArrays; - var _emscripten_glCompressedTexImage2D=env._emscripten_glCompressedTexImage2D; - var _emscripten_glClearColor=env._emscripten_glClearColor; - var _emscripten_glCreateProgram=env._emscripten_glCreateProgram; - var _emscripten_glCopyTexSubImage2D=env._emscripten_glCopyTexSubImage2D; - var _glTexParameteri=env._glTexParameteri; - var _emscripten_glBindBuffer=env._emscripten_glBindBuffer; - var _emscripten_glGetFloatv=env._emscripten_glGetFloatv; - var _emscripten_glDetachShader=env._emscripten_glDetachShader; - var _glClearColor=env._glClearColor; - var _glfwSetCursorPosCallback=env._glfwSetCursorPosCallback; - var _glfwSetCursorEnterCallback=env._glfwSetCursorEnterCallback; - var _emscripten_glCopyTexImage2D=env._emscripten_glCopyTexImage2D; - var _emscripten_glTexImage2D=env._emscripten_glTexImage2D; - var tempFloat = 0.0; - -// EMSCRIPTEN_START_FUNCS - -function stackAlloc(size) { - size = size|0; - var ret = 0; - ret = STACKTOP; - STACKTOP = (STACKTOP + size)|0; - STACKTOP = (STACKTOP + 15)&-16; - if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0); - - return ret|0; -} -function stackSave() { - return STACKTOP|0; -} -function stackRestore(top) { - top = top|0; - STACKTOP = top; -} -function establishStackSpace(stackBase, stackMax) { - stackBase = stackBase|0; - stackMax = stackMax|0; - STACKTOP = stackBase; - STACK_MAX = stackMax; -} - -function setThrew(threw, value) { - threw = threw|0; - value = value|0; - if ((__THREW__|0) == 0) { - __THREW__ = threw; - threwValue = value; - } -} - -function setTempRet0(value) { - value = value|0; - tempRet0 = value; -} -function getTempRet0() { - return tempRet0|0; -} - -function _main() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[2]|0; - $1 = HEAP32[3]|0; - _InitWindow($0,$1,3484); - $2 = HEAP32[3]|0; - $3 = (($2|0) / 2)&-1; - $4 = (($3) + -40)|0; - HEAP32[3522] = $4; - _emscripten_set_main_loop((1|0),0,1); - _CloseWindow(); - return 0; -} -function _UpdateDrawFrame() { - var $$byval_copy3 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $$byval_copy3 = sp + 20|0; - $vararg_buffer = sp; - $0 = sp + 16|0; - $1 = sp + 12|0; - $2 = sp + 8|0; - $3 = sp + 4|0; - $4 = (_GetMouseWheelMove()|0); - $5 = HEAP32[4]|0; - $6 = Math_imul($5, $4)|0; - $7 = HEAP32[3522]|0; - $8 = (($7) - ($6))|0; - HEAP32[3522] = $8; - _BeginDrawing(); - HEAP8[$0>>0] = -11; - $9 = ((($0)) + 1|0); - HEAP8[$9>>0] = -11; - $10 = ((($0)) + 2|0); - HEAP8[$10>>0] = -11; - $11 = ((($0)) + 3|0); - HEAP8[$11>>0] = -1; - ;HEAP8[$$byval_copy3>>0]=HEAP8[$0>>0]|0;HEAP8[$$byval_copy3+1>>0]=HEAP8[$0+1>>0]|0;HEAP8[$$byval_copy3+2>>0]=HEAP8[$0+2>>0]|0;HEAP8[$$byval_copy3+3>>0]=HEAP8[$0+3>>0]|0; - _ClearBackground($$byval_copy3); - $12 = HEAP32[2]|0; - $13 = (($12|0) / 2)&-1; - $14 = (($13) + -40)|0; - $15 = HEAP32[3522]|0; - HEAP8[$1>>0] = -66; - $16 = ((($1)) + 1|0); - HEAP8[$16>>0] = 33; - $17 = ((($1)) + 2|0); - HEAP8[$17>>0] = 55; - $18 = ((($1)) + 3|0); - HEAP8[$18>>0] = -1; - ;HEAP8[$$byval_copy3>>0]=HEAP8[$1>>0]|0;HEAP8[$$byval_copy3+1>>0]=HEAP8[$1+1>>0]|0;HEAP8[$$byval_copy3+2>>0]=HEAP8[$1+2>>0]|0;HEAP8[$$byval_copy3+3>>0]=HEAP8[$1+3>>0]|0; - _DrawRectangle($14,$15,80,80,$$byval_copy3); - HEAP8[$2>>0] = -126; - $19 = ((($2)) + 1|0); - HEAP8[$19>>0] = -126; - $20 = ((($2)) + 2|0); - HEAP8[$20>>0] = -126; - $21 = ((($2)) + 3|0); - HEAP8[$21>>0] = -1; - ;HEAP8[$$byval_copy3>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy3+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy3+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy3+3>>0]=HEAP8[$2+3>>0]|0; - _DrawText(3520,10,10,20,$$byval_copy3); - $22 = HEAP32[3522]|0; - HEAP32[$vararg_buffer>>2] = $22; - $23 = (_FormatText(3566,$vararg_buffer)|0); - HEAP8[$3>>0] = -56; - $24 = ((($3)) + 1|0); - HEAP8[$24>>0] = -56; - $25 = ((($3)) + 2|0); - HEAP8[$25>>0] = -56; - $26 = ((($3)) + 3|0); - HEAP8[$26>>0] = -1; - ;HEAP8[$$byval_copy3>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy3+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy3+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy3+3>>0]=HEAP8[$3+3>>0]|0; - _DrawText($23,10,40,20,$$byval_copy3); - _EndDrawing(); - STACKTOP = sp;return; -} -function _TraceLog($0,$1,$varargs) { - $0 = $0|0; - $1 = $1|0; - $varargs = $varargs|0; - var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $endptr = 0, $strlen = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = sp; - switch ($0|0) { - case 0: { - ;HEAP8[13816>>0]=HEAP8[3587>>0]|0;HEAP8[13816+1>>0]=HEAP8[3587+1>>0]|0;HEAP8[13816+2>>0]=HEAP8[3587+2>>0]|0;HEAP8[13816+3>>0]=HEAP8[3587+3>>0]|0;HEAP8[13816+4>>0]=HEAP8[3587+4>>0]|0;HEAP8[13816+5>>0]=HEAP8[3587+5>>0]|0;HEAP8[13816+6>>0]=HEAP8[3587+6>>0]|0; - break; - } - case 2: { - $3 = 13816; - $4 = $3; - HEAP32[$4>>2] = 1330795077; - $5 = (($3) + 4)|0; - $6 = $5; - HEAP32[$6>>2] = 2112082; - break; - } - case 1: { - dest=13816; src=3594; stop=dest+10|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); - break; - } - case 3: { - $7 = 13816; - $8 = $7; - HEAP32[$8>>2] = 1430406468; - $9 = (($7) + 4)|0; - $10 = $9; - HEAP32[$10>>2] = 2112071; - break; - } - default: { - } - } - (_strcat(13816,$1)|0); - $strlen = (_strlen(13816)|0); - $endptr = (13816 + ($strlen)|0); - HEAP8[$endptr>>0]=10&255;HEAP8[$endptr+1>>0]=10>>8; - HEAP32[$2>>2] = $varargs; - $11 = ($0|0)==(3); - if ($11) { - STACKTOP = sp;return; - } - (_vprintf(13816,$2)|0); - $12 = ($0|0)==(2); - if ($12) { - _exit(1); - // unreachable; - } else { - STACKTOP = sp;return; - } -} -function _LoadDefaultFont() { - var $$ = 0, $$0101 = 0, $$090100 = 0, $$09299 = 0, $$095104 = 0, $$096103 = 0, $$097102 = 0, $$191 = 0, $$193 = 0, $$byval_copy1 = 0, $$lcssa = 0, $$sroa$0$0$$sroa_idx = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; - var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $$byval_copy1 = sp + 44|0; - $vararg_buffer = sp; - $0 = sp + 4|0; - $1 = sp + 24|0; - HEAP32[(14116)>>2] = 224; - $2 = (_malloc(65536)|0); - _memset(($2|0),0,65536)|0; - $$095104 = 0;$$096103 = 0; - while(1) { - $3 = (20 + ($$095104<<2)|0); - $4 = HEAP32[$3>>2]|0; - $$097102 = 31; - while(1) { - $16 = 1 << $$097102; - $17 = $4 & $16; - $18 = ($17|0)==(0); - if (!($18)) { - $19 = (($$097102) + ($$096103))|0; - $$sroa$0$0$$sroa_idx = (($2) + ($19<<2)|0); - HEAP8[$$sroa$0$0$$sroa_idx>>0]=-1&255;HEAP8[$$sroa$0$0$$sroa_idx+1>>0]=(-1>>8)&255;HEAP8[$$sroa$0$0$$sroa_idx+2>>0]=(-1>>16)&255;HEAP8[$$sroa$0$0$$sroa_idx+3>>0]=-1>>24; - } - $20 = (($$097102) + -1)|0; - $21 = ($$097102|0)>(0); - if ($21) { - $$097102 = $20; - } else { - break; - } - } - $12 = (($$095104) + 1)|0; - $13 = ($$095104|0)>(511); - $$ = $13 ? 0 : $12; - $14 = (($$096103) + 32)|0; - $15 = ($14|0)<(16384); - if ($15) { - $$095104 = $$;$$096103 = $14; - } else { - break; - } - } - _LoadImageEx($0,$2,128,128); - _ImageFormat($0,2); - _free($2); - ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; - _LoadTextureFromImage($1,$$byval_copy1); - ;HEAP32[14092>>2]=HEAP32[$1>>2]|0;HEAP32[14092+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[14092+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[14092+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[14092+16>>2]=HEAP32[$1+16>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; - _UnloadImage($$byval_copy1); - $5 = HEAP32[(14116)>>2]|0; - $6 = $5 << 5; - $7 = (_malloc($6)|0); - HEAP32[(14120)>>2] = $7; - $8 = ($5|0)>(0); - if (!($8)) { - $$lcssa = $7; - $22 = ((($$lcssa)) + 16|0); - $23 = HEAP32[$22>>2]|0; - HEAP32[(14112)>>2] = $23; - $24 = HEAP32[3523]|0; - HEAP32[$vararg_buffer>>2] = $24; - _TraceLog(0,3604,$vararg_buffer); - STACKTOP = sp;return; - } - $9 = HEAP32[(14096)>>2]|0; - $10 = HEAP32[(14116)>>2]|0; - $11 = HEAP32[(14120)>>2]|0; - $$0101 = 0;$$090100 = 1;$$09299 = 0;$27 = $7; - while(1) { - $25 = (($$0101) + 32)|0; - $26 = (($27) + ($$0101<<5)|0); - HEAP32[$26>>2] = $25; - $28 = (((($27) + ($$0101<<5)|0)) + 4|0); - HEAP32[$28>>2] = $$090100; - $29 = ($$09299*11)|0; - $30 = (($29) + 1)|0; - $31 = (((($27) + ($$0101<<5)|0)) + 8|0); - HEAP32[$31>>2] = $30; - $32 = (2068 + ($$0101<<2)|0); - $33 = HEAP32[$32>>2]|0; - $34 = (((($27) + ($$0101<<5)|0)) + 12|0); - HEAP32[$34>>2] = $33; - $35 = (((($27) + ($$0101<<5)|0)) + 16|0); - HEAP32[$35>>2] = 10; - $36 = (($$090100) + 1)|0; - $37 = (($36) + ($33))|0; - $38 = ($37|0)<($9|0); - $39 = (($$09299) + 1)|0; - if ($38) { - $$191 = $37;$$193 = $$09299; - } else { - $40 = ($39*11)|0; - $41 = (($40) + 1)|0; - $42 = (($33) + 2)|0; - HEAP32[$28>>2] = 1; - HEAP32[$31>>2] = $41; - $$191 = $42;$$193 = $39; - } - $43 = (((($27) + ($$0101<<5)|0)) + 20|0); - HEAP32[$43>>2] = 0; - $44 = (((($27) + ($$0101<<5)|0)) + 24|0); - HEAP32[$44>>2] = 0; - $45 = (((($27) + ($$0101<<5)|0)) + 28|0); - HEAP32[$45>>2] = 0; - $46 = (($$0101) + 1)|0; - $47 = ($46|0)<($10|0); - if ($47) { - $$0101 = $46;$$090100 = $$191;$$09299 = $$193;$27 = $11; - } else { - $$lcssa = $11; - break; - } - } - $22 = ((($$lcssa)) + 16|0); - $23 = HEAP32[$22>>2]|0; - HEAP32[(14112)>>2] = $23; - $24 = HEAP32[3523]|0; - HEAP32[$vararg_buffer>>2] = $24; - _TraceLog(0,3604,$vararg_buffer); - STACKTOP = sp;return; -} -function _LoadImageEx($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$03334 = 0, $$035 = 0, $$sroa$12$0$$sroa_idx21 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$9$0$$sroa_idx18 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = $2 << 2; - $5 = Math_imul($4, $3)|0; - $6 = (_malloc($5)|0); - $7 = ($5|0)>(0); - if ($7) { - $8 = (($5) + -1)|0; - $9 = $8 >>> 2; - $$03334 = 0;$$035 = 0; - while(1) { - $10 = (($1) + ($$03334<<2)|0); - $11 = HEAP8[$10>>0]|0; - $12 = (($6) + ($$035)|0); - HEAP8[$12>>0] = $11; - $13 = (((($1) + ($$03334<<2)|0)) + 1|0); - $14 = HEAP8[$13>>0]|0; - $15 = $$035 | 1; - $16 = (($6) + ($15)|0); - HEAP8[$16>>0] = $14; - $17 = (((($1) + ($$03334<<2)|0)) + 2|0); - $18 = HEAP8[$17>>0]|0; - $19 = $$035 | 2; - $20 = (($6) + ($19)|0); - HEAP8[$20>>0] = $18; - $21 = (((($1) + ($$03334<<2)|0)) + 3|0); - $22 = HEAP8[$21>>0]|0; - $23 = $$035 | 3; - $24 = (($6) + ($23)|0); - HEAP8[$24>>0] = $22; - $25 = (($$03334) + 1)|0; - $26 = (($$035) + 4)|0; - $exitcond = ($$03334|0)==($9|0); - if ($exitcond) { - break; - } else { - $$03334 = $25;$$035 = $26; - } - } - } - HEAP32[$0>>2] = $6; - $$sroa$9$0$$sroa_idx18 = ((($0)) + 4|0); - HEAP32[$$sroa$9$0$$sroa_idx18>>2] = $2; - $$sroa$12$0$$sroa_idx21 = ((($0)) + 8|0); - HEAP32[$$sroa$12$0$$sroa_idx21>>2] = $3; - $$sroa$15$0$$sroa_idx24 = ((($0)) + 12|0); - HEAP32[$$sroa$15$0$$sroa_idx24>>2] = 1; - $$sroa$16$0$$sroa_idx26 = ((($0)) + 16|0); - HEAP32[$$sroa$16$0$$sroa_idx26>>2] = 7; - return; -} -function _ImageFormat($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0166199 = 0, $$0167197 = 0, $$0168195 = 0, $$0169192 = 0, $$0170190 = 0, $$0171188 = 0, $$0172189 = 0, $$0202 = 0, $$1194 = 0, $$2201 = 0, $$byval_copy = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0, $106 = 0, $107 = 0; - var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0; - var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0; - var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0; - var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $178 = 0, $179 = 0, $18 = 0; - var $180 = 0, $181 = 0.0, $182 = 0.0, $183 = 0.0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0.0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0; - var $199 = 0, $2 = 0, $20 = 0.0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0; - var $216 = 0, $217 = 0, $218 = 0.0, $219 = 0.0, $22 = 0, $220 = 0.0, $221 = 0, $222 = 0, $223 = 0, $224 = 0.0, $225 = 0.0, $226 = 0.0, $227 = 0, $228 = 0, $229 = 0, $23 = 0.0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0; - var $234 = 0, $235 = 0, $236 = 0.0, $237 = 0.0, $238 = 0.0, $239 = 0, $24 = 0.0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0.0, $250 = 0, $251 = 0; - var $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0; - var $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0.0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0; - var $289 = 0, $29 = 0.0, $290 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0; - var $63 = 0.0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0; - var $or$cond = 0, $roundf = 0.0, $roundf173 = 0.0, $roundf174 = 0.0, $roundf175 = 0.0, $roundf176 = 0.0, $roundf177 = 0.0, $roundf178 = 0.0, $roundf179 = 0.0, $roundf180 = 0.0, $roundf181 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $$byval_copy = sp + 4|0; - $vararg_buffer = sp; - $2 = ((($0)) + 16|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)==($1|0); - if ($4) { - STACKTOP = sp;return; - } - $5 = ($3|0)<(9); - $6 = ($1|0)<(9); - $or$cond = $6 & $5; - if (!($or$cond)) { - _TraceLog(1,4030,$vararg_buffer); - STACKTOP = sp;return; - } - ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; - $7 = (_GetImageData($$byval_copy)|0); - $8 = HEAP32[$0>>2]|0; - _free($8); - HEAP32[$2>>2] = $1; - switch ($1|0) { - case 1: { - $9 = ((($0)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($0)) + 8|0); - $12 = HEAP32[$11>>2]|0; - $13 = Math_imul($12, $10)|0; - $14 = (_malloc($13)|0); - HEAP32[$0>>2] = $14; - $15 = Math_imul($12, $10)|0; - $16 = ($15|0)>(0); - if ($16) { - $$0171188 = 0; - while(1) { - $17 = (($7) + ($$0171188<<2)|0); - $18 = HEAP8[$17>>0]|0; - $19 = (+($18&255)); - $20 = $19 * 0.29899999499320984; - $21 = (((($7) + ($$0171188<<2)|0)) + 1|0); - $22 = HEAP8[$21>>0]|0; - $23 = (+($22&255)); - $24 = $23 * 0.58700001239776611; - $25 = $20 + $24; - $26 = (((($7) + ($$0171188<<2)|0)) + 2|0); - $27 = HEAP8[$26>>0]|0; - $28 = (+($27&255)); - $29 = $28 * 0.11400000005960464; - $30 = $25 + $29; - $31 = (~~(($30))&255); - $32 = HEAP32[$0>>2]|0; - $33 = (($32) + ($$0171188)|0); - HEAP8[$33>>0] = $31; - $34 = (($$0171188) + 1)|0; - $35 = HEAP32[$9>>2]|0; - $36 = HEAP32[$11>>2]|0; - $37 = Math_imul($36, $35)|0; - $38 = ($34|0)<($37|0); - if ($38) { - $$0171188 = $34; - } else { - break; - } - } - } - break; - } - case 2: { - $39 = ((($0)) + 4|0); - $40 = HEAP32[$39>>2]|0; - $41 = ((($0)) + 8|0); - $42 = HEAP32[$41>>2]|0; - $43 = $40 << 1; - $44 = Math_imul($43, $42)|0; - $45 = (_malloc($44)|0); - HEAP32[$0>>2] = $45; - $46 = HEAP32[$39>>2]|0; - $47 = $46 << 1; - $48 = Math_imul($47, $42)|0; - $49 = ($48|0)>(0); - if ($49) { - $$0170190 = 0;$$0172189 = 0; - while(1) { - $50 = (($7) + ($$0172189<<2)|0); - $51 = HEAP8[$50>>0]|0; - $52 = (+($51&255)); - $53 = $52 * 0.29899999499320984; - $54 = (((($7) + ($$0172189<<2)|0)) + 1|0); - $55 = HEAP8[$54>>0]|0; - $56 = (+($55&255)); - $57 = $56 * 0.58700001239776611; - $58 = $53 + $57; - $59 = (((($7) + ($$0172189<<2)|0)) + 2|0); - $60 = HEAP8[$59>>0]|0; - $61 = (+($60&255)); - $62 = $61 * 0.11400000005960464; - $63 = $58 + $62; - $64 = (~~(($63))&255); - $65 = HEAP32[$0>>2]|0; - $66 = (($65) + ($$0170190)|0); - HEAP8[$66>>0] = $64; - $67 = (((($7) + ($$0172189<<2)|0)) + 3|0); - $68 = HEAP8[$67>>0]|0; - $69 = HEAP32[$0>>2]|0; - $70 = $$0170190 | 1; - $71 = (($69) + ($70)|0); - HEAP8[$71>>0] = $68; - $72 = (($$0172189) + 1)|0; - $73 = (($$0170190) + 2)|0; - $74 = HEAP32[$39>>2]|0; - $75 = HEAP32[$41>>2]|0; - $76 = $74 << 1; - $77 = Math_imul($76, $75)|0; - $78 = ($73|0)<($77|0); - if ($78) { - $$0170190 = $73;$$0172189 = $72; - } else { - break; - } - } - } - break; - } - case 3: { - $79 = ((($0)) + 4|0); - $80 = HEAP32[$79>>2]|0; - $81 = ((($0)) + 8|0); - $82 = HEAP32[$81>>2]|0; - $83 = $80 << 1; - $84 = Math_imul($83, $82)|0; - $85 = (_malloc($84)|0); - HEAP32[$0>>2] = $85; - $86 = HEAP32[$79>>2]|0; - $87 = Math_imul($82, $86)|0; - $88 = ($87|0)>(0); - if ($88) { - $89 = HEAP8[$7>>0]|0; - $90 = (+($89&255)); - $91 = $90 * 31.0; - $92 = $91 / 255.0; - $roundf179 = (+_roundf((+$92))); - $93 = (~~(($roundf179))&255); - $94 = ((($7)) + 1|0); - $95 = HEAP8[$94>>0]|0; - $96 = (+($95&255)); - $97 = $96 * 63.0; - $98 = $97 / 255.0; - $roundf180 = (+_roundf((+$98))); - $99 = (~~(($roundf180))&255); - $100 = ((($7)) + 2|0); - $101 = HEAP8[$100>>0]|0; - $102 = (+($101&255)); - $103 = $102 * 31.0; - $104 = $103 / 255.0; - $roundf181 = (+_roundf((+$104))); - $105 = (~~(($roundf181))&255); - $106 = $93&255; - $107 = $106 << 11; - $108 = $99&255; - $109 = $108 << 5; - $110 = $109 | $107; - $111 = $105&255; - $112 = $110 | $111; - $113 = $112&65535; - $114 = HEAP32[$0>>2]|0; - $115 = HEAP32[$79>>2]|0; - $116 = HEAP32[$81>>2]|0; - $117 = Math_imul($116, $115)|0; - $$0169192 = 0; - while(1) { - $118 = (($114) + ($$0169192<<1)|0); - HEAP16[$118>>1] = $113; - $119 = (($$0169192) + 1)|0; - $120 = ($119|0)<($117|0); - if ($120) { - $$0169192 = $119; - } else { - break; - } - } - } - break; - } - case 4: { - $121 = ((($0)) + 4|0); - $122 = HEAP32[$121>>2]|0; - $123 = ((($0)) + 8|0); - $124 = HEAP32[$123>>2]|0; - $125 = ($122*3)|0; - $126 = Math_imul($125, $124)|0; - $127 = (_malloc($126)|0); - HEAP32[$0>>2] = $127; - $128 = HEAP32[$121>>2]|0; - $129 = ($128*3)|0; - $130 = Math_imul($129, $124)|0; - $131 = ($130|0)>(0); - if ($131) { - $$0168195 = 0;$$1194 = 0; - while(1) { - $132 = (($7) + ($$1194<<2)|0); - $133 = HEAP8[$132>>0]|0; - $134 = HEAP32[$0>>2]|0; - $135 = (($134) + ($$0168195)|0); - HEAP8[$135>>0] = $133; - $136 = (((($7) + ($$1194<<2)|0)) + 1|0); - $137 = HEAP8[$136>>0]|0; - $138 = HEAP32[$0>>2]|0; - $139 = (($$0168195) + 1)|0; - $140 = (($138) + ($139)|0); - HEAP8[$140>>0] = $137; - $141 = (((($7) + ($$1194<<2)|0)) + 2|0); - $142 = HEAP8[$141>>0]|0; - $143 = HEAP32[$0>>2]|0; - $144 = (($$0168195) + 2)|0; - $145 = (($143) + ($144)|0); - HEAP8[$145>>0] = $142; - $146 = (($$1194) + 1)|0; - $147 = (($$0168195) + 3)|0; - $148 = HEAP32[$121>>2]|0; - $149 = HEAP32[$123>>2]|0; - $150 = ($148*3)|0; - $151 = Math_imul($150, $149)|0; - $152 = ($147|0)<($151|0); - if ($152) { - $$0168195 = $147;$$1194 = $146; - } else { - break; - } - } - } - break; - } - case 5: { - $153 = ((($0)) + 4|0); - $154 = HEAP32[$153>>2]|0; - $155 = ((($0)) + 8|0); - $156 = HEAP32[$155>>2]|0; - $157 = $154 << 1; - $158 = Math_imul($157, $156)|0; - $159 = (_malloc($158)|0); - HEAP32[$0>>2] = $159; - $160 = HEAP32[$153>>2]|0; - $161 = Math_imul($156, $160)|0; - $162 = ($161|0)>(0); - if ($162) { - $163 = HEAP32[$0>>2]|0; - $164 = HEAP32[$153>>2]|0; - $165 = HEAP32[$155>>2]|0; - $166 = Math_imul($165, $164)|0; - $$0167197 = 0; - while(1) { - $167 = (($7) + ($$0167197<<2)|0); - $168 = HEAP8[$167>>0]|0; - $169 = (+($168&255)); - $170 = $169 * 31.0; - $171 = $170 / 255.0; - $roundf176 = (+_roundf((+$171))); - $172 = (~~(($roundf176))&255); - $173 = (((($7) + ($$0167197<<2)|0)) + 1|0); - $174 = HEAP8[$173>>0]|0; - $175 = (+($174&255)); - $176 = $175 * 31.0; - $177 = $176 / 255.0; - $roundf177 = (+_roundf((+$177))); - $178 = (~~(($roundf177))&255); - $179 = (((($7) + ($$0167197<<2)|0)) + 2|0); - $180 = HEAP8[$179>>0]|0; - $181 = (+($180&255)); - $182 = $181 * 31.0; - $183 = $182 / 255.0; - $roundf178 = (+_roundf((+$183))); - $184 = (~~(($roundf178))&255); - $185 = (((($7) + ($$0167197<<2)|0)) + 3|0); - $186 = HEAP8[$185>>0]|0; - $187 = ($186&255)>(50); - $188 = $172&255; - $189 = $188 << 11; - $190 = $178&255; - $191 = $190 << 6; - $192 = $191 | $189; - $193 = $184&255; - $194 = $193 << 1; - $195 = $192 | $194; - $196 = $187&1; - $197 = $195 | $196; - $198 = $197&65535; - $199 = (($163) + ($$0167197<<1)|0); - HEAP16[$199>>1] = $198; - $200 = (($$0167197) + 1)|0; - $201 = ($200|0)<($166|0); - if ($201) { - $$0167197 = $200; - } else { - break; - } - } - } - break; - } - case 6: { - $202 = ((($0)) + 4|0); - $203 = HEAP32[$202>>2]|0; - $204 = ((($0)) + 8|0); - $205 = HEAP32[$204>>2]|0; - $206 = $203 << 1; - $207 = Math_imul($206, $205)|0; - $208 = (_malloc($207)|0); - HEAP32[$0>>2] = $208; - $209 = HEAP32[$202>>2]|0; - $210 = Math_imul($205, $209)|0; - $211 = ($210|0)>(0); - if ($211) { - $212 = HEAP32[$0>>2]|0; - $213 = HEAP32[$202>>2]|0; - $214 = HEAP32[$204>>2]|0; - $215 = Math_imul($214, $213)|0; - $$0166199 = 0; - while(1) { - $216 = (($7) + ($$0166199<<2)|0); - $217 = HEAP8[$216>>0]|0; - $218 = (+($217&255)); - $219 = $218 * 15.0; - $220 = $219 / 255.0; - $roundf = (+_roundf((+$220))); - $221 = (~~(($roundf))&255); - $222 = (((($7) + ($$0166199<<2)|0)) + 1|0); - $223 = HEAP8[$222>>0]|0; - $224 = (+($223&255)); - $225 = $224 * 15.0; - $226 = $225 / 255.0; - $roundf173 = (+_roundf((+$226))); - $227 = (~~(($roundf173))&255); - $228 = (((($7) + ($$0166199<<2)|0)) + 2|0); - $229 = HEAP8[$228>>0]|0; - $230 = (+($229&255)); - $231 = $230 * 15.0; - $232 = $231 / 255.0; - $roundf174 = (+_roundf((+$232))); - $233 = (~~(($roundf174))&255); - $234 = (((($7) + ($$0166199<<2)|0)) + 3|0); - $235 = HEAP8[$234>>0]|0; - $236 = (+($235&255)); - $237 = $236 * 15.0; - $238 = $237 / 255.0; - $roundf175 = (+_roundf((+$238))); - $239 = (~~(($roundf175))&255); - $240 = $221&255; - $241 = $240 << 12; - $242 = $227&255; - $243 = $242 << 8; - $244 = $243 | $241; - $245 = $233&255; - $246 = $245 << 4; - $247 = $244 | $246; - $248 = $239&255; - $249 = $247 | $248; - $250 = $249&65535; - $251 = (($212) + ($$0166199<<1)|0); - HEAP16[$251>>1] = $250; - $252 = (($$0166199) + 1)|0; - $253 = ($252|0)<($215|0); - if ($253) { - $$0166199 = $252; - } else { - break; - } - } - } - break; - } - case 7: { - $254 = ((($0)) + 4|0); - $255 = HEAP32[$254>>2]|0; - $256 = ((($0)) + 8|0); - $257 = HEAP32[$256>>2]|0; - $258 = $255 << 2; - $259 = Math_imul($258, $257)|0; - $260 = (_malloc($259)|0); - HEAP32[$0>>2] = $260; - $261 = HEAP32[$254>>2]|0; - $262 = $261 << 2; - $263 = Math_imul($262, $257)|0; - $264 = ($263|0)>(0); - if ($264) { - $$0202 = 0;$$2201 = 0; - while(1) { - $265 = (($7) + ($$2201<<2)|0); - $266 = HEAP8[$265>>0]|0; - $267 = HEAP32[$0>>2]|0; - $268 = (($267) + ($$0202)|0); - HEAP8[$268>>0] = $266; - $269 = (((($7) + ($$2201<<2)|0)) + 1|0); - $270 = HEAP8[$269>>0]|0; - $271 = HEAP32[$0>>2]|0; - $272 = $$0202 | 1; - $273 = (($271) + ($272)|0); - HEAP8[$273>>0] = $270; - $274 = (((($7) + ($$2201<<2)|0)) + 2|0); - $275 = HEAP8[$274>>0]|0; - $276 = HEAP32[$0>>2]|0; - $277 = $$0202 | 2; - $278 = (($276) + ($277)|0); - HEAP8[$278>>0] = $275; - $279 = (((($7) + ($$2201<<2)|0)) + 3|0); - $280 = HEAP8[$279>>0]|0; - $281 = HEAP32[$0>>2]|0; - $282 = $$0202 | 3; - $283 = (($281) + ($282)|0); - HEAP8[$283>>0] = $280; - $284 = (($$2201) + 1)|0; - $285 = (($$0202) + 4)|0; - $286 = HEAP32[$254>>2]|0; - $287 = HEAP32[$256>>2]|0; - $288 = $286 << 2; - $289 = Math_imul($288, $287)|0; - $290 = ($285|0)<($289|0); - if ($290) { - $$0202 = $285;$$2201 = $284; - } else { - break; - } - } - } - break; - } - default: { - } - } - _free($7); - STACKTOP = sp;return; -} -function _LoadTextureFromImage($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$sroa$10$0$$sroa_idx6 = 0, $$sroa$12$0$$sroa_idx8 = 0, $$sroa$6$0$$sroa_idx2 = 0, $$sroa$8$0$$sroa_idx4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0; - var $vararg_ptr4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $2 = HEAP32[$1>>2]|0; - $3 = ((($1)) + 4|0); - $4 = HEAP32[$3>>2]|0; - $5 = ((($1)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = ((($1)) + 16|0); - $8 = HEAP32[$7>>2]|0; - $9 = ((($1)) + 12|0); - $10 = HEAP32[$9>>2]|0; - $11 = (_rlLoadTexture($2,$4,$6,$8,$10)|0); - $12 = HEAP32[$3>>2]|0; - $13 = HEAP32[$5>>2]|0; - HEAP32[$vararg_buffer>>2] = $11; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $12; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $13; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $10; - $vararg_ptr4 = ((($vararg_buffer)) + 16|0); - HEAP32[$vararg_ptr4>>2] = $8; - _TraceLog(3,3649,$vararg_buffer); - HEAP32[$0>>2] = $11; - $$sroa$6$0$$sroa_idx2 = ((($0)) + 4|0); - HEAP32[$$sroa$6$0$$sroa_idx2>>2] = $12; - $$sroa$8$0$$sroa_idx4 = ((($0)) + 8|0); - HEAP32[$$sroa$8$0$$sroa_idx4>>2] = $13; - $$sroa$10$0$$sroa_idx6 = ((($0)) + 12|0); - HEAP32[$$sroa$10$0$$sroa_idx6>>2] = $10; - $$sroa$12$0$$sroa_idx8 = ((($0)) + 16|0); - HEAP32[$$sroa$12$0$$sroa_idx8>>2] = $8; - STACKTOP = sp;return; -} -function _UnloadImage($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - $2 = ($1|0)==(0|0); - if ($2) { - return; - } - _free($1); - return; -} -function _rlLoadTexture($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0 = 0, $$off = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond101 = 0, $or$cond7 = 0, $or$cond97 = 0, $or$cond99 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer15 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0; - var $vararg_buffer9 = 0, $vararg_ptr13 = 0, $vararg_ptr14 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $vararg_buffer15 = sp + 64|0; - $vararg_buffer11 = sp + 48|0; - $vararg_buffer9 = sp + 40|0; - $vararg_buffer7 = sp + 32|0; - $vararg_buffer5 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $5 = sp + 68|0; - _glBindTexture(3553,0); - HEAP32[$5>>2] = 0; - $6 = HEAP32[3531]|0; - $7 = ($6|0)==(0); - $$off = (($3) + -9)|0; - $8 = ($$off>>>0)<(4); - $or$cond = $8 & $7; - if ($or$cond) { - _TraceLog(1,3699,$vararg_buffer); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $9 = HEAP32[3532]|0; - $10 = ($9|0)==(0); - $11 = ($3|0)==(13); - $or$cond7 = $11 & $10; - if ($or$cond7) { - _TraceLog(1,3743,$vararg_buffer1); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $12 = HEAP32[3533]|0; - $13 = ($12|0)==(0); - $14 = $3 | 1; - $15 = ($14|0)==(15); - $or$cond97 = $15 & $13; - if ($or$cond97) { - _TraceLog(1,3788,$vararg_buffer3); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $16 = HEAP32[3534]|0; - $17 = ($16|0)==(0); - $18 = ($14|0)==(17); - $or$cond99 = $18 & $17; - if ($or$cond99) { - _TraceLog(1,3833,$vararg_buffer5); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $19 = HEAP32[3535]|0; - $20 = ($19|0)==(0); - $21 = ($14|0)==(19); - $or$cond101 = $21 & $20; - if ($or$cond101) { - _TraceLog(1,3878,$vararg_buffer7); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - _glGenTextures(1,($5|0)); - $22 = HEAP32[$5>>2]|0; - _glBindTexture(3553,($22|0)); - do { - switch ($3|0) { - case 1: { - _glTexImage2D(3553,0,6409,($1|0),($2|0),0,6409,5121,($0|0)); - break; - } - case 2: { - _glTexImage2D(3553,0,6410,($1|0),($2|0),0,6410,5121,($0|0)); - break; - } - case 3: { - _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,33635,($0|0)); - break; - } - case 4: { - _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,5121,($0|0)); - break; - } - case 5: { - _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32820,($0|0)); - break; - } - case 6: { - _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32819,($0|0)); - break; - } - case 7: { - _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,5121,($0|0)); - break; - } - case 8: { - $23 = HEAP32[3536]|0; - $24 = ($23|0)==(0); - if (!($24)) { - _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,5126,($0|0)); - } - break; - } - case 9: { - $25 = HEAP32[3531]|0; - $26 = ($25|0)==(0); - if (!($26)) { - _LoadTextureCompressed($0,$1,$2,33776,$4); - } - break; - } - case 10: { - $27 = HEAP32[3531]|0; - $28 = ($27|0)==(0); - if (!($28)) { - _LoadTextureCompressed($0,$1,$2,33777,$4); - } - break; - } - case 11: { - $29 = HEAP32[3531]|0; - $30 = ($29|0)==(0); - if (!($30)) { - _LoadTextureCompressed($0,$1,$2,33778,$4); - } - break; - } - case 12: { - $31 = HEAP32[3531]|0; - $32 = ($31|0)==(0); - if (!($32)) { - _LoadTextureCompressed($0,$1,$2,33779,$4); - } - break; - } - case 13: { - $33 = HEAP32[3532]|0; - $34 = ($33|0)==(0); - if (!($34)) { - _LoadTextureCompressed($0,$1,$2,36196,$4); - } - break; - } - case 14: { - $35 = HEAP32[3533]|0; - $36 = ($35|0)==(0); - if (!($36)) { - _LoadTextureCompressed($0,$1,$2,37492,$4); - } - break; - } - case 15: { - $37 = HEAP32[3533]|0; - $38 = ($37|0)==(0); - if (!($38)) { - _LoadTextureCompressed($0,$1,$2,37496,$4); - } - break; - } - case 16: { - $39 = HEAP32[3534]|0; - $40 = ($39|0)==(0); - if (!($40)) { - _LoadTextureCompressed($0,$1,$2,35840,$4); - } - break; - } - case 17: { - $41 = HEAP32[3534]|0; - $42 = ($41|0)==(0); - if (!($42)) { - _LoadTextureCompressed($0,$1,$2,35842,$4); - } - break; - } - case 18: { - $43 = HEAP32[3535]|0; - $44 = ($43|0)==(0); - if (!($44)) { - _LoadTextureCompressed($0,$1,$2,37808,$4); - } - break; - } - case 19: { - $45 = HEAP32[3535]|0; - $46 = ($45|0)==(0); - if (!($46)) { - _LoadTextureCompressed($0,$1,$2,37815,$4); - } - break; - } - default: { - _TraceLog(1,3923,$vararg_buffer9); - } - } - } while(0); - $47 = HEAP32[3537]|0; - $48 = ($47|0)==(0); - if ($48) { - _glTexParameteri(3553,10242,33071); - _glTexParameteri(3553,10243,33071); - } else { - _glTexParameteri(3553,10242,10497); - _glTexParameteri(3553,10243,10497); - } - _glTexParameteri(3553,10240,9728); - _glTexParameteri(3553,10241,9728); - _glBindTexture(3553,0); - $49 = HEAP32[$5>>2]|0; - $50 = ($49|0)==(0); - if ($50) { - _TraceLog(1,4001,$vararg_buffer15); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } else { - HEAP32[$vararg_buffer11>>2] = $49; - $vararg_ptr13 = ((($vararg_buffer11)) + 4|0); - HEAP32[$vararg_ptr13>>2] = $1; - $vararg_ptr14 = ((($vararg_buffer11)) + 8|0); - HEAP32[$vararg_ptr14>>2] = $2; - _TraceLog(0,3952,$vararg_buffer11); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - return (0)|0; -} -function _LoadTextureCompressed($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$ = 0, $$03645 = 0, $$03744 = 0, $$038 = 0, $$03943 = 0, $$046 = 0, $$140 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond42 = 0, label = 0, sp = 0; - sp = STACKTOP; - _glPixelStorei(3317,1); - switch ($3|0) { - case 33776: case 33777: case 36196: case 37492: { - $$038 = 8; - break; - } - default: { - $$038 = 16; - } - } - $5 = ($4|0)<(1); - $6 = $1 | $2; - $7 = ($6|0)==(0); - $or$cond42 = $5 | $7; - if ($or$cond42) { - return; - } else { - $$03645 = 0;$$03744 = 0;$$03943 = $2;$$046 = $1; - } - while(1) { - $8 = (($$046) + 3)|0; - $9 = (($8|0) / 4)&-1; - $10 = (($$03943) + 3)|0; - $11 = (($10|0) / 4)&-1; - $12 = Math_imul($11, $$038)|0; - $13 = Math_imul($12, $9)|0; - $14 = (($0) + ($$03744)|0); - _glCompressedTexImage2D(3553,($$03645|0),($3|0),($$046|0),($$03943|0),0,($13|0),($14|0)); - $15 = (($13) + ($$03744))|0; - $16 = (($$046|0) / 2)&-1; - $17 = (($$03943|0) / 2)&-1; - $18 = ($$046|0)<(2); - $$ = $18 ? 1 : $16; - $19 = ($$03943|0)<(2); - $$140 = $19 ? 1 : $17; - $20 = (($$03645) + 1)|0; - $21 = ($20|0)>=($4|0); - $22 = $$ | $$140; - $23 = ($22|0)==(0); - $or$cond = $21 | $23; - if ($or$cond) { - break; - } else { - $$03645 = $20;$$03744 = $15;$$03943 = $$140;$$046 = $$; - } - } - return; -} -function _GetImageData($0) { - $0 = $0|0; - var $$0104105 = 0, $$0106 = 0, $$1 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; - var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; - var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0.0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0.0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; - var $97 = 0.0, $98 = 0.0, $99 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = ((($0)) + 4|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 8|0); - $4 = HEAP32[$3>>2]|0; - $5 = $2 << 2; - $6 = Math_imul($5, $4)|0; - $7 = (_malloc($6)|0); - $8 = HEAP32[$1>>2]|0; - $9 = Math_imul($4, $8)|0; - $10 = ($9|0)>(0); - if (!($10)) { - STACKTOP = sp;return ($7|0); - } - $11 = ((($0)) + 16|0); - $12 = HEAP32[$11>>2]|0; - $13 = HEAP32[$0>>2]|0; - $$0104105 = 0;$$0106 = 0; - while(1) { - switch ($12|0) { - case 1: { - $14 = (($13) + ($$0106)|0); - $15 = HEAP8[$14>>0]|0; - $16 = (($7) + ($$0104105<<2)|0); - HEAP8[$16>>0] = $15; - $17 = HEAP8[$14>>0]|0; - $18 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$18>>0] = $17; - $19 = HEAP8[$14>>0]|0; - $20 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$20>>0] = $19; - $21 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$21>>0] = -1; - $22 = (($$0106) + 1)|0; - $$1 = $22; - break; - } - case 2: { - $23 = (($13) + ($$0106)|0); - $24 = HEAP8[$23>>0]|0; - $25 = (($7) + ($$0104105<<2)|0); - HEAP8[$25>>0] = $24; - $26 = HEAP8[$23>>0]|0; - $27 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$27>>0] = $26; - $28 = HEAP8[$23>>0]|0; - $29 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$29>>0] = $28; - $30 = (($$0106) + 1)|0; - $31 = (($13) + ($30)|0); - $32 = HEAP8[$31>>0]|0; - $33 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$33>>0] = $32; - $34 = (($$0106) + 2)|0; - $$1 = $34; - break; - } - case 5: { - $35 = (($13) + ($$0106<<1)|0); - $36 = HEAP16[$35>>1]|0; - $37 = $36&65535; - $38 = $37 >>> 11; - $39 = (+($38|0)); - $40 = $39 * 8.0; - $41 = (~~(($40))&255); - $42 = (($7) + ($$0104105<<2)|0); - HEAP8[$42>>0] = $41; - $43 = $37 >>> 6; - $44 = $43 & 31; - $45 = (+($44|0)); - $46 = $45 * 8.0; - $47 = (~~(($46))&255); - $48 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$48>>0] = $47; - $49 = $37 >>> 1; - $50 = $49 & 31; - $51 = (+($50|0)); - $52 = $51 * 8.0; - $53 = (~~(($52))&255); - $54 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$54>>0] = $53; - $55 = $37 & 1; - $56 = (0 - ($55))|0; - $57 = $56&255; - $58 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$58>>0] = $57; - $59 = (($$0106) + 1)|0; - $$1 = $59; - break; - } - case 3: { - $60 = (($13) + ($$0106<<1)|0); - $61 = HEAP16[$60>>1]|0; - $62 = $61&65535; - $63 = $62 >>> 11; - $64 = (+($63|0)); - $65 = $64 * 8.0; - $66 = (~~(($65))&255); - $67 = (($7) + ($$0104105<<2)|0); - HEAP8[$67>>0] = $66; - $68 = $62 >>> 5; - $69 = $68 & 63; - $70 = (+($69|0)); - $71 = $70 * 4.0; - $72 = (~~(($71))&255); - $73 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$73>>0] = $72; - $74 = $62 & 31; - $75 = (+($74|0)); - $76 = $75 * 8.0; - $77 = (~~(($76))&255); - $78 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$78>>0] = $77; - $79 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$79>>0] = -1; - $80 = (($$0106) + 1)|0; - $$1 = $80; - break; - } - case 6: { - $81 = (($13) + ($$0106<<1)|0); - $82 = HEAP16[$81>>1]|0; - $83 = $82&65535; - $84 = $83 >>> 12; - $85 = (+($84|0)); - $86 = $85 * 17.0; - $87 = (~~(($86))&255); - $88 = (($7) + ($$0104105<<2)|0); - HEAP8[$88>>0] = $87; - $89 = $83 >>> 8; - $90 = $89 & 15; - $91 = (+($90|0)); - $92 = $91 * 17.0; - $93 = (~~(($92))&255); - $94 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$94>>0] = $93; - $95 = $83 >>> 4; - $96 = $95 & 15; - $97 = (+($96|0)); - $98 = $97 * 17.0; - $99 = (~~(($98))&255); - $100 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$100>>0] = $99; - $101 = $83 & 15; - $102 = (+($101|0)); - $103 = $102 * 17.0; - $104 = (~~(($103))&255); - $105 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$105>>0] = $104; - $106 = (($$0106) + 1)|0; - $$1 = $106; - break; - } - case 7: { - $107 = (($13) + ($$0106)|0); - $108 = HEAP8[$107>>0]|0; - $109 = (($7) + ($$0104105<<2)|0); - HEAP8[$109>>0] = $108; - $110 = (($$0106) + 1)|0; - $111 = (($13) + ($110)|0); - $112 = HEAP8[$111>>0]|0; - $113 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$113>>0] = $112; - $114 = (($$0106) + 2)|0; - $115 = (($13) + ($114)|0); - $116 = HEAP8[$115>>0]|0; - $117 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$117>>0] = $116; - $118 = (($$0106) + 3)|0; - $119 = (($13) + ($118)|0); - $120 = HEAP8[$119>>0]|0; - $121 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$121>>0] = $120; - $122 = (($$0106) + 4)|0; - $$1 = $122; - break; - } - case 4: { - $123 = (($13) + ($$0106)|0); - $124 = HEAP8[$123>>0]|0; - $125 = (($7) + ($$0104105<<2)|0); - HEAP8[$125>>0] = $124; - $126 = (($$0106) + 1)|0; - $127 = (($13) + ($126)|0); - $128 = HEAP8[$127>>0]|0; - $129 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$129>>0] = $128; - $130 = (($$0106) + 2)|0; - $131 = (($13) + ($130)|0); - $132 = HEAP8[$131>>0]|0; - $133 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$133>>0] = $132; - $134 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$134>>0] = -1; - $135 = (($$0106) + 3)|0; - $$1 = $135; - break; - } - default: { - _TraceLog(1,4084,$vararg_buffer); - $$1 = $$0106; - } - } - $136 = (($$0104105) + 1)|0; - $137 = HEAP32[$1>>2]|0; - $138 = HEAP32[$3>>2]|0; - $139 = Math_imul($138, $137)|0; - $140 = ($136|0)<($139|0); - if ($140) { - $$0104105 = $136;$$0106 = $$1; - } else { - break; - } - } - STACKTOP = sp;return ($7|0); -} -function _UnloadDefaultFont() { - var $$byval_copy = 0, $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $$byval_copy = sp; - ;HEAP32[$$byval_copy>>2]=HEAP32[14092>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[14092+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[14092+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[14092+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[14092+16>>2]|0; - _UnloadTexture($$byval_copy); - $0 = HEAP32[(14120)>>2]|0; - _free($0); - STACKTOP = sp;return; -} -function _UnloadTexture($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = HEAP32[$0>>2]|0; - $2 = ($1|0)==(0); - if ($2) { - STACKTOP = sp;return; - } - _rlDeleteTextures($1); - $3 = HEAP32[$0>>2]|0; - HEAP32[$vararg_buffer>>2] = $3; - _TraceLog(0,4130,$vararg_buffer); - STACKTOP = sp;return; -} -function _rlDeleteTextures($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - HEAP32[$1>>2] = $0; - $2 = ($0|0)==(0); - if (!($2)) { - _glDeleteTextures(1,($1|0)); - } - STACKTOP = sp;return; -} -function _GetDefaultFont($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - ;HEAP32[$0>>2]=HEAP32[14092>>2]|0;HEAP32[$0+4>>2]=HEAP32[14092+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[14092+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[14092+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[14092+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[14092+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[14092+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[14092+28>>2]|0; - return; -} -function _DrawText($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$ = 0, $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $$byval_copy2 = sp + 112|0; - $$byval_copy1 = sp + 104|0; - $$byval_copy = sp + 72|0; - $5 = sp + 32|0; - $6 = sp + 64|0; - $7 = sp; - _GetDefaultFont($5); - $8 = HEAP32[$5>>2]|0; - $9 = ($8|0)==(0); - if ($9) { - STACKTOP = sp;return; - } - $10 = (+($1|0)); - HEAPF32[$6>>2] = $10; - $11 = ((($6)) + 4|0); - $12 = (+($2|0)); - HEAPF32[$11>>2] = $12; - $13 = ($3|0)>(10); - $$ = $13 ? $3 : 10; - $14 = (($$>>>0) / 10)&-1; - _GetDefaultFont($7); - $15 = (+($$|0)); - ;HEAP32[$$byval_copy>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$7+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$7+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$7+16>>2]|0;HEAP32[$$byval_copy+20>>2]=HEAP32[$7+20>>2]|0;HEAP32[$$byval_copy+24>>2]=HEAP32[$7+24>>2]|0;HEAP32[$$byval_copy+28>>2]=HEAP32[$7+28>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$6+4>>2]|0; - ;HEAP8[$$byval_copy2>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$4+3>>0]|0; - _DrawTextEx($$byval_copy,$0,$$byval_copy1,$15,$14,$$byval_copy2); - STACKTOP = sp;return; -} -function _DrawTextEx($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = +$3; - $4 = $4|0; - $5 = $5|0; - var $$04954 = 0, $$05153 = 0, $$055 = 0, $$1 = 0, $$150 = 0, $$152 = 0, $$2 = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $$byval_copy5 = 0, $$sink = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0; - var $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0.0, $29 = 0.0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $50 = 0.0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0; - var $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; - var $75 = 0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $$byval_copy5 = sp + 88|0; - $$byval_copy4 = sp + 80|0; - $$byval_copy3 = sp + 64|0; - $$byval_copy2 = sp + 48|0; - $$byval_copy1 = sp + 24|0; - $6 = sp + 8|0; - $7 = sp; - $8 = (_strlen($1)|0); - $9 = ((($0)) + 20|0); - $10 = HEAP32[$9>>2]|0; - $11 = (+($10|0)); - $12 = $3 / $11; - $13 = ($8|0)>(0); - if (!($13)) { - STACKTOP = sp;return; - } - $14 = ((($0)) + 28|0); - $15 = +HEAPF32[$2>>2]; - $16 = ((($6)) + 4|0); - $17 = ((($2)) + 4|0); - $18 = ((($6)) + 8|0); - $19 = ((($6)) + 12|0); - $20 = ((($7)) + 4|0); - $21 = (+($4|0)); - $$04954 = 0;$$05153 = 0;$$055 = 0; - while(1) { - $22 = (($1) + ($$055)|0); - $23 = HEAP8[$22>>0]|0; - $24 = $23&255; - switch ($23<<24>>24) { - case 10: { - $25 = HEAP32[$9>>2]|0; - $26 = (($25|0) / 2)&-1; - $27 = (($26) + ($25))|0; - $28 = (+($27|0)); - $29 = $12 * $28; - $30 = (~~(($29))); - $31 = (($30) + ($$05153))|0; - $$150 = 0;$$152 = $31;$$2 = $$055; - break; - } - case -62: { - $32 = (($$055) + 1)|0; - $33 = (($1) + ($32)|0); - $34 = HEAP8[$33>>0]|0; - $35 = $34&255; - $$1 = $32;$$sink = $35; - label = 8; - break; - } - case -61: { - $36 = (($$055) + 1)|0; - $37 = (($1) + ($36)|0); - $38 = HEAP8[$37>>0]|0; - $39 = $38&255; - $40 = (($39) + 64)|0; - $$1 = $36;$$sink = $40; - label = 8; - break; - } - default: { - $$1 = $$055;$$sink = $24; - label = 8; - } - } - do { - if ((label|0) == 8) { - label = 0; - ;HEAP32[$$byval_copy5>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy5+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy5+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$$byval_copy5+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$$byval_copy5+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[$$byval_copy5+28>>2]=HEAP32[$0+28>>2]|0; - $41 = (_GetCharIndex($$byval_copy5,$$sink)|0); - $42 = HEAP32[$14>>2]|0; - $43 = (((($42) + ($41<<5)|0)) + 4|0); - $44 = (+($$04954|0)); - $45 = $44 + $15; - $46 = (((($42) + ($41<<5)|0)) + 20|0); - $47 = HEAP32[$46>>2]|0; - $48 = (+($47|0)); - $49 = $12 * $48; - $50 = $45 + $49; - $51 = (~~(($50))); - HEAP32[$6>>2] = $51; - $52 = +HEAPF32[$17>>2]; - $53 = (+($$05153|0)); - $54 = $53 + $52; - $55 = (((($42) + ($41<<5)|0)) + 24|0); - $56 = HEAP32[$55>>2]|0; - $57 = (+($56|0)); - $58 = $12 * $57; - $59 = $54 + $58; - $60 = (~~(($59))); - HEAP32[$16>>2] = $60; - $61 = (((($42) + ($41<<5)|0)) + 12|0); - $62 = HEAP32[$61>>2]|0; - $63 = (+($62|0)); - $64 = $12 * $63; - $65 = (~~(($64))); - HEAP32[$18>>2] = $65; - $66 = (((($42) + ($41<<5)|0)) + 16|0); - $67 = HEAP32[$66>>2]|0; - $68 = (+($67|0)); - $69 = $12 * $68; - $70 = (~~(($69))); - HEAP32[$19>>2] = $70; - HEAPF32[$7>>2] = 0.0; - HEAPF32[$20>>2] = 0.0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; - ;HEAP32[$$byval_copy2>>2]=HEAP32[$43>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$43+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$43+8>>2]|0;HEAP32[$$byval_copy2+12>>2]=HEAP32[$43+12>>2]|0; - ;HEAP32[$$byval_copy3>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$byval_copy3+12>>2]=HEAP32[$6+12>>2]|0; - ;HEAP32[$$byval_copy4>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$7+4>>2]|0; - ;HEAP8[$$byval_copy5>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy5+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy5+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy5+3>>0]=HEAP8[$5+3>>0]|0; - _DrawTexturePro($$byval_copy1,$$byval_copy2,$$byval_copy3,$$byval_copy4,0.0,$$byval_copy5); - $71 = HEAP32[$14>>2]|0; - $72 = (((($71) + ($41<<5)|0)) + 28|0); - $73 = HEAP32[$72>>2]|0; - $74 = ($73|0)==(0); - if ($74) { - $75 = (((($71) + ($41<<5)|0)) + 12|0); - $76 = HEAP32[$75>>2]|0; - $77 = (+($76|0)); - $78 = $12 * $77; - $79 = $21 + $78; - $80 = (~~(($79))); - $81 = (($80) + ($$04954))|0; - $$150 = $81;$$152 = $$05153;$$2 = $$1; - break; - } else { - $82 = (+($73|0)); - $83 = $12 * $82; - $84 = $21 + $83; - $85 = (~~(($84))); - $86 = (($85) + ($$04954))|0; - $$150 = $86;$$152 = $$05153;$$2 = $$1; - break; - } - } - } while(0); - $87 = (($$2) + 1)|0; - $88 = ($87|0)<($8|0); - if ($88) { - $$04954 = $$150;$$05153 = $$152;$$055 = $87; - } else { - break; - } - } - STACKTOP = sp;return; -} -function _GetCharIndex($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$08 = 0, $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 24|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)>(0); - if (!($4)) { - $$08 = 0; - return ($$08|0); - } - $5 = ((($0)) + 28|0); - $6 = HEAP32[$5>>2]|0; - $$09 = 0; - while(1) { - $7 = (($6) + ($$09<<5)|0); - $8 = HEAP32[$7>>2]|0; - $9 = ($8|0)==($1|0); - if ($9) { - $$08 = $$09; - label = 5; - break; - } - $10 = (($$09) + 1)|0; - $11 = HEAP32[$2>>2]|0; - $12 = ($10|0)<($11|0); - if ($12) { - $$09 = $10; - } else { - $$08 = 0; - label = 5; - break; - } - } - if ((label|0) == 5) { - return ($$08|0); - } - return (0)|0; -} -function _DrawTexturePro($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = +$4; - $5 = $5|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0; - var $50 = 0, $51 = 0.0, $52 = 0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0; - var $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0, $83 = 0.0, $84 = 0, $85 = 0, $86 = 0; - var $87 = 0.0, $88 = 0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0, $92 = 0.0, $93 = 0, $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $6 = HEAP32[$0>>2]|0; - $7 = ($6|0)==(0); - if ($7) { - return; - } - $8 = ((($1)) + 8|0); - $9 = HEAP32[$8>>2]|0; - $10 = ($9|0)<(0); - if ($10) { - $11 = HEAP32[$1>>2]|0; - $12 = (($11) - ($9))|0; - HEAP32[$1>>2] = $12; - } - $13 = ((($1)) + 12|0); - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)<(0); - if ($15) { - $16 = ((($1)) + 4|0); - $17 = HEAP32[$16>>2]|0; - $18 = (($17) - ($14))|0; - HEAP32[$16>>2] = $18; - } - $19 = HEAP32[$0>>2]|0; - _rlEnableTexture($19); - _rlPushMatrix(); - $20 = HEAP32[$2>>2]|0; - $21 = (+($20|0)); - $22 = ((($2)) + 4|0); - $23 = HEAP32[$22>>2]|0; - $24 = (+($23|0)); - _rlTranslatef($21,$24,0.0); - _rlRotatef($4,0.0,0.0,1.0); - $25 = +HEAPF32[$3>>2]; - $26 = -$25; - $27 = ((($3)) + 4|0); - $28 = +HEAPF32[$27>>2]; - $29 = -$28; - _rlTranslatef($26,$29,0.0); - _rlBegin(7); - $30 = HEAP8[$5>>0]|0; - $31 = ((($5)) + 1|0); - $32 = HEAP8[$31>>0]|0; - $33 = ((($5)) + 2|0); - $34 = HEAP8[$33>>0]|0; - $35 = ((($5)) + 3|0); - $36 = HEAP8[$35>>0]|0; - _rlColor4ub($30,$32,$34,$36); - $37 = HEAP32[$1>>2]|0; - $38 = (+($37|0)); - $39 = ((($0)) + 4|0); - $40 = HEAP32[$39>>2]|0; - $41 = (+($40|0)); - $42 = $38 / $41; - $43 = ((($1)) + 4|0); - $44 = HEAP32[$43>>2]|0; - $45 = (+($44|0)); - $46 = ((($0)) + 8|0); - $47 = HEAP32[$46>>2]|0; - $48 = (+($47|0)); - $49 = $45 / $48; - _rlTexCoord2f($42,$49); - _rlVertex2f(0.0,0.0); - $50 = HEAP32[$1>>2]|0; - $51 = (+($50|0)); - $52 = HEAP32[$39>>2]|0; - $53 = (+($52|0)); - $54 = $51 / $53; - $55 = HEAP32[$43>>2]|0; - $56 = HEAP32[$13>>2]|0; - $57 = (($56) + ($55))|0; - $58 = (+($57|0)); - $59 = HEAP32[$46>>2]|0; - $60 = (+($59|0)); - $61 = $58 / $60; - _rlTexCoord2f($54,$61); - $62 = ((($2)) + 12|0); - $63 = HEAP32[$62>>2]|0; - $64 = (+($63|0)); - _rlVertex2f(0.0,$64); - $65 = HEAP32[$1>>2]|0; - $66 = HEAP32[$8>>2]|0; - $67 = (($66) + ($65))|0; - $68 = (+($67|0)); - $69 = HEAP32[$39>>2]|0; - $70 = (+($69|0)); - $71 = $68 / $70; - $72 = HEAP32[$43>>2]|0; - $73 = HEAP32[$13>>2]|0; - $74 = (($73) + ($72))|0; - $75 = (+($74|0)); - $76 = HEAP32[$46>>2]|0; - $77 = (+($76|0)); - $78 = $75 / $77; - _rlTexCoord2f($71,$78); - $79 = ((($2)) + 8|0); - $80 = HEAP32[$79>>2]|0; - $81 = (+($80|0)); - $82 = HEAP32[$62>>2]|0; - $83 = (+($82|0)); - _rlVertex2f($81,$83); - $84 = HEAP32[$1>>2]|0; - $85 = HEAP32[$8>>2]|0; - $86 = (($85) + ($84))|0; - $87 = (+($86|0)); - $88 = HEAP32[$39>>2]|0; - $89 = (+($88|0)); - $90 = $87 / $89; - $91 = HEAP32[$43>>2]|0; - $92 = (+($91|0)); - $93 = HEAP32[$46>>2]|0; - $94 = (+($93|0)); - $95 = $92 / $94; - _rlTexCoord2f($90,$95); - $96 = HEAP32[$79>>2]|0; - $97 = (+($96|0)); - _rlVertex2f($97,0.0); - _rlEnd(); - _rlPopMatrix(); - _rlDisableTexture(); - return; -} -function _rlEnableTexture($0) { - $0 = $0|0; - var $$pr = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[3587]|0; - $2 = HEAP32[3585]|0; - $3 = (($2) + -1)|0; - $4 = (((($1) + (($3*144)|0)|0)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = ($5|0)==($0|0); - if ($6) { - return; - } - $7 = (($1) + (($3*144)|0)|0); - $8 = HEAP32[$7>>2]|0; - $9 = ($8|0)>(0); - $10 = (($2) + 1)|0; - if ($9) { - HEAP32[3585] = $10; - $12 = $10; - } else { - $$pr = HEAP32[3585]|0; - $12 = $$pr; - } - $11 = ($12|0)>(255); - if ($11) { - _rlglDraw(); - HEAP32[3585] = 1; - } - $13 = HEAP32[3587]|0; - $14 = HEAP32[3585]|0; - $15 = (($14) + -1)|0; - $16 = (((($13) + (($15*144)|0)|0)) + 8|0); - HEAP32[$16>>2] = $0; - $17 = (($13) + (($15*144)|0)|0); - HEAP32[$17>>2] = 0; - return; -} -function _rlPushMatrix() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $0 = HEAP32[3773]|0; - $1 = ($0|0)==(15); - if ($1) { - HEAP32[$vararg_buffer>>2] = 16; - _TraceLog(2,4259,$vararg_buffer); - } - $2 = HEAP32[3773]|0; - $3 = (15096 + ($2<<6)|0); - $4 = HEAP32[4030]|0; - dest=$3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _rlLoadIdentity(); - $5 = HEAP32[3773]|0; - $6 = (($5) + 1)|0; - HEAP32[3773] = $6; - $7 = HEAP32[4035]|0; - $8 = ($7|0)==(5888); - if (!($8)) { - STACKTOP = sp;return; - } - HEAP32[4031] = 1; - STACKTOP = sp;return; -} -function _rlTranslatef($0,$1,$2) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy1 = sp + 192|0; - $$byval_copy = sp + 128|0; - $3 = sp + 64|0; - $4 = sp; - _MatrixTranslate($3,$0,$1,$2); - $5 = HEAP32[4030]|0; - dest=$$byval_copy; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy1; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($4,$$byval_copy,$$byval_copy1); - dest=$5; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _rlRotatef($0,$1,$2,$3) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - var $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); - $$byval_copy2 = sp + 272|0; - $$byval_copy1 = sp + 208|0; - $4 = sp + 144|0; - $5 = sp + 64|0; - $6 = sp + 80|0; - $7 = sp; - _MatrixIdentity($4); - HEAPF32[$5>>2] = $1; - $8 = ((($5)) + 4|0); - HEAPF32[$8>>2] = $2; - $9 = ((($5)) + 8|0); - HEAPF32[$9>>2] = $3; - _Vector3Normalize($5); - $10 = $0 * 0.01745329238474369; - ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0; - _MatrixRotate($6,$$byval_copy2,$10); - dest=$4; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $11 = HEAP32[4030]|0; - dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy2; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($7,$$byval_copy1,$$byval_copy2); - dest=$11; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _rlBegin($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - HEAP32[4034] = $0; - return; -} -function _rlColor4ub($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$sink37 = 0, $$sink38 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = HEAP32[4034]|0; - switch ($4|0) { - case 1: { - $$sink37 = (14360);$$sink38 = (14372); - break; - } - case 4: { - $$sink37 = (14408);$$sink38 = (14420); - break; - } - case 7: { - $$sink37 = (14168);$$sink38 = (14180); - break; - } - default: { - return; - } - } - $5 = HEAP32[$$sink38>>2]|0; - $6 = HEAP32[$$sink37>>2]|0; - $7 = $6 << 2; - $8 = (($5) + ($7)|0); - HEAP8[$8>>0] = $0; - $9 = HEAP32[$$sink38>>2]|0; - $10 = HEAP32[$$sink37>>2]|0; - $11 = $10 << 2; - $12 = $11 | 1; - $13 = (($9) + ($12)|0); - HEAP8[$13>>0] = $1; - $14 = HEAP32[$$sink38>>2]|0; - $15 = HEAP32[$$sink37>>2]|0; - $16 = $15 << 2; - $17 = $16 | 2; - $18 = (($14) + ($17)|0); - HEAP8[$18>>0] = $2; - $19 = HEAP32[$$sink38>>2]|0; - $20 = HEAP32[$$sink37>>2]|0; - $21 = $20 << 2; - $22 = $21 | 3; - $23 = (($19) + ($22)|0); - HEAP8[$23>>0] = $3; - $24 = HEAP32[$$sink37>>2]|0; - $25 = (($24) + 1)|0; - HEAP32[$$sink37>>2] = $25; - return; -} -function _rlNormal3f($0,$1,$2) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function _rlTexCoord2f($0,$1) { - $0 = +$0; - $1 = +$1; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP32[4034]|0; - $3 = ($2|0)==(7); - if (!($3)) { - return; - } - $4 = HEAP32[(14176)>>2]|0; - $5 = HEAP32[(14164)>>2]|0; - $6 = $5 << 1; - $7 = (($4) + ($6<<2)|0); - HEAPF32[$7>>2] = $0; - $8 = $6 | 1; - $9 = (($4) + ($8<<2)|0); - HEAPF32[$9>>2] = $1; - $10 = (($5) + 1)|0; - HEAP32[(14164)>>2] = $10; - return; -} -function _rlVertex2f($0,$1) { - $0 = +$0; - $1 = +$1; - var $2 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = +HEAPF32[741]; - _rlVertex3f($0,$1,$2); - return; -} -function _rlEnd() { - var $$03956 = 0, $$04052 = 0, $$04154 = 0, $$04248 = 0, $$04347 = 0, $$byval_copy = 0, $$promoted = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0; - var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0; - var $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0; - var $146 = 0, $147 = 0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond60 = 0, $exitcond63 = 0; - var $scevgep = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $$byval_copy = sp; - $0 = HEAP32[4031]|0; - $1 = ($0|0)==(0); - if (!($1)) { - $2 = HEAP32[4032]|0; - $3 = ($2|0)>(0); - if ($3) { - $$03956 = 0; - while(1) { - $6 = HEAP32[4033]|0; - $7 = (($6) + (($$03956*12)|0)|0); - $8 = HEAP32[4030]|0; - dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _Vector3Transform($7,$$byval_copy); - $9 = (($$03956) + 1)|0; - $5 = HEAP32[4032]|0; - $10 = ($9|0)<($5|0); - if ($10) { - $$03956 = $9; - } else { - break; - } - } - HEAP32[4031] = 0; - $4 = ($5|0)>(0); - if ($4) { - $$04154 = 0; - while(1) { - $11 = HEAP32[4033]|0; - $12 = (($11) + (($$04154*12)|0)|0); - $13 = +HEAPF32[$12>>2]; - $14 = (((($11) + (($$04154*12)|0)|0)) + 4|0); - $15 = +HEAPF32[$14>>2]; - $16 = (((($11) + (($$04154*12)|0)|0)) + 8|0); - $17 = +HEAPF32[$16>>2]; - _rlVertex3f($13,$15,$17); - $18 = (($$04154) + 1)|0; - $19 = HEAP32[4032]|0; - $20 = ($18|0)<($19|0); - if ($20) { - $$04154 = $18; - } else { - break; - } - } - } - } else { - HEAP32[4031] = 0; - } - HEAP32[4032] = 0; - } - $21 = HEAP32[4034]|0; - switch ($21|0) { - case 1: { - $22 = HEAP32[3588]|0; - $23 = HEAP32[(14360)>>2]|0; - $24 = ($22|0)==($23|0); - if ($24) { - $148 = +HEAPF32[741]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[741] = $149; - STACKTOP = sp;return; - } - $25 = (($22) - ($23))|0; - $26 = ($25|0)>(0); - if ($26) { - $$04347 = 0; - } else { - $148 = +HEAPF32[741]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[741] = $149; - STACKTOP = sp;return; - } - while(1) { - $27 = HEAP32[(14372)>>2]|0; - $28 = HEAP32[(14360)>>2]|0; - $29 = $28 << 2; - $30 = (($29) + -4)|0; - $31 = (($27) + ($30)|0); - $32 = HEAP8[$31>>0]|0; - $33 = (($27) + ($29)|0); - HEAP8[$33>>0] = $32; - $34 = HEAP32[(14372)>>2]|0; - $35 = HEAP32[(14360)>>2]|0; - $36 = $35 << 2; - $37 = (($36) + -3)|0; - $38 = (($34) + ($37)|0); - $39 = HEAP8[$38>>0]|0; - $40 = $36 | 1; - $41 = (($34) + ($40)|0); - HEAP8[$41>>0] = $39; - $42 = HEAP32[(14372)>>2]|0; - $43 = HEAP32[(14360)>>2]|0; - $44 = $43 << 2; - $45 = (($44) + -2)|0; - $46 = (($42) + ($45)|0); - $47 = HEAP8[$46>>0]|0; - $48 = $44 | 2; - $49 = (($42) + ($48)|0); - HEAP8[$49>>0] = $47; - $50 = HEAP32[(14372)>>2]|0; - $51 = HEAP32[(14360)>>2]|0; - $52 = $51 << 2; - $53 = (($52) + -1)|0; - $54 = (($50) + ($53)|0); - $55 = HEAP8[$54>>0]|0; - $56 = $52 | 3; - $57 = (($50) + ($56)|0); - HEAP8[$57>>0] = $55; - $58 = HEAP32[(14360)>>2]|0; - $59 = (($58) + 1)|0; - HEAP32[(14360)>>2] = $59; - $60 = (($$04347) + 1)|0; - $exitcond = ($60|0)==($25|0); - if ($exitcond) { - break; - } else { - $$04347 = $60; - } - } - $148 = +HEAPF32[741]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[741] = $149; - STACKTOP = sp;return; - break; - } - case 4: { - $61 = HEAP32[3600]|0; - $62 = HEAP32[(14408)>>2]|0; - $63 = ($61|0)==($62|0); - if ($63) { - $148 = +HEAPF32[741]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[741] = $149; - STACKTOP = sp;return; - } - $64 = (($61) - ($62))|0; - $65 = ($64|0)>(0); - if ($65) { - $$04248 = 0; - } else { - $148 = +HEAPF32[741]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[741] = $149; - STACKTOP = sp;return; - } - while(1) { - $66 = HEAP32[(14420)>>2]|0; - $67 = HEAP32[(14408)>>2]|0; - $68 = $67 << 2; - $69 = (($68) + -4)|0; - $70 = (($66) + ($69)|0); - $71 = HEAP8[$70>>0]|0; - $72 = (($66) + ($68)|0); - HEAP8[$72>>0] = $71; - $73 = HEAP32[(14420)>>2]|0; - $74 = HEAP32[(14408)>>2]|0; - $75 = $74 << 2; - $76 = (($75) + -3)|0; - $77 = (($73) + ($76)|0); - $78 = HEAP8[$77>>0]|0; - $79 = $75 | 1; - $80 = (($73) + ($79)|0); - HEAP8[$80>>0] = $78; - $81 = HEAP32[(14420)>>2]|0; - $82 = HEAP32[(14408)>>2]|0; - $83 = $82 << 2; - $84 = (($83) + -2)|0; - $85 = (($81) + ($84)|0); - $86 = HEAP8[$85>>0]|0; - $87 = $83 | 2; - $88 = (($81) + ($87)|0); - HEAP8[$88>>0] = $86; - $89 = HEAP32[(14420)>>2]|0; - $90 = HEAP32[(14408)>>2]|0; - $91 = $90 << 2; - $92 = (($91) + -1)|0; - $93 = (($89) + ($92)|0); - $94 = HEAP8[$93>>0]|0; - $95 = $91 | 3; - $96 = (($89) + ($95)|0); - HEAP8[$96>>0] = $94; - $97 = HEAP32[(14408)>>2]|0; - $98 = (($97) + 1)|0; - HEAP32[(14408)>>2] = $98; - $99 = (($$04248) + 1)|0; - $exitcond60 = ($99|0)==($64|0); - if ($exitcond60) { - break; - } else { - $$04248 = $99; - } - } - $148 = +HEAPF32[741]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[741] = $149; - STACKTOP = sp;return; - break; - } - case 7: { - $100 = HEAP32[3540]|0; - $101 = HEAP32[(14168)>>2]|0; - $102 = ($100|0)==($101|0); - if (!($102)) { - $103 = (($100) - ($101))|0; - $104 = ($103|0)>(0); - if ($104) { - $$04052 = 0; - while(1) { - $105 = HEAP32[(14180)>>2]|0; - $106 = HEAP32[(14168)>>2]|0; - $107 = $106 << 2; - $108 = (($107) + -4)|0; - $109 = (($105) + ($108)|0); - $110 = HEAP8[$109>>0]|0; - $111 = (($105) + ($107)|0); - HEAP8[$111>>0] = $110; - $112 = HEAP32[(14180)>>2]|0; - $113 = HEAP32[(14168)>>2]|0; - $114 = $113 << 2; - $115 = (($114) + -3)|0; - $116 = (($112) + ($115)|0); - $117 = HEAP8[$116>>0]|0; - $118 = $114 | 1; - $119 = (($112) + ($118)|0); - HEAP8[$119>>0] = $117; - $120 = HEAP32[(14180)>>2]|0; - $121 = HEAP32[(14168)>>2]|0; - $122 = $121 << 2; - $123 = (($122) + -2)|0; - $124 = (($120) + ($123)|0); - $125 = HEAP8[$124>>0]|0; - $126 = $122 | 2; - $127 = (($120) + ($126)|0); - HEAP8[$127>>0] = $125; - $128 = HEAP32[(14180)>>2]|0; - $129 = HEAP32[(14168)>>2]|0; - $130 = $129 << 2; - $131 = (($130) + -1)|0; - $132 = (($128) + ($131)|0); - $133 = HEAP8[$132>>0]|0; - $134 = $130 | 3; - $135 = (($128) + ($134)|0); - HEAP8[$135>>0] = $133; - $136 = HEAP32[(14168)>>2]|0; - $137 = (($136) + 1)|0; - HEAP32[(14168)>>2] = $137; - $138 = (($$04052) + 1)|0; - $exitcond63 = ($138|0)==($103|0); - if ($exitcond63) { - break; - } else { - $$04052 = $138; - } - } - } - } - $139 = HEAP32[3540]|0; - $140 = HEAP32[(14164)>>2]|0; - $141 = ($139|0)>($140|0); - if (!($141)) { - $148 = +HEAPF32[741]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[741] = $149; - STACKTOP = sp;return; - } - $142 = HEAP32[(14176)>>2]|0; - $$promoted = HEAP32[(14164)>>2]|0; - $143 = $$promoted << 1; - $scevgep = (($142) + ($143<<2)|0); - $144 = (($139) - ($140))|0; - $145 = $144 << 3; - _memset(($scevgep|0),0,($145|0))|0; - $146 = (($139) + ($$promoted))|0; - $147 = (($146) - ($140))|0; - HEAP32[(14164)>>2] = $147; - $148 = +HEAPF32[741]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[741] = $149; - STACKTOP = sp;return; - break; - } - default: { - $148 = +HEAPF32[741]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[741] = $149; - STACKTOP = sp;return; - } - } -} -function _rlPopMatrix() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[3773]|0; - $1 = ($0|0)>(0); - if (!($1)) { - return; - } - $2 = HEAP32[3773]|0; - $3 = (($2) + -1)|0; - $4 = (15096 + ($3<<6)|0); - $5 = HEAP32[4030]|0; - _memmove(($5|0),($4|0),64)|0; - $6 = (($2) + -1)|0; - HEAP32[3773] = $6; - return; -} -function _rlDisableTexture() { - var $0 = 0, $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[3540]|0; - $1 = ($0|0)>(4095); - if (!($1)) { - return; - } - _rlglDraw(); - return; -} -function _rlglDraw() { - var label = 0, sp = 0; - sp = STACKTOP; - _UpdateBuffersDefault(); - _DrawBuffersDefault(); - return; -} -function _UpdateBuffersDefault() { - var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[3588]|0; - $1 = ($0|0)>(0); - if ($1) { - $2 = HEAP32[3645]|0; - $3 = ($2|0)==(0); - if (!($3)) { - $4 = HEAP32[3646]|0; - $5 = HEAP32[(14380)>>2]|0; - FUNCTION_TABLE_vi[$4 & 31]($5); - } - $6 = HEAP32[(14384)>>2]|0; - _glBindBuffer(34962,($6|0)); - $7 = HEAP32[3588]|0; - $8 = ($7*12)|0; - $9 = HEAP32[(14364)>>2]|0; - _glBufferSubData(34962,0,($8|0),($9|0)); - $10 = HEAP32[(14388)>>2]|0; - _glBindBuffer(34962,($10|0)); - $11 = HEAP32[(14360)>>2]|0; - $12 = $11 << 2; - $13 = HEAP32[(14372)>>2]|0; - _glBufferSubData(34962,0,($12|0),($13|0)); - } - $14 = HEAP32[3600]|0; - $15 = ($14|0)>(0); - if ($15) { - $16 = HEAP32[3645]|0; - $17 = ($16|0)==(0); - if (!($17)) { - $18 = HEAP32[3646]|0; - $19 = HEAP32[(14428)>>2]|0; - FUNCTION_TABLE_vi[$18 & 31]($19); - } - $20 = HEAP32[(14432)>>2]|0; - _glBindBuffer(34962,($20|0)); - $21 = HEAP32[3600]|0; - $22 = ($21*12)|0; - $23 = HEAP32[(14412)>>2]|0; - _glBufferSubData(34962,0,($22|0),($23|0)); - $24 = HEAP32[(14436)>>2]|0; - _glBindBuffer(34962,($24|0)); - $25 = HEAP32[(14408)>>2]|0; - $26 = $25 << 2; - $27 = HEAP32[(14420)>>2]|0; - _glBufferSubData(34962,0,($26|0),($27|0)); - } - $28 = HEAP32[3540]|0; - $29 = ($28|0)>(0); - if ($29) { - $30 = HEAP32[3645]|0; - $31 = ($30|0)==(0); - if (!($31)) { - $32 = HEAP32[3646]|0; - $33 = HEAP32[(14188)>>2]|0; - FUNCTION_TABLE_vi[$32 & 31]($33); - } - $34 = HEAP32[(14192)>>2]|0; - _glBindBuffer(34962,($34|0)); - $35 = HEAP32[3540]|0; - $36 = ($35*12)|0; - $37 = HEAP32[(14172)>>2]|0; - _glBufferSubData(34962,0,($36|0),($37|0)); - $38 = HEAP32[(14196)>>2]|0; - _glBindBuffer(34962,($38|0)); - $39 = HEAP32[3540]|0; - $40 = $39 << 3; - $41 = HEAP32[(14176)>>2]|0; - _glBufferSubData(34962,0,($40|0),($41|0)); - $42 = HEAP32[(14200)>>2]|0; - _glBindBuffer(34962,($42|0)); - $43 = HEAP32[3540]|0; - $44 = $43 << 2; - $45 = HEAP32[(14180)>>2]|0; - _glBufferSubData(34962,0,($44|0),($45|0)); - } - $46 = HEAP32[3645]|0; - $47 = ($46|0)==(0); - if ($47) { - return; - } - $48 = HEAP32[3646]|0; - FUNCTION_TABLE_vi[$48 & 31](0); - return; -} -function _DrawBuffersDefault() { - var $$ = 0, $$02830 = 0, $$02932 = 0, $$031 = 0, $$byval_copy2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; - var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; - var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; - var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; - var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0; - var $modelview$byval_copy = 0, $or$cond = 0, $or$cond3 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 320|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(320|0); - $$byval_copy2 = sp + 256|0; - $modelview$byval_copy = sp + 192|0; - $0 = sp + 128|0; - $1 = sp + 64|0; - $2 = sp; - dest=$0; src=14208; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$1; src=14272; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $3 = HEAP32[3584]|0; - $4 = ($3|0)!=(0); - $$ = $4 ? 2 : 1; - $$02932 = 0; - while(1) { - if ($4) { - dest=$modelview$byval_copy; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy2; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _SetStereoView($$02932,$modelview$byval_copy,$$byval_copy2); - } - $8 = HEAP32[3588]|0; - $9 = ($8|0)>(0); - $10 = HEAP32[3600]|0; - $11 = ($10|0)>(0); - $or$cond = $9 | $11; - $12 = HEAP32[3540]|0; - $13 = ($12|0)>(0); - $or$cond3 = $or$cond | $13; - if ($or$cond3) { - $14 = HEAP32[3612]|0; - _glUseProgram(($14|0)); - dest=$modelview$byval_copy; src=14272; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy2; src=14208; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($2,$modelview$byval_copy,$$byval_copy2); - $15 = HEAP32[(14476)>>2]|0; - dest=$$byval_copy2; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $16 = (_MatrixToFloat($$byval_copy2)|0); - _glUniformMatrix4fv(($15|0),1,0,($16|0)); - $17 = HEAP32[(14496)>>2]|0; - _glUniform4f(($17|0),1.0,1.0,1.0,1.0); - $18 = HEAP32[(14508)>>2]|0; - _glUniform1i(($18|0),0); - } - $19 = HEAP32[3588]|0; - $20 = ($19|0)>(0); - if ($20) { - _glActiveTexture(33984); - $21 = HEAP32[3586]|0; - _glBindTexture(3553,($21|0)); - $22 = HEAP32[3645]|0; - $23 = ($22|0)==(0); - if ($23) { - $26 = HEAP32[(14384)>>2]|0; - _glBindBuffer(34962,($26|0)); - $27 = HEAP32[(14452)>>2]|0; - _glVertexAttribPointer(($27|0),3,5126,0,0,(0|0)); - $28 = HEAP32[(14452)>>2]|0; - _glEnableVertexAttribArray(($28|0)); - $29 = HEAP32[(14388)>>2]|0; - _glBindBuffer(34962,($29|0)); - $30 = HEAP32[(14472)>>2]|0; - _glVertexAttribPointer(($30|0),4,5121,1,0,(0|0)); - $31 = HEAP32[(14472)>>2]|0; - _glEnableVertexAttribArray(($31|0)); - } else { - $24 = HEAP32[3646]|0; - $25 = HEAP32[(14380)>>2]|0; - FUNCTION_TABLE_vi[$24 & 31]($25); - } - $32 = HEAP32[3588]|0; - _glDrawArrays(1,0,($32|0)); - $33 = HEAP32[3645]|0; - $34 = ($33|0)==(0); - if ($34) { - _glBindBuffer(34962,0); - } - _glBindTexture(3553,0); - } - $35 = HEAP32[3600]|0; - $36 = ($35|0)>(0); - if ($36) { - _glActiveTexture(33984); - $37 = HEAP32[3586]|0; - _glBindTexture(3553,($37|0)); - $38 = HEAP32[3645]|0; - $39 = ($38|0)==(0); - if ($39) { - $42 = HEAP32[(14432)>>2]|0; - _glBindBuffer(34962,($42|0)); - $43 = HEAP32[(14452)>>2]|0; - _glVertexAttribPointer(($43|0),3,5126,0,0,(0|0)); - $44 = HEAP32[(14452)>>2]|0; - _glEnableVertexAttribArray(($44|0)); - $45 = HEAP32[(14436)>>2]|0; - _glBindBuffer(34962,($45|0)); - $46 = HEAP32[(14472)>>2]|0; - _glVertexAttribPointer(($46|0),4,5121,1,0,(0|0)); - $47 = HEAP32[(14472)>>2]|0; - _glEnableVertexAttribArray(($47|0)); - } else { - $40 = HEAP32[3646]|0; - $41 = HEAP32[(14428)>>2]|0; - FUNCTION_TABLE_vi[$40 & 31]($41); - } - $48 = HEAP32[3600]|0; - _glDrawArrays(4,0,($48|0)); - $49 = HEAP32[3645]|0; - $50 = ($49|0)==(0); - if ($50) { - _glBindBuffer(34962,0); - } - _glBindTexture(3553,0); - } - $51 = HEAP32[3540]|0; - $52 = ($51|0)>(0); - if ($52) { - $53 = HEAP32[3645]|0; - $54 = ($53|0)==(0); - if ($54) { - $57 = HEAP32[(14192)>>2]|0; - _glBindBuffer(34962,($57|0)); - $58 = HEAP32[(14452)>>2]|0; - _glVertexAttribPointer(($58|0),3,5126,0,0,(0|0)); - $59 = HEAP32[(14452)>>2]|0; - _glEnableVertexAttribArray(($59|0)); - $60 = HEAP32[(14196)>>2]|0; - _glBindBuffer(34962,($60|0)); - $61 = HEAP32[(14456)>>2]|0; - _glVertexAttribPointer(($61|0),2,5126,0,0,(0|0)); - $62 = HEAP32[(14456)>>2]|0; - _glEnableVertexAttribArray(($62|0)); - $63 = HEAP32[(14200)>>2]|0; - _glBindBuffer(34962,($63|0)); - $64 = HEAP32[(14472)>>2]|0; - _glVertexAttribPointer(($64|0),4,5121,1,0,(0|0)); - $65 = HEAP32[(14472)>>2]|0; - _glEnableVertexAttribArray(($65|0)); - $66 = HEAP32[(14204)>>2]|0; - _glBindBuffer(34963,($66|0)); - } else { - $55 = HEAP32[3646]|0; - $56 = HEAP32[(14188)>>2]|0; - FUNCTION_TABLE_vi[$55 & 31]($56); - } - $67 = HEAP32[3585]|0; - $68 = ($67|0)>(0); - if ($68) { - $$02830 = 0;$$031 = 0; - while(1) { - $71 = HEAP32[3587]|0; - $72 = (($71) + (($$031*144)|0)|0); - $73 = HEAP32[$72>>2]|0; - $74 = (($73|0) / 4)&-1; - $75 = ($74*6)|0; - _glActiveTexture(33984); - $76 = HEAP32[3587]|0; - $77 = (((($76) + (($$031*144)|0)|0)) + 8|0); - $78 = HEAP32[$77>>2]|0; - _glBindTexture(3553,($78|0)); - $79 = $$02830 << 1; - $80 = $79; - _glDrawElements(4,($75|0),5123,($80|0)); - $81 = HEAP32[3587]|0; - $82 = (($81) + (($$031*144)|0)|0); - $83 = HEAP32[$82>>2]|0; - $84 = (($83|0) / 4)&-1; - $85 = ($84*6)|0; - $86 = (($85) + ($$02830))|0; - $87 = (($$031) + 1)|0; - $88 = HEAP32[3585]|0; - $89 = ($87|0)<($88|0); - if ($89) { - $$02830 = $86;$$031 = $87; - } else { - break; - } - } - } - $69 = HEAP32[3645]|0; - $70 = ($69|0)==(0); - if ($70) { - _glBindBuffer(34962,0); - _glBindBuffer(34963,0); - } - _glBindTexture(3553,0); - } - $90 = HEAP32[3645]|0; - $91 = ($90|0)==(0); - if (!($91)) { - $92 = HEAP32[3646]|0; - FUNCTION_TABLE_vi[$92 & 31](0); - } - _glUseProgram(0); - $93 = (($$02932) + 1)|0; - $94 = ($93|0)<($$|0); - if ($94) { - $$02932 = $93; - } else { - break; - } - } - HEAP32[3585] = 1; - $5 = HEAP32[3586]|0; - $6 = HEAP32[3587]|0; - $7 = ((($6)) + 8|0); - HEAP32[$7>>2] = $5; - HEAP32[$6>>2] = 0; - HEAP32[3588] = 0; - HEAP32[(14360)>>2] = 0; - HEAP32[3600] = 0; - HEAP32[(14408)>>2] = 0; - HEAP32[3540] = 0; - HEAP32[(14164)>>2] = 0; - HEAP32[(14168)>>2] = 0; - HEAPF32[741] = -1.0; - dest=14208; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=14272; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _SetStereoView($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $$byval_copy3 = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy3 = sp + 192|0; - $$byval_copy = sp + 64|0; - $3 = sp; - $4 = sp + 128|0; - dest=$3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $5 = HEAP32[3663]|0; - $6 = Math_imul($5, $0)|0; - $7 = (($6|0) / 2)&-1; - $8 = (($5|0) / 2)&-1; - $9 = HEAP32[3664]|0; - _rlViewport($7,0,$8,$9); - $10 = (14964 + ($0<<6)|0); - dest=$$byval_copy; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy3; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($4,$$byval_copy,$$byval_copy3); - $11 = (14836 + ($0<<6)|0); - dest=$3; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _SetMatrixModelview($$byval_copy3); - dest=$$byval_copy3; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _SetMatrixProjection($$byval_copy3); - STACKTOP = sp;return; -} -function _MatrixMultiply($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0.0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0; - var $104 = 0.0, $105 = 0, $106 = 0.0, $107 = 0.0, $108 = 0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0; - var $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0; - var $140 = 0.0, $141 = 0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0; - var $159 = 0.0, $16 = 0.0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0; - var $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0; - var $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0; - var $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0; - var $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0; - var $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $3 = +HEAPF32[$1>>2]; - $4 = +HEAPF32[$2>>2]; - $5 = $3 * $4; - $6 = ((($1)) + 16|0); - $7 = +HEAPF32[$6>>2]; - $8 = ((($2)) + 4|0); - $9 = +HEAPF32[$8>>2]; - $10 = $7 * $9; - $11 = $5 + $10; - $12 = ((($1)) + 32|0); - $13 = +HEAPF32[$12>>2]; - $14 = ((($2)) + 8|0); - $15 = +HEAPF32[$14>>2]; - $16 = $13 * $15; - $17 = $11 + $16; - $18 = ((($1)) + 48|0); - $19 = +HEAPF32[$18>>2]; - $20 = ((($2)) + 12|0); - $21 = +HEAPF32[$20>>2]; - $22 = $19 * $21; - $23 = $17 + $22; - $24 = ((($2)) + 16|0); - $25 = +HEAPF32[$24>>2]; - $26 = $3 * $25; - $27 = ((($2)) + 20|0); - $28 = +HEAPF32[$27>>2]; - $29 = $7 * $28; - $30 = $26 + $29; - $31 = ((($2)) + 24|0); - $32 = +HEAPF32[$31>>2]; - $33 = $13 * $32; - $34 = $30 + $33; - $35 = ((($2)) + 28|0); - $36 = +HEAPF32[$35>>2]; - $37 = $19 * $36; - $38 = $34 + $37; - $39 = ((($2)) + 32|0); - $40 = +HEAPF32[$39>>2]; - $41 = $3 * $40; - $42 = ((($2)) + 36|0); - $43 = +HEAPF32[$42>>2]; - $44 = $7 * $43; - $45 = $41 + $44; - $46 = ((($2)) + 40|0); - $47 = +HEAPF32[$46>>2]; - $48 = $13 * $47; - $49 = $45 + $48; - $50 = ((($2)) + 44|0); - $51 = +HEAPF32[$50>>2]; - $52 = $19 * $51; - $53 = $49 + $52; - $54 = ((($2)) + 48|0); - $55 = +HEAPF32[$54>>2]; - $56 = $3 * $55; - $57 = ((($2)) + 52|0); - $58 = +HEAPF32[$57>>2]; - $59 = $7 * $58; - $60 = $56 + $59; - $61 = ((($2)) + 56|0); - $62 = +HEAPF32[$61>>2]; - $63 = $13 * $62; - $64 = $60 + $63; - $65 = ((($2)) + 60|0); - $66 = +HEAPF32[$65>>2]; - $67 = $19 * $66; - $68 = $64 + $67; - $69 = ((($1)) + 4|0); - $70 = +HEAPF32[$69>>2]; - $71 = $4 * $70; - $72 = ((($1)) + 20|0); - $73 = +HEAPF32[$72>>2]; - $74 = $9 * $73; - $75 = $71 + $74; - $76 = ((($1)) + 36|0); - $77 = +HEAPF32[$76>>2]; - $78 = $15 * $77; - $79 = $75 + $78; - $80 = ((($1)) + 52|0); - $81 = +HEAPF32[$80>>2]; - $82 = $21 * $81; - $83 = $79 + $82; - $84 = $25 * $70; - $85 = $28 * $73; - $86 = $84 + $85; - $87 = $32 * $77; - $88 = $86 + $87; - $89 = $36 * $81; - $90 = $88 + $89; - $91 = $40 * $70; - $92 = $43 * $73; - $93 = $91 + $92; - $94 = $47 * $77; - $95 = $93 + $94; - $96 = $51 * $81; - $97 = $95 + $96; - $98 = $55 * $70; - $99 = $58 * $73; - $100 = $98 + $99; - $101 = $62 * $77; - $102 = $100 + $101; - $103 = $66 * $81; - $104 = $102 + $103; - $105 = ((($1)) + 8|0); - $106 = +HEAPF32[$105>>2]; - $107 = $4 * $106; - $108 = ((($1)) + 24|0); - $109 = +HEAPF32[$108>>2]; - $110 = $9 * $109; - $111 = $107 + $110; - $112 = ((($1)) + 40|0); - $113 = +HEAPF32[$112>>2]; - $114 = $15 * $113; - $115 = $111 + $114; - $116 = ((($1)) + 56|0); - $117 = +HEAPF32[$116>>2]; - $118 = $21 * $117; - $119 = $115 + $118; - $120 = $25 * $106; - $121 = $28 * $109; - $122 = $120 + $121; - $123 = $32 * $113; - $124 = $122 + $123; - $125 = $36 * $117; - $126 = $124 + $125; - $127 = $40 * $106; - $128 = $43 * $109; - $129 = $127 + $128; - $130 = $47 * $113; - $131 = $129 + $130; - $132 = $51 * $117; - $133 = $131 + $132; - $134 = $55 * $106; - $135 = $58 * $109; - $136 = $134 + $135; - $137 = $62 * $113; - $138 = $136 + $137; - $139 = $66 * $117; - $140 = $138 + $139; - $141 = ((($1)) + 12|0); - $142 = +HEAPF32[$141>>2]; - $143 = $4 * $142; - $144 = ((($1)) + 28|0); - $145 = +HEAPF32[$144>>2]; - $146 = $9 * $145; - $147 = $143 + $146; - $148 = ((($1)) + 44|0); - $149 = +HEAPF32[$148>>2]; - $150 = $15 * $149; - $151 = $147 + $150; - $152 = ((($1)) + 60|0); - $153 = +HEAPF32[$152>>2]; - $154 = $21 * $153; - $155 = $151 + $154; - $156 = $25 * $142; - $157 = $28 * $145; - $158 = $156 + $157; - $159 = $32 * $149; - $160 = $158 + $159; - $161 = $36 * $153; - $162 = $160 + $161; - $163 = $40 * $142; - $164 = $43 * $145; - $165 = $163 + $164; - $166 = $47 * $149; - $167 = $165 + $166; - $168 = $51 * $153; - $169 = $167 + $168; - $170 = $55 * $142; - $171 = $58 * $145; - $172 = $170 + $171; - $173 = $62 * $149; - $174 = $172 + $173; - $175 = $66 * $153; - $176 = $174 + $175; - HEAPF32[$0>>2] = $23; - $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $83; - $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $119; - $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); - HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = $155; - $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); - HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $38; - $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); - HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $90; - $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); - HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $126; - $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); - HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = $162; - $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); - HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $53; - $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); - HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $97; - $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); - HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $133; - $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); - HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = $169; - $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); - HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $68; - $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); - HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $104; - $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); - HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $140; - $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); - HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = $176; - return; -} -function _MatrixToFloat($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - HEAP32[3647] = $1; - $2 = ((($0)) + 16|0); - $3 = HEAP32[$2>>2]|0; - HEAP32[(14592)>>2] = $3; - $4 = ((($0)) + 32|0); - $5 = HEAP32[$4>>2]|0; - HEAP32[(14596)>>2] = $5; - $6 = ((($0)) + 48|0); - $7 = HEAP32[$6>>2]|0; - HEAP32[(14600)>>2] = $7; - $8 = ((($0)) + 4|0); - $9 = HEAP32[$8>>2]|0; - HEAP32[(14604)>>2] = $9; - $10 = ((($0)) + 20|0); - $11 = HEAP32[$10>>2]|0; - HEAP32[(14608)>>2] = $11; - $12 = ((($0)) + 36|0); - $13 = HEAP32[$12>>2]|0; - HEAP32[(14612)>>2] = $13; - $14 = ((($0)) + 52|0); - $15 = HEAP32[$14>>2]|0; - HEAP32[(14616)>>2] = $15; - $16 = ((($0)) + 8|0); - $17 = HEAP32[$16>>2]|0; - HEAP32[(14620)>>2] = $17; - $18 = ((($0)) + 24|0); - $19 = HEAP32[$18>>2]|0; - HEAP32[(14624)>>2] = $19; - $20 = ((($0)) + 40|0); - $21 = HEAP32[$20>>2]|0; - HEAP32[(14628)>>2] = $21; - $22 = ((($0)) + 56|0); - $23 = HEAP32[$22>>2]|0; - HEAP32[(14632)>>2] = $23; - $24 = ((($0)) + 12|0); - $25 = HEAP32[$24>>2]|0; - HEAP32[(14636)>>2] = $25; - $26 = ((($0)) + 28|0); - $27 = HEAP32[$26>>2]|0; - HEAP32[(14640)>>2] = $27; - $28 = ((($0)) + 44|0); - $29 = HEAP32[$28>>2]|0; - HEAP32[(14644)>>2] = $29; - $30 = ((($0)) + 60|0); - $31 = HEAP32[$30>>2]|0; - HEAP32[(14648)>>2] = $31; - return (14588|0); -} -function _rlViewport($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var label = 0, sp = 0; - sp = STACKTOP; - _glViewport(($0|0),($1|0),($2|0),($3|0)); - return; -} -function _SetMatrixModelview($0) { - $0 = $0|0; - var dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - dest=14272; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - return; -} -function _SetMatrixProjection($0) { - $0 = $0|0; - var dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - dest=14208; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - return; -} -function _Vector3Transform($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0; - var $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0.0; - var $47 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = +HEAPF32[$0>>2]; - $3 = ((($0)) + 4|0); - $4 = +HEAPF32[$3>>2]; - $5 = ((($0)) + 8|0); - $6 = +HEAPF32[$5>>2]; - $7 = +HEAPF32[$1>>2]; - $8 = $2 * $7; - $9 = ((($1)) + 4|0); - $10 = +HEAPF32[$9>>2]; - $11 = $4 * $10; - $12 = $8 + $11; - $13 = ((($1)) + 8|0); - $14 = +HEAPF32[$13>>2]; - $15 = $6 * $14; - $16 = $12 + $15; - $17 = ((($1)) + 12|0); - $18 = +HEAPF32[$17>>2]; - $19 = $18 + $16; - HEAPF32[$0>>2] = $19; - $20 = ((($1)) + 16|0); - $21 = +HEAPF32[$20>>2]; - $22 = $2 * $21; - $23 = ((($1)) + 20|0); - $24 = +HEAPF32[$23>>2]; - $25 = $4 * $24; - $26 = $22 + $25; - $27 = ((($1)) + 24|0); - $28 = +HEAPF32[$27>>2]; - $29 = $6 * $28; - $30 = $26 + $29; - $31 = ((($1)) + 28|0); - $32 = +HEAPF32[$31>>2]; - $33 = $32 + $30; - HEAPF32[$3>>2] = $33; - $34 = ((($1)) + 32|0); - $35 = +HEAPF32[$34>>2]; - $36 = $2 * $35; - $37 = ((($1)) + 36|0); - $38 = +HEAPF32[$37>>2]; - $39 = $4 * $38; - $40 = $36 + $39; - $41 = ((($1)) + 40|0); - $42 = +HEAPF32[$41>>2]; - $43 = $6 * $42; - $44 = $40 + $43; - $45 = ((($1)) + 44|0); - $46 = +HEAPF32[$45>>2]; - $47 = $46 + $44; - HEAPF32[$5>>2] = $47; - return; -} -function _rlVertex3f($0,$1,$2) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $3 = HEAP32[4031]|0; - $4 = ($3|0)==(0); - if (!($4)) { - $5 = HEAP32[4033]|0; - $6 = HEAP32[4032]|0; - $7 = (($5) + (($6*12)|0)|0); - HEAPF32[$7>>2] = $0; - $8 = (((($5) + (($6*12)|0)|0)) + 4|0); - HEAPF32[$8>>2] = $1; - $9 = (((($5) + (($6*12)|0)|0)) + 8|0); - HEAPF32[$9>>2] = $2; - $10 = (($6) + 1)|0; - HEAP32[4032] = $10; - STACKTOP = sp;return; - } - $11 = HEAP32[4034]|0; - switch ($11|0) { - case 1: { - $12 = HEAP32[3588]|0; - $13 = ($12|0)<(2048); - if ($13) { - $14 = HEAP32[(14364)>>2]|0; - $15 = ($12*3)|0; - $16 = (($14) + ($15<<2)|0); - HEAPF32[$16>>2] = $0; - $17 = (($15) + 1)|0; - $18 = (($14) + ($17<<2)|0); - HEAPF32[$18>>2] = $1; - $19 = (($15) + 2)|0; - $20 = (($14) + ($19<<2)|0); - HEAPF32[$20>>2] = $2; - $21 = (($12) + 1)|0; - HEAP32[3588] = $21; - STACKTOP = sp;return; - } else { - _TraceLog(2,4180,$vararg_buffer); - STACKTOP = sp;return; - } - break; - } - case 4: { - $22 = HEAP32[3600]|0; - $23 = ($22|0)<(6144); - if ($23) { - $24 = HEAP32[(14412)>>2]|0; - $25 = ($22*3)|0; - $26 = (($24) + ($25<<2)|0); - HEAPF32[$26>>2] = $0; - $27 = (($25) + 1)|0; - $28 = (($24) + ($27<<2)|0); - HEAPF32[$28>>2] = $1; - $29 = (($25) + 2)|0; - $30 = (($24) + ($29<<2)|0); - HEAPF32[$30>>2] = $2; - $31 = (($22) + 1)|0; - HEAP32[3600] = $31; - STACKTOP = sp;return; - } else { - _TraceLog(2,4205,$vararg_buffer1); - STACKTOP = sp;return; - } - break; - } - case 7: { - $32 = HEAP32[3540]|0; - $33 = ($32|0)<(4096); - if ($33) { - $34 = HEAP32[(14172)>>2]|0; - $35 = ($32*3)|0; - $36 = (($34) + ($35<<2)|0); - HEAPF32[$36>>2] = $0; - $37 = (($35) + 1)|0; - $38 = (($34) + ($37<<2)|0); - HEAPF32[$38>>2] = $1; - $39 = (($35) + 2)|0; - $40 = (($34) + ($39<<2)|0); - HEAPF32[$40>>2] = $2; - $41 = (($32) + 1)|0; - HEAP32[3540] = $41; - $42 = HEAP32[3587]|0; - $43 = HEAP32[3585]|0; - $44 = (($43) + -1)|0; - $45 = (($42) + (($44*144)|0)|0); - $46 = HEAP32[$45>>2]|0; - $47 = (($46) + 1)|0; - HEAP32[$45>>2] = $47; - STACKTOP = sp;return; - } else { - _TraceLog(2,4234,$vararg_buffer3); - STACKTOP = sp;return; - } - break; - } - default: { - STACKTOP = sp;return; - } - } -} -function _MatrixIdentity($0) { - $0 = $0|0; - var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF32[$0>>2] = 1.0; - $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); - ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; - $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); - HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = 1.0; - $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); - ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; - $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); - HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = 1.0; - $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); - ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; - $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); - HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; - return; -} -function _Vector3Normalize($0) { - $0 = $0|0; - var $$byval_copy = 0, $$op = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp; - ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; - $1 = (+_Vector3Length($$byval_copy)); - $2 = $1 == 0.0; - $$op = 1.0 / $1; - $3 = $2 ? 1.0 : $$op; - $4 = +HEAPF32[$0>>2]; - $5 = $4 * $3; - HEAPF32[$0>>2] = $5; - $6 = ((($0)) + 4|0); - $7 = +HEAPF32[$6>>2]; - $8 = $3 * $7; - HEAPF32[$6>>2] = $8; - $9 = ((($0)) + 8|0); - $10 = +HEAPF32[$9>>2]; - $11 = $3 * $10; - HEAPF32[$9>>2] = $11; - STACKTOP = sp;return; -} -function _MatrixRotate($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = +$2; - var $$ = 0.0, $$221 = 0.0, $$222 = 0.0, $$sroa$10$0$$sroa_idx199 = 0, $$sroa$11$0$$sroa_idx201 = 0, $$sroa$12$0$$sroa_idx203 = 0, $$sroa$13$0$$sroa_idx205 = 0, $$sroa$14$0$$sroa_idx207 = 0, $$sroa$15$0$$sroa_idx209 = 0, $$sroa$16$0$$sroa_idx211 = 0, $$sroa$17$0$$sroa_idx213 = 0, $$sroa$18$0$$sroa_idx215 = 0, $$sroa$4$0$$sroa_idx187 = 0, $$sroa$5$0$$sroa_idx189 = 0, $$sroa$6$0$$sroa_idx191 = 0, $$sroa$7$0$$sroa_idx193 = 0, $$sroa$8$0$$sroa_idx195 = 0, $$sroa$9$0$$sroa_idx197 = 0, $10 = 0.0, $100 = 0.0; - var $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0; - var $12 = 0.0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0; - var $138 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0; - var $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0; - var $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0; - var $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0.0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0; - var $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $3 = sp; - _MatrixIdentity($3); - $4 = +HEAPF32[$1>>2]; - $5 = ((($1)) + 4|0); - $6 = +HEAPF32[$5>>2]; - $7 = ((($1)) + 8|0); - $8 = +HEAPF32[$7>>2]; - $9 = $4 * $4; - $10 = $6 * $6; - $11 = $9 + $10; - $12 = $8 * $8; - $13 = $11 + $12; - $14 = (+Math_sqrt((+$13))); - $15 = $14 != 1.0; - $16 = $14 != 0.0; - $or$cond = $15 & $16; - $17 = 1.0 / $14; - $18 = $4 * $17; - $19 = $6 * $17; - $20 = $8 * $17; - $$ = $or$cond ? $20 : $8; - $$221 = $or$cond ? $19 : $6; - $$222 = $or$cond ? $18 : $4; - $21 = (+Math_sin((+$2))); - $22 = (+Math_cos((+$2))); - $23 = 1.0 - $22; - $24 = +HEAPF32[$3>>2]; - $25 = ((($3)) + 16|0); - $26 = +HEAPF32[$25>>2]; - $27 = ((($3)) + 32|0); - $28 = +HEAPF32[$27>>2]; - $29 = ((($3)) + 48|0); - $30 = +HEAPF32[$29>>2]; - $31 = ((($3)) + 4|0); - $32 = +HEAPF32[$31>>2]; - $33 = ((($3)) + 20|0); - $34 = +HEAPF32[$33>>2]; - $35 = ((($3)) + 36|0); - $36 = +HEAPF32[$35>>2]; - $37 = ((($3)) + 52|0); - $38 = +HEAPF32[$37>>2]; - $39 = ((($3)) + 8|0); - $40 = +HEAPF32[$39>>2]; - $41 = ((($3)) + 24|0); - $42 = +HEAPF32[$41>>2]; - $43 = ((($3)) + 40|0); - $44 = +HEAPF32[$43>>2]; - $45 = ((($3)) + 56|0); - $46 = +HEAPF32[$45>>2]; - $47 = $$222 * $$222; - $48 = $23 * $47; - $49 = $22 + $48; - $50 = $$221 * $$222; - $51 = $23 * $50; - $52 = $21 * $$; - $53 = $52 + $51; - $54 = $$ * $$222; - $55 = $23 * $54; - $56 = $21 * $$221; - $57 = $55 - $56; - $58 = $51 - $52; - $59 = $$221 * $$221; - $60 = $23 * $59; - $61 = $22 + $60; - $62 = $$ * $$221; - $63 = $23 * $62; - $64 = $21 * $$222; - $65 = $64 + $63; - $66 = $56 + $55; - $67 = $63 - $64; - $68 = $$ * $$; - $69 = $23 * $68; - $70 = $22 + $69; - $71 = $24 * $49; - $72 = $53 * $32; - $73 = $71 + $72; - $74 = $57 * $40; - $75 = $73 + $74; - $76 = $26 * $49; - $77 = $53 * $34; - $78 = $76 + $77; - $79 = $57 * $42; - $80 = $78 + $79; - $81 = $28 * $49; - $82 = $53 * $36; - $83 = $81 + $82; - $84 = $57 * $44; - $85 = $83 + $84; - $86 = $30 * $49; - $87 = $53 * $38; - $88 = $86 + $87; - $89 = $57 * $46; - $90 = $88 + $89; - $91 = $24 * $58; - $92 = $61 * $32; - $93 = $91 + $92; - $94 = $65 * $40; - $95 = $93 + $94; - $96 = $26 * $58; - $97 = $61 * $34; - $98 = $96 + $97; - $99 = $65 * $42; - $100 = $98 + $99; - $101 = $28 * $58; - $102 = $61 * $36; - $103 = $101 + $102; - $104 = $65 * $44; - $105 = $103 + $104; - $106 = $30 * $58; - $107 = $61 * $38; - $108 = $106 + $107; - $109 = $65 * $46; - $110 = $108 + $109; - $111 = $24 * $66; - $112 = $67 * $32; - $113 = $111 + $112; - $114 = $70 * $40; - $115 = $113 + $114; - $116 = $26 * $66; - $117 = $67 * $34; - $118 = $116 + $117; - $119 = $70 * $42; - $120 = $118 + $119; - $121 = $28 * $66; - $122 = $67 * $36; - $123 = $121 + $122; - $124 = $70 * $44; - $125 = $123 + $124; - $126 = $30 * $66; - $127 = $67 * $38; - $128 = $126 + $127; - $129 = $70 * $46; - $130 = $128 + $129; - $131 = ((($3)) + 12|0); - $132 = HEAP32[$131>>2]|0; - $133 = ((($3)) + 28|0); - $134 = HEAP32[$133>>2]|0; - $135 = ((($3)) + 44|0); - $136 = HEAP32[$135>>2]|0; - $137 = ((($3)) + 60|0); - $138 = HEAP32[$137>>2]|0; - HEAPF32[$0>>2] = $75; - $$sroa$4$0$$sroa_idx187 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx187>>2] = $95; - $$sroa$5$0$$sroa_idx189 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx189>>2] = $115; - $$sroa$6$0$$sroa_idx191 = ((($0)) + 12|0); - HEAP32[$$sroa$6$0$$sroa_idx191>>2] = $132; - $$sroa$7$0$$sroa_idx193 = ((($0)) + 16|0); - HEAPF32[$$sroa$7$0$$sroa_idx193>>2] = $80; - $$sroa$8$0$$sroa_idx195 = ((($0)) + 20|0); - HEAPF32[$$sroa$8$0$$sroa_idx195>>2] = $100; - $$sroa$9$0$$sroa_idx197 = ((($0)) + 24|0); - HEAPF32[$$sroa$9$0$$sroa_idx197>>2] = $120; - $$sroa$10$0$$sroa_idx199 = ((($0)) + 28|0); - HEAP32[$$sroa$10$0$$sroa_idx199>>2] = $134; - $$sroa$11$0$$sroa_idx201 = ((($0)) + 32|0); - HEAPF32[$$sroa$11$0$$sroa_idx201>>2] = $85; - $$sroa$12$0$$sroa_idx203 = ((($0)) + 36|0); - HEAPF32[$$sroa$12$0$$sroa_idx203>>2] = $105; - $$sroa$13$0$$sroa_idx205 = ((($0)) + 40|0); - HEAPF32[$$sroa$13$0$$sroa_idx205>>2] = $125; - $$sroa$14$0$$sroa_idx207 = ((($0)) + 44|0); - HEAP32[$$sroa$14$0$$sroa_idx207>>2] = $136; - $$sroa$15$0$$sroa_idx209 = ((($0)) + 48|0); - HEAPF32[$$sroa$15$0$$sroa_idx209>>2] = $90; - $$sroa$16$0$$sroa_idx211 = ((($0)) + 52|0); - HEAPF32[$$sroa$16$0$$sroa_idx211>>2] = $110; - $$sroa$17$0$$sroa_idx213 = ((($0)) + 56|0); - HEAPF32[$$sroa$17$0$$sroa_idx213>>2] = $130; - $$sroa$18$0$$sroa_idx215 = ((($0)) + 60|0); - HEAP32[$$sroa$18$0$$sroa_idx215>>2] = $138; - STACKTOP = sp;return; -} -function _Vector3Length($0) { - $0 = $0|0; - var $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $1 = +HEAPF32[$0>>2]; - $2 = $1 * $1; - $3 = ((($0)) + 4|0); - $4 = +HEAPF32[$3>>2]; - $5 = $4 * $4; - $6 = $2 + $5; - $7 = ((($0)) + 8|0); - $8 = +HEAPF32[$7>>2]; - $9 = $8 * $8; - $10 = $6 + $9; - $11 = (+Math_sqrt((+$10))); - return (+$11); -} -function _MatrixTranslate($0,$1,$2,$3) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - var $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF32[$0>>2] = 1.0; - $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = 0.0; - $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = 0.0; - $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); - HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = $1; - $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); - HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = 0.0; - $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); - HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = 1.0; - $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); - HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = 0.0; - $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); - HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = $2; - $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); - HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = 0.0; - $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); - HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = 0.0; - $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); - HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = 1.0; - $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); - HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = $3; - $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); - HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = 0.0; - $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); - HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = 0.0; - $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); - HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = 0.0; - $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); - HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; - return; -} -function _rlLoadIdentity() { - var $0 = 0, $1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $0 = sp; - $1 = HEAP32[4030]|0; - _MatrixIdentity($0); - dest=$1; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _FormatText($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - HEAP32[$1>>2] = $varargs; - (_vsprintf(17172,$0,$1)|0); - STACKTOP = sp;return (17172|0); -} -function _rlGetVersion() { - var label = 0, sp = 0; - sp = STACKTOP; - return 4; -} -function _MatrixScale($0,$1,$2,$3) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF32[$0>>2] = $1; - $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); - ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; - $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); - HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = $2; - $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); - ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; - $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); - HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = $3; - $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); - ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; - $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); - HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; - return; -} -function _GetTextureDefault($0) { - $0 = $0|0; - var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[3586]|0; - HEAP32[$0>>2] = $1; - $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); - HEAP32[$$sroa$4$0$$sroa_idx2>>2] = 1; - $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); - HEAP32[$$sroa$5$0$$sroa_idx4>>2] = 1; - $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); - HEAP32[$$sroa$6$0$$sroa_idx6>>2] = 1; - $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); - HEAP32[$$sroa$7$0$$sroa_idx8>>2] = 7; - return; -} -function _rlVertex2i($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0.0, $3 = 0.0, $4 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (+($0|0)); - $3 = (+($1|0)); - $4 = +HEAPF32[741]; - _rlVertex3f($2,$3,$4); - return; -} -function _DrawRectangle($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $$byval_copy2 = sp + 32|0; - $$byval_copy1 = sp + 24|0; - $$byval_copy = sp + 16|0; - $5 = sp + 8|0; - $6 = sp; - $7 = (+($0|0)); - HEAPF32[$5>>2] = $7; - $8 = ((($5)) + 4|0); - $9 = (+($1|0)); - HEAPF32[$8>>2] = $9; - $10 = (+($2|0)); - HEAPF32[$6>>2] = $10; - $11 = ((($6)) + 4|0); - $12 = (+($3|0)); - HEAPF32[$11>>2] = $12; - ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$5+4>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$6+4>>2]|0; - ;HEAP8[$$byval_copy2>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$4+3>>0]|0; - _DrawRectangleV($$byval_copy,$$byval_copy1,$$byval_copy2); - STACKTOP = sp;return; -} -function _DrawRectangleV($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0; - var $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0.0, $36 = 0, $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0, $64 = 0.0, $65 = 0.0; - var $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $3 = sp; - $4 = (_rlGetVersion()|0); - $5 = ($4|0)==(1); - if ($5) { - _rlBegin(4); - $6 = HEAP8[$2>>0]|0; - $7 = ((($2)) + 1|0); - $8 = HEAP8[$7>>0]|0; - $9 = ((($2)) + 2|0); - $10 = HEAP8[$9>>0]|0; - $11 = ((($2)) + 3|0); - $12 = HEAP8[$11>>0]|0; - _rlColor4ub($6,$8,$10,$12); - $13 = +HEAPF32[$0>>2]; - $14 = (~~(($13))); - $15 = ((($0)) + 4|0); - $16 = +HEAPF32[$15>>2]; - $17 = (~~(($16))); - _rlVertex2i($14,$17); - $18 = ((($1)) + 4|0); - $19 = +HEAPF32[$18>>2]; - $20 = $16 + $19; - $21 = (~~(($20))); - _rlVertex2i($14,$21); - $22 = +HEAPF32[$0>>2]; - $23 = +HEAPF32[$1>>2]; - $24 = $22 + $23; - $25 = (~~(($24))); - $26 = +HEAPF32[$15>>2]; - $27 = +HEAPF32[$18>>2]; - $28 = $26 + $27; - $29 = (~~(($28))); - _rlVertex2i($25,$29); - $30 = +HEAPF32[$0>>2]; - $31 = (~~(($30))); - $32 = +HEAPF32[$15>>2]; - $33 = (~~(($32))); - _rlVertex2i($31,$33); - $34 = +HEAPF32[$1>>2]; - $35 = $30 + $34; - $36 = (~~(($35))); - $37 = +HEAPF32[$18>>2]; - $38 = $32 + $37; - $39 = (~~(($38))); - _rlVertex2i($36,$39); - $40 = +HEAPF32[$0>>2]; - $41 = +HEAPF32[$1>>2]; - $42 = $40 + $41; - $43 = (~~(($42))); - $44 = +HEAPF32[$15>>2]; - $45 = (~~(($44))); - _rlVertex2i($43,$45); - _rlEnd(); - STACKTOP = sp;return; - } - $46 = (_rlGetVersion()|0); - $47 = ($46|0)==(2); - if (!($47)) { - $48 = (_rlGetVersion()|0); - $49 = ($48|0)==(3); - if (!($49)) { - $50 = (_rlGetVersion()|0); - $51 = ($50|0)==(4); - if (!($51)) { - STACKTOP = sp;return; - } - } - } - _GetTextureDefault($3); - $52 = HEAP32[$3>>2]|0; - _rlEnableTexture($52); - _rlBegin(7); - $53 = HEAP8[$2>>0]|0; - $54 = ((($2)) + 1|0); - $55 = HEAP8[$54>>0]|0; - $56 = ((($2)) + 2|0); - $57 = HEAP8[$56>>0]|0; - $58 = ((($2)) + 3|0); - $59 = HEAP8[$58>>0]|0; - _rlColor4ub($53,$55,$57,$59); - _rlTexCoord2f(0.0,0.0); - $60 = +HEAPF32[$0>>2]; - $61 = ((($0)) + 4|0); - $62 = +HEAPF32[$61>>2]; - _rlVertex2f($60,$62); - _rlTexCoord2f(0.0,1.0); - $63 = ((($1)) + 4|0); - $64 = +HEAPF32[$63>>2]; - $65 = $62 + $64; - _rlVertex2f($60,$65); - _rlTexCoord2f(1.0,1.0); - $66 = +HEAPF32[$0>>2]; - $67 = +HEAPF32[$1>>2]; - $68 = $66 + $67; - $69 = +HEAPF32[$61>>2]; - $70 = +HEAPF32[$63>>2]; - $71 = $69 + $70; - _rlVertex2f($68,$71); - _rlTexCoord2f(1.0,0.0); - $72 = +HEAPF32[$0>>2]; - $73 = +HEAPF32[$1>>2]; - $74 = $72 + $73; - $75 = +HEAPF32[$61>>2]; - _rlVertex2f($74,$75); - _rlEnd(); - _rlDisableTexture(); - STACKTOP = sp;return; -} -function _Vector2Distance($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = +HEAPF32[$0>>2]; - $3 = +HEAPF32[$1>>2]; - $4 = $2 - $3; - $5 = $4 * $4; - $6 = ((($0)) + 4|0); - $7 = +HEAPF32[$6>>2]; - $8 = ((($1)) + 4|0); - $9 = +HEAPF32[$8>>2]; - $10 = $7 - $9; - $11 = $10 * $10; - $12 = $5 + $11; - $13 = (+Math_sqrt((+$12))); - return (+$13); -} -function _Vector2Angle($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($1)) + 4|0); - $3 = +HEAPF32[$2>>2]; - $4 = ((($0)) + 4|0); - $5 = +HEAPF32[$4>>2]; - $6 = $3 - $5; - $7 = +HEAPF32[$1>>2]; - $8 = +HEAPF32[$0>>2]; - $9 = $7 - $8; - $10 = (+Math_atan2((+$6),(+$9))); - $11 = $10 * 57.2957763671875; - $12 = $11 < 0.0; - $13 = $11 + 360.0; - $$0 = $12 ? $13 : $11; - return (+$$0); -} -function _Vector3Zero($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF32[$0>>2] = 0.0; - $1 = ((($0)) + 4|0); - HEAPF32[$1>>2] = 0.0; - $2 = ((($0)) + 8|0); - HEAPF32[$2>>2] = 0.0; - return; -} -function _MatrixOrtho($0,$1,$2,$3,$4,$5,$6) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - $4 = +$4; - $5 = +$5; - $6 = +$6; - var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; - var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0; - var sp = 0; - sp = STACKTOP; - $7 = $2 - $1; - $8 = $7; - $9 = $4 - $3; - $10 = $9; - $11 = $6 - $5; - $12 = $11; - $13 = 2.0 / $8; - $14 = 2.0 / $10; - $15 = -2.0 / $12; - $16 = $1 + $2; - $17 = -$16; - $18 = $8; - $19 = $17 / $18; - $20 = $19; - $21 = $3 + $4; - $22 = -$21; - $23 = $10; - $24 = $22 / $23; - $25 = $24; - $26 = $5 + $6; - $27 = -$26; - $28 = $12; - $29 = $27 / $28; - $30 = $29; - HEAPF32[$0>>2] = $13; - $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; - $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = 0.0; - $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); - HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = $20; - $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); - HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; - $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); - HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $14; - $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); - HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = 0.0; - $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); - HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = $25; - $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); - HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; - $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); - HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; - $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); - HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $15; - $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); - HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $30; - $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); - HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; - $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); - HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; - $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); - HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = 0.0; - $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); - HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 1.0; - return; -} -function _ProcessGestureEvent($0) { - $0 = $0|0; - var $$$sink = 0, $$sink = 0, $$sink10 = 0, $$sink11 = 0, $$sink16 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0.0, $111 = 0.0; - var $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; - var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; - var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0; - var $167 = 0.0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0.0, $174 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0; - var $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $moveDownPosition$byval_copy11 = 0; - var $moveDownPosition2$byval_copy12 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $moveDownPosition2$byval_copy12 = sp + 8|0; - $moveDownPosition$byval_copy11 = sp; - $1 = ((($0)) + 4|0); - $2 = HEAP32[$1>>2]|0; - HEAP32[4072] = $2; - $3 = ($2|0)<(2); - $4 = HEAP32[$0>>2]|0; - $5 = ($4|0)==(1); - if (!($3)) { - if ($5) { - $88 = ((($0)) + 24|0); - $89 = $88; - $90 = $89; - $91 = HEAP32[$90>>2]|0; - $92 = (($89) + 4)|0; - $93 = $92; - $94 = HEAP32[$93>>2]|0; - $95 = 13952; - $96 = $95; - HEAP32[$96>>2] = $91; - $97 = (($95) + 4)|0; - $98 = $97; - HEAP32[$98>>2] = $94; - $99 = ((($0)) + 32|0); - $100 = $99; - $101 = $100; - $102 = HEAP32[$101>>2]|0; - $103 = (($100) + 4)|0; - $104 = $103; - $105 = HEAP32[$104>>2]|0; - $106 = 13992; - $107 = $106; - HEAP32[$107>>2] = $102; - $108 = (($106) + 4)|0; - $109 = $108; - HEAP32[$109>>2] = $105; - $110 = +HEAPF32[3498]; - $111 = +HEAPF32[3488]; - $112 = $110 - $111; - HEAPF32[3500] = $112; - $113 = +HEAPF32[(13996)>>2]; - $114 = +HEAPF32[(13956)>>2]; - $115 = $113 - $114; - HEAPF32[(14004)>>2] = $115; - HEAP32[4071] = 4; - STACKTOP = sp;return; - } - switch ($4|0) { - case 2: { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13984>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13984+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[14008>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[14008+4>>2]|0; - $116 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - HEAPF32[4077] = $116; - $117 = 13984; - $118 = $117; - $119 = HEAP32[$118>>2]|0; - $120 = (($117) + 4)|0; - $121 = $120; - $122 = HEAP32[$121>>2]|0; - $123 = 13952; - $124 = $123; - HEAP32[$124>>2] = $119; - $125 = (($123) + 4)|0; - $126 = $125; - HEAP32[$126>>2] = $122; - $127 = 14008; - $128 = $127; - $129 = HEAP32[$128>>2]|0; - $130 = (($127) + 4)|0; - $131 = $130; - $132 = HEAP32[$131>>2]|0; - $133 = 13992; - $134 = $133; - HEAP32[$134>>2] = $129; - $135 = (($133) + 4)|0; - $136 = $135; - HEAP32[$136>>2] = $132; - $137 = ((($0)) + 24|0); - $138 = $137; - $139 = $138; - $140 = HEAP32[$139>>2]|0; - $141 = (($138) + 4)|0; - $142 = $141; - $143 = HEAP32[$142>>2]|0; - $144 = 13984; - $145 = $144; - HEAP32[$145>>2] = $140; - $146 = (($144) + 4)|0; - $147 = $146; - HEAP32[$147>>2] = $143; - $148 = ((($0)) + 32|0); - $149 = $148; - $150 = $149; - $151 = HEAP32[$150>>2]|0; - $152 = (($149) + 4)|0; - $153 = $152; - $154 = HEAP32[$153>>2]|0; - $155 = 14008; - $156 = $155; - HEAP32[$156>>2] = $151; - $157 = (($155) + 4)|0; - $158 = $157; - HEAP32[$158>>2] = $154; - $159 = +HEAPF32[3502]; - $160 = +HEAPF32[3496]; - $161 = $159 - $160; - HEAPF32[3500] = $161; - $162 = +HEAPF32[(14012)>>2]; - $163 = +HEAPF32[(13988)>>2]; - $164 = $162 - $163; - HEAPF32[(14004)>>2] = $164; - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13952>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13952+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13984>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13984+4>>2]|0; - $165 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $166 = !($165 >= 0.004999999888241291); - if ($166) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13992>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13992+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[14008>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[14008+4>>2]|0; - $167 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $168 = !($167 >= 0.004999999888241291); - if ($168) { - $$sink16 = 4; - } else { - label = 29; - } - } else { - label = 29; - } - if ((label|0) == 29) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13984>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13984+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[14008>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[14008+4>>2]|0; - $169 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $170 = +HEAPF32[4077]; - $171 = $169 - $170; - $172 = $171 < 0.0; - $$sink11 = $172 ? 256 : 512; - $$sink16 = $$sink11; - } - HEAP32[4071] = $$sink16; - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13984>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13984+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[14008>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[14008+4>>2]|0; - $173 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $174 = 360.0 - $173; - HEAPF32[4078] = $174; - STACKTOP = sp;return; - break; - } - case 0: { - HEAPF32[4077] = 0.0; - HEAPF32[4078] = 0.0; - HEAPF32[3500] = 0.0; - HEAPF32[(14004)>>2] = 0.0; - HEAP32[4072] = 0; - HEAP32[4071] = 0; - STACKTOP = sp;return; - break; - } - default: { - STACKTOP = sp;return; - } - } - } - if ($5) { - $6 = HEAP32[4073]|0; - $7 = (($6) + 1)|0; - HEAP32[4073] = $7; - $8 = HEAP32[4071]|0; - $9 = ($8|0)==(0); - $10 = ($6|0)>(0); - $or$cond = $10 & $9; - if ($or$cond) { - $11 = ((($0)) + 24|0); - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13952>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13952+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[$11>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[$11+4>>2]|0; - $12 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $13 = $12 < 0.029999999329447746; - if ($13) { - HEAP32[4071] = 2; - HEAP32[4073] = 0; - } else { - label = 6; - } - } else { - label = 6; - } - if ((label|0) == 6) { - HEAP32[4073] = 1; - HEAP32[4071] = 1; - } - $14 = ((($0)) + 24|0); - $15 = $14; - $16 = $15; - $17 = HEAP32[$16>>2]|0; - $18 = (($15) + 4)|0; - $19 = $18; - $20 = HEAP32[$19>>2]|0; - $21 = 13952; - $22 = $21; - HEAP32[$22>>2] = $17; - $23 = (($21) + 4)|0; - $24 = $23; - HEAP32[$24>>2] = $20; - $25 = 13960; - $26 = $25; - HEAP32[$26>>2] = $17; - $27 = (($25) + 4)|0; - $28 = $27; - HEAP32[$28>>2] = $20; - $29 = 13968; - $30 = $29; - HEAP32[$30>>2] = $17; - $31 = (($29) + 4)|0; - $32 = $31; - HEAP32[$32>>2] = $20; - $33 = ((($0)) + 8|0); - $34 = HEAP32[$33>>2]|0; - HEAP32[742] = $34; - HEAPF32[3494] = 0.0; - HEAPF32[(13980)>>2] = 0.0; - STACKTOP = sp;return; - } - switch ($4|0) { - case 0: { - $35 = HEAP32[4071]|0; - $36 = ($35|0)==(8); - if ($36) { - $37 = ((($0)) + 24|0); - $38 = $37; - $39 = $38; - $40 = HEAP32[$39>>2]|0; - $41 = (($38) + 4)|0; - $42 = $41; - $43 = HEAP32[$42>>2]|0; - $44 = 13968; - $45 = $44; - HEAP32[$45>>2] = $40; - $46 = (($44) + 4)|0; - $47 = $46; - HEAP32[$47>>2] = $43; - } - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13952>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13952+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13968>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13968+4>>2]|0; - $48 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $49 = $48 / 0.0; - HEAPF32[4074] = $49; - HEAP32[4075] = 0; - $50 = $49 > 5.0000002374872565E-4; - if ($50) { - $51 = HEAP32[742]|0; - $52 = ((($0)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ($51|0)==($53|0); - if ($54) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13952>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13952+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13968>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13968+4>>2]|0; - $55 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $56 = 360.0 - $55; - HEAPF32[4076] = $56; - $57 = $56 < 30.0; - $58 = $56 > 330.0; - $or$cond3 = $57 | $58; - if ($or$cond3) { - $$sink10 = 16; - } else { - $59 = $56 > 30.0; - $60 = $56 < 120.0; - $or$cond5 = $59 & $60; - if ($or$cond5) { - $$sink10 = 64; - } else { - $61 = $56 > 120.0; - $62 = $56 < 210.0; - $or$cond7 = $61 & $62; - $63 = $56 > 210.0; - $64 = $56 < 300.0; - $or$cond9 = $63 & $64; - $$sink = $or$cond9 ? 128 : 0; - $$$sink = $or$cond7 ? 32 : $$sink; - $$sink10 = $$$sink; - } - } - } else { - label = 16; - } - } else { - label = 16; - } - if ((label|0) == 16) { - HEAPF32[4074] = 0.0; - HEAPF32[4076] = 0.0; - $$sink10 = 0; - } - HEAP32[4071] = $$sink10; - HEAPF32[3490] = 0.0; - HEAPF32[(13964)>>2] = 0.0; - HEAP32[4072] = 0; - STACKTOP = sp;return; - break; - } - case 2: { - $65 = HEAP32[4075]|0; - $66 = ($65|0)==(0); - if ($66) { - HEAP32[4075] = 1; - } - $67 = ((($0)) + 24|0); - $68 = $67; - $69 = $68; - $70 = HEAP32[$69>>2]|0; - $71 = (($68) + 4)|0; - $72 = $71; - $73 = HEAP32[$72>>2]|0; - $74 = 13984; - $75 = $74; - HEAP32[$75>>2] = $70; - $76 = (($74) + 4)|0; - $77 = $76; - HEAP32[$77>>2] = $73; - $78 = HEAP32[4071]|0; - $79 = ($78|0)==(4); - if ($79) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13952>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13952+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13984>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13984+4>>2]|0; - $80 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $81 = !($80 >= 0.014999999664723873); - if (!($81)) { - HEAP32[4071] = 8; - } - } - $82 = +HEAPF32[3496]; - $83 = +HEAPF32[3490]; - $84 = $82 - $83; - HEAPF32[3494] = $84; - $85 = +HEAPF32[(13988)>>2]; - $86 = +HEAPF32[(13964)>>2]; - $87 = $85 - $86; - HEAPF32[(13980)>>2] = $87; - STACKTOP = sp;return; - break; - } - default: { - STACKTOP = sp;return; - } - } -} -function _UpdateGestures() { - var $$off = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4071]|0; - $$off = (($0) + -1)|0; - $1 = ($$off>>>0)<(2); - $2 = HEAP32[4072]|0; - $3 = ($2|0)<(2); - $or$cond3 = $1 & $3; - if ($or$cond3) { - HEAP32[4071] = 4; - } - $4 = HEAP32[4071]|0; - $5 = (($4) + -16)|0; - $6 = $5 >>> 4; - $7 = $5 << 28; - $8 = $6 | $7; - switch ($8|0) { - case 0: case 1: case 3: case 7: { - break; - } - default: { - return; - } - } - HEAP32[4071] = 0; - return; -} -function _GetMousePosition($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = 14016; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - $4 = (($1) + 4)|0; - $5 = $4; - $6 = HEAP32[$5>>2]|0; - $7 = $0; - $8 = $7; - HEAP32[$8>>2] = $3; - $9 = (($7) + 4)|0; - $10 = $9; - HEAP32[$10>>2] = $6; - return; -} -function _GetMouseWheelMove() { - var $0 = 0, $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4081]|0; - $1 = (($0|0) / 100)&-1; - return ($1|0); -} -function _InitWindow($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - _TraceLog(0,4297,$vararg_buffer); - HEAP32[4082] = $2; - _InitGraphicsDevice($0,$1); - _LoadDefaultFont(); - _InitTimer(); - (_emscripten_set_fullscreenchange_callback((0|0),(0|0),1,(4|0))|0); - (_emscripten_set_keypress_callback((4326|0),(0|0),1,(5|0))|0); - (_emscripten_set_click_callback((4326|0),(0|0),1,(6|0))|0); - (_emscripten_set_touchstart_callback((4326|0),(0|0),1,(7|0))|0); - (_emscripten_set_touchend_callback((4326|0),(0|0),1,(7|0))|0); - (_emscripten_set_touchmove_callback((4326|0),(0|0),1,(7|0))|0); - (_emscripten_set_touchcancel_callback((4326|0),(0|0),1,(7|0))|0); - (_emscripten_set_gamepadconnected_callback((0|0),1,(8|0))|0); - (_emscripten_set_gamepaddisconnected_callback((0|0),1,(8|0))|0); - $3 = HEAP32[4083]|0; - $4 = (+($3|0)); - $5 = $4 * 0.5; - HEAPF32[3504] = $5; - $6 = HEAP32[4084]|0; - $7 = (+($6|0)); - $8 = $7 * 0.5; - HEAPF32[(14020)>>2] = $8; - $9 = HEAP32[4085]|0; - $10 = ($9|0)==(0); - if ($10) { - STACKTOP = sp;return; - } - _SetTargetFPS(60); - _LogoAnimation(); - STACKTOP = sp;return; -} -function _InitGraphicsDevice($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$015 = 0, $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0.0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer18 = 0, $vararg_buffer22 = 0, $vararg_buffer3 = 0, $vararg_buffer6 = 0, $vararg_buffer8 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr21 = 0, $vararg_ptr5 = 0, dest = 0; - var label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $vararg_buffer22 = sp + 64|0; - $vararg_buffer18 = sp + 56|0; - $vararg_buffer14 = sp + 48|0; - $vararg_buffer10 = sp + 40|0; - $vararg_buffer8 = sp + 32|0; - $vararg_buffer6 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 72|0; - $3 = sp + 140|0; - HEAP32[4083] = $0; - HEAP32[4084] = $1; - _MatrixIdentity($2); - dest=16360; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - (_glfwSetErrorCallback((1|0))|0); - $4 = (_glfwInit()|0); - $5 = ($4|0)==(0); - if ($5) { - _TraceLog(2,4521,$vararg_buffer); - } - $6 = HEAP32[4083]|0; - HEAP32[4106] = $6; - $7 = HEAP32[4084]|0; - HEAP32[4107] = $7; - _glfwDefaultWindowHints(); - $8 = HEAP8[17236]|0; - $9 = $8 & 4; - $10 = ($9<<24>>24)==(0); - if ($10) { - _glfwWindowHint(131075,0); - } else { - _glfwWindowHint(131075,1); - } - $11 = HEAP8[17236]|0; - $12 = $11 & 8; - $13 = ($12<<24>>24)==(0); - if (!($13)) { - _glfwWindowHint(131077,1); - } - $14 = HEAP8[17236]|0; - $15 = $14 & 32; - $16 = ($15<<24>>24)==(0); - if (!($16)) { - _glfwWindowHint(135181,4); - _TraceLog(0,4547,$vararg_buffer1); - } - $17 = (_rlGetVersion()|0); - $18 = ($17|0)==(2); - if ($18) { - _glfwWindowHint(139266,2); - _glfwWindowHint(139267,1); - } else { - $19 = (_rlGetVersion()|0); - $20 = ($19|0)==(3); - if ($20) { - _glfwWindowHint(139266,3); - _glfwWindowHint(139267,3); - _glfwWindowHint(139272,204801); - _glfwWindowHint(139270,0); - } - } - $21 = HEAP32[4108]|0; - $22 = ($21|0)==(0); - if ($22) { - $47 = HEAP32[4083]|0; - $48 = HEAP32[4084]|0; - $49 = HEAP32[4082]|0; - $50 = (_glfwCreateWindow(($47|0),($48|0),($49|0),(0|0),(0|0))|0); - HEAP32[4080] = $50; - $51 = HEAP32[4083]|0; - HEAP32[4109] = $51; - $52 = HEAP32[4084]|0; - HEAP32[4110] = $52; - $54 = $50; - } else { - $23 = (_glfwGetPrimaryMonitor()|0); - $24 = (_glfwGetVideoModes(($23|0),($$byval_copy|0))|0); - $25 = HEAP32[$$byval_copy>>2]|0; - $26 = ($25|0)>(0); - L22: do { - if ($26) { - $27 = HEAP32[4083]|0; - $28 = HEAP32[$$byval_copy>>2]|0; - $29 = HEAP32[4084]|0; - $$015 = 0; - while(1) { - $30 = (($24) + (($$015*24)|0)|0); - $31 = HEAP32[$30>>2]|0; - $32 = ($31|0)<($27|0); - if (!($32)) { - $33 = (((($24) + (($$015*24)|0)|0)) + 4|0); - $34 = HEAP32[$33>>2]|0; - $35 = ($34|0)<($29|0); - if (!($35)) { - break; - } - } - $36 = (($$015) + 1)|0; - $37 = ($36|0)<($28|0); - if ($37) { - $$015 = $36; - } else { - break L22; - } - } - HEAP32[4106] = $31; - HEAP32[4107] = $34; - } - } while(0); - $38 = HEAP32[4106]|0; - $39 = HEAP32[4107]|0; - HEAP32[$vararg_buffer3>>2] = $38; - $vararg_ptr5 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr5>>2] = $39; - _TraceLog(1,4572,$vararg_buffer3); - $40 = HEAP32[4106]|0; - $41 = HEAP32[4107]|0; - _SetupFramebufferSize($40,$41); - $42 = HEAP32[4106]|0; - $43 = HEAP32[4107]|0; - $44 = HEAP32[4082]|0; - $45 = (_glfwGetPrimaryMonitor()|0); - $46 = (_glfwCreateWindow(($42|0),($43|0),($44|0),($45|0),(0|0))|0); - HEAP32[4080] = $46; - $54 = $46; - } - $53 = ($54|0)==(0|0); - if ($53) { - _glfwTerminate(); - _TraceLog(2,4610,$vararg_buffer6); - } else { - _TraceLog(0,4643,$vararg_buffer8); - $55 = HEAP32[4109]|0; - $56 = HEAP32[4110]|0; - HEAP32[$vararg_buffer10>>2] = $55; - $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); - HEAP32[$vararg_ptr13>>2] = $56; - _TraceLog(0,4683,$vararg_buffer10); - $57 = HEAP32[4083]|0; - $58 = HEAP32[4084]|0; - HEAP32[$vararg_buffer14>>2] = $57; - $vararg_ptr17 = ((($vararg_buffer14)) + 4|0); - HEAP32[$vararg_ptr17>>2] = $58; - _TraceLog(0,4704,$vararg_buffer14); - $59 = HEAP32[4111]|0; - $60 = HEAP32[4112]|0; - HEAP32[$vararg_buffer18>>2] = $59; - $vararg_ptr21 = ((($vararg_buffer18)) + 4|0); - HEAP32[$vararg_ptr21>>2] = $60; - _TraceLog(0,4725,$vararg_buffer18); - } - $61 = HEAP32[4080]|0; - (_glfwSetWindowSizeCallback(($61|0),(1|0))|0); - $62 = HEAP32[4080]|0; - (_glfwSetCursorEnterCallback(($62|0),(2|0))|0); - $63 = HEAP32[4080]|0; - (_glfwSetKeyCallback(($63|0),(1|0))|0); - $64 = HEAP32[4080]|0; - (_glfwSetMouseButtonCallback(($64|0),(1|0))|0); - $65 = HEAP32[4080]|0; - (_glfwSetCursorPosCallback(($65|0),(1|0))|0); - $66 = HEAP32[4080]|0; - (_glfwSetCharCallback(($66|0),(3|0))|0); - $67 = HEAP32[4080]|0; - (_glfwSetScrollCallback(($67|0),(2|0))|0); - $68 = HEAP32[4080]|0; - (_glfwSetWindowIconifyCallback(($68|0),(4|0))|0); - $69 = HEAP32[4080]|0; - _glfwMakeContextCurrent(($69|0)); - _glfwSwapInterval(0); - $70 = HEAP8[17236]|0; - $71 = $70 & 64; - $72 = ($71<<24>>24)==(0); - if ($72) { - $73 = HEAP32[4083]|0; - $74 = HEAP32[4084]|0; - _rlglInit($73,$74); - _SetupViewport(); - _rlMatrixMode(5889); - _rlLoadIdentity(); - $75 = HEAP32[4109]|0; - $76 = HEAP32[4111]|0; - $77 = (($75) - ($76))|0; - $78 = (+($77|0)); - $79 = HEAP32[4110]|0; - $80 = HEAP32[4112]|0; - $81 = (($79) - ($80))|0; - $82 = (+($81|0)); - _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); - _rlMatrixMode(5888); - _rlLoadIdentity(); - HEAP8[$3>>0] = -11; - $83 = ((($3)) + 1|0); - HEAP8[$83>>0] = -11; - $84 = ((($3)) + 2|0); - HEAP8[$84>>0] = -11; - $85 = ((($3)) + 3|0); - HEAP8[$85>>0] = -1; - ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; - _ClearBackground($$byval_copy); - STACKTOP = sp;return; - } - _glfwSwapInterval(1); - _TraceLog(0,4750,$vararg_buffer22); - $73 = HEAP32[4083]|0; - $74 = HEAP32[4084]|0; - _rlglInit($73,$74); - _SetupViewport(); - _rlMatrixMode(5889); - _rlLoadIdentity(); - $75 = HEAP32[4109]|0; - $76 = HEAP32[4111]|0; - $77 = (($75) - ($76))|0; - $78 = (+($77|0)); - $79 = HEAP32[4110]|0; - $80 = HEAP32[4112]|0; - $81 = (($79) - ($80))|0; - $82 = (+($81|0)); - _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); - _rlMatrixMode(5888); - _rlLoadIdentity(); - HEAP8[$3>>0] = -11; - $83 = ((($3)) + 1|0); - HEAP8[$83>>0] = -11; - $84 = ((($3)) + 2|0); - HEAP8[$84>>0] = -11; - $85 = ((($3)) + 3|0); - HEAP8[$85>>0] = -1; - ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; - _ClearBackground($$byval_copy); - STACKTOP = sp;return; -} -function _InitTimer() { - var $0 = 0, $1 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_time((0|0))|0); - _srand($0); - $1 = (+_GetTime()); - HEAPF64[1756] = $1; - return; -} -function _EmscriptenFullscreenChangeCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer4 = sp + 16|0; - $vararg_buffer = sp; - $3 = HEAP32[$1>>2]|0; - $4 = ($3|0)==(0); - $5 = ((($1)) + 264|0); - $6 = HEAP32[$5>>2]|0; - $7 = ((($1)) + 268|0); - $8 = HEAP32[$7>>2]|0; - $9 = ((($1)) + 272|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($1)) + 276|0); - $12 = HEAP32[$11>>2]|0; - if ($4) { - HEAP32[$vararg_buffer4>>2] = $6; - $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); - HEAP32[$vararg_ptr7>>2] = $8; - $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); - HEAP32[$vararg_ptr8>>2] = $10; - $vararg_ptr9 = ((($vararg_buffer4)) + 12|0); - HEAP32[$vararg_ptr9>>2] = $12; - _TraceLog(0,4454,$vararg_buffer4); - STACKTOP = sp;return 0; - } else { - HEAP32[$vararg_buffer>>2] = $6; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $8; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $10; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $12; - _TraceLog(0,4385,$vararg_buffer); - STACKTOP = sp;return 0; - } - return (0)|0; -} -function _EmscriptenKeyboardCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(1); - if (!($3)) { - return 0; - } - $4 = ((($1)) + 32|0); - $5 = (_strcmp($4,4378)|0); - $6 = ($5|0)==(0); - if (!($6)) { - return 0; - } - (_emscripten_exit_pointerlock()|0); - return 0; -} -function _EmscriptenMouseCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $3 = sp; - $4 = ($0|0)==(4); - $5 = HEAP32[4079]|0; - $6 = ($5|0)!=(0); - $or$cond = $4 & $6; - if (!($or$cond)) { - STACKTOP = sp;return 0; - } - (_emscripten_get_pointerlock_status(($3|0))|0); - $7 = HEAP32[$3>>2]|0; - $8 = ($7|0)==(0); - if ($8) { - (_emscripten_request_pointerlock((0|0),1)|0); - } else { - (_emscripten_exit_pointerlock()|0); - (_emscripten_get_pointerlock_status(($3|0))|0); - } - HEAP32[4079] = 0; - STACKTOP = sp;return 0; -} -function _EmscriptenTouchCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $$sink = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$03$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx2 = 0, $$sroa$24$0$$sroa_idx5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0.0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0.0, $6 = 0; - var $60 = 0.0, $61 = 0.0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $$byval_copy = sp + 56|0; - $3 = sp; - switch ($0|0) { - case 22: { - $$sink = 1; - label = 4; - break; - } - case 23: { - $$sink = 0; - label = 4; - break; - } - case 24: { - $$sink = 2; - label = 4; - break; - } - default: { - } - } - if ((label|0) == 4) { - HEAP32[$3>>2] = $$sink; - } - $4 = HEAP32[$1>>2]|0; - $5 = ((($3)) + 4|0); - HEAP32[$5>>2] = $4; - $6 = ((($1)) + 20|0); - $7 = HEAP32[$6>>2]|0; - $8 = ((($3)) + 8|0); - HEAP32[$8>>2] = $7; - $9 = ((($1)) + 72|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($3)) + 12|0); - HEAP32[$11>>2] = $10; - $12 = ((($1)) + 56|0); - $13 = HEAP32[$12>>2]|0; - $14 = (+($13|0)); - $15 = ((($1)) + 60|0); - $16 = HEAP32[$15>>2]|0; - $17 = (+($16|0)); - $$sroa$03$0$$sroa_idx = ((($3)) + 24|0); - HEAPF32[$$sroa$03$0$$sroa_idx>>2] = $14; - $$sroa$24$0$$sroa_idx5 = ((($3)) + 28|0); - HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $17; - $18 = ((($1)) + 108|0); - $19 = HEAP32[$18>>2]|0; - $20 = (+($19|0)); - $21 = ((($1)) + 112|0); - $22 = HEAP32[$21>>2]|0; - $23 = (+($22|0)); - $$sroa$0$0$$sroa_idx = ((($3)) + 32|0); - HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $20; - $$sroa$2$0$$sroa_idx2 = ((($3)) + 36|0); - HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $23; - $24 = ((($3)) + 24|0); - $25 = $24; - $26 = $25; - $27 = HEAP32[$26>>2]|0; - $28 = (($25) + 4)|0; - $29 = $28; - $30 = HEAP32[$29>>2]|0; - $31 = 14032; - $32 = $31; - HEAP32[$32>>2] = $27; - $33 = (($31) + 4)|0; - $34 = $33; - HEAP32[$34>>2] = $30; - $35 = ((($3)) + 32|0); - $36 = $35; - $37 = $36; - $38 = HEAP32[$37>>2]|0; - $39 = (($36) + 4)|0; - $40 = $39; - $41 = HEAP32[$40>>2]|0; - $42 = (14040); - $43 = $42; - HEAP32[$43>>2] = $38; - $44 = (($42) + 4)|0; - $45 = $44; - HEAP32[$45>>2] = $41; - $46 = (_GetScreenWidth()|0); - $47 = (+($46|0)); - $48 = +HEAPF32[$24>>2]; - $49 = $48 / $47; - HEAPF32[$24>>2] = $49; - $50 = (_GetScreenHeight()|0); - $51 = (+($50|0)); - $52 = +HEAPF32[$$sroa$24$0$$sroa_idx5>>2]; - $53 = $52 / $51; - HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $53; - $54 = (_GetScreenWidth()|0); - $55 = (+($54|0)); - $56 = +HEAPF32[$35>>2]; - $57 = $56 / $55; - HEAPF32[$35>>2] = $57; - $58 = (_GetScreenHeight()|0); - $59 = (+($58|0)); - $60 = +HEAPF32[$$sroa$2$0$$sroa_idx2>>2]; - $61 = $60 / $59; - HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $61; - dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _ProcessGestureEvent($$byval_copy); - STACKTOP = sp;return 1; -} -function _EmscriptenGamepadCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$sink = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($1)) + 1296|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)==(0); - if ($5) { - label = 3; - } else { - $6 = ((($1)) + 1300|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)<(4); - if ($8) { - $$sink = 1; - } else { - label = 3; - } - } - if ((label|0) == 3) { - $$sink = 0; - } - $9 = ((($1)) + 1300|0); - $10 = HEAP32[$9>>2]|0; - $11 = (16344 + ($10<<2)|0); - HEAP32[$11>>2] = $$sink; - return 0; -} -function _SetTargetFPS($0) { - $0 = $0|0; - var $$ = 0.0, $$op = 0.0, $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = ($0|0)<(1); - $2 = (+($0|0)); - $3 = 1.0 / $2; - $$ = $1 ? 0.0 : $3; - HEAPF64[1753] = $$; - $4 = $3; - $$op = $4 * 1000.0; - $5 = $$op; - $6 = $1 ? 0.0 : $5; - HEAPF64[$vararg_buffer>>3] = $6; - _TraceLog(0,4334,$vararg_buffer); - STACKTOP = sp;return; -} -function _LogoAnimation() { - var label = 0, sp = 0; - sp = STACKTOP; - HEAP32[4085] = 0; - return; -} -function _GetScreenWidth() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4083]|0; - return ($0|0); -} -function _GetScreenHeight() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4084]|0; - return ($0|0); -} -function _GetTime() { - var $0 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (+_glfwGetTime()); - return (+$0); -} -function _ErrorCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - HEAP32[$vararg_buffer>>2] = $0; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $1; - _TraceLog(1,8306,$vararg_buffer); - STACKTOP = sp;return; -} -function _SetupFramebufferSize($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$sink = 0, $$sink1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0; - var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0.0; - var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, $or$cond = 0, $roundf = 0.0, $roundf38 = 0.0, $roundf39 = 0.0, $roundf40 = 0.0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr2 = 0; - var $vararg_ptr3 = 0, $vararg_ptr7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $vararg_buffer8 = sp + 24|0; - $vararg_buffer4 = sp + 16|0; - $vararg_buffer = sp; - $2 = sp + 40|0; - $3 = HEAP32[4083]|0; - $4 = ($3|0)>($0|0); - if (!($4)) { - $5 = HEAP32[4084]|0; - $6 = ($5|0)>($1|0); - if (!($6)) { - $30 = ($3|0)<($0|0); - $31 = ($5|0)<($1|0); - $or$cond = $30 | $31; - if (!($or$cond)) { - HEAP32[4109] = $3; - HEAP32[4110] = $5; - HEAP32[4111] = 0; - HEAP32[4112] = 0; - STACKTOP = sp;return; - } - HEAP32[$vararg_buffer8>>2] = $3; - $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); - HEAP32[$vararg_ptr11>>2] = $5; - $vararg_ptr12 = ((($vararg_buffer8)) + 8|0); - HEAP32[$vararg_ptr12>>2] = $0; - $vararg_ptr13 = ((($vararg_buffer8)) + 12|0); - HEAP32[$vararg_ptr13>>2] = $1; - _TraceLog(0,8240,$vararg_buffer8); - $32 = (+($0|0)); - $33 = (+($1|0)); - $34 = $32 / $33; - $35 = HEAP32[4083]|0; - $36 = (+($35|0)); - $37 = HEAP32[4084]|0; - $38 = (+($37|0)); - $39 = $36 / $38; - $40 = !($34 <= $39); - if ($40) { - $44 = $34 * $38; - $roundf = (+_roundf((+$44))); - $45 = (~~(($roundf))); - HEAP32[4109] = $45; - HEAP32[4110] = $37; - $46 = (($45) - ($35))|0; - HEAP32[4111] = $46; - $$sink1 = 0; - } else { - HEAP32[4109] = $35; - $41 = $36 / $34; - $roundf38 = (+_roundf((+$41))); - $42 = (~~(($roundf38))); - HEAP32[4110] = $42; - HEAP32[4111] = 0; - $43 = (($42) - ($37))|0; - $$sink1 = $43; - } - HEAP32[4112] = $$sink1; - STACKTOP = sp;return; - } - } - $7 = HEAP32[4084]|0; - HEAP32[$vararg_buffer>>2] = $3; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $7; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $0; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $1; - _TraceLog(1,8097,$vararg_buffer); - $8 = (+($0|0)); - $9 = HEAP32[4083]|0; - $10 = (+($9|0)); - $11 = $8 / $10; - $12 = (+($1|0)); - $13 = HEAP32[4084]|0; - $14 = (+($13|0)); - $15 = $12 / $14; - $16 = !($11 <= $15); - if ($16) { - $22 = $10 * $15; - $roundf39 = (+_roundf((+$22))); - $23 = (~~(($roundf39))); - HEAP32[4109] = $23; - HEAP32[4110] = $1; - $24 = (($0) - ($23))|0; - HEAP32[4111] = $24; - $$sink = 0; - } else { - HEAP32[4109] = $0; - $17 = HEAP32[4084]|0; - $18 = (+($17|0)); - $19 = $11 * $18; - $roundf40 = (+_roundf((+$19))); - $20 = (~~(($roundf40))); - HEAP32[4110] = $20; - HEAP32[4111] = 0; - $21 = (($1) - ($20))|0; - $$sink = $21; - } - HEAP32[4112] = $$sink; - $25 = HEAP32[4109]|0; - $26 = (+($25|0)); - $27 = HEAP32[4083]|0; - $28 = (+($27|0)); - $29 = $26 / $28; - _MatrixScale($2,$29,$29,$29); - dest=16360; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - HEAP32[4109] = $0; - HEAP32[4110] = $1; - HEAP32[$vararg_buffer4>>2] = $0; - $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); - HEAP32[$vararg_ptr7>>2] = $1; - _TraceLog(1,8175,$vararg_buffer4); - STACKTOP = sp;return; -} -function _WindowSizeCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0.0, $4 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - _rlViewport(0,0,$1,$2); - _rlMatrixMode(5889); - _rlLoadIdentity(); - $3 = (+($1|0)); - $4 = (+($2|0)); - _rlOrtho(0.0,$3,$4,0.0,0.0,1.0); - _rlMatrixMode(5888); - _rlLoadIdentity(); - _rlClearScreenBuffers(); - HEAP32[4083] = $1; - HEAP32[4084] = $2; - HEAP32[4109] = $1; - HEAP32[4110] = $2; - return; -} -function _CursorEnterCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function _KeyCallback($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = HEAP32[744]|0; - $6 = ($5|0)==($1|0); - $7 = ($3|0)==(1); - $or$cond = $7 & $6; - if ($or$cond) { - _glfwSetWindowShouldClose(($0|0),1); - return; - } - $8 = $3&255; - $9 = (17243 + ($1)|0); - HEAP8[$9>>0] = $8; - if (!($7)) { - return; - } - HEAP32[743] = $1; - return; -} -function _MouseButtonCallback($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0; - var $28 = 0.0, $29 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $$byval_copy = sp + 64|0; - $4 = sp + 8|0; - $5 = sp; - $6 = $2&255; - $7 = (17237 + ($1)|0); - HEAP8[$7>>0] = $6; - $8 = (_IsMouseButtonPressed(0)|0); - $9 = ($8|0)==(0); - if ($9) { - $10 = (_IsMouseButtonReleased(0)|0); - $11 = ($10|0)==(0); - if (!($11)) { - $$sink = 0; - label = 3; - } - } else { - $$sink = 1; - label = 3; - } - if ((label|0) == 3) { - HEAP32[$4>>2] = $$sink; - } - $12 = ((($4)) + 8|0); - HEAP32[$12>>2] = 0; - $13 = ((($4)) + 4|0); - HEAP32[$13>>2] = 1; - $14 = ((($4)) + 24|0); - _GetMousePosition($5); - $15 = $5; - $16 = $15; - $17 = HEAP32[$16>>2]|0; - $18 = (($15) + 4)|0; - $19 = $18; - $20 = HEAP32[$19>>2]|0; - $21 = $14; - $22 = $21; - HEAP32[$22>>2] = $17; - $23 = (($21) + 4)|0; - $24 = $23; - HEAP32[$24>>2] = $20; - $25 = (_GetScreenWidth()|0); - $26 = (+($25|0)); - $27 = +HEAPF32[$14>>2]; - $28 = $27 / $26; - HEAPF32[$14>>2] = $28; - $29 = (_GetScreenHeight()|0); - $30 = (+($29|0)); - $31 = ((($4)) + 28|0); - $32 = +HEAPF32[$31>>2]; - $33 = $32 / $30; - HEAPF32[$31>>2] = $33; - dest=$$byval_copy; src=$4; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _ProcessGestureEvent($$byval_copy); - STACKTOP = sp;return; -} -function _MouseCursorPosCallback($0,$1,$2) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - var $$byval_copy = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $$byval_copy = sp + 56|0; - $3 = sp; - HEAP32[$3>>2] = 2; - $4 = ((($3)) + 8|0); - HEAP32[$4>>2] = 0; - $5 = ((($3)) + 4|0); - HEAP32[$5>>2] = 1; - $6 = $1; - $7 = $2; - $$sroa$0$0$$sroa_idx = ((($3)) + 24|0); - HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $6; - $$sroa$2$0$$sroa_idx1 = ((($3)) + 28|0); - HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $7; - $8 = ((($3)) + 24|0); - $9 = $8; - $10 = $9; - $11 = HEAP32[$10>>2]|0; - $12 = (($9) + 4)|0; - $13 = $12; - $14 = HEAP32[$13>>2]|0; - $15 = 14032; - $16 = $15; - HEAP32[$16>>2] = $11; - $17 = (($15) + 4)|0; - $18 = $17; - HEAP32[$18>>2] = $14; - $19 = (_GetScreenWidth()|0); - $20 = (+($19|0)); - $21 = +HEAPF32[$8>>2]; - $22 = $21 / $20; - HEAPF32[$8>>2] = $22; - $23 = (_GetScreenHeight()|0); - $24 = (+($23|0)); - $25 = +HEAPF32[$$sroa$2$0$$sroa_idx1>>2]; - $26 = $25 / $24; - HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $26; - dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _ProcessGestureEvent($$byval_copy); - STACKTOP = sp;return; -} -function _CharCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - HEAP32[743] = $1; - return; -} -function _ScrollCallback($0,$1,$2) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - var $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (~~(($2))); - HEAP32[4115] = $3; - return; -} -function _WindowIconifyCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$sink = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)!=(0); - $$sink = $2&1; - HEAP32[4114] = $$sink; - return; -} -function _rlglInit($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$06066 = 0, $$06167 = 0, $$06268 = 0, $$063 = 0, $$sink64 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0.0, $73 = 0.0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $9 = 0, $exitcond = 0, $exitcond70 = 0, $exitcond71 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0; - var $vararg_buffer19 = 0, $vararg_buffer21 = 0, $vararg_buffer23 = 0, $vararg_buffer25 = 0, $vararg_buffer27 = 0, $vararg_buffer29 = 0, $vararg_buffer31 = 0, $vararg_buffer34 = 0, $vararg_buffer36 = 0, $vararg_buffer39 = 0, $vararg_buffer4 = 0, $vararg_buffer41 = 0, $vararg_buffer7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 2528|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2528|0); - $vararg_buffer41 = sp + 2184|0; - $vararg_buffer39 = sp + 2176|0; - $vararg_buffer36 = sp + 2168|0; - $vararg_buffer34 = sp + 2160|0; - $vararg_buffer31 = sp + 2152|0; - $vararg_buffer29 = sp + 2144|0; - $vararg_buffer27 = sp + 2136|0; - $vararg_buffer25 = sp + 2128|0; - $vararg_buffer23 = sp + 2120|0; - $vararg_buffer21 = sp + 2112|0; - $vararg_buffer19 = sp + 2104|0; - $vararg_buffer17 = sp + 2096|0; - $vararg_buffer15 = sp + 2088|0; - $vararg_buffer13 = sp + 2080|0; - $vararg_buffer10 = sp + 2072|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer4 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 2396|0; - $3 = sp + 2384|0; - $4 = sp + 2320|0; - $5 = sp + 2256|0; - $6 = sp + 2192|0; - $7 = (_glGetString(7936)|0); - HEAP32[$vararg_buffer>>2] = $7; - _TraceLog(0,4773,$vararg_buffer); - $8 = (_glGetString(7937)|0); - HEAP32[$vararg_buffer1>>2] = $8; - _TraceLog(0,4791,$vararg_buffer1); - $9 = (_glGetString(7938)|0); - HEAP32[$vararg_buffer4>>2] = $9; - _TraceLog(0,4809,$vararg_buffer4); - $10 = (_glGetString(35724)|0); - HEAP32[$vararg_buffer7>>2] = $10; - _TraceLog(0,4827,$vararg_buffer7); - $11 = (_glGetString(7939)|0); - $12 = (_strlen($11)|0); - $13 = (($12) + 1)|0; - $14 = (_malloc($13)|0); - _memcpy(($14|0),($11|0),($13|0))|0; - $$063 = 0;$$sink64 = $14; - while(1) { - $15 = (_strtok($$sink64,4845)|0); - $16 = (($vararg_buffer7) + ($$063<<2)|0); - HEAP32[$16>>2] = $15; - $17 = ($15|0)==(0|0); - $18 = (($$063) + 1)|0; - if ($17) { - break; - } else { - $$063 = $18;$$sink64 = 0; - } - } - _free($14); - $19 = (($$063) + -1)|0; - HEAP32[$vararg_buffer10>>2] = $19; - _TraceLog(0,4847,$vararg_buffer10); - $20 = ($$063|0)>(1); - if ($20) { - $$06268 = 0; - while(1) { - $23 = (($vararg_buffer7) + ($$06268<<2)|0); - $24 = HEAP32[$23>>2]|0; - $25 = (_strcmp($24,4882)|0); - $26 = ($25|0)==(0); - if ($26) { - HEAP32[3645] = 1; - $27 = (_eglGetProcAddress((4909|0))|0); - HEAP32[4069] = $27; - $28 = (_eglGetProcAddress((4930|0))|0); - HEAP32[3646] = $28; - $29 = (_eglGetProcAddress((4951|0))|0); - HEAP32[4070] = $29; - } - $30 = (_strcmp($24,4975)|0); - $31 = ($30|0)==(0); - if ($31) { - HEAP32[3537] = 1; - } - $32 = (_strcmp($24,4995)|0); - $33 = ($32|0)==(0); - if ($33) { - HEAP32[3536] = 1; - } - $34 = (_strcmp($24,5013)|0); - $35 = ($34|0)==(0); - if ($35) { - label = 14; - } else { - $36 = HEAP32[$23>>2]|0; - $37 = (_strcmp($36,5045)|0); - $38 = ($37|0)==(0); - if ($38) { - label = 14; - } else { - $39 = (_strcmp($36,5078)|0); - $40 = ($39|0)==(0); - if ($40) { - label = 14; - } - } - } - if ((label|0) == 14) { - label = 0; - HEAP32[3531] = 1; - } - $41 = HEAP32[$23>>2]|0; - $42 = (_strcmp($41,5118)|0); - $43 = ($42|0)==(0); - if ($43) { - label = 17; - } else { - $44 = (_strcmp($41,5154)|0); - $45 = ($44|0)==(0); - if ($45) { - label = 17; - } - } - if ((label|0) == 17) { - label = 0; - HEAP32[3532] = 1; - } - $46 = (_strcmp($41,5187)|0); - $47 = ($46|0)==(0); - if ($47) { - HEAP32[3533] = 1; - } - $48 = HEAP32[$23>>2]|0; - $49 = (_strcmp($48,5212)|0); - $50 = ($49|0)==(0); - if ($50) { - HEAP32[3534] = 1; - } - $51 = (_strcmp($48,5245)|0); - $52 = ($51|0)==(0); - if ($52) { - HEAP32[3535] = 1; - } - $53 = (_strcmp($48,5281)|0); - $54 = ($53|0)==(0); - if ($54) { - HEAP32[4113] = 1; - _glGetFloatv(34047,(14156|0)); - } - $55 = (_strcmp($48,5315)|0); - $56 = ($55|0)==(0); - if ($56) { - HEAP32[3538] = 1; - } - $57 = (($$06268) + 1)|0; - $exitcond71 = ($57|0)==($19|0); - if ($exitcond71) { - break; - } else { - $$06268 = $57; - } - } - } - $21 = HEAP32[3645]|0; - $22 = ($21|0)==(0); - if ($22) { - _TraceLog(1,5418,$vararg_buffer15); - } else { - _TraceLog(0,5343,$vararg_buffer13); - } - $58 = HEAP32[3537]|0; - $59 = ($58|0)==(0); - if ($59) { - _TraceLog(1,5554,$vararg_buffer19); - } else { - _TraceLog(0,5479,$vararg_buffer17); - } - $60 = HEAP32[3531]|0; - $61 = ($60|0)==(0); - if (!($61)) { - _TraceLog(0,5646,$vararg_buffer21); - } - $62 = HEAP32[3532]|0; - $63 = ($62|0)==(0); - if (!($63)) { - _TraceLog(0,5692,$vararg_buffer23); - } - $64 = HEAP32[3533]|0; - $65 = ($64|0)==(0); - if (!($65)) { - _TraceLog(0,5739,$vararg_buffer25); - } - $66 = HEAP32[3534]|0; - $67 = ($66|0)==(0); - if (!($67)) { - _TraceLog(0,5790,$vararg_buffer27); - } - $68 = HEAP32[3535]|0; - $69 = ($68|0)==(0); - if (!($69)) { - _TraceLog(0,5837,$vararg_buffer29); - } - $70 = HEAP32[4113]|0; - $71 = ($70|0)==(0); - if (!($71)) { - $72 = +HEAPF32[3539]; - $73 = $72; - HEAPF64[$vararg_buffer31>>3] = $73; - _TraceLog(0,5884,$vararg_buffer31); - } - $74 = HEAP32[3538]|0; - $75 = ($74|0)==(0); - if (!($75)) { - _TraceLog(0,5950,$vararg_buffer34); - } - HEAP32[$vararg_buffer10>>2] = -1; - $76 = (_rlLoadTexture($vararg_buffer10,1,1,7,1)|0); - HEAP32[3586] = $76; - $77 = ($76|0)==(0); - if ($77) { - _TraceLog(1,6054,$vararg_buffer39); - } else { - HEAP32[$vararg_buffer36>>2] = $76; - _TraceLog(0,6003,$vararg_buffer36); - } - _LoadShaderDefault($2); - _memcpy((16144|0),($2|0),132)|0; - _memcpy((14448|0),($2|0),132)|0; - _LoadBuffersDefault(); - $78 = (_malloc(49152)|0); - HEAP32[4033] = $78; - $$06167 = 0; - while(1) { - $80 = HEAP32[4033]|0; - $81 = (($80) + (($$06167*12)|0)|0); - _Vector3Zero($3); - ;HEAP32[$81>>2]=HEAP32[$3>>2]|0;HEAP32[$81+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$81+8>>2]=HEAP32[$3+8>>2]|0; - $82 = (($$06167) + 1)|0; - $exitcond70 = ($82|0)==(4096); - if ($exitcond70) { - break; - } else { - $$06167 = $82; - } - } - $79 = (_malloc(36864)|0); - HEAP32[3587] = $79; - $$06066 = 0; - while(1) { - $83 = (((($79) + (($$06066*144)|0)|0)) + 8|0); - HEAP32[$83>>2] = 0; - $84 = (($79) + (($$06066*144)|0)|0); - HEAP32[$84>>2] = 0; - $85 = (($$06066) + 1)|0; - $exitcond = ($85|0)==(256); - if ($exitcond) { - break; - } else { - $$06066 = $85; - } - } - HEAP32[3585] = 1; - $86 = HEAP32[3586]|0; - $87 = ((($79)) + 8|0); - HEAP32[$87>>2] = $86; - HEAP32[4034] = 4; - _MatrixIdentity($4); - dest=15096; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15160); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15224); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15288); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15352); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15416); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15480); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15544); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15608); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15672); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15736); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15800); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15864); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15928); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(15992); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(16056); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($5); - dest=14208; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($6); - dest=14272; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - HEAP32[4030] = 14272; - _glDepthFunc(515); - _glDisable(2929); - _glBlendFunc(770,771); - _glEnable(3042); - _glCullFace(1029); - _glFrontFace(2305); - _glEnable(2884); - _glClearColor(0.0,0.0,0.0,1.0); - _glClearDepthf(1.0); - _glClear(16640); - HEAP32[3663] = $0; - HEAP32[3664] = $1; - _TraceLog(0,6093,$vararg_buffer41); - STACKTOP = sp;return; -} -function _SetupViewport() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4111]|0; - $1 = (($0|0) / 2)&-1; - $2 = HEAP32[4112]|0; - $3 = (($2|0) / 2)&-1; - $4 = HEAP32[4109]|0; - $5 = (($4) - ($0))|0; - $6 = HEAP32[4110]|0; - $7 = (($6) - ($2))|0; - _rlViewport($1,$3,$5,$7); - return; -} -function _rlMatrixMode($0) { - $0 = $0|0; - var $modelview$sink = 0, label = 0, sp = 0; - sp = STACKTOP; - switch ($0|0) { - case 5889: { - $modelview$sink = 14208; - label = 3; - break; - } - case 5888: { - $modelview$sink = 14272; - label = 3; - break; - } - default: { - } - } - if ((label|0) == 3) { - HEAP32[4030] = $modelview$sink; - } - HEAP32[4035] = $0; - return; -} -function _rlOrtho($0,$1,$2,$3,$4,$5) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - $4 = +$4; - $5 = +$5; - var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy1 = sp + 192|0; - $$byval_copy = sp + 128|0; - $6 = sp + 64|0; - $7 = sp; - _MatrixOrtho($6,$0,$1,$2,$3,$4,$5); - $8 = HEAP32[4030]|0; - dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($7,$$byval_copy,$$byval_copy1); - dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _ClearBackground($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP8[$0>>0]|0; - $2 = ((($0)) + 1|0); - $3 = HEAP8[$2>>0]|0; - $4 = ((($0)) + 2|0); - $5 = HEAP8[$4>>0]|0; - $6 = ((($0)) + 3|0); - $7 = HEAP8[$6>>0]|0; - _rlClearColor($1,$3,$5,$7); - return; -} -function _rlClearColor($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0.0, $11 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $4 = (+($0&255)); - $5 = $4 / 255.0; - $6 = (+($1&255)); - $7 = $6 / 255.0; - $8 = (+($2&255)); - $9 = $8 / 255.0; - $10 = (+($3&255)); - $11 = $10 / 255.0; - _glClearColor((+$5),(+$7),(+$9),(+$11)); - return; -} -function _LoadShaderDefault($0) { - $0 = $0|0; - var $$sroa$12$0 = 0, $$sroa$12$0$$sroa_idx9 = 0, $$sroa$13$0 = 0, $$sroa$13$0$$sroa_idx11 = 0, $$sroa$14 = 0, $$sroa$14$0$$sroa_idx = 0, $$sroa$1415$0 = 0, $$sroa$1415$0$$sroa_idx16 = 0, $$sroa$15$0 = 0, $$sroa$15$0$$sroa_idx18 = 0, $$sroa$16 = 0, $$sroa$16$0$$sroa_idx = 0, $$sroa$1622$0 = 0, $$sroa$1622$0$$sroa_idx23 = 0, $$sroa$1727$0 = 0, $$sroa$1727$0$$sroa_idx28 = 0, $$sroa$18 = 0, $$sroa$18$0$$sroa_idx = 0, $1 = 0, $10 = 0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1040|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1040|0); - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $$sroa$14 = sp + 96|0; - $$sroa$16 = sp + 80|0; - $$sroa$18 = sp + 12|0; - $1 = sp + 549|0; - $2 = sp + 108|0; - _memcpy(($1|0),(6669|0),483)|0; - _memcpy(($2|0),(7152|0),441)|0; - $3 = (_LoadShaderProgram($1,$2)|0); - $4 = ($3|0)==(0); - if ($4) { - HEAP32[$vararg_buffer1>>2] = $3; - _TraceLog(1,7707,$vararg_buffer1); - $$sroa$12$0 = 0;$$sroa$13$0 = 0;$$sroa$1415$0 = 0;$$sroa$15$0 = 0;$$sroa$1622$0 = 0;$$sroa$1727$0 = 0; - } else { - HEAP32[$vararg_buffer>>2] = $3; - _TraceLog(0,7593,$vararg_buffer); - $5 = (_glGetAttribLocation(($3|0),(7641|0))|0); - $6 = (_glGetAttribLocation(($3|0),(7656|0))|0); - $7 = (_glGetAttribLocation(($3|0),(7671|0))|0); - $8 = (_glGetUniformLocation(($3|0),(7683|0))|0); - $9 = (_glGetUniformLocation(($3|0),(7687|0))|0); - $10 = (_glGetUniformLocation(($3|0),(7698|0))|0); - $$sroa$12$0 = $5;$$sroa$13$0 = $6;$$sroa$1415$0 = $7;$$sroa$15$0 = $8;$$sroa$1622$0 = $9;$$sroa$1727$0 = $10; - } - HEAP32[$0>>2] = $3; - $$sroa$12$0$$sroa_idx9 = ((($0)) + 4|0); - HEAP32[$$sroa$12$0$$sroa_idx9>>2] = $$sroa$12$0; - $$sroa$13$0$$sroa_idx11 = ((($0)) + 8|0); - HEAP32[$$sroa$13$0$$sroa_idx11>>2] = $$sroa$13$0; - $$sroa$14$0$$sroa_idx = ((($0)) + 12|0); - ;HEAP32[$$sroa$14$0$$sroa_idx>>2]=HEAP32[$$sroa$14>>2]|0;HEAP32[$$sroa$14$0$$sroa_idx+4>>2]=HEAP32[$$sroa$14+4>>2]|0;HEAP32[$$sroa$14$0$$sroa_idx+8>>2]=HEAP32[$$sroa$14+8>>2]|0; - $$sroa$1415$0$$sroa_idx16 = ((($0)) + 24|0); - HEAP32[$$sroa$1415$0$$sroa_idx16>>2] = $$sroa$1415$0; - $$sroa$15$0$$sroa_idx18 = ((($0)) + 28|0); - HEAP32[$$sroa$15$0$$sroa_idx18>>2] = $$sroa$15$0; - $$sroa$16$0$$sroa_idx = ((($0)) + 32|0); - ;HEAP32[$$sroa$16$0$$sroa_idx>>2]=HEAP32[$$sroa$16>>2]|0;HEAP32[$$sroa$16$0$$sroa_idx+4>>2]=HEAP32[$$sroa$16+4>>2]|0;HEAP32[$$sroa$16$0$$sroa_idx+8>>2]=HEAP32[$$sroa$16+8>>2]|0;HEAP32[$$sroa$16$0$$sroa_idx+12>>2]=HEAP32[$$sroa$16+12>>2]|0; - $$sroa$1622$0$$sroa_idx23 = ((($0)) + 48|0); - HEAP32[$$sroa$1622$0$$sroa_idx23>>2] = $$sroa$1622$0; - $$sroa$1727$0$$sroa_idx28 = ((($0)) + 60|0); - HEAP32[$$sroa$1727$0$$sroa_idx28>>2] = $$sroa$1727$0; - $$sroa$18$0$$sroa_idx = ((($0)) + 64|0); - dest=$$sroa$18$0$$sroa_idx; src=$$sroa$18; stop=dest+68|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _LoadBuffersDefault() { - var $$05365 = 0, $$05467 = 0, $$05770 = 0, $$05972 = 0, $$066 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; - var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; - var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; - var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; - var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond75 = 0, $exitcond78 = 0, $exitcond80 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer17 = 0; - var $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, $vararg_ptr20 = 0, $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $vararg_buffer17 = sp + 48|0; - $vararg_buffer14 = sp + 40|0; - $vararg_buffer10 = sp + 32|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $0 = (_malloc(24576)|0); - HEAP32[(14364)>>2] = $0; - $1 = (_malloc(8192)|0); - HEAP32[(14372)>>2] = $1; - HEAP32[(14368)>>2] = 0; - HEAP32[(14376)>>2] = 0; - _memset(($0|0),0,24576)|0; - $$05972 = 0; - while(1) { - $2 = HEAP32[(14372)>>2]|0; - $3 = (($2) + ($$05972)|0); - HEAP8[$3>>0] = 0; - $4 = (($$05972) + 1)|0; - $exitcond80 = ($4|0)==(8192); - if ($exitcond80) { - break; - } else { - $$05972 = $4; - } - } - HEAP32[3588] = 0; - HEAP32[(14360)>>2] = 0; - HEAP32[(14356)>>2] = 0; - $5 = (_malloc(73728)|0); - HEAP32[(14412)>>2] = $5; - $6 = (_malloc(24576)|0); - HEAP32[(14420)>>2] = $6; - HEAP32[(14416)>>2] = 0; - HEAP32[(14424)>>2] = 0; - _memset(($5|0),0,73728)|0; - $$05770 = 0; - while(1) { - $7 = HEAP32[(14420)>>2]|0; - $8 = (($7) + ($$05770)|0); - HEAP8[$8>>0] = 0; - $9 = (($$05770) + 1)|0; - $exitcond78 = ($9|0)==(24576); - if ($exitcond78) { - break; - } else { - $$05770 = $9; - } - } - HEAP32[3600] = 0; - HEAP32[(14408)>>2] = 0; - HEAP32[(14404)>>2] = 0; - $10 = (_malloc(49152)|0); - HEAP32[(14172)>>2] = $10; - $11 = (_malloc(32768)|0); - HEAP32[(14176)>>2] = $11; - $12 = (_malloc(16384)|0); - HEAP32[(14180)>>2] = $12; - $13 = (_malloc(12288)|0); - HEAP32[(14184)>>2] = $13; - $14 = HEAP32[(14172)>>2]|0; - _memset(($14|0),0,49152)|0; - $15 = HEAP32[(14176)>>2]|0; - _memset(($15|0),0,32768)|0; - $$05467 = 0; - while(1) { - $17 = HEAP32[(14180)>>2]|0; - $18 = (($17) + ($$05467)|0); - HEAP8[$18>>0] = 0; - $19 = (($$05467) + 1)|0; - $exitcond75 = ($19|0)==(16384); - if ($exitcond75) { - break; - } else { - $$05467 = $19; - } - } - $16 = HEAP32[(14184)>>2]|0; - $$05365 = 0;$$066 = 0; - while(1) { - $22 = $$05365 << 2; - $23 = $22&65535; - $24 = (($16) + ($$066<<1)|0); - HEAP16[$24>>1] = $23; - $25 = $22 | 1; - $26 = $25&65535; - $27 = $$066 | 1; - $28 = (($16) + ($27<<1)|0); - HEAP16[$28>>1] = $26; - $29 = $22 | 2; - $30 = $29&65535; - $31 = (($$066) + 2)|0; - $32 = (($16) + ($31<<1)|0); - HEAP16[$32>>1] = $30; - $33 = (($$066) + 3)|0; - $34 = (($16) + ($33<<1)|0); - HEAP16[$34>>1] = $23; - $35 = (($$066) + 4)|0; - $36 = (($16) + ($35<<1)|0); - HEAP16[$36>>1] = $30; - $37 = $22 | 3; - $38 = $37&65535; - $39 = (($$066) + 5)|0; - $40 = (($16) + ($39<<1)|0); - HEAP16[$40>>1] = $38; - $41 = (($$05365) + 1)|0; - $42 = (($$066) + 6)|0; - $exitcond = ($41|0)==(1024); - if ($exitcond) { - break; - } else { - $$05365 = $41;$$066 = $42; - } - } - HEAP32[3540] = 0; - HEAP32[(14164)>>2] = 0; - HEAP32[(14168)>>2] = 0; - _TraceLog(0,6140,$vararg_buffer); - $20 = HEAP32[3645]|0; - $21 = ($20|0)==(0); - if (!($21)) { - $43 = HEAP32[4069]|0; - FUNCTION_TABLE_vii[$43 & 63](1,(14380)); - $44 = HEAP32[3646]|0; - $45 = HEAP32[(14380)>>2]|0; - FUNCTION_TABLE_vi[$44 & 31]($45); - } - _glGenBuffers(2,((14384)|0)); - $46 = HEAP32[(14384)>>2]|0; - _glBindBuffer(34962,($46|0)); - $47 = HEAP32[(14364)>>2]|0; - _glBufferData(34962,24576,($47|0),35048); - $48 = HEAP32[(14452)>>2]|0; - _glEnableVertexAttribArray(($48|0)); - $49 = HEAP32[(14452)>>2]|0; - _glVertexAttribPointer(($49|0),3,5126,0,0,(0|0)); - _glGenBuffers(2,((14388)|0)); - $50 = HEAP32[(14388)>>2]|0; - _glBindBuffer(34962,($50|0)); - $51 = HEAP32[(14372)>>2]|0; - _glBufferData(34962,8192,($51|0),35048); - $52 = HEAP32[(14472)>>2]|0; - _glEnableVertexAttribArray(($52|0)); - $53 = HEAP32[(14472)>>2]|0; - _glVertexAttribPointer(($53|0),4,5121,1,0,(0|0)); - $54 = HEAP32[3645]|0; - $55 = ($54|0)==(0); - if ($55) { - $57 = HEAP32[(14384)>>2]|0; - $58 = HEAP32[(14388)>>2]|0; - HEAP32[$vararg_buffer3>>2] = $57; - $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr6>>2] = $58; - _TraceLog(0,6278,$vararg_buffer3); - } else { - $56 = HEAP32[(14380)>>2]|0; - HEAP32[$vararg_buffer1>>2] = $56; - _TraceLog(0,6213,$vararg_buffer1); - } - $59 = HEAP32[3645]|0; - $60 = ($59|0)==(0); - if (!($60)) { - $61 = HEAP32[4069]|0; - FUNCTION_TABLE_vii[$61 & 63](1,(14428)); - $62 = HEAP32[3646]|0; - $63 = HEAP32[(14428)>>2]|0; - FUNCTION_TABLE_vi[$62 & 31]($63); - } - _glGenBuffers(1,((14432)|0)); - $64 = HEAP32[(14432)>>2]|0; - _glBindBuffer(34962,($64|0)); - $65 = HEAP32[(14412)>>2]|0; - _glBufferData(34962,73728,($65|0),35048); - $66 = HEAP32[(14452)>>2]|0; - _glEnableVertexAttribArray(($66|0)); - $67 = HEAP32[(14452)>>2]|0; - _glVertexAttribPointer(($67|0),3,5126,0,0,(0|0)); - _glGenBuffers(1,((14436)|0)); - $68 = HEAP32[(14436)>>2]|0; - _glBindBuffer(34962,($68|0)); - $69 = HEAP32[(14420)>>2]|0; - _glBufferData(34962,24576,($69|0),35048); - $70 = HEAP32[(14472)>>2]|0; - _glEnableVertexAttribArray(($70|0)); - $71 = HEAP32[(14472)>>2]|0; - _glVertexAttribPointer(($71|0),4,5121,1,0,(0|0)); - $72 = HEAP32[3645]|0; - $73 = ($72|0)==(0); - if ($73) { - $75 = HEAP32[(14432)>>2]|0; - $76 = HEAP32[(14436)>>2]|0; - HEAP32[$vararg_buffer10>>2] = $75; - $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); - HEAP32[$vararg_ptr13>>2] = $76; - _TraceLog(0,6424,$vararg_buffer10); - } else { - $74 = HEAP32[(14428)>>2]|0; - HEAP32[$vararg_buffer7>>2] = $74; - _TraceLog(0,6355,$vararg_buffer7); - } - $77 = HEAP32[3645]|0; - $78 = ($77|0)==(0); - if (!($78)) { - $79 = HEAP32[4069]|0; - FUNCTION_TABLE_vii[$79 & 63](1,(14188)); - $80 = HEAP32[3646]|0; - $81 = HEAP32[(14188)>>2]|0; - FUNCTION_TABLE_vi[$80 & 31]($81); - } - _glGenBuffers(1,((14192)|0)); - $82 = HEAP32[(14192)>>2]|0; - _glBindBuffer(34962,($82|0)); - $83 = HEAP32[(14172)>>2]|0; - _glBufferData(34962,49152,($83|0),35048); - $84 = HEAP32[(14452)>>2]|0; - _glEnableVertexAttribArray(($84|0)); - $85 = HEAP32[(14452)>>2]|0; - _glVertexAttribPointer(($85|0),3,5126,0,0,(0|0)); - _glGenBuffers(1,((14196)|0)); - $86 = HEAP32[(14196)>>2]|0; - _glBindBuffer(34962,($86|0)); - $87 = HEAP32[(14176)>>2]|0; - _glBufferData(34962,32768,($87|0),35048); - $88 = HEAP32[(14456)>>2]|0; - _glEnableVertexAttribArray(($88|0)); - $89 = HEAP32[(14456)>>2]|0; - _glVertexAttribPointer(($89|0),2,5126,0,0,(0|0)); - _glGenBuffers(1,((14200)|0)); - $90 = HEAP32[(14200)>>2]|0; - _glBindBuffer(34962,($90|0)); - $91 = HEAP32[(14180)>>2]|0; - _glBufferData(34962,16384,($91|0),35048); - $92 = HEAP32[(14472)>>2]|0; - _glEnableVertexAttribArray(($92|0)); - $93 = HEAP32[(14472)>>2]|0; - _glVertexAttribPointer(($93|0),4,5121,1,0,(0|0)); - _glGenBuffers(1,((14204)|0)); - $94 = HEAP32[(14204)>>2]|0; - _glBindBuffer(34963,($94|0)); - $95 = HEAP32[(14184)>>2]|0; - _glBufferData(34963,12288,($95|0),35044); - $96 = HEAP32[3645]|0; - $97 = ($96|0)==(0); - if ($97) { - $99 = HEAP32[(14192)>>2]|0; - $100 = HEAP32[(14196)>>2]|0; - $101 = HEAP32[(14200)>>2]|0; - $102 = HEAP32[(14204)>>2]|0; - HEAP32[$vararg_buffer17>>2] = $99; - $vararg_ptr20 = ((($vararg_buffer17)) + 4|0); - HEAP32[$vararg_ptr20>>2] = $100; - $vararg_ptr21 = ((($vararg_buffer17)) + 8|0); - HEAP32[$vararg_ptr21>>2] = $101; - $vararg_ptr22 = ((($vararg_buffer17)) + 12|0); - HEAP32[$vararg_ptr22>>2] = $102; - _TraceLog(0,6570,$vararg_buffer17); - } else { - $98 = HEAP32[(14188)>>2]|0; - HEAP32[$vararg_buffer14>>2] = $98; - _TraceLog(0,6505,$vararg_buffer14); - } - $103 = HEAP32[3645]|0; - $104 = ($103|0)==(0); - if ($104) { - STACKTOP = sp;return; - } - $105 = HEAP32[3646]|0; - FUNCTION_TABLE_vi[$105 & 31](0); - STACKTOP = sp;return; -} -function _LoadShaderProgram($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$alloca_mul = 0, $$alloca_mul34 = 0, $$alloca_mul36 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer22 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); - $vararg_buffer22 = sp + 64|0; - $vararg_buffer19 = sp + 56|0; - $vararg_buffer16 = sp + 48|0; - $vararg_buffer13 = sp + 40|0; - $vararg_buffer10 = sp + 32|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer4 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 80|0; - $3 = sp + 76|0; - $4 = sp + 72|0; - $5 = sp + 68|0; - $6 = (_glCreateShader(35633)|0); - $7 = (_glCreateShader(35632)|0); - HEAP32[$2>>2] = $0; - HEAP32[$3>>2] = $1; - _glShaderSource(($6|0),1,($2|0),(0|0)); - _glShaderSource(($7|0),1,($3|0),(0|0)); - HEAP32[$4>>2] = 0; - _glCompileShader(($6|0)); - _glGetShaderiv(($6|0),35713,($4|0)); - $8 = HEAP32[$4>>2]|0; - $9 = ($8|0)==(1); - if ($9) { - HEAP32[$vararg_buffer4>>2] = $6; - _TraceLog(0,7807,$vararg_buffer4); - } else { - HEAP32[$vararg_buffer>>2] = $6; - _TraceLog(1,7755,$vararg_buffer); - HEAP32[$vararg_buffer>>2] = 0; - _glGetShaderiv(($6|0),35716,($vararg_buffer|0)); - $10 = HEAP32[$vararg_buffer>>2]|0; - $11 = (_llvm_stacksave()|0); - $$alloca_mul = $10; - $12 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);; - $13 = HEAP32[$vararg_buffer>>2]|0; - _glGetShaderInfoLog(($6|0),($13|0),($5|0),($12|0)); - HEAP32[$vararg_buffer1>>2] = $12; - _TraceLog(0,7804,$vararg_buffer1); - _llvm_stackrestore(($11|0)); - } - _glCompileShader(($7|0)); - _glGetShaderiv(($7|0),35713,($4|0)); - $14 = HEAP32[$4>>2]|0; - $15 = ($14|0)==(1); - if ($15) { - HEAP32[$vararg_buffer13>>2] = $7; - _TraceLog(0,7908,$vararg_buffer13); - } else { - HEAP32[$vararg_buffer7>>2] = $7; - _TraceLog(1,7857,$vararg_buffer7); - HEAP32[$vararg_buffer7>>2] = 0; - _glGetShaderiv(($7|0),35716,($vararg_buffer7|0)); - $16 = HEAP32[$vararg_buffer7>>2]|0; - $17 = (_llvm_stacksave()|0); - $$alloca_mul34 = $16; - $18 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul34)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul34)|0)+15)&-16)|0);; - $19 = HEAP32[$vararg_buffer7>>2]|0; - _glGetShaderInfoLog(($7|0),($19|0),($5|0),($18|0)); - HEAP32[$vararg_buffer10>>2] = $18; - _TraceLog(0,7804,$vararg_buffer10); - _llvm_stackrestore(($17|0)); - } - $20 = (_glCreateProgram()|0); - _glAttachShader(($20|0),($6|0)); - _glAttachShader(($20|0),($7|0)); - _glBindAttribLocation(($20|0),0,(7641|0)); - _glBindAttribLocation(($20|0),1,(7656|0)); - _glBindAttribLocation(($20|0),2,(7960|0)); - _glBindAttribLocation(($20|0),3,(7671|0)); - _glBindAttribLocation(($20|0),4,(7973|0)); - _glBindAttribLocation(($20|0),5,(7987|0)); - _glLinkProgram(($20|0)); - _glGetProgramiv(($20|0),35714,($4|0)); - $21 = HEAP32[$4>>2]|0; - $22 = ($21|0)==(0); - if ($22) { - HEAP32[$vararg_buffer16>>2] = $20; - _TraceLog(1,8003,$vararg_buffer16); - HEAP32[$vararg_buffer16>>2] = 0; - _glGetProgramiv(($20|0),35716,($vararg_buffer16|0)); - $23 = HEAP32[$vararg_buffer16>>2]|0; - $24 = (_llvm_stacksave()|0); - $$alloca_mul36 = $23; - $25 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul36)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul36)|0)+15)&-16)|0);; - $26 = HEAP32[$vararg_buffer16>>2]|0; - _glGetProgramInfoLog(($20|0),($26|0),($5|0),($25|0)); - HEAP32[$vararg_buffer19>>2] = $25; - _TraceLog(0,7804,$vararg_buffer19); - _glDeleteProgram(($20|0)); - _llvm_stackrestore(($24|0)); - $$0 = 0; - _glDeleteShader(($6|0)); - _glDeleteShader(($7|0)); - STACKTOP = sp;return ($$0|0); - } else { - HEAP32[$vararg_buffer22>>2] = $20; - _TraceLog(0,8049,$vararg_buffer22); - $$0 = $20; - _glDeleteShader(($6|0)); - _glDeleteShader(($7|0)); - STACKTOP = sp;return ($$0|0); - } - return (0)|0; -} -function _IsMouseButtonPressed($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (17237 + ($0)|0); - $2 = HEAP8[$1>>0]|0; - $3 = (17240 + ($0)|0); - $4 = HEAP8[$3>>0]|0; - $5 = ($2<<24>>24)!=($4<<24>>24); - $6 = ($2<<24>>24)==(1); - $or$cond = $6 & $5; - $$0 = $or$cond&1; - return ($$0|0); -} -function _IsMouseButtonReleased($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (17237 + ($0)|0); - $2 = HEAP8[$1>>0]|0; - $3 = (17240 + ($0)|0); - $4 = HEAP8[$3>>0]|0; - $5 = ($2<<24>>24)!=($4<<24>>24); - $6 = ($2<<24>>24)==(0); - $or$cond = $6 & $5; - $$0 = $or$cond&1; - return ($$0|0); -} -function _rlClearScreenBuffers() { - var label = 0, sp = 0; - sp = STACKTOP; - _glClear(16640); - return; -} -function _CloseWindow() { - var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - _UnloadDefaultFont(); - _rlglClose(); - $0 = HEAP32[4080]|0; - _glfwDestroyWindow(($0|0)); - _glfwTerminate(); - _TraceLog(0,8344,$vararg_buffer); - STACKTOP = sp;return; -} -function _rlglClose() { - var $0 = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - _UnloadShaderDefault(); - _UnloadBuffersDefault(); - _glDeleteTextures(1,(14344|0)); - $0 = HEAP32[3586]|0; - HEAP32[$vararg_buffer>>2] = $0; - _TraceLog(0,8371,$vararg_buffer); - $1 = HEAP32[3587]|0; - _free($1); - STACKTOP = sp;return; -} -function _UnloadShaderDefault() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - _glUseProgram(0); - $0 = HEAP32[4036]|0; - _glDeleteProgram(($0|0)); - return; -} -function _UnloadBuffersDefault() { - var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[3645]|0; - $1 = ($0|0)==(0); - if (!($1)) { - $2 = HEAP32[3646]|0; - FUNCTION_TABLE_vi[$2 & 31](0); - } - _glDisableVertexAttribArray(0); - _glDisableVertexAttribArray(1); - _glDisableVertexAttribArray(2); - _glDisableVertexAttribArray(3); - _glBindBuffer(34962,0); - _glBindBuffer(34963,0); - _glDeleteBuffers(1,((14384)|0)); - _glDeleteBuffers(1,((14388)|0)); - _glDeleteBuffers(1,((14432)|0)); - _glDeleteBuffers(1,((14436)|0)); - _glDeleteBuffers(1,((14192)|0)); - _glDeleteBuffers(1,((14196)|0)); - _glDeleteBuffers(1,((14200)|0)); - _glDeleteBuffers(1,((14204)|0)); - $3 = HEAP32[3645]|0; - $4 = ($3|0)==(0); - if (!($4)) { - $5 = HEAP32[4070]|0; - FUNCTION_TABLE_vii[$5 & 63](1,(14380)); - $6 = HEAP32[4070]|0; - FUNCTION_TABLE_vii[$6 & 63](1,(14428)); - $7 = HEAP32[4070]|0; - FUNCTION_TABLE_vii[$7 & 63](1,(14188)); - } - $8 = HEAP32[(14364)>>2]|0; - _free($8); - $9 = HEAP32[(14372)>>2]|0; - _free($9); - $10 = HEAP32[(14412)>>2]|0; - _free($10); - $11 = HEAP32[(14420)>>2]|0; - _free($11); - $12 = HEAP32[(14172)>>2]|0; - _free($12); - $13 = HEAP32[(14176)>>2]|0; - _free($13); - $14 = HEAP32[(14180)>>2]|0; - _free($14); - $15 = HEAP32[(14184)>>2]|0; - _free($15); - return; -} -function _BeginDrawing() { - var $0 = 0.0, $1 = 0.0, $2 = 0.0, $downscaleView$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $downscaleView$byval_copy = sp; - $0 = (+_GetTime()); - HEAPF64[1757] = $0; - $1 = +HEAPF64[1756]; - $2 = $0 - $1; - HEAPF64[1758] = $2; - HEAPF64[1756] = $0; - _rlClearScreenBuffers(); - _rlLoadIdentity(); - dest=$downscaleView$byval_copy; src=16360; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - (_MatrixToFloat($downscaleView$byval_copy)|0); - _rlMultMatrixf(14588); - STACKTOP = sp;return; -} -function _rlMultMatrixf($0) { - $0 = $0|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; - var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy1 = sp + 192|0; - $$byval_copy = sp + 128|0; - $1 = sp + 64|0; - $2 = sp; - $3 = HEAP32[$0>>2]|0; - HEAP32[$1>>2] = $3; - $4 = ((($1)) + 4|0); - $5 = ((($0)) + 16|0); - $6 = HEAP32[$5>>2]|0; - HEAP32[$4>>2] = $6; - $7 = ((($1)) + 8|0); - $8 = ((($0)) + 32|0); - $9 = HEAP32[$8>>2]|0; - HEAP32[$7>>2] = $9; - $10 = ((($1)) + 12|0); - $11 = ((($0)) + 48|0); - $12 = HEAP32[$11>>2]|0; - HEAP32[$10>>2] = $12; - $13 = ((($1)) + 16|0); - $14 = ((($0)) + 4|0); - $15 = HEAP32[$14>>2]|0; - HEAP32[$13>>2] = $15; - $16 = ((($1)) + 20|0); - $17 = ((($0)) + 20|0); - $18 = HEAP32[$17>>2]|0; - HEAP32[$16>>2] = $18; - $19 = ((($1)) + 24|0); - $20 = ((($0)) + 36|0); - $21 = HEAP32[$20>>2]|0; - HEAP32[$19>>2] = $21; - $22 = ((($1)) + 28|0); - $23 = ((($0)) + 52|0); - $24 = HEAP32[$23>>2]|0; - HEAP32[$22>>2] = $24; - $25 = ((($1)) + 32|0); - $26 = ((($0)) + 8|0); - $27 = HEAP32[$26>>2]|0; - HEAP32[$25>>2] = $27; - $28 = ((($1)) + 36|0); - $29 = ((($0)) + 24|0); - $30 = HEAP32[$29>>2]|0; - HEAP32[$28>>2] = $30; - $31 = ((($1)) + 40|0); - $32 = ((($0)) + 40|0); - $33 = HEAP32[$32>>2]|0; - HEAP32[$31>>2] = $33; - $34 = ((($1)) + 44|0); - $35 = ((($0)) + 56|0); - $36 = HEAP32[$35>>2]|0; - HEAP32[$34>>2] = $36; - $37 = ((($1)) + 48|0); - $38 = ((($0)) + 12|0); - $39 = HEAP32[$38>>2]|0; - HEAP32[$37>>2] = $39; - $40 = ((($1)) + 52|0); - $41 = ((($0)) + 28|0); - $42 = HEAP32[$41>>2]|0; - HEAP32[$40>>2] = $42; - $43 = ((($1)) + 56|0); - $44 = ((($0)) + 44|0); - $45 = HEAP32[$44>>2]|0; - HEAP32[$43>>2] = $45; - $46 = ((($1)) + 60|0); - $47 = ((($0)) + 60|0); - $48 = HEAP32[$47>>2]|0; - HEAP32[$46>>2] = $48; - $49 = HEAP32[4030]|0; - dest=$$byval_copy; src=$49; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy1; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($2,$$byval_copy,$$byval_copy1); - dest=$49; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _EndDrawing() { - var $0 = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - _rlglDraw(); - _SwapBuffers(); - _PollInputEvents(); - $0 = (+_GetTime()); - HEAPF64[1757] = $0; - $1 = +HEAPF64[1756]; - $2 = $0 - $1; - HEAPF64[1759] = $2; - HEAPF64[1756] = $0; - $3 = +HEAPF64[1758]; - $4 = $2 + $3; - HEAPF64[1743] = $4; - $5 = +HEAPF64[1753]; - $6 = $4 < $5; - if (!($6)) { - return; - } - $7 = $5 - $4; - $8 = $7 * 1000.0; - $9 = $8; - _Wait($9); - $10 = (+_GetTime()); - HEAPF64[1757] = $10; - $11 = +HEAPF64[1756]; - $12 = $10 - $11; - HEAPF64[1756] = $10; - $13 = +HEAPF64[1743]; - $14 = $12 + $13; - HEAPF64[1743] = $14; - return; -} -function _SwapBuffers() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[4080]|0; - _glfwSwapBuffers(($0|0)); - return; -} -function _PollInputEvents() { - var $$04857 = 0, $$05160 = 0, $$058 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0.0, $40 = 0; - var $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep67 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1456|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1456|0); - $0 = sp + 1440|0; - $1 = sp + 1432|0; - $2 = sp; - _UpdateGestures(); - HEAP32[743] = -1; - HEAP32[745] = -1; - HEAP32[4116] = 0; - $3 = HEAP32[4080]|0; - _glfwGetCursorPos(($3|0),($0|0),($1|0)); - $4 = +HEAPF64[$0>>3]; - $5 = $4; - HEAPF32[3504] = $5; - $6 = +HEAPF64[$1>>3]; - $7 = $6; - HEAPF32[(14020)>>2] = $7; - _memcpy((17755|0),(17243|0),512)|0; - ;HEAP8[17240>>0]=HEAP8[17237>>0]|0;HEAP8[17240+1>>0]=HEAP8[17237+1>>0]|0;HEAP8[17240+2>>0]=HEAP8[17237+2>>0]|0; - $8 = HEAP32[4115]|0; - HEAP32[4081] = $8; - HEAP32[4115] = 0; - $9 = (_emscripten_get_num_gamepads()|0); - $10 = ($9|0)>(0); - if (!($10)) { - STACKTOP = sp;return; - } - $11 = ((($2)) + 12|0); - $12 = ((($2)) + 8|0); - $$05160 = 0; - while(1) { - $scevgep = (18267 + ($$05160<<5)|0); - $scevgep67 = (18395 + ($$05160<<5)|0); - dest=$scevgep; src=$scevgep67; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); - $13 = (_emscripten_get_gamepad_status(($$05160|0),($2|0))|0); - $14 = ($13|0)==(0); - if ($14) { - $15 = HEAP32[$11>>2]|0; - $16 = ($15|0)>(0); - if ($16) { - $17 = HEAP32[$11>>2]|0; - $$04857 = 0; - while(1) { - $21 = (((($2)) + 1040|0) + ($$04857<<2)|0); - $22 = HEAP32[$21>>2]|0; - $23 = ($22|0)==(1); - $24 = ((18395 + ($$05160<<5)|0) + ($$04857)|0); - if ($23) { - HEAP8[$24>>0] = 1; - HEAP32[745] = $$04857; - } else { - HEAP8[$24>>0] = 0; - } - $25 = (($$04857) + 1)|0; - $26 = ($25|0)<($17|0); - $27 = ($25|0)<(32); - $28 = $27 & $26; - if ($28) { - $$04857 = $25; - } else { - break; - } - } - } - $18 = HEAP32[$12>>2]|0; - $19 = ($18|0)>(0); - if ($19) { - $20 = HEAP32[$12>>2]|0; - $$058 = 0; - while(1) { - $29 = (((($2)) + 16|0) + ($$058<<3)|0); - $30 = +HEAPF64[$29>>3]; - $31 = $30; - $32 = ((16468 + ($$05160<<5)|0) + ($$058<<2)|0); - HEAPF32[$32>>2] = $31; - $33 = (($$058) + 1)|0; - $34 = ($33|0)<($20|0); - $35 = ($33|0)<(8); - $36 = $35 & $34; - if ($36) { - $$058 = $33; - } else { - $$lcssa = $20; - break; - } - } - } else { - $$lcssa = $18; - } - HEAP32[4116] = $$lcssa; - } - $37 = (($$05160) + 1)|0; - $38 = ($37|0)<($9|0); - $39 = ($37|0)<(4); - $40 = $38 & $39; - if ($40) { - $$05160 = $37; - } else { - break; - } - } - STACKTOP = sp;return; -} -function _Wait($0) { - $0 = +$0; - var $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (+_GetTime()); - $2 = 0.0 - $1; - $3 = $0 / 1000.0; - $4 = $3; - $5 = $2 < $4; - if (!($5)) { - return; - } - while(1) { - $6 = (+_GetTime()); - $7 = $6 - $1; - $8 = $7 < $4; - if (!($8)) { - break; - } - } - return; -} -function _emscripten_GetProcAddress($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; - var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; - var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; - var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; - var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; - var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; - var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0; - var $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0; - var $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0; - var $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0; - var $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0; - var $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0; - var $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0; - var $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0; - var $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0; - var $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0; - var $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0; - var $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0; - var $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0; - var $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0; - var $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0; - var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0; - var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp + 12|0; - $2 = sp + 8|0; - $3 = sp + 4|0; - $4 = sp; - HEAP32[$2>>2] = $0; - $5 = HEAP32[$2>>2]|0; - $6 = (_strlen($5)|0); - $7 = (($6) + 1)|0; - $8 = (_malloc($7)|0); - HEAP32[$3>>2] = $8; - $9 = HEAP32[$3>>2]|0; - $10 = HEAP32[$2>>2]|0; - (_strcpy($9,$10)|0); - $11 = HEAP32[$3>>2]|0; - $12 = (_strstr($11,8436)|0); - HEAP32[$4>>2] = $12; - $13 = HEAP32[$4>>2]|0; - $14 = ($13|0)!=(0|0); - if ($14) { - $15 = HEAP32[$4>>2]|0; - HEAP8[$15>>0] = 0; - } - $16 = HEAP32[$3>>2]|0; - $17 = (_strstr($16,8440)|0); - HEAP32[$4>>2] = $17; - $18 = HEAP32[$4>>2]|0; - $19 = ($18|0)!=(0|0); - if ($19) { - $20 = HEAP32[$4>>2]|0; - HEAP8[$20>>0] = 0; - } - $21 = HEAP32[$3>>2]|0; - $22 = (_strstr($21,8444)|0); - HEAP32[$4>>2] = $22; - $23 = HEAP32[$4>>2]|0; - $24 = ($23|0)!=(0|0); - if ($24) { - $25 = HEAP32[$4>>2]|0; - HEAP8[$25>>0] = 0; - } - $26 = HEAP32[$3>>2]|0; - $27 = (_strstr($26,8448)|0); - HEAP32[$4>>2] = $27; - $28 = HEAP32[$4>>2]|0; - $29 = ($28|0)!=(0|0); - if ($29) { - $30 = HEAP32[$4>>2]|0; - HEAP8[$30>>0] = 0; - } - $31 = HEAP32[$3>>2]|0; - $32 = (_strcmp($31,8454)|0); - $33 = ($32|0)!=(0); - do { - if ($33) { - $34 = HEAP32[$3>>2]|0; - $35 = (_strcmp($34,8492)|0); - $36 = ($35|0)!=(0); - if (!($36)) { - HEAP32[$3>>2] = 8511; - break; - } - $37 = HEAP32[$3>>2]|0; - $38 = (_strcmp($37,8524)|0); - $39 = ($38|0)!=(0); - if (!($39)) { - HEAP32[$3>>2] = 8545; - break; - } - $40 = HEAP32[$3>>2]|0; - $41 = (_strcmp($40,8560)|0); - $42 = ($41|0)!=(0); - if (!($42)) { - HEAP32[$3>>2] = 8575; - break; - } - $43 = HEAP32[$3>>2]|0; - $44 = (_strcmp($43,8590)|0); - $45 = ($44|0)!=(0); - if (!($45)) { - HEAP32[$3>>2] = 8605; - } - } else { - HEAP32[$3>>2] = 8476; - } - } while(0); - $46 = HEAP32[$3>>2]|0; - $47 = (_strcmp($46,8620)|0); - $48 = ($47|0)!=(0); - do { - if ($48) { - $49 = HEAP32[$3>>2]|0; - $50 = (_strcmp($49,8634)|0); - $51 = ($50|0)!=(0); - if (!($51)) { - HEAP32[$1>>2] = 2; - break; - } - $52 = HEAP32[$3>>2]|0; - $53 = (_strcmp($52,8646)|0); - $54 = ($53|0)!=(0); - if (!($54)) { - HEAP32[$1>>2] = 6; - break; - } - $55 = HEAP32[$3>>2]|0; - $56 = (_strcmp($55,8660)|0); - $57 = ($56|0)!=(0); - if (!($57)) { - HEAP32[$1>>2] = 7; - break; - } - $58 = HEAP32[$3>>2]|0; - $59 = (_strcmp($58,8672)|0); - $60 = ($59|0)!=(0); - if (!($60)) { - HEAP32[$1>>2] = 8; - break; - } - $61 = HEAP32[$3>>2]|0; - $62 = (_strcmp($61,8686)|0); - $63 = ($62|0)!=(0); - if (!($63)) { - HEAP32[$1>>2] = 9; - break; - } - $64 = HEAP32[$3>>2]|0; - $65 = (_strcmp($64,8700)|0); - $66 = ($65|0)!=(0); - if (!($66)) { - HEAP32[$1>>2] = 10; - break; - } - $67 = HEAP32[$3>>2]|0; - $68 = (_strcmp($67,8717)|0); - $69 = ($68|0)!=(0); - if (!($69)) { - HEAP32[$1>>2] = 1; - break; - } - $70 = HEAP32[$3>>2]|0; - $71 = (_strcmp($70,8740)|0); - $72 = ($71|0)!=(0); - if (!($72)) { - HEAP32[$1>>2] = 1; - break; - } - $73 = HEAP32[$3>>2]|0; - $74 = (_strcmp($73,8766)|0); - $75 = ($74|0)!=(0); - if (!($75)) { - HEAP32[$1>>2] = 2; - break; - } - $76 = HEAP32[$3>>2]|0; - $77 = (_strcmp($76,8779)|0); - $78 = ($77|0)!=(0); - if (!($78)) { - HEAP32[$1>>2] = 3; - break; - } - $79 = HEAP32[$3>>2]|0; - $80 = (_strcmp($79,8795)|0); - $81 = ($80|0)!=(0); - if (!($81)) { - HEAP32[$1>>2] = 1; - break; - } - $82 = HEAP32[$3>>2]|0; - $83 = (_strcmp($82,8808)|0); - $84 = ($83|0)!=(0); - if (!($84)) { - HEAP32[$1>>2] = 11; - break; - } - $85 = HEAP32[$3>>2]|0; - $86 = (_strcmp($85,8822)|0); - $87 = ($86|0)!=(0); - if (!($87)) { - HEAP32[$1>>2] = 2; - break; - } - $88 = HEAP32[$3>>2]|0; - $89 = (_strcmp($88,8842)|0); - $90 = ($89|0)!=(0); - if (!($90)) { - HEAP32[$1>>2] = 3; - break; - } - $91 = HEAP32[$3>>2]|0; - $92 = (_strcmp($91,8862)|0); - $93 = ($92|0)!=(0); - if (!($93)) { - HEAP32[$1>>2] = 4; - break; - } - $94 = HEAP32[$3>>2]|0; - $95 = (_strcmp($94,8879)|0); - $96 = ($95|0)!=(0); - if (!($96)) { - HEAP32[$1>>2] = 5; - break; - } - $97 = HEAP32[$3>>2]|0; - $98 = (_strcmp($97,8896)|0); - $99 = ($98|0)!=(0); - if (!($99)) { - HEAP32[$1>>2] = 3; - break; - } - $100 = HEAP32[$3>>2]|0; - $101 = (_strcmp($100,8908)|0); - $102 = ($101|0)!=(0); - if (!($102)) { - HEAP32[$1>>2] = 12; - break; - } - $103 = HEAP32[$3>>2]|0; - $104 = (_strcmp($103,8921)|0); - $105 = ($104|0)!=(0); - if (!($105)) { - HEAP32[$1>>2] = 13; - break; - } - $106 = HEAP32[$3>>2]|0; - $107 = (_strcmp($106,8937)|0); - $108 = ($107|0)!=(0); - if (!($108)) { - HEAP32[$1>>2] = 6; - break; - } - $109 = HEAP32[$3>>2]|0; - $110 = (_strcmp($109,8960)|0); - $111 = ($110|0)!=(0); - if (!($111)) { - HEAP32[$1>>2] = 2; - break; - } - $112 = HEAP32[$3>>2]|0; - $113 = (_strcmp($112,8973)|0); - $114 = ($113|0)!=(0); - if (!($114)) { - HEAP32[$1>>2] = 3; - break; - } - $115 = HEAP32[$3>>2]|0; - $116 = (_strcmp($115,8989)|0); - $117 = ($116|0)!=(0); - if (!($117)) { - HEAP32[$1>>2] = 4; - break; - } - $118 = HEAP32[$3>>2]|0; - $119 = (_strcmp($118,9000)|0); - $120 = ($119|0)!=(0); - if (!($120)) { - HEAP32[$1>>2] = 14; - break; - } - $121 = HEAP32[$3>>2]|0; - $122 = (_strcmp($121,9019)|0); - $123 = ($122|0)!=(0); - if (!($123)) { - HEAP32[$1>>2] = 15; - break; - } - $124 = HEAP32[$3>>2]|0; - $125 = (_strcmp($124,9041)|0); - $126 = ($125|0)!=(0); - if (!($126)) { - HEAP32[$1>>2] = 16; - break; - } - $127 = HEAP32[$3>>2]|0; - $128 = (_strcmp($127,9060)|0); - $129 = ($128|0)!=(0); - if (!($129)) { - HEAP32[$1>>2] = 7; - break; - } - $130 = HEAP32[$3>>2]|0; - $131 = (_strcmp($130,9089)|0); - $132 = ($131|0)!=(0); - if (!($132)) { - HEAP32[$1>>2] = 5; - break; - } - $133 = HEAP32[$3>>2]|0; - $134 = (_strcmp($133,9106)|0); - $135 = ($134|0)!=(0); - if (!($135)) { - HEAP32[$1>>2] = 8; - break; - } - $136 = HEAP32[$3>>2]|0; - $137 = (_strcmp($136,9121)|0); - $138 = ($137|0)!=(0); - if (!($138)) { - HEAP32[$1>>2] = 9; - break; - } - $139 = HEAP32[$3>>2]|0; - $140 = (_strcmp($139,9136)|0); - $141 = ($140|0)!=(0); - if (!($141)) { - HEAP32[$1>>2] = 1; - break; - } - $142 = HEAP32[$3>>2]|0; - $143 = (_strcmp($142,9157)|0); - $144 = ($143|0)!=(0); - if (!($144)) { - HEAP32[$1>>2] = 10; - break; - } - $145 = HEAP32[$3>>2]|0; - $146 = (_strcmp($145,9177)|0); - $147 = ($146|0)!=(0); - if (!($147)) { - HEAP32[$1>>2] = 11; - break; - } - $148 = HEAP32[$3>>2]|0; - $149 = (_strcmp($148,9197)|0); - $150 = ($149|0)!=(0); - if (!($150)) { - HEAP32[$1>>2] = 12; - break; - } - $151 = HEAP32[$3>>2]|0; - $152 = (_strcmp($151,9223)|0); - $153 = ($152|0)!=(0); - if (!($153)) { - HEAP32[$1>>2] = 2; - break; - } - $154 = HEAP32[$3>>2]|0; - $155 = (_strcmp($154,9242)|0); - $156 = ($155|0)!=(0); - if (!($156)) { - HEAP32[$1>>2] = 1; - break; - } - $157 = HEAP32[$3>>2]|0; - $158 = (_strcmp($157,9254)|0); - $159 = ($158|0)!=(0); - if (!($159)) { - HEAP32[$1>>2] = 3; - break; - } - $160 = HEAP32[$3>>2]|0; - $161 = (_strcmp($160,9266)|0); - $162 = ($161|0)!=(0); - if (!($162)) { - HEAP32[$1>>2] = 1; - break; - } - $163 = HEAP32[$3>>2]|0; - $164 = (_strcmp($163,9278)|0); - $165 = ($164|0)!=(0); - if (!($165)) { - HEAP32[$1>>2] = 1; - break; - } - $166 = HEAP32[$3>>2]|0; - $167 = (_strcmp($166,9290)|0); - $168 = ($167|0)!=(0); - if (!($168)) { - HEAP32[$1>>2] = 17; - break; - } - $169 = HEAP32[$3>>2]|0; - $170 = (_strcmp($169,9302)|0); - $171 = ($170|0)!=(0); - if (!($171)) { - HEAP32[$1>>2] = 13; - break; - } - $172 = HEAP32[$3>>2]|0; - $173 = (_strcmp($172,9314)|0); - $174 = ($173|0)!=(0); - if (!($174)) { - HEAP32[$1>>2] = 4; - break; - } - $175 = HEAP32[$3>>2]|0; - $176 = (_strcmp($175,9326)|0); - $177 = ($176|0)!=(0); - if (!($177)) { - HEAP32[$1>>2] = 2; - break; - } - $178 = HEAP32[$3>>2]|0; - $179 = (_strcmp($178,9338)|0); - $180 = ($179|0)!=(0); - if (!($180)) { - HEAP32[$1>>2] = 14; - break; - } - $181 = HEAP32[$3>>2]|0; - $182 = (_strcmp($181,9351)|0); - $183 = ($182|0)!=(0); - if (!($183)) { - HEAP32[$1>>2] = 15; - break; - } - $184 = HEAP32[$3>>2]|0; - $185 = (_strcmp($184,9364)|0); - $186 = ($185|0)!=(0); - if (!($186)) { - HEAP32[$1>>2] = 16; - break; - } - $187 = HEAP32[$3>>2]|0; - $188 = (_strcmp($187,9377)|0); - $189 = ($188|0)!=(0); - if (!($189)) { - HEAP32[$1>>2] = 17; - break; - } - $190 = HEAP32[$3>>2]|0; - $191 = (_strcmp($190,9390)|0); - $192 = ($191|0)!=(0); - if (!($192)) { - HEAP32[$1>>2] = 18; - break; - } - $193 = HEAP32[$3>>2]|0; - $194 = (_strcmp($193,9403)|0); - $195 = ($194|0)!=(0); - if (!($195)) { - HEAP32[$1>>2] = 19; - break; - } - $196 = HEAP32[$3>>2]|0; - $197 = (_strcmp($196,9416)|0); - $198 = ($197|0)!=(0); - if (!($198)) { - HEAP32[$1>>2] = 20; - break; - } - $199 = HEAP32[$3>>2]|0; - $200 = (_strcmp($199,9429)|0); - $201 = ($200|0)!=(0); - if (!($201)) { - HEAP32[$1>>2] = 21; - break; - } - $202 = HEAP32[$3>>2]|0; - $203 = (_strcmp($202,9442)|0); - $204 = ($203|0)!=(0); - if (!($204)) { - HEAP32[$1>>2] = 5; - break; - } - $205 = HEAP32[$3>>2]|0; - $206 = (_strcmp($205,9461)|0); - $207 = ($206|0)!=(0); - if (!($207)) { - HEAP32[$1>>2] = 6; - break; - } - $208 = HEAP32[$3>>2]|0; - $209 = (_strcmp($208,9480)|0); - $210 = ($209|0)!=(0); - if (!($210)) { - HEAP32[$1>>2] = 7; - break; - } - $211 = HEAP32[$3>>2]|0; - $212 = (_strcmp($211,9499)|0); - $213 = ($212|0)!=(0); - if (!($213)) { - HEAP32[$1>>2] = 18; - break; - } - $214 = HEAP32[$3>>2]|0; - $215 = (_strcmp($214,9512)|0); - $216 = ($215|0)!=(0); - if (!($216)) { - HEAP32[$1>>2] = 19; - break; - } - $217 = HEAP32[$3>>2]|0; - $218 = (_strcmp($217,9530)|0); - $219 = ($218|0)!=(0); - if (!($219)) { - HEAP32[$1>>2] = 20; - break; - } - $220 = HEAP32[$3>>2]|0; - $221 = (_strcmp($220,9548)|0); - $222 = ($221|0)!=(0); - if (!($222)) { - HEAP32[$1>>2] = 21; - break; - } - $223 = HEAP32[$3>>2]|0; - $224 = (_strcmp($223,9566)|0); - $225 = ($224|0)!=(0); - if (!($225)) { - HEAP32[$1>>2] = 22; - break; - } - $226 = HEAP32[$3>>2]|0; - $227 = (_strcmp($226,9584)|0); - $228 = ($227|0)!=(0); - if (!($228)) { - HEAP32[$1>>2] = 2; - break; - } - $229 = HEAP32[$3>>2]|0; - $230 = (_strcmp($229,9604)|0); - $231 = ($230|0)!=(0); - if (!($231)) { - HEAP32[$1>>2] = 3; - break; - } - $232 = HEAP32[$3>>2]|0; - $233 = (_strcmp($232,8545)|0); - $234 = ($233|0)!=(0); - if (!($234)) { - HEAP32[$1>>2] = 6; - break; - } - $235 = HEAP32[$3>>2]|0; - $236 = (_strcmp($235,9622)|0); - $237 = ($236|0)!=(0); - if (!($237)) { - HEAP32[$1>>2] = 1; - break; - } - $238 = HEAP32[$3>>2]|0; - $239 = (_strcmp($238,9637)|0); - $240 = ($239|0)!=(0); - if (!($240)) { - HEAP32[$1>>2] = 8; - break; - } - $241 = HEAP32[$3>>2]|0; - $242 = (_strcmp($241,9658)|0); - $243 = ($242|0)!=(0); - if (!($243)) { - HEAP32[$1>>2] = 9; - break; - } - $244 = HEAP32[$3>>2]|0; - $245 = (_strcmp($244,9673)|0); - $246 = ($245|0)!=(0); - if (!($246)) { - HEAP32[$1>>2] = 10; - break; - } - $247 = HEAP32[$3>>2]|0; - $248 = (_strcmp($247,9691)|0); - $249 = ($248|0)!=(0); - if (!($249)) { - HEAP32[$1>>2] = 2; - break; - } - $250 = HEAP32[$3>>2]|0; - $251 = (_strcmp($250,9707)|0); - $252 = ($251|0)!=(0); - if (!($252)) { - HEAP32[$1>>2] = 11; - break; - } - $253 = HEAP32[$3>>2]|0; - $254 = (_strcmp($253,9726)|0); - $255 = ($254|0)!=(0); - if (!($255)) { - HEAP32[$1>>2] = 22; - break; - } - $256 = HEAP32[$3>>2]|0; - $257 = (_strcmp($256,9740)|0); - $258 = ($257|0)!=(0); - if (!($258)) { - HEAP32[$1>>2] = 23; - break; - } - $259 = HEAP32[$3>>2]|0; - $260 = (_strcmp($259,9755)|0); - $261 = ($260|0)!=(0); - if (!($261)) { - HEAP32[$1>>2] = 7; - break; - } - $262 = HEAP32[$3>>2]|0; - $263 = (_strcmp($262,8476)|0); - $264 = ($263|0)!=(0); - if (!($264)) { - HEAP32[$1>>2] = 1; - break; - } - $265 = HEAP32[$3>>2]|0; - $266 = (_strcmp($265,9766)|0); - $267 = ($266|0)!=(0); - if (!($267)) { - HEAP32[$1>>2] = 3; - break; - } - $268 = HEAP32[$3>>2]|0; - $269 = (_strcmp($268,8575)|0); - $270 = ($269|0)!=(0); - if (!($270)) { - HEAP32[$1>>2] = 23; - break; - } - $271 = HEAP32[$3>>2]|0; - $272 = (_strcmp($271,8605)|0); - $273 = ($272|0)!=(0); - if (!($273)) { - HEAP32[$1>>2] = 24; - break; - } - $274 = HEAP32[$3>>2]|0; - $275 = (_strcmp($274,9782)|0); - $276 = ($275|0)!=(0); - if (!($276)) { - HEAP32[$1>>2] = 12; - break; - } - $277 = HEAP32[$3>>2]|0; - $278 = (_strcmp($277,9809)|0); - $279 = ($278|0)!=(0); - if (!($279)) { - HEAP32[$1>>2] = 4; - break; - } - $280 = HEAP32[$3>>2]|0; - $281 = (_strcmp($280,9823)|0); - $282 = ($281|0)!=(0); - if (!($282)) { - HEAP32[$1>>2] = 13; - break; - } - $283 = HEAP32[$3>>2]|0; - $284 = (_strcmp($283,8511)|0); - $285 = ($284|0)!=(0); - if (!($285)) { - HEAP32[$1>>2] = 5; - break; - } - $286 = HEAP32[$3>>2]|0; - $287 = (_strcmp($286,9843)|0); - $288 = ($287|0)!=(0); - if (!($288)) { - HEAP32[$1>>2] = 6; - break; - } - $289 = HEAP32[$3>>2]|0; - $290 = (_strcmp($289,9861)|0); - $291 = ($290|0)!=(0); - if (!($291)) { - HEAP32[$1>>2] = 8; - break; - } - $292 = HEAP32[$3>>2]|0; - $293 = (_strcmp($292,9873)|0); - $294 = ($293|0)!=(0); - if (!($294)) { - HEAP32[$1>>2] = 24; - break; - } - $295 = HEAP32[$3>>2]|0; - $296 = (_strcmp($295,9894)|0); - $297 = ($296|0)!=(0); - if (!($297)) { - HEAP32[$1>>2] = 25; - break; - } - $298 = HEAP32[$3>>2]|0; - $299 = (_strcmp($298,9912)|0); - $300 = ($299|0)!=(0); - if (!($300)) { - HEAP32[$1>>2] = 26; - break; - } - $301 = HEAP32[$3>>2]|0; - $302 = (_strcmp($301,9930)|0); - $303 = ($302|0)!=(0); - if (!($303)) { - HEAP32[$1>>2] = 27; - break; - } - $304 = HEAP32[$3>>2]|0; - $305 = (_strcmp($304,9951)|0); - $306 = ($305|0)!=(0); - if (!($306)) { - HEAP32[$1>>2] = 14; - break; - } - $307 = HEAP32[$3>>2]|0; - $308 = (_strcmp($307,9977)|0); - $309 = ($308|0)!=(0); - if (!($309)) { - HEAP32[$1>>2] = 3; - break; - } - $310 = HEAP32[$3>>2]|0; - $311 = (_strcmp($310,10000)|0); - $312 = ($311|0)!=(0); - if (!($312)) { - HEAP32[$1>>2] = 15; - break; - } - $313 = HEAP32[$3>>2]|0; - $314 = (_strcmp($313,10038)|0); - $315 = ($314|0)!=(0); - if (!($315)) { - HEAP32[$1>>2] = 9; - break; - } - $316 = HEAP32[$3>>2]|0; - $317 = (_strcmp($316,10054)|0); - $318 = ($317|0)!=(0); - if (!($318)) { - HEAP32[$1>>2] = 7; - break; - } - $319 = HEAP32[$3>>2]|0; - $320 = (_strcmp($319,10069)|0); - $321 = ($320|0)!=(0); - if (!($321)) { - HEAP32[$1>>2] = 25; - break; - } - $322 = HEAP32[$3>>2]|0; - $323 = (_strcmp($322,10092)|0); - $324 = ($323|0)!=(0); - if (!($324)) { - HEAP32[$1>>2] = 16; - break; - } - $325 = HEAP32[$3>>2]|0; - $326 = (_strcmp($325,10105)|0); - $327 = ($326|0)!=(0); - if (!($327)) { - HEAP32[$1>>2] = 28; - break; - } - $328 = HEAP32[$3>>2]|0; - $329 = (_strcmp($328,10119)|0); - $330 = ($329|0)!=(0); - if (!($330)) { - HEAP32[$1>>2] = 29; - break; - } - $331 = HEAP32[$3>>2]|0; - $332 = (_strcmp($331,10133)|0); - $333 = ($332|0)!=(0); - if (!($333)) { - HEAP32[$1>>2] = 1; - break; - } - $334 = HEAP32[$3>>2]|0; - $335 = (_strcmp($334,10153)|0); - $336 = ($335|0)!=(0); - if (!($336)) { - HEAP32[$1>>2] = 8; - break; - } - $337 = HEAP32[$3>>2]|0; - $338 = (_strcmp($337,10173)|0); - $339 = ($338|0)!=(0); - if (!($339)) { - HEAP32[$1>>2] = 17; - break; - } - $340 = HEAP32[$3>>2]|0; - $341 = (_strcmp($340,10189)|0); - $342 = ($341|0)!=(0); - if (!($342)) { - HEAP32[$1>>2] = 18; - break; - } - $343 = HEAP32[$3>>2]|0; - $344 = (_strcmp($343,10207)|0); - $345 = ($344|0)!=(0); - if (!($345)) { - HEAP32[$1>>2] = 26; - break; - } - $346 = HEAP32[$3>>2]|0; - $347 = (_strcmp($346,10223)|0); - $348 = ($347|0)!=(0); - if (!($348)) { - HEAP32[$1>>2] = 19; - break; - } - $349 = HEAP32[$3>>2]|0; - $350 = (_strcmp($349,10238)|0); - $351 = ($350|0)!=(0); - if (!($351)) { - HEAP32[$1>>2] = 9; - break; - } - $352 = HEAP32[$3>>2]|0; - $353 = (_strcmp($352,10260)|0); - $354 = ($353|0)!=(0); - if (!($354)) { - HEAP32[$1>>2] = 30; - break; - } - $355 = HEAP32[$3>>2]|0; - $356 = (_strcmp($355,10278)|0); - $357 = ($356|0)!=(0); - if (!($357)) { - HEAP32[$1>>2] = 31; - break; - } - $358 = HEAP32[$3>>2]|0; - $359 = (_strcmp($358,10299)|0); - $360 = ($359|0)!=(0); - if (!($360)) { - HEAP32[$1>>2] = 10; - break; - } - $361 = HEAP32[$3>>2]|0; - $362 = (_strcmp($361,10317)|0); - $363 = ($362|0)!=(0); - if (!($363)) { - HEAP32[$1>>2] = 11; - break; - } - $364 = HEAP32[$3>>2]|0; - $365 = (_strcmp($364,10330)|0); - $366 = ($365|0)!=(0); - if (!($366)) { - HEAP32[$1>>2] = 2; - break; - } - $367 = HEAP32[$3>>2]|0; - $368 = (_strcmp($367,10345)|0); - $369 = ($368|0)!=(0); - if (!($369)) { - HEAP32[$1>>2] = 12; - break; - } - $370 = HEAP32[$3>>2]|0; - $371 = (_strcmp($370,10359)|0); - $372 = ($371|0)!=(0); - if (!($372)) { - HEAP32[$1>>2] = 1; - break; - } - $373 = HEAP32[$3>>2]|0; - $374 = (_strcmp($373,10369)|0); - $375 = ($374|0)!=(0); - if (!($375)) { - HEAP32[$1>>2] = 1; - break; - } - $376 = HEAP32[$3>>2]|0; - $377 = (_strcmp($376,10379)|0); - $378 = ($377|0)!=(0); - if (!($378)) { - HEAP32[$1>>2] = 2; - break; - } - $379 = HEAP32[$3>>2]|0; - $380 = (_strcmp($379,10401)|0); - $381 = ($380|0)!=(0); - if (!($381)) { - HEAP32[$1>>2] = 13; - break; - } - $382 = HEAP32[$3>>2]|0; - $383 = (_strcmp($382,10427)|0); - $384 = ($383|0)!=(0); - if (!($384)) { - HEAP32[$1>>2] = 14; - break; - } - $385 = HEAP32[$3>>2]|0; - $386 = (_strcmp($385,10454)|0); - $387 = ($386|0)!=(0); - if (!($387)) { - HEAP32[$1>>2] = 27; - break; - } - $388 = HEAP32[$3>>2]|0; - $389 = (_strcmp($388,10467)|0); - $390 = ($389|0)!=(0); - if (!($390)) { - HEAP32[$1>>2] = 20; - break; - } - $391 = HEAP32[$3>>2]|0; - $392 = (_strcmp($391,10482)|0); - $393 = ($392|0)!=(0); - if (!($393)) { - HEAP32[$1>>2] = 4; - break; - } - $394 = HEAP32[$3>>2]|0; - $395 = (_strcmp($394,10497)|0); - $396 = ($395|0)!=(0); - if (!($396)) { - HEAP32[$1>>2] = 3; - break; - } - $397 = HEAP32[$3>>2]|0; - $398 = (_strcmp($397,10521)|0); - $399 = ($398|0)!=(0); - if (!($399)) { - HEAP32[$1>>2] = 2; - break; - } - $400 = HEAP32[$3>>2]|0; - $401 = (_strcmp($400,10532)|0); - $402 = ($401|0)!=(0); - if (!($402)) { - HEAP32[$1>>2] = 32; - break; - } - $403 = HEAP32[$3>>2]|0; - $404 = (_strcmp($403,10554)|0); - $405 = ($404|0)!=(0); - if (!($405)) { - HEAP32[$1>>2] = 21; - break; - } - $406 = HEAP32[$3>>2]|0; - $407 = (_strcmp($406,10576)|0); - $408 = ($407|0)!=(0); - if (!($408)) { - HEAP32[$1>>2] = 5; - break; - } - $409 = HEAP32[$3>>2]|0; - $410 = (_strcmp($409,10600)|0); - $411 = ($410|0)!=(0); - if (!($411)) { - HEAP32[$1>>2] = 4; - break; - } - $412 = HEAP32[$3>>2]|0; - $413 = (_strcmp($412,10609)|0); - $414 = ($413|0)!=(0); - if (!($414)) { - HEAP32[$1>>2] = 5; - break; - } - $415 = HEAP32[$3>>2]|0; - $416 = (_strcmp($415,10617)|0); - $417 = ($416|0)!=(0); - if (!($417)) { - HEAP32[$1>>2] = 1; - break; - } - $418 = HEAP32[$3>>2]|0; - $419 = (_strcmp($418,10630)|0); - $420 = ($419|0)!=(0); - if (!($420)) { - HEAP32[$1>>2] = 2; - break; - } - $421 = HEAP32[$3>>2]|0; - $422 = (_strcmp($421,10644)|0); - $423 = ($422|0)!=(0); - if (!($423)) { - HEAP32[$1>>2] = 15; - break; - } - $424 = HEAP32[$3>>2]|0; - $425 = (_strcmp($424,10656)|0); - $426 = ($425|0)!=(0); - if (!($426)) { - HEAP32[$1>>2] = 16; - break; - } - $427 = HEAP32[$3>>2]|0; - $428 = (_strcmp($427,10665)|0); - $429 = ($428|0)!=(0); - if (!($429)) { - HEAP32[$1>>2] = 17; - break; - } - $430 = HEAP32[$3>>2]|0; - $431 = (_strcmp($430,10675)|0); - $432 = ($431|0)!=(0); - if (!($432)) { - HEAP32[$1>>2] = 18; - break; - } - $433 = HEAP32[$3>>2]|0; - $434 = (_strcmp($433,10687)|0); - $435 = ($434|0)!=(0); - if (!($435)) { - HEAP32[$1>>2] = 19; - break; - } - $436 = HEAP32[$3>>2]|0; - $437 = (_strcmp($436,10698)|0); - $438 = ($437|0)!=(0); - if (!($438)) { - HEAP32[$1>>2] = 20; - break; - } - $439 = HEAP32[$3>>2]|0; - $440 = (_strcmp($439,10706)|0); - $441 = ($440|0)!=(0); - if (!($441)) { - HEAP32[$1>>2] = 3; - break; - } - $442 = HEAP32[$3>>2]|0; - $443 = (_strcmp($442,10718)|0); - $444 = ($443|0)!=(0); - if (!($444)) { - HEAP32[$1>>2] = 21; - break; - } - $445 = HEAP32[$3>>2]|0; - $446 = (_strcmp($445,10733)|0); - $447 = ($446|0)!=(0); - if (!($447)) { - HEAP32[$1>>2] = 22; - break; - } - $448 = HEAP32[$3>>2]|0; - $449 = (_strcmp($448,10745)|0); - $450 = ($449|0)!=(0); - if (!($450)) { - HEAP32[$1>>2] = 23; - break; - } - $451 = HEAP32[$3>>2]|0; - $452 = (_strcmp($451,10759)|0); - $453 = ($452|0)!=(0); - if (!($453)) { - HEAP32[$1>>2] = 10; - break; - } - $454 = HEAP32[$3>>2]|0; - $455 = (_strcmp($454,10784)|0); - $456 = ($455|0)!=(0); - if (!($456)) { - HEAP32[$1>>2] = 24; - break; - } - $457 = HEAP32[$3>>2]|0; - $458 = (_strcmp($457,10801)|0); - $459 = ($458|0)!=(0); - if (!($459)) { - HEAP32[$1>>2] = 25; - break; - } - $460 = HEAP32[$3>>2]|0; - $461 = (_strcmp($460,10817)|0); - $462 = ($461|0)!=(0); - if (!($462)) { - HEAP32[$1>>2] = 26; - break; - } - $463 = HEAP32[$3>>2]|0; - $464 = (_strcmp($463,10833)|0); - $465 = ($464|0)!=(0); - if (!($465)) { - HEAP32[$1>>2] = 11; - break; - } - $466 = HEAP32[$3>>2]|0; - $467 = (_strcmp($466,10845)|0); - $468 = ($467|0)!=(0); - if (!($468)) { - HEAP32[$1>>2] = 33; - break; - } - $469 = HEAP32[$3>>2]|0; - $470 = (_strcmp($469,10857)|0); - $471 = ($470|0)!=(0); - if (!($471)) { - HEAP32[$1>>2] = 34; - break; - } - $472 = HEAP32[$3>>2]|0; - $473 = (_strcmp($472,10881)|0); - $474 = ($473|0)!=(0); - if (!($474)) { - HEAP32[$1>>2] = 1; - break; - } - $475 = HEAP32[$3>>2]|0; - $476 = (_strcmp($475,10894)|0); - $477 = ($476|0)!=(0); - if (!($477)) { - HEAP32[$1>>2] = 2; - break; - } - $478 = HEAP32[$3>>2]|0; - $479 = (_strcmp($478,10908)|0); - $480 = ($479|0)!=(0); - if (!($480)) { - HEAP32[$1>>2] = 35; - break; - } - $481 = HEAP32[$3>>2]|0; - $482 = (_strcmp($481,10930)|0); - $483 = ($482|0)!=(0); - if (!($483)) { - HEAP32[$1>>2] = 36; - break; - } - $484 = HEAP32[$3>>2]|0; - $485 = (_strcmp($484,10937)|0); - $486 = ($485|0)!=(0); - if (!($486)) { - HEAP32[$1>>2] = 3; - break; - } - $487 = HEAP32[$3>>2]|0; - $488 = (_strcmp($487,10953)|0); - $489 = ($488|0)!=(0); - if (!($489)) { - HEAP32[$1>>2] = 2; - break; - } - $490 = HEAP32[$3>>2]|0; - $491 = (_strcmp($490,10970)|0); - $492 = ($491|0)!=(0); - if (!($492)) { - HEAP32[$1>>2] = 1; - break; - } - $493 = HEAP32[$3>>2]|0; - $494 = (_strcmp($493,10987)|0); - $495 = ($494|0)!=(0); - if (!($495)) { - HEAP32[$1>>2] = 28; - break; - } - $496 = HEAP32[$3>>2]|0; - $497 = (_strcmp($496,11003)|0); - $498 = ($497|0)!=(0); - if (!($498)) { - HEAP32[$1>>2] = 1; - break; - } - $499 = HEAP32[$3>>2]|0; - $500 = (_strcmp($499,11019)|0); - $501 = ($500|0)!=(0); - if (!($501)) { - HEAP32[$1>>2] = 4; - break; - } - $502 = HEAP32[$3>>2]|0; - $503 = (_strcmp($502,11036)|0); - $504 = ($503|0)!=(0); - if (!($504)) { - HEAP32[$1>>2] = 29; - break; - } - $505 = HEAP32[$3>>2]|0; - $506 = (_strcmp($505,11050)|0); - $507 = ($506|0)!=(0); - if (!($507)) { - HEAP32[$1>>2] = 30; - break; - } - $508 = HEAP32[$3>>2]|0; - $509 = (_strcmp($508,11062)|0); - $510 = ($509|0)!=(0); - if (!($510)) { - HEAP32[$1>>2] = 22; - break; - } - $511 = HEAP32[$3>>2]|0; - $512 = (_strcmp($511,11073)|0); - $513 = ($512|0)!=(0); - if (!($513)) { - HEAP32[$1>>2] = 2; - break; - } - $514 = HEAP32[$3>>2]|0; - $515 = (_strcmp($514,11086)|0); - $516 = ($515|0)!=(0); - if (!($516)) { - HEAP32[$1>>2] = 23; - break; - } - $517 = HEAP32[$3>>2]|0; - $518 = (_strcmp($517,11096)|0); - $519 = ($518|0)!=(0); - if (!($519)) { - HEAP32[$1>>2] = 2; - break; - } - $520 = HEAP32[$3>>2]|0; - $521 = (_strcmp($520,11113)|0); - $522 = ($521|0)!=(0); - if (!($522)) { - HEAP32[$1>>2] = 24; - break; - } - $523 = HEAP32[$3>>2]|0; - $524 = (_strcmp($523,11125)|0); - $525 = ($524|0)!=(0); - if (!($525)) { - HEAP32[$1>>2] = 25; - break; - } - $526 = HEAP32[$3>>2]|0; - $527 = (_strcmp($526,11147)|0); - $528 = ($527|0)!=(0); - if (!($528)) { - HEAP32[$1>>2] = 26; - break; - } - $529 = HEAP32[$3>>2]|0; - $530 = (_strcmp($529,11167)|0); - $531 = ($530|0)!=(0); - if (!($531)) { - HEAP32[$1>>2] = 3; - break; - } - $532 = HEAP32[$3>>2]|0; - $533 = (_strcmp($532,11180)|0); - $534 = ($533|0)!=(0); - if (!($534)) { - HEAP32[$1>>2] = 27; - break; - } - $535 = HEAP32[$3>>2]|0; - $536 = (_strcmp($535,11202)|0); - $537 = ($536|0)!=(0); - if (!($537)) { - HEAP32[$1>>2] = 28; - break; - } - $538 = HEAP32[$3>>2]|0; - $539 = (_strcmp($538,11222)|0); - $540 = ($539|0)!=(0); - if (!($540)) { - HEAP32[$1>>2] = 2; - break; - } - $541 = HEAP32[$3>>2]|0; - $542 = (_strcmp($541,11239)|0); - $543 = ($542|0)!=(0); - if (!($543)) { - HEAP32[$1>>2] = 2; - break; - } - $544 = HEAP32[$3>>2]|0; - $545 = (_strcmp($544,11256)|0); - $546 = ($545|0)!=(0); - if (!($546)) { - HEAP32[$1>>2] = 3; - break; - } - $547 = HEAP32[$3>>2]|0; - $548 = (_strcmp($547,11276)|0); - $549 = ($548|0)!=(0); - if ($549) { - $550 = HEAP32[$2>>2]|0; - $551 = HEAP32[$3>>2]|0; - $552 = _emscripten_asm_const_iii(0, ($550|0), ($551|0))|0; - HEAP32[$1>>2] = 0; - break; - } else { - HEAP32[$1>>2] = 37; - break; - } - } else { - HEAP32[$1>>2] = 5; - } - } while(0); - $553 = HEAP32[$1>>2]|0; - STACKTOP = sp;return ($553|0); -} -function _malloc($0) { - $0 = $0|0; - var $$$0192$i = 0, $$$0193$i = 0, $$$4236$i = 0, $$$4351$i = 0, $$$i = 0, $$0 = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i18$i = 0, $$01$i$i = 0, $$0189$i = 0, $$0192$lcssa$i = 0, $$01928$i = 0, $$0193$lcssa$i = 0, $$01937$i = 0, $$0197 = 0, $$0199 = 0, $$0206$i$i = 0, $$0207$i$i = 0, $$0211$i$i = 0; - var $$0212$i$i = 0, $$024371$i = 0, $$0287$i$i = 0, $$0288$i$i = 0, $$0289$i$i = 0, $$0295$i$i = 0, $$0296$i$i = 0, $$0342$i = 0, $$0344$i = 0, $$0345$i = 0, $$0347$i = 0, $$0353$i = 0, $$0358$i = 0, $$0359$$i = 0, $$0359$i = 0, $$0361$i = 0, $$0362$i = 0, $$0368$i = 0, $$1196$i = 0, $$1198$i = 0; - var $$124470$i = 0, $$1291$i$i = 0, $$1293$i$i = 0, $$1343$i = 0, $$1348$i = 0, $$1363$i = 0, $$1370$i = 0, $$1374$i = 0, $$2234253237$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2355$i = 0, $$3$i = 0, $$3$i$i = 0, $$3$i201 = 0, $$3350$i = 0, $$3372$i = 0, $$4$lcssa$i = 0, $$4$ph$i = 0, $$415$i = 0; - var $$4236$i = 0, $$4351$lcssa$i = 0, $$435114$i = 0, $$4357$$4$i = 0, $$4357$ph$i = 0, $$435713$i = 0, $$723948$i = 0, $$749$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i19$i = 0, $$pre$i210 = 0, $$pre$i212 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i20$iZ2D = 0, $$pre$phi$i211Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi11$i$iZ2D = 0, $$pre$phiZ2D = 0; - var $$pre10$i$i = 0, $$sink1$i = 0, $$sink1$i$i = 0, $$sink16$i = 0, $$sink2$i = 0, $$sink2$i204 = 0, $$sink3$i = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0; - var $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0; - var $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0; - var $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; - var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; - var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; - var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; - var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0; - var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0; - var $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0; - var $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0; - var $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0; - var $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0; - var $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0; - var $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0; - var $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0; - var $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0; - var $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0; - var $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0; - var $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0; - var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; - var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; - var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; - var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; - var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; - var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0; - var $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0; - var $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0; - var $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0; - var $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0; - var $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0; - var $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0; - var $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0; - var $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0; - var $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0; - var $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0; - var $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0; - var $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0; - var $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0; - var $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0; - var $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0; - var $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0; - var $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0; - var $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0; - var $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0; - var $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0; - var $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0; - var $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0; - var $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0; - var $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0; - var $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0; - var $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0; - var $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0; - var $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i208 = 0, $exitcond$i$i = 0, $not$$i = 0, $not$$i$i = 0, $not$$i17$i = 0, $not$$i209 = 0, $not$$i216 = 0, $not$1$i = 0, $not$1$i203 = 0, $not$5$i = 0, $not$7$i$i = 0, $not$8$i = 0, $not$9$i = 0; - var $or$cond$i = 0, $or$cond$i214 = 0, $or$cond1$i = 0, $or$cond10$i = 0, $or$cond11$i = 0, $or$cond11$not$i = 0, $or$cond12$i = 0, $or$cond2$i = 0, $or$cond2$i215 = 0, $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond7$i = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - $2 = ($0>>>0)<(245); - do { - if ($2) { - $3 = ($0>>>0)<(11); - $4 = (($0) + 11)|0; - $5 = $4 & -8; - $6 = $3 ? 16 : $5; - $7 = $6 >>> 3; - $8 = HEAP32[4149]|0; - $9 = $8 >>> $7; - $10 = $9 & 3; - $11 = ($10|0)==(0); - if (!($11)) { - $12 = $9 & 1; - $13 = $12 ^ 1; - $14 = (($13) + ($7))|0; - $15 = $14 << 1; - $16 = (16636 + ($15<<2)|0); - $17 = ((($16)) + 8|0); - $18 = HEAP32[$17>>2]|0; - $19 = ((($18)) + 8|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($16|0)==($20|0); - do { - if ($21) { - $22 = 1 << $14; - $23 = $22 ^ -1; - $24 = $8 & $23; - HEAP32[4149] = $24; - } else { - $25 = HEAP32[(16612)>>2]|0; - $26 = ($20>>>0)<($25>>>0); - if ($26) { - _abort(); - // unreachable; - } - $27 = ((($20)) + 12|0); - $28 = HEAP32[$27>>2]|0; - $29 = ($28|0)==($18|0); - if ($29) { - HEAP32[$27>>2] = $16; - HEAP32[$17>>2] = $20; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $30 = $14 << 3; - $31 = $30 | 3; - $32 = ((($18)) + 4|0); - HEAP32[$32>>2] = $31; - $33 = (($18) + ($30)|0); - $34 = ((($33)) + 4|0); - $35 = HEAP32[$34>>2]|0; - $36 = $35 | 1; - HEAP32[$34>>2] = $36; - $$0 = $19; - STACKTOP = sp;return ($$0|0); - } - $37 = HEAP32[(16604)>>2]|0; - $38 = ($6>>>0)>($37>>>0); - if ($38) { - $39 = ($9|0)==(0); - if (!($39)) { - $40 = $9 << $7; - $41 = 2 << $7; - $42 = (0 - ($41))|0; - $43 = $41 | $42; - $44 = $40 & $43; - $45 = (0 - ($44))|0; - $46 = $44 & $45; - $47 = (($46) + -1)|0; - $48 = $47 >>> 12; - $49 = $48 & 16; - $50 = $47 >>> $49; - $51 = $50 >>> 5; - $52 = $51 & 8; - $53 = $52 | $49; - $54 = $50 >>> $52; - $55 = $54 >>> 2; - $56 = $55 & 4; - $57 = $53 | $56; - $58 = $54 >>> $56; - $59 = $58 >>> 1; - $60 = $59 & 2; - $61 = $57 | $60; - $62 = $58 >>> $60; - $63 = $62 >>> 1; - $64 = $63 & 1; - $65 = $61 | $64; - $66 = $62 >>> $64; - $67 = (($65) + ($66))|0; - $68 = $67 << 1; - $69 = (16636 + ($68<<2)|0); - $70 = ((($69)) + 8|0); - $71 = HEAP32[$70>>2]|0; - $72 = ((($71)) + 8|0); - $73 = HEAP32[$72>>2]|0; - $74 = ($69|0)==($73|0); - do { - if ($74) { - $75 = 1 << $67; - $76 = $75 ^ -1; - $77 = $8 & $76; - HEAP32[4149] = $77; - $98 = $77; - } else { - $78 = HEAP32[(16612)>>2]|0; - $79 = ($73>>>0)<($78>>>0); - if ($79) { - _abort(); - // unreachable; - } - $80 = ((($73)) + 12|0); - $81 = HEAP32[$80>>2]|0; - $82 = ($81|0)==($71|0); - if ($82) { - HEAP32[$80>>2] = $69; - HEAP32[$70>>2] = $73; - $98 = $8; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $83 = $67 << 3; - $84 = (($83) - ($6))|0; - $85 = $6 | 3; - $86 = ((($71)) + 4|0); - HEAP32[$86>>2] = $85; - $87 = (($71) + ($6)|0); - $88 = $84 | 1; - $89 = ((($87)) + 4|0); - HEAP32[$89>>2] = $88; - $90 = (($87) + ($84)|0); - HEAP32[$90>>2] = $84; - $91 = ($37|0)==(0); - if (!($91)) { - $92 = HEAP32[(16616)>>2]|0; - $93 = $37 >>> 3; - $94 = $93 << 1; - $95 = (16636 + ($94<<2)|0); - $96 = 1 << $93; - $97 = $98 & $96; - $99 = ($97|0)==(0); - if ($99) { - $100 = $98 | $96; - HEAP32[4149] = $100; - $$pre = ((($95)) + 8|0); - $$0199 = $95;$$pre$phiZ2D = $$pre; - } else { - $101 = ((($95)) + 8|0); - $102 = HEAP32[$101>>2]|0; - $103 = HEAP32[(16612)>>2]|0; - $104 = ($102>>>0)<($103>>>0); - if ($104) { - _abort(); - // unreachable; - } else { - $$0199 = $102;$$pre$phiZ2D = $101; - } - } - HEAP32[$$pre$phiZ2D>>2] = $92; - $105 = ((($$0199)) + 12|0); - HEAP32[$105>>2] = $92; - $106 = ((($92)) + 8|0); - HEAP32[$106>>2] = $$0199; - $107 = ((($92)) + 12|0); - HEAP32[$107>>2] = $95; - } - HEAP32[(16604)>>2] = $84; - HEAP32[(16616)>>2] = $87; - $$0 = $72; - STACKTOP = sp;return ($$0|0); - } - $108 = HEAP32[(16600)>>2]|0; - $109 = ($108|0)==(0); - if ($109) { - $$0197 = $6; - } else { - $110 = (0 - ($108))|0; - $111 = $108 & $110; - $112 = (($111) + -1)|0; - $113 = $112 >>> 12; - $114 = $113 & 16; - $115 = $112 >>> $114; - $116 = $115 >>> 5; - $117 = $116 & 8; - $118 = $117 | $114; - $119 = $115 >>> $117; - $120 = $119 >>> 2; - $121 = $120 & 4; - $122 = $118 | $121; - $123 = $119 >>> $121; - $124 = $123 >>> 1; - $125 = $124 & 2; - $126 = $122 | $125; - $127 = $123 >>> $125; - $128 = $127 >>> 1; - $129 = $128 & 1; - $130 = $126 | $129; - $131 = $127 >>> $129; - $132 = (($130) + ($131))|0; - $133 = (16900 + ($132<<2)|0); - $134 = HEAP32[$133>>2]|0; - $135 = ((($134)) + 4|0); - $136 = HEAP32[$135>>2]|0; - $137 = $136 & -8; - $138 = (($137) - ($6))|0; - $139 = ((($134)) + 16|0); - $140 = HEAP32[$139>>2]|0; - $not$5$i = ($140|0)==(0|0); - $$sink16$i = $not$5$i&1; - $141 = (((($134)) + 16|0) + ($$sink16$i<<2)|0); - $142 = HEAP32[$141>>2]|0; - $143 = ($142|0)==(0|0); - if ($143) { - $$0192$lcssa$i = $134;$$0193$lcssa$i = $138; - } else { - $$01928$i = $134;$$01937$i = $138;$145 = $142; - while(1) { - $144 = ((($145)) + 4|0); - $146 = HEAP32[$144>>2]|0; - $147 = $146 & -8; - $148 = (($147) - ($6))|0; - $149 = ($148>>>0)<($$01937$i>>>0); - $$$0193$i = $149 ? $148 : $$01937$i; - $$$0192$i = $149 ? $145 : $$01928$i; - $150 = ((($145)) + 16|0); - $151 = HEAP32[$150>>2]|0; - $not$$i = ($151|0)==(0|0); - $$sink1$i = $not$$i&1; - $152 = (((($145)) + 16|0) + ($$sink1$i<<2)|0); - $153 = HEAP32[$152>>2]|0; - $154 = ($153|0)==(0|0); - if ($154) { - $$0192$lcssa$i = $$$0192$i;$$0193$lcssa$i = $$$0193$i; - break; - } else { - $$01928$i = $$$0192$i;$$01937$i = $$$0193$i;$145 = $153; - } - } - } - $155 = HEAP32[(16612)>>2]|0; - $156 = ($$0192$lcssa$i>>>0)<($155>>>0); - if ($156) { - _abort(); - // unreachable; - } - $157 = (($$0192$lcssa$i) + ($6)|0); - $158 = ($$0192$lcssa$i>>>0)<($157>>>0); - if (!($158)) { - _abort(); - // unreachable; - } - $159 = ((($$0192$lcssa$i)) + 24|0); - $160 = HEAP32[$159>>2]|0; - $161 = ((($$0192$lcssa$i)) + 12|0); - $162 = HEAP32[$161>>2]|0; - $163 = ($162|0)==($$0192$lcssa$i|0); - do { - if ($163) { - $173 = ((($$0192$lcssa$i)) + 20|0); - $174 = HEAP32[$173>>2]|0; - $175 = ($174|0)==(0|0); - if ($175) { - $176 = ((($$0192$lcssa$i)) + 16|0); - $177 = HEAP32[$176>>2]|0; - $178 = ($177|0)==(0|0); - if ($178) { - $$3$i = 0; - break; - } else { - $$1196$i = $177;$$1198$i = $176; - } - } else { - $$1196$i = $174;$$1198$i = $173; - } - while(1) { - $179 = ((($$1196$i)) + 20|0); - $180 = HEAP32[$179>>2]|0; - $181 = ($180|0)==(0|0); - if (!($181)) { - $$1196$i = $180;$$1198$i = $179; - continue; - } - $182 = ((($$1196$i)) + 16|0); - $183 = HEAP32[$182>>2]|0; - $184 = ($183|0)==(0|0); - if ($184) { - break; - } else { - $$1196$i = $183;$$1198$i = $182; - } - } - $185 = ($$1198$i>>>0)<($155>>>0); - if ($185) { - _abort(); - // unreachable; - } else { - HEAP32[$$1198$i>>2] = 0; - $$3$i = $$1196$i; - break; - } - } else { - $164 = ((($$0192$lcssa$i)) + 8|0); - $165 = HEAP32[$164>>2]|0; - $166 = ($165>>>0)<($155>>>0); - if ($166) { - _abort(); - // unreachable; - } - $167 = ((($165)) + 12|0); - $168 = HEAP32[$167>>2]|0; - $169 = ($168|0)==($$0192$lcssa$i|0); - if (!($169)) { - _abort(); - // unreachable; - } - $170 = ((($162)) + 8|0); - $171 = HEAP32[$170>>2]|0; - $172 = ($171|0)==($$0192$lcssa$i|0); - if ($172) { - HEAP32[$167>>2] = $162; - HEAP32[$170>>2] = $165; - $$3$i = $162; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $186 = ($160|0)==(0|0); - L73: do { - if (!($186)) { - $187 = ((($$0192$lcssa$i)) + 28|0); - $188 = HEAP32[$187>>2]|0; - $189 = (16900 + ($188<<2)|0); - $190 = HEAP32[$189>>2]|0; - $191 = ($$0192$lcssa$i|0)==($190|0); - do { - if ($191) { - HEAP32[$189>>2] = $$3$i; - $cond$i = ($$3$i|0)==(0|0); - if ($cond$i) { - $192 = 1 << $188; - $193 = $192 ^ -1; - $194 = $108 & $193; - HEAP32[(16600)>>2] = $194; - break L73; - } - } else { - $195 = HEAP32[(16612)>>2]|0; - $196 = ($160>>>0)<($195>>>0); - if ($196) { - _abort(); - // unreachable; - } else { - $197 = ((($160)) + 16|0); - $198 = HEAP32[$197>>2]|0; - $not$1$i = ($198|0)!=($$0192$lcssa$i|0); - $$sink2$i = $not$1$i&1; - $199 = (((($160)) + 16|0) + ($$sink2$i<<2)|0); - HEAP32[$199>>2] = $$3$i; - $200 = ($$3$i|0)==(0|0); - if ($200) { - break L73; - } else { - break; - } - } - } - } while(0); - $201 = HEAP32[(16612)>>2]|0; - $202 = ($$3$i>>>0)<($201>>>0); - if ($202) { - _abort(); - // unreachable; - } - $203 = ((($$3$i)) + 24|0); - HEAP32[$203>>2] = $160; - $204 = ((($$0192$lcssa$i)) + 16|0); - $205 = HEAP32[$204>>2]|0; - $206 = ($205|0)==(0|0); - do { - if (!($206)) { - $207 = ($205>>>0)<($201>>>0); - if ($207) { - _abort(); - // unreachable; - } else { - $208 = ((($$3$i)) + 16|0); - HEAP32[$208>>2] = $205; - $209 = ((($205)) + 24|0); - HEAP32[$209>>2] = $$3$i; - break; - } - } - } while(0); - $210 = ((($$0192$lcssa$i)) + 20|0); - $211 = HEAP32[$210>>2]|0; - $212 = ($211|0)==(0|0); - if (!($212)) { - $213 = HEAP32[(16612)>>2]|0; - $214 = ($211>>>0)<($213>>>0); - if ($214) { - _abort(); - // unreachable; - } else { - $215 = ((($$3$i)) + 20|0); - HEAP32[$215>>2] = $211; - $216 = ((($211)) + 24|0); - HEAP32[$216>>2] = $$3$i; - break; - } - } - } - } while(0); - $217 = ($$0193$lcssa$i>>>0)<(16); - if ($217) { - $218 = (($$0193$lcssa$i) + ($6))|0; - $219 = $218 | 3; - $220 = ((($$0192$lcssa$i)) + 4|0); - HEAP32[$220>>2] = $219; - $221 = (($$0192$lcssa$i) + ($218)|0); - $222 = ((($221)) + 4|0); - $223 = HEAP32[$222>>2]|0; - $224 = $223 | 1; - HEAP32[$222>>2] = $224; - } else { - $225 = $6 | 3; - $226 = ((($$0192$lcssa$i)) + 4|0); - HEAP32[$226>>2] = $225; - $227 = $$0193$lcssa$i | 1; - $228 = ((($157)) + 4|0); - HEAP32[$228>>2] = $227; - $229 = (($157) + ($$0193$lcssa$i)|0); - HEAP32[$229>>2] = $$0193$lcssa$i; - $230 = ($37|0)==(0); - if (!($230)) { - $231 = HEAP32[(16616)>>2]|0; - $232 = $37 >>> 3; - $233 = $232 << 1; - $234 = (16636 + ($233<<2)|0); - $235 = 1 << $232; - $236 = $8 & $235; - $237 = ($236|0)==(0); - if ($237) { - $238 = $8 | $235; - HEAP32[4149] = $238; - $$pre$i = ((($234)) + 8|0); - $$0189$i = $234;$$pre$phi$iZ2D = $$pre$i; - } else { - $239 = ((($234)) + 8|0); - $240 = HEAP32[$239>>2]|0; - $241 = HEAP32[(16612)>>2]|0; - $242 = ($240>>>0)<($241>>>0); - if ($242) { - _abort(); - // unreachable; - } else { - $$0189$i = $240;$$pre$phi$iZ2D = $239; - } - } - HEAP32[$$pre$phi$iZ2D>>2] = $231; - $243 = ((($$0189$i)) + 12|0); - HEAP32[$243>>2] = $231; - $244 = ((($231)) + 8|0); - HEAP32[$244>>2] = $$0189$i; - $245 = ((($231)) + 12|0); - HEAP32[$245>>2] = $234; - } - HEAP32[(16604)>>2] = $$0193$lcssa$i; - HEAP32[(16616)>>2] = $157; - } - $246 = ((($$0192$lcssa$i)) + 8|0); - $$0 = $246; - STACKTOP = sp;return ($$0|0); - } - } else { - $$0197 = $6; - } - } else { - $247 = ($0>>>0)>(4294967231); - if ($247) { - $$0197 = -1; - } else { - $248 = (($0) + 11)|0; - $249 = $248 & -8; - $250 = HEAP32[(16600)>>2]|0; - $251 = ($250|0)==(0); - if ($251) { - $$0197 = $249; - } else { - $252 = (0 - ($249))|0; - $253 = $248 >>> 8; - $254 = ($253|0)==(0); - if ($254) { - $$0358$i = 0; - } else { - $255 = ($249>>>0)>(16777215); - if ($255) { - $$0358$i = 31; - } else { - $256 = (($253) + 1048320)|0; - $257 = $256 >>> 16; - $258 = $257 & 8; - $259 = $253 << $258; - $260 = (($259) + 520192)|0; - $261 = $260 >>> 16; - $262 = $261 & 4; - $263 = $262 | $258; - $264 = $259 << $262; - $265 = (($264) + 245760)|0; - $266 = $265 >>> 16; - $267 = $266 & 2; - $268 = $263 | $267; - $269 = (14 - ($268))|0; - $270 = $264 << $267; - $271 = $270 >>> 15; - $272 = (($269) + ($271))|0; - $273 = $272 << 1; - $274 = (($272) + 7)|0; - $275 = $249 >>> $274; - $276 = $275 & 1; - $277 = $276 | $273; - $$0358$i = $277; - } - } - $278 = (16900 + ($$0358$i<<2)|0); - $279 = HEAP32[$278>>2]|0; - $280 = ($279|0)==(0|0); - L117: do { - if ($280) { - $$2355$i = 0;$$3$i201 = 0;$$3350$i = $252; - label = 81; - } else { - $281 = ($$0358$i|0)==(31); - $282 = $$0358$i >>> 1; - $283 = (25 - ($282))|0; - $284 = $281 ? 0 : $283; - $285 = $249 << $284; - $$0342$i = 0;$$0347$i = $252;$$0353$i = $279;$$0359$i = $285;$$0362$i = 0; - while(1) { - $286 = ((($$0353$i)) + 4|0); - $287 = HEAP32[$286>>2]|0; - $288 = $287 & -8; - $289 = (($288) - ($249))|0; - $290 = ($289>>>0)<($$0347$i>>>0); - if ($290) { - $291 = ($289|0)==(0); - if ($291) { - $$415$i = $$0353$i;$$435114$i = 0;$$435713$i = $$0353$i; - label = 85; - break L117; - } else { - $$1343$i = $$0353$i;$$1348$i = $289; - } - } else { - $$1343$i = $$0342$i;$$1348$i = $$0347$i; - } - $292 = ((($$0353$i)) + 20|0); - $293 = HEAP32[$292>>2]|0; - $294 = $$0359$i >>> 31; - $295 = (((($$0353$i)) + 16|0) + ($294<<2)|0); - $296 = HEAP32[$295>>2]|0; - $297 = ($293|0)==(0|0); - $298 = ($293|0)==($296|0); - $or$cond2$i = $297 | $298; - $$1363$i = $or$cond2$i ? $$0362$i : $293; - $299 = ($296|0)==(0|0); - $not$8$i = $299 ^ 1; - $300 = $not$8$i&1; - $$0359$$i = $$0359$i << $300; - if ($299) { - $$2355$i = $$1363$i;$$3$i201 = $$1343$i;$$3350$i = $$1348$i; - label = 81; - break; - } else { - $$0342$i = $$1343$i;$$0347$i = $$1348$i;$$0353$i = $296;$$0359$i = $$0359$$i;$$0362$i = $$1363$i; - } - } - } - } while(0); - if ((label|0) == 81) { - $301 = ($$2355$i|0)==(0|0); - $302 = ($$3$i201|0)==(0|0); - $or$cond$i = $301 & $302; - if ($or$cond$i) { - $303 = 2 << $$0358$i; - $304 = (0 - ($303))|0; - $305 = $303 | $304; - $306 = $250 & $305; - $307 = ($306|0)==(0); - if ($307) { - $$0197 = $249; - break; - } - $308 = (0 - ($306))|0; - $309 = $306 & $308; - $310 = (($309) + -1)|0; - $311 = $310 >>> 12; - $312 = $311 & 16; - $313 = $310 >>> $312; - $314 = $313 >>> 5; - $315 = $314 & 8; - $316 = $315 | $312; - $317 = $313 >>> $315; - $318 = $317 >>> 2; - $319 = $318 & 4; - $320 = $316 | $319; - $321 = $317 >>> $319; - $322 = $321 >>> 1; - $323 = $322 & 2; - $324 = $320 | $323; - $325 = $321 >>> $323; - $326 = $325 >>> 1; - $327 = $326 & 1; - $328 = $324 | $327; - $329 = $325 >>> $327; - $330 = (($328) + ($329))|0; - $331 = (16900 + ($330<<2)|0); - $332 = HEAP32[$331>>2]|0; - $$4$ph$i = 0;$$4357$ph$i = $332; - } else { - $$4$ph$i = $$3$i201;$$4357$ph$i = $$2355$i; - } - $333 = ($$4357$ph$i|0)==(0|0); - if ($333) { - $$4$lcssa$i = $$4$ph$i;$$4351$lcssa$i = $$3350$i; - } else { - $$415$i = $$4$ph$i;$$435114$i = $$3350$i;$$435713$i = $$4357$ph$i; - label = 85; - } - } - if ((label|0) == 85) { - while(1) { - label = 0; - $334 = ((($$435713$i)) + 4|0); - $335 = HEAP32[$334>>2]|0; - $336 = $335 & -8; - $337 = (($336) - ($249))|0; - $338 = ($337>>>0)<($$435114$i>>>0); - $$$4351$i = $338 ? $337 : $$435114$i; - $$4357$$4$i = $338 ? $$435713$i : $$415$i; - $339 = ((($$435713$i)) + 16|0); - $340 = HEAP32[$339>>2]|0; - $not$1$i203 = ($340|0)==(0|0); - $$sink2$i204 = $not$1$i203&1; - $341 = (((($$435713$i)) + 16|0) + ($$sink2$i204<<2)|0); - $342 = HEAP32[$341>>2]|0; - $343 = ($342|0)==(0|0); - if ($343) { - $$4$lcssa$i = $$4357$$4$i;$$4351$lcssa$i = $$$4351$i; - break; - } else { - $$415$i = $$4357$$4$i;$$435114$i = $$$4351$i;$$435713$i = $342; - label = 85; - } - } - } - $344 = ($$4$lcssa$i|0)==(0|0); - if ($344) { - $$0197 = $249; - } else { - $345 = HEAP32[(16604)>>2]|0; - $346 = (($345) - ($249))|0; - $347 = ($$4351$lcssa$i>>>0)<($346>>>0); - if ($347) { - $348 = HEAP32[(16612)>>2]|0; - $349 = ($$4$lcssa$i>>>0)<($348>>>0); - if ($349) { - _abort(); - // unreachable; - } - $350 = (($$4$lcssa$i) + ($249)|0); - $351 = ($$4$lcssa$i>>>0)<($350>>>0); - if (!($351)) { - _abort(); - // unreachable; - } - $352 = ((($$4$lcssa$i)) + 24|0); - $353 = HEAP32[$352>>2]|0; - $354 = ((($$4$lcssa$i)) + 12|0); - $355 = HEAP32[$354>>2]|0; - $356 = ($355|0)==($$4$lcssa$i|0); - do { - if ($356) { - $366 = ((($$4$lcssa$i)) + 20|0); - $367 = HEAP32[$366>>2]|0; - $368 = ($367|0)==(0|0); - if ($368) { - $369 = ((($$4$lcssa$i)) + 16|0); - $370 = HEAP32[$369>>2]|0; - $371 = ($370|0)==(0|0); - if ($371) { - $$3372$i = 0; - break; - } else { - $$1370$i = $370;$$1374$i = $369; - } - } else { - $$1370$i = $367;$$1374$i = $366; - } - while(1) { - $372 = ((($$1370$i)) + 20|0); - $373 = HEAP32[$372>>2]|0; - $374 = ($373|0)==(0|0); - if (!($374)) { - $$1370$i = $373;$$1374$i = $372; - continue; - } - $375 = ((($$1370$i)) + 16|0); - $376 = HEAP32[$375>>2]|0; - $377 = ($376|0)==(0|0); - if ($377) { - break; - } else { - $$1370$i = $376;$$1374$i = $375; - } - } - $378 = ($$1374$i>>>0)<($348>>>0); - if ($378) { - _abort(); - // unreachable; - } else { - HEAP32[$$1374$i>>2] = 0; - $$3372$i = $$1370$i; - break; - } - } else { - $357 = ((($$4$lcssa$i)) + 8|0); - $358 = HEAP32[$357>>2]|0; - $359 = ($358>>>0)<($348>>>0); - if ($359) { - _abort(); - // unreachable; - } - $360 = ((($358)) + 12|0); - $361 = HEAP32[$360>>2]|0; - $362 = ($361|0)==($$4$lcssa$i|0); - if (!($362)) { - _abort(); - // unreachable; - } - $363 = ((($355)) + 8|0); - $364 = HEAP32[$363>>2]|0; - $365 = ($364|0)==($$4$lcssa$i|0); - if ($365) { - HEAP32[$360>>2] = $355; - HEAP32[$363>>2] = $358; - $$3372$i = $355; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $379 = ($353|0)==(0|0); - L164: do { - if ($379) { - $470 = $250; - } else { - $380 = ((($$4$lcssa$i)) + 28|0); - $381 = HEAP32[$380>>2]|0; - $382 = (16900 + ($381<<2)|0); - $383 = HEAP32[$382>>2]|0; - $384 = ($$4$lcssa$i|0)==($383|0); - do { - if ($384) { - HEAP32[$382>>2] = $$3372$i; - $cond$i208 = ($$3372$i|0)==(0|0); - if ($cond$i208) { - $385 = 1 << $381; - $386 = $385 ^ -1; - $387 = $250 & $386; - HEAP32[(16600)>>2] = $387; - $470 = $387; - break L164; - } - } else { - $388 = HEAP32[(16612)>>2]|0; - $389 = ($353>>>0)<($388>>>0); - if ($389) { - _abort(); - // unreachable; - } else { - $390 = ((($353)) + 16|0); - $391 = HEAP32[$390>>2]|0; - $not$$i209 = ($391|0)!=($$4$lcssa$i|0); - $$sink3$i = $not$$i209&1; - $392 = (((($353)) + 16|0) + ($$sink3$i<<2)|0); - HEAP32[$392>>2] = $$3372$i; - $393 = ($$3372$i|0)==(0|0); - if ($393) { - $470 = $250; - break L164; - } else { - break; - } - } - } - } while(0); - $394 = HEAP32[(16612)>>2]|0; - $395 = ($$3372$i>>>0)<($394>>>0); - if ($395) { - _abort(); - // unreachable; - } - $396 = ((($$3372$i)) + 24|0); - HEAP32[$396>>2] = $353; - $397 = ((($$4$lcssa$i)) + 16|0); - $398 = HEAP32[$397>>2]|0; - $399 = ($398|0)==(0|0); - do { - if (!($399)) { - $400 = ($398>>>0)<($394>>>0); - if ($400) { - _abort(); - // unreachable; - } else { - $401 = ((($$3372$i)) + 16|0); - HEAP32[$401>>2] = $398; - $402 = ((($398)) + 24|0); - HEAP32[$402>>2] = $$3372$i; - break; - } - } - } while(0); - $403 = ((($$4$lcssa$i)) + 20|0); - $404 = HEAP32[$403>>2]|0; - $405 = ($404|0)==(0|0); - if ($405) { - $470 = $250; - } else { - $406 = HEAP32[(16612)>>2]|0; - $407 = ($404>>>0)<($406>>>0); - if ($407) { - _abort(); - // unreachable; - } else { - $408 = ((($$3372$i)) + 20|0); - HEAP32[$408>>2] = $404; - $409 = ((($404)) + 24|0); - HEAP32[$409>>2] = $$3372$i; - $470 = $250; - break; - } - } - } - } while(0); - $410 = ($$4351$lcssa$i>>>0)<(16); - do { - if ($410) { - $411 = (($$4351$lcssa$i) + ($249))|0; - $412 = $411 | 3; - $413 = ((($$4$lcssa$i)) + 4|0); - HEAP32[$413>>2] = $412; - $414 = (($$4$lcssa$i) + ($411)|0); - $415 = ((($414)) + 4|0); - $416 = HEAP32[$415>>2]|0; - $417 = $416 | 1; - HEAP32[$415>>2] = $417; - } else { - $418 = $249 | 3; - $419 = ((($$4$lcssa$i)) + 4|0); - HEAP32[$419>>2] = $418; - $420 = $$4351$lcssa$i | 1; - $421 = ((($350)) + 4|0); - HEAP32[$421>>2] = $420; - $422 = (($350) + ($$4351$lcssa$i)|0); - HEAP32[$422>>2] = $$4351$lcssa$i; - $423 = $$4351$lcssa$i >>> 3; - $424 = ($$4351$lcssa$i>>>0)<(256); - if ($424) { - $425 = $423 << 1; - $426 = (16636 + ($425<<2)|0); - $427 = HEAP32[4149]|0; - $428 = 1 << $423; - $429 = $427 & $428; - $430 = ($429|0)==(0); - if ($430) { - $431 = $427 | $428; - HEAP32[4149] = $431; - $$pre$i210 = ((($426)) + 8|0); - $$0368$i = $426;$$pre$phi$i211Z2D = $$pre$i210; - } else { - $432 = ((($426)) + 8|0); - $433 = HEAP32[$432>>2]|0; - $434 = HEAP32[(16612)>>2]|0; - $435 = ($433>>>0)<($434>>>0); - if ($435) { - _abort(); - // unreachable; - } else { - $$0368$i = $433;$$pre$phi$i211Z2D = $432; - } - } - HEAP32[$$pre$phi$i211Z2D>>2] = $350; - $436 = ((($$0368$i)) + 12|0); - HEAP32[$436>>2] = $350; - $437 = ((($350)) + 8|0); - HEAP32[$437>>2] = $$0368$i; - $438 = ((($350)) + 12|0); - HEAP32[$438>>2] = $426; - break; - } - $439 = $$4351$lcssa$i >>> 8; - $440 = ($439|0)==(0); - if ($440) { - $$0361$i = 0; - } else { - $441 = ($$4351$lcssa$i>>>0)>(16777215); - if ($441) { - $$0361$i = 31; - } else { - $442 = (($439) + 1048320)|0; - $443 = $442 >>> 16; - $444 = $443 & 8; - $445 = $439 << $444; - $446 = (($445) + 520192)|0; - $447 = $446 >>> 16; - $448 = $447 & 4; - $449 = $448 | $444; - $450 = $445 << $448; - $451 = (($450) + 245760)|0; - $452 = $451 >>> 16; - $453 = $452 & 2; - $454 = $449 | $453; - $455 = (14 - ($454))|0; - $456 = $450 << $453; - $457 = $456 >>> 15; - $458 = (($455) + ($457))|0; - $459 = $458 << 1; - $460 = (($458) + 7)|0; - $461 = $$4351$lcssa$i >>> $460; - $462 = $461 & 1; - $463 = $462 | $459; - $$0361$i = $463; - } - } - $464 = (16900 + ($$0361$i<<2)|0); - $465 = ((($350)) + 28|0); - HEAP32[$465>>2] = $$0361$i; - $466 = ((($350)) + 16|0); - $467 = ((($466)) + 4|0); - HEAP32[$467>>2] = 0; - HEAP32[$466>>2] = 0; - $468 = 1 << $$0361$i; - $469 = $470 & $468; - $471 = ($469|0)==(0); - if ($471) { - $472 = $470 | $468; - HEAP32[(16600)>>2] = $472; - HEAP32[$464>>2] = $350; - $473 = ((($350)) + 24|0); - HEAP32[$473>>2] = $464; - $474 = ((($350)) + 12|0); - HEAP32[$474>>2] = $350; - $475 = ((($350)) + 8|0); - HEAP32[$475>>2] = $350; - break; - } - $476 = HEAP32[$464>>2]|0; - $477 = ($$0361$i|0)==(31); - $478 = $$0361$i >>> 1; - $479 = (25 - ($478))|0; - $480 = $477 ? 0 : $479; - $481 = $$4351$lcssa$i << $480; - $$0344$i = $481;$$0345$i = $476; - while(1) { - $482 = ((($$0345$i)) + 4|0); - $483 = HEAP32[$482>>2]|0; - $484 = $483 & -8; - $485 = ($484|0)==($$4351$lcssa$i|0); - if ($485) { - label = 139; - break; - } - $486 = $$0344$i >>> 31; - $487 = (((($$0345$i)) + 16|0) + ($486<<2)|0); - $488 = $$0344$i << 1; - $489 = HEAP32[$487>>2]|0; - $490 = ($489|0)==(0|0); - if ($490) { - label = 136; - break; - } else { - $$0344$i = $488;$$0345$i = $489; - } - } - if ((label|0) == 136) { - $491 = HEAP32[(16612)>>2]|0; - $492 = ($487>>>0)<($491>>>0); - if ($492) { - _abort(); - // unreachable; - } else { - HEAP32[$487>>2] = $350; - $493 = ((($350)) + 24|0); - HEAP32[$493>>2] = $$0345$i; - $494 = ((($350)) + 12|0); - HEAP32[$494>>2] = $350; - $495 = ((($350)) + 8|0); - HEAP32[$495>>2] = $350; - break; - } - } - else if ((label|0) == 139) { - $496 = ((($$0345$i)) + 8|0); - $497 = HEAP32[$496>>2]|0; - $498 = HEAP32[(16612)>>2]|0; - $499 = ($497>>>0)>=($498>>>0); - $not$9$i = ($$0345$i>>>0)>=($498>>>0); - $500 = $499 & $not$9$i; - if ($500) { - $501 = ((($497)) + 12|0); - HEAP32[$501>>2] = $350; - HEAP32[$496>>2] = $350; - $502 = ((($350)) + 8|0); - HEAP32[$502>>2] = $497; - $503 = ((($350)) + 12|0); - HEAP32[$503>>2] = $$0345$i; - $504 = ((($350)) + 24|0); - HEAP32[$504>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } while(0); - $505 = ((($$4$lcssa$i)) + 8|0); - $$0 = $505; - STACKTOP = sp;return ($$0|0); - } else { - $$0197 = $249; - } - } - } - } - } - } while(0); - $506 = HEAP32[(16604)>>2]|0; - $507 = ($506>>>0)<($$0197>>>0); - if (!($507)) { - $508 = (($506) - ($$0197))|0; - $509 = HEAP32[(16616)>>2]|0; - $510 = ($508>>>0)>(15); - if ($510) { - $511 = (($509) + ($$0197)|0); - HEAP32[(16616)>>2] = $511; - HEAP32[(16604)>>2] = $508; - $512 = $508 | 1; - $513 = ((($511)) + 4|0); - HEAP32[$513>>2] = $512; - $514 = (($511) + ($508)|0); - HEAP32[$514>>2] = $508; - $515 = $$0197 | 3; - $516 = ((($509)) + 4|0); - HEAP32[$516>>2] = $515; - } else { - HEAP32[(16604)>>2] = 0; - HEAP32[(16616)>>2] = 0; - $517 = $506 | 3; - $518 = ((($509)) + 4|0); - HEAP32[$518>>2] = $517; - $519 = (($509) + ($506)|0); - $520 = ((($519)) + 4|0); - $521 = HEAP32[$520>>2]|0; - $522 = $521 | 1; - HEAP32[$520>>2] = $522; - } - $523 = ((($509)) + 8|0); - $$0 = $523; - STACKTOP = sp;return ($$0|0); - } - $524 = HEAP32[(16608)>>2]|0; - $525 = ($524>>>0)>($$0197>>>0); - if ($525) { - $526 = (($524) - ($$0197))|0; - HEAP32[(16608)>>2] = $526; - $527 = HEAP32[(16620)>>2]|0; - $528 = (($527) + ($$0197)|0); - HEAP32[(16620)>>2] = $528; - $529 = $526 | 1; - $530 = ((($528)) + 4|0); - HEAP32[$530>>2] = $529; - $531 = $$0197 | 3; - $532 = ((($527)) + 4|0); - HEAP32[$532>>2] = $531; - $533 = ((($527)) + 8|0); - $$0 = $533; - STACKTOP = sp;return ($$0|0); - } - $534 = HEAP32[4267]|0; - $535 = ($534|0)==(0); - if ($535) { - HEAP32[(17076)>>2] = 4096; - HEAP32[(17072)>>2] = 4096; - HEAP32[(17080)>>2] = -1; - HEAP32[(17084)>>2] = -1; - HEAP32[(17088)>>2] = 0; - HEAP32[(17040)>>2] = 0; - $536 = $1; - $537 = $536 & -16; - $538 = $537 ^ 1431655768; - HEAP32[$1>>2] = $538; - HEAP32[4267] = $538; - $542 = 4096; - } else { - $$pre$i212 = HEAP32[(17076)>>2]|0; - $542 = $$pre$i212; - } - $539 = (($$0197) + 48)|0; - $540 = (($$0197) + 47)|0; - $541 = (($542) + ($540))|0; - $543 = (0 - ($542))|0; - $544 = $541 & $543; - $545 = ($544>>>0)>($$0197>>>0); - if (!($545)) { - $$0 = 0; - STACKTOP = sp;return ($$0|0); - } - $546 = HEAP32[(17036)>>2]|0; - $547 = ($546|0)==(0); - if (!($547)) { - $548 = HEAP32[(17028)>>2]|0; - $549 = (($548) + ($544))|0; - $550 = ($549>>>0)<=($548>>>0); - $551 = ($549>>>0)>($546>>>0); - $or$cond1$i = $550 | $551; - if ($or$cond1$i) { - $$0 = 0; - STACKTOP = sp;return ($$0|0); - } - } - $552 = HEAP32[(17040)>>2]|0; - $553 = $552 & 4; - $554 = ($553|0)==(0); - L244: do { - if ($554) { - $555 = HEAP32[(16620)>>2]|0; - $556 = ($555|0)==(0|0); - L246: do { - if ($556) { - label = 163; - } else { - $$0$i$i = (17044); - while(1) { - $557 = HEAP32[$$0$i$i>>2]|0; - $558 = ($557>>>0)>($555>>>0); - if (!($558)) { - $559 = ((($$0$i$i)) + 4|0); - $560 = HEAP32[$559>>2]|0; - $561 = (($557) + ($560)|0); - $562 = ($561>>>0)>($555>>>0); - if ($562) { - break; - } - } - $563 = ((($$0$i$i)) + 8|0); - $564 = HEAP32[$563>>2]|0; - $565 = ($564|0)==(0|0); - if ($565) { - label = 163; - break L246; - } else { - $$0$i$i = $564; - } - } - $588 = (($541) - ($524))|0; - $589 = $588 & $543; - $590 = ($589>>>0)<(2147483647); - if ($590) { - $591 = (_sbrk(($589|0))|0); - $592 = HEAP32[$$0$i$i>>2]|0; - $593 = HEAP32[$559>>2]|0; - $594 = (($592) + ($593)|0); - $595 = ($591|0)==($594|0); - if ($595) { - $596 = ($591|0)==((-1)|0); - if ($596) { - $$2234253237$i = $589; - } else { - $$723948$i = $589;$$749$i = $591; - label = 180; - break L244; - } - } else { - $$2247$ph$i = $591;$$2253$ph$i = $589; - label = 171; - } - } else { - $$2234253237$i = 0; - } - } - } while(0); - do { - if ((label|0) == 163) { - $566 = (_sbrk(0)|0); - $567 = ($566|0)==((-1)|0); - if ($567) { - $$2234253237$i = 0; - } else { - $568 = $566; - $569 = HEAP32[(17072)>>2]|0; - $570 = (($569) + -1)|0; - $571 = $570 & $568; - $572 = ($571|0)==(0); - $573 = (($570) + ($568))|0; - $574 = (0 - ($569))|0; - $575 = $573 & $574; - $576 = (($575) - ($568))|0; - $577 = $572 ? 0 : $576; - $$$i = (($577) + ($544))|0; - $578 = HEAP32[(17028)>>2]|0; - $579 = (($$$i) + ($578))|0; - $580 = ($$$i>>>0)>($$0197>>>0); - $581 = ($$$i>>>0)<(2147483647); - $or$cond$i214 = $580 & $581; - if ($or$cond$i214) { - $582 = HEAP32[(17036)>>2]|0; - $583 = ($582|0)==(0); - if (!($583)) { - $584 = ($579>>>0)<=($578>>>0); - $585 = ($579>>>0)>($582>>>0); - $or$cond2$i215 = $584 | $585; - if ($or$cond2$i215) { - $$2234253237$i = 0; - break; - } - } - $586 = (_sbrk(($$$i|0))|0); - $587 = ($586|0)==($566|0); - if ($587) { - $$723948$i = $$$i;$$749$i = $566; - label = 180; - break L244; - } else { - $$2247$ph$i = $586;$$2253$ph$i = $$$i; - label = 171; - } - } else { - $$2234253237$i = 0; - } - } - } - } while(0); - do { - if ((label|0) == 171) { - $597 = (0 - ($$2253$ph$i))|0; - $598 = ($$2247$ph$i|0)!=((-1)|0); - $599 = ($$2253$ph$i>>>0)<(2147483647); - $or$cond7$i = $599 & $598; - $600 = ($539>>>0)>($$2253$ph$i>>>0); - $or$cond10$i = $600 & $or$cond7$i; - if (!($or$cond10$i)) { - $610 = ($$2247$ph$i|0)==((-1)|0); - if ($610) { - $$2234253237$i = 0; - break; - } else { - $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; - label = 180; - break L244; - } - } - $601 = HEAP32[(17076)>>2]|0; - $602 = (($540) - ($$2253$ph$i))|0; - $603 = (($602) + ($601))|0; - $604 = (0 - ($601))|0; - $605 = $603 & $604; - $606 = ($605>>>0)<(2147483647); - if (!($606)) { - $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; - label = 180; - break L244; - } - $607 = (_sbrk(($605|0))|0); - $608 = ($607|0)==((-1)|0); - if ($608) { - (_sbrk(($597|0))|0); - $$2234253237$i = 0; - break; - } else { - $609 = (($605) + ($$2253$ph$i))|0; - $$723948$i = $609;$$749$i = $$2247$ph$i; - label = 180; - break L244; - } - } - } while(0); - $611 = HEAP32[(17040)>>2]|0; - $612 = $611 | 4; - HEAP32[(17040)>>2] = $612; - $$4236$i = $$2234253237$i; - label = 178; - } else { - $$4236$i = 0; - label = 178; - } - } while(0); - if ((label|0) == 178) { - $613 = ($544>>>0)<(2147483647); - if ($613) { - $614 = (_sbrk(($544|0))|0); - $615 = (_sbrk(0)|0); - $616 = ($614|0)!=((-1)|0); - $617 = ($615|0)!=((-1)|0); - $or$cond5$i = $616 & $617; - $618 = ($614>>>0)<($615>>>0); - $or$cond11$i = $618 & $or$cond5$i; - $619 = $615; - $620 = $614; - $621 = (($619) - ($620))|0; - $622 = (($$0197) + 40)|0; - $623 = ($621>>>0)>($622>>>0); - $$$4236$i = $623 ? $621 : $$4236$i; - $or$cond11$not$i = $or$cond11$i ^ 1; - $624 = ($614|0)==((-1)|0); - $not$$i216 = $623 ^ 1; - $625 = $624 | $not$$i216; - $or$cond50$i = $625 | $or$cond11$not$i; - if (!($or$cond50$i)) { - $$723948$i = $$$4236$i;$$749$i = $614; - label = 180; - } - } - } - if ((label|0) == 180) { - $626 = HEAP32[(17028)>>2]|0; - $627 = (($626) + ($$723948$i))|0; - HEAP32[(17028)>>2] = $627; - $628 = HEAP32[(17032)>>2]|0; - $629 = ($627>>>0)>($628>>>0); - if ($629) { - HEAP32[(17032)>>2] = $627; - } - $630 = HEAP32[(16620)>>2]|0; - $631 = ($630|0)==(0|0); - do { - if ($631) { - $632 = HEAP32[(16612)>>2]|0; - $633 = ($632|0)==(0|0); - $634 = ($$749$i>>>0)<($632>>>0); - $or$cond12$i = $633 | $634; - if ($or$cond12$i) { - HEAP32[(16612)>>2] = $$749$i; - } - HEAP32[(17044)>>2] = $$749$i; - HEAP32[(17048)>>2] = $$723948$i; - HEAP32[(17056)>>2] = 0; - $635 = HEAP32[4267]|0; - HEAP32[(16632)>>2] = $635; - HEAP32[(16628)>>2] = -1; - $$01$i$i = 0; - while(1) { - $636 = $$01$i$i << 1; - $637 = (16636 + ($636<<2)|0); - $638 = ((($637)) + 12|0); - HEAP32[$638>>2] = $637; - $639 = ((($637)) + 8|0); - HEAP32[$639>>2] = $637; - $640 = (($$01$i$i) + 1)|0; - $exitcond$i$i = ($640|0)==(32); - if ($exitcond$i$i) { - break; - } else { - $$01$i$i = $640; - } - } - $641 = (($$723948$i) + -40)|0; - $642 = ((($$749$i)) + 8|0); - $643 = $642; - $644 = $643 & 7; - $645 = ($644|0)==(0); - $646 = (0 - ($643))|0; - $647 = $646 & 7; - $648 = $645 ? 0 : $647; - $649 = (($$749$i) + ($648)|0); - $650 = (($641) - ($648))|0; - HEAP32[(16620)>>2] = $649; - HEAP32[(16608)>>2] = $650; - $651 = $650 | 1; - $652 = ((($649)) + 4|0); - HEAP32[$652>>2] = $651; - $653 = (($649) + ($650)|0); - $654 = ((($653)) + 4|0); - HEAP32[$654>>2] = 40; - $655 = HEAP32[(17084)>>2]|0; - HEAP32[(16624)>>2] = $655; - } else { - $$024371$i = (17044); - while(1) { - $656 = HEAP32[$$024371$i>>2]|0; - $657 = ((($$024371$i)) + 4|0); - $658 = HEAP32[$657>>2]|0; - $659 = (($656) + ($658)|0); - $660 = ($$749$i|0)==($659|0); - if ($660) { - label = 190; - break; - } - $661 = ((($$024371$i)) + 8|0); - $662 = HEAP32[$661>>2]|0; - $663 = ($662|0)==(0|0); - if ($663) { - break; - } else { - $$024371$i = $662; - } - } - if ((label|0) == 190) { - $664 = ((($$024371$i)) + 12|0); - $665 = HEAP32[$664>>2]|0; - $666 = $665 & 8; - $667 = ($666|0)==(0); - if ($667) { - $668 = ($630>>>0)>=($656>>>0); - $669 = ($630>>>0)<($$749$i>>>0); - $or$cond51$i = $669 & $668; - if ($or$cond51$i) { - $670 = (($658) + ($$723948$i))|0; - HEAP32[$657>>2] = $670; - $671 = HEAP32[(16608)>>2]|0; - $672 = ((($630)) + 8|0); - $673 = $672; - $674 = $673 & 7; - $675 = ($674|0)==(0); - $676 = (0 - ($673))|0; - $677 = $676 & 7; - $678 = $675 ? 0 : $677; - $679 = (($630) + ($678)|0); - $680 = (($$723948$i) - ($678))|0; - $681 = (($671) + ($680))|0; - HEAP32[(16620)>>2] = $679; - HEAP32[(16608)>>2] = $681; - $682 = $681 | 1; - $683 = ((($679)) + 4|0); - HEAP32[$683>>2] = $682; - $684 = (($679) + ($681)|0); - $685 = ((($684)) + 4|0); - HEAP32[$685>>2] = 40; - $686 = HEAP32[(17084)>>2]|0; - HEAP32[(16624)>>2] = $686; - break; - } - } - } - $687 = HEAP32[(16612)>>2]|0; - $688 = ($$749$i>>>0)<($687>>>0); - if ($688) { - HEAP32[(16612)>>2] = $$749$i; - $752 = $$749$i; - } else { - $752 = $687; - } - $689 = (($$749$i) + ($$723948$i)|0); - $$124470$i = (17044); - while(1) { - $690 = HEAP32[$$124470$i>>2]|0; - $691 = ($690|0)==($689|0); - if ($691) { - label = 198; - break; - } - $692 = ((($$124470$i)) + 8|0); - $693 = HEAP32[$692>>2]|0; - $694 = ($693|0)==(0|0); - if ($694) { - break; - } else { - $$124470$i = $693; - } - } - if ((label|0) == 198) { - $695 = ((($$124470$i)) + 12|0); - $696 = HEAP32[$695>>2]|0; - $697 = $696 & 8; - $698 = ($697|0)==(0); - if ($698) { - HEAP32[$$124470$i>>2] = $$749$i; - $699 = ((($$124470$i)) + 4|0); - $700 = HEAP32[$699>>2]|0; - $701 = (($700) + ($$723948$i))|0; - HEAP32[$699>>2] = $701; - $702 = ((($$749$i)) + 8|0); - $703 = $702; - $704 = $703 & 7; - $705 = ($704|0)==(0); - $706 = (0 - ($703))|0; - $707 = $706 & 7; - $708 = $705 ? 0 : $707; - $709 = (($$749$i) + ($708)|0); - $710 = ((($689)) + 8|0); - $711 = $710; - $712 = $711 & 7; - $713 = ($712|0)==(0); - $714 = (0 - ($711))|0; - $715 = $714 & 7; - $716 = $713 ? 0 : $715; - $717 = (($689) + ($716)|0); - $718 = $717; - $719 = $709; - $720 = (($718) - ($719))|0; - $721 = (($709) + ($$0197)|0); - $722 = (($720) - ($$0197))|0; - $723 = $$0197 | 3; - $724 = ((($709)) + 4|0); - HEAP32[$724>>2] = $723; - $725 = ($717|0)==($630|0); - do { - if ($725) { - $726 = HEAP32[(16608)>>2]|0; - $727 = (($726) + ($722))|0; - HEAP32[(16608)>>2] = $727; - HEAP32[(16620)>>2] = $721; - $728 = $727 | 1; - $729 = ((($721)) + 4|0); - HEAP32[$729>>2] = $728; - } else { - $730 = HEAP32[(16616)>>2]|0; - $731 = ($717|0)==($730|0); - if ($731) { - $732 = HEAP32[(16604)>>2]|0; - $733 = (($732) + ($722))|0; - HEAP32[(16604)>>2] = $733; - HEAP32[(16616)>>2] = $721; - $734 = $733 | 1; - $735 = ((($721)) + 4|0); - HEAP32[$735>>2] = $734; - $736 = (($721) + ($733)|0); - HEAP32[$736>>2] = $733; - break; - } - $737 = ((($717)) + 4|0); - $738 = HEAP32[$737>>2]|0; - $739 = $738 & 3; - $740 = ($739|0)==(1); - if ($740) { - $741 = $738 & -8; - $742 = $738 >>> 3; - $743 = ($738>>>0)<(256); - L314: do { - if ($743) { - $744 = ((($717)) + 8|0); - $745 = HEAP32[$744>>2]|0; - $746 = ((($717)) + 12|0); - $747 = HEAP32[$746>>2]|0; - $748 = $742 << 1; - $749 = (16636 + ($748<<2)|0); - $750 = ($745|0)==($749|0); - do { - if (!($750)) { - $751 = ($745>>>0)<($752>>>0); - if ($751) { - _abort(); - // unreachable; - } - $753 = ((($745)) + 12|0); - $754 = HEAP32[$753>>2]|0; - $755 = ($754|0)==($717|0); - if ($755) { - break; - } - _abort(); - // unreachable; - } - } while(0); - $756 = ($747|0)==($745|0); - if ($756) { - $757 = 1 << $742; - $758 = $757 ^ -1; - $759 = HEAP32[4149]|0; - $760 = $759 & $758; - HEAP32[4149] = $760; - break; - } - $761 = ($747|0)==($749|0); - do { - if ($761) { - $$pre10$i$i = ((($747)) + 8|0); - $$pre$phi11$i$iZ2D = $$pre10$i$i; - } else { - $762 = ($747>>>0)<($752>>>0); - if ($762) { - _abort(); - // unreachable; - } - $763 = ((($747)) + 8|0); - $764 = HEAP32[$763>>2]|0; - $765 = ($764|0)==($717|0); - if ($765) { - $$pre$phi11$i$iZ2D = $763; - break; - } - _abort(); - // unreachable; - } - } while(0); - $766 = ((($745)) + 12|0); - HEAP32[$766>>2] = $747; - HEAP32[$$pre$phi11$i$iZ2D>>2] = $745; - } else { - $767 = ((($717)) + 24|0); - $768 = HEAP32[$767>>2]|0; - $769 = ((($717)) + 12|0); - $770 = HEAP32[$769>>2]|0; - $771 = ($770|0)==($717|0); - do { - if ($771) { - $781 = ((($717)) + 16|0); - $782 = ((($781)) + 4|0); - $783 = HEAP32[$782>>2]|0; - $784 = ($783|0)==(0|0); - if ($784) { - $785 = HEAP32[$781>>2]|0; - $786 = ($785|0)==(0|0); - if ($786) { - $$3$i$i = 0; - break; - } else { - $$1291$i$i = $785;$$1293$i$i = $781; - } - } else { - $$1291$i$i = $783;$$1293$i$i = $782; - } - while(1) { - $787 = ((($$1291$i$i)) + 20|0); - $788 = HEAP32[$787>>2]|0; - $789 = ($788|0)==(0|0); - if (!($789)) { - $$1291$i$i = $788;$$1293$i$i = $787; - continue; - } - $790 = ((($$1291$i$i)) + 16|0); - $791 = HEAP32[$790>>2]|0; - $792 = ($791|0)==(0|0); - if ($792) { - break; - } else { - $$1291$i$i = $791;$$1293$i$i = $790; - } - } - $793 = ($$1293$i$i>>>0)<($752>>>0); - if ($793) { - _abort(); - // unreachable; - } else { - HEAP32[$$1293$i$i>>2] = 0; - $$3$i$i = $$1291$i$i; - break; - } - } else { - $772 = ((($717)) + 8|0); - $773 = HEAP32[$772>>2]|0; - $774 = ($773>>>0)<($752>>>0); - if ($774) { - _abort(); - // unreachable; - } - $775 = ((($773)) + 12|0); - $776 = HEAP32[$775>>2]|0; - $777 = ($776|0)==($717|0); - if (!($777)) { - _abort(); - // unreachable; - } - $778 = ((($770)) + 8|0); - $779 = HEAP32[$778>>2]|0; - $780 = ($779|0)==($717|0); - if ($780) { - HEAP32[$775>>2] = $770; - HEAP32[$778>>2] = $773; - $$3$i$i = $770; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $794 = ($768|0)==(0|0); - if ($794) { - break; - } - $795 = ((($717)) + 28|0); - $796 = HEAP32[$795>>2]|0; - $797 = (16900 + ($796<<2)|0); - $798 = HEAP32[$797>>2]|0; - $799 = ($717|0)==($798|0); - do { - if ($799) { - HEAP32[$797>>2] = $$3$i$i; - $cond$i$i = ($$3$i$i|0)==(0|0); - if (!($cond$i$i)) { - break; - } - $800 = 1 << $796; - $801 = $800 ^ -1; - $802 = HEAP32[(16600)>>2]|0; - $803 = $802 & $801; - HEAP32[(16600)>>2] = $803; - break L314; - } else { - $804 = HEAP32[(16612)>>2]|0; - $805 = ($768>>>0)<($804>>>0); - if ($805) { - _abort(); - // unreachable; - } else { - $806 = ((($768)) + 16|0); - $807 = HEAP32[$806>>2]|0; - $not$$i17$i = ($807|0)!=($717|0); - $$sink1$i$i = $not$$i17$i&1; - $808 = (((($768)) + 16|0) + ($$sink1$i$i<<2)|0); - HEAP32[$808>>2] = $$3$i$i; - $809 = ($$3$i$i|0)==(0|0); - if ($809) { - break L314; - } else { - break; - } - } - } - } while(0); - $810 = HEAP32[(16612)>>2]|0; - $811 = ($$3$i$i>>>0)<($810>>>0); - if ($811) { - _abort(); - // unreachable; - } - $812 = ((($$3$i$i)) + 24|0); - HEAP32[$812>>2] = $768; - $813 = ((($717)) + 16|0); - $814 = HEAP32[$813>>2]|0; - $815 = ($814|0)==(0|0); - do { - if (!($815)) { - $816 = ($814>>>0)<($810>>>0); - if ($816) { - _abort(); - // unreachable; - } else { - $817 = ((($$3$i$i)) + 16|0); - HEAP32[$817>>2] = $814; - $818 = ((($814)) + 24|0); - HEAP32[$818>>2] = $$3$i$i; - break; - } - } - } while(0); - $819 = ((($813)) + 4|0); - $820 = HEAP32[$819>>2]|0; - $821 = ($820|0)==(0|0); - if ($821) { - break; - } - $822 = HEAP32[(16612)>>2]|0; - $823 = ($820>>>0)<($822>>>0); - if ($823) { - _abort(); - // unreachable; - } else { - $824 = ((($$3$i$i)) + 20|0); - HEAP32[$824>>2] = $820; - $825 = ((($820)) + 24|0); - HEAP32[$825>>2] = $$3$i$i; - break; - } - } - } while(0); - $826 = (($717) + ($741)|0); - $827 = (($741) + ($722))|0; - $$0$i18$i = $826;$$0287$i$i = $827; - } else { - $$0$i18$i = $717;$$0287$i$i = $722; - } - $828 = ((($$0$i18$i)) + 4|0); - $829 = HEAP32[$828>>2]|0; - $830 = $829 & -2; - HEAP32[$828>>2] = $830; - $831 = $$0287$i$i | 1; - $832 = ((($721)) + 4|0); - HEAP32[$832>>2] = $831; - $833 = (($721) + ($$0287$i$i)|0); - HEAP32[$833>>2] = $$0287$i$i; - $834 = $$0287$i$i >>> 3; - $835 = ($$0287$i$i>>>0)<(256); - if ($835) { - $836 = $834 << 1; - $837 = (16636 + ($836<<2)|0); - $838 = HEAP32[4149]|0; - $839 = 1 << $834; - $840 = $838 & $839; - $841 = ($840|0)==(0); - do { - if ($841) { - $842 = $838 | $839; - HEAP32[4149] = $842; - $$pre$i19$i = ((($837)) + 8|0); - $$0295$i$i = $837;$$pre$phi$i20$iZ2D = $$pre$i19$i; - } else { - $843 = ((($837)) + 8|0); - $844 = HEAP32[$843>>2]|0; - $845 = HEAP32[(16612)>>2]|0; - $846 = ($844>>>0)<($845>>>0); - if (!($846)) { - $$0295$i$i = $844;$$pre$phi$i20$iZ2D = $843; - break; - } - _abort(); - // unreachable; - } - } while(0); - HEAP32[$$pre$phi$i20$iZ2D>>2] = $721; - $847 = ((($$0295$i$i)) + 12|0); - HEAP32[$847>>2] = $721; - $848 = ((($721)) + 8|0); - HEAP32[$848>>2] = $$0295$i$i; - $849 = ((($721)) + 12|0); - HEAP32[$849>>2] = $837; - break; - } - $850 = $$0287$i$i >>> 8; - $851 = ($850|0)==(0); - do { - if ($851) { - $$0296$i$i = 0; - } else { - $852 = ($$0287$i$i>>>0)>(16777215); - if ($852) { - $$0296$i$i = 31; - break; - } - $853 = (($850) + 1048320)|0; - $854 = $853 >>> 16; - $855 = $854 & 8; - $856 = $850 << $855; - $857 = (($856) + 520192)|0; - $858 = $857 >>> 16; - $859 = $858 & 4; - $860 = $859 | $855; - $861 = $856 << $859; - $862 = (($861) + 245760)|0; - $863 = $862 >>> 16; - $864 = $863 & 2; - $865 = $860 | $864; - $866 = (14 - ($865))|0; - $867 = $861 << $864; - $868 = $867 >>> 15; - $869 = (($866) + ($868))|0; - $870 = $869 << 1; - $871 = (($869) + 7)|0; - $872 = $$0287$i$i >>> $871; - $873 = $872 & 1; - $874 = $873 | $870; - $$0296$i$i = $874; - } - } while(0); - $875 = (16900 + ($$0296$i$i<<2)|0); - $876 = ((($721)) + 28|0); - HEAP32[$876>>2] = $$0296$i$i; - $877 = ((($721)) + 16|0); - $878 = ((($877)) + 4|0); - HEAP32[$878>>2] = 0; - HEAP32[$877>>2] = 0; - $879 = HEAP32[(16600)>>2]|0; - $880 = 1 << $$0296$i$i; - $881 = $879 & $880; - $882 = ($881|0)==(0); - if ($882) { - $883 = $879 | $880; - HEAP32[(16600)>>2] = $883; - HEAP32[$875>>2] = $721; - $884 = ((($721)) + 24|0); - HEAP32[$884>>2] = $875; - $885 = ((($721)) + 12|0); - HEAP32[$885>>2] = $721; - $886 = ((($721)) + 8|0); - HEAP32[$886>>2] = $721; - break; - } - $887 = HEAP32[$875>>2]|0; - $888 = ($$0296$i$i|0)==(31); - $889 = $$0296$i$i >>> 1; - $890 = (25 - ($889))|0; - $891 = $888 ? 0 : $890; - $892 = $$0287$i$i << $891; - $$0288$i$i = $892;$$0289$i$i = $887; - while(1) { - $893 = ((($$0289$i$i)) + 4|0); - $894 = HEAP32[$893>>2]|0; - $895 = $894 & -8; - $896 = ($895|0)==($$0287$i$i|0); - if ($896) { - label = 265; - break; - } - $897 = $$0288$i$i >>> 31; - $898 = (((($$0289$i$i)) + 16|0) + ($897<<2)|0); - $899 = $$0288$i$i << 1; - $900 = HEAP32[$898>>2]|0; - $901 = ($900|0)==(0|0); - if ($901) { - label = 262; - break; - } else { - $$0288$i$i = $899;$$0289$i$i = $900; - } - } - if ((label|0) == 262) { - $902 = HEAP32[(16612)>>2]|0; - $903 = ($898>>>0)<($902>>>0); - if ($903) { - _abort(); - // unreachable; - } else { - HEAP32[$898>>2] = $721; - $904 = ((($721)) + 24|0); - HEAP32[$904>>2] = $$0289$i$i; - $905 = ((($721)) + 12|0); - HEAP32[$905>>2] = $721; - $906 = ((($721)) + 8|0); - HEAP32[$906>>2] = $721; - break; - } - } - else if ((label|0) == 265) { - $907 = ((($$0289$i$i)) + 8|0); - $908 = HEAP32[$907>>2]|0; - $909 = HEAP32[(16612)>>2]|0; - $910 = ($908>>>0)>=($909>>>0); - $not$7$i$i = ($$0289$i$i>>>0)>=($909>>>0); - $911 = $910 & $not$7$i$i; - if ($911) { - $912 = ((($908)) + 12|0); - HEAP32[$912>>2] = $721; - HEAP32[$907>>2] = $721; - $913 = ((($721)) + 8|0); - HEAP32[$913>>2] = $908; - $914 = ((($721)) + 12|0); - HEAP32[$914>>2] = $$0289$i$i; - $915 = ((($721)) + 24|0); - HEAP32[$915>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } while(0); - $1047 = ((($709)) + 8|0); - $$0 = $1047; - STACKTOP = sp;return ($$0|0); - } - } - $$0$i$i$i = (17044); - while(1) { - $916 = HEAP32[$$0$i$i$i>>2]|0; - $917 = ($916>>>0)>($630>>>0); - if (!($917)) { - $918 = ((($$0$i$i$i)) + 4|0); - $919 = HEAP32[$918>>2]|0; - $920 = (($916) + ($919)|0); - $921 = ($920>>>0)>($630>>>0); - if ($921) { - break; - } - } - $922 = ((($$0$i$i$i)) + 8|0); - $923 = HEAP32[$922>>2]|0; - $$0$i$i$i = $923; - } - $924 = ((($920)) + -47|0); - $925 = ((($924)) + 8|0); - $926 = $925; - $927 = $926 & 7; - $928 = ($927|0)==(0); - $929 = (0 - ($926))|0; - $930 = $929 & 7; - $931 = $928 ? 0 : $930; - $932 = (($924) + ($931)|0); - $933 = ((($630)) + 16|0); - $934 = ($932>>>0)<($933>>>0); - $935 = $934 ? $630 : $932; - $936 = ((($935)) + 8|0); - $937 = ((($935)) + 24|0); - $938 = (($$723948$i) + -40)|0; - $939 = ((($$749$i)) + 8|0); - $940 = $939; - $941 = $940 & 7; - $942 = ($941|0)==(0); - $943 = (0 - ($940))|0; - $944 = $943 & 7; - $945 = $942 ? 0 : $944; - $946 = (($$749$i) + ($945)|0); - $947 = (($938) - ($945))|0; - HEAP32[(16620)>>2] = $946; - HEAP32[(16608)>>2] = $947; - $948 = $947 | 1; - $949 = ((($946)) + 4|0); - HEAP32[$949>>2] = $948; - $950 = (($946) + ($947)|0); - $951 = ((($950)) + 4|0); - HEAP32[$951>>2] = 40; - $952 = HEAP32[(17084)>>2]|0; - HEAP32[(16624)>>2] = $952; - $953 = ((($935)) + 4|0); - HEAP32[$953>>2] = 27; - ;HEAP32[$936>>2]=HEAP32[(17044)>>2]|0;HEAP32[$936+4>>2]=HEAP32[(17044)+4>>2]|0;HEAP32[$936+8>>2]=HEAP32[(17044)+8>>2]|0;HEAP32[$936+12>>2]=HEAP32[(17044)+12>>2]|0; - HEAP32[(17044)>>2] = $$749$i; - HEAP32[(17048)>>2] = $$723948$i; - HEAP32[(17056)>>2] = 0; - HEAP32[(17052)>>2] = $936; - $955 = $937; - while(1) { - $954 = ((($955)) + 4|0); - HEAP32[$954>>2] = 7; - $956 = ((($955)) + 8|0); - $957 = ($956>>>0)<($920>>>0); - if ($957) { - $955 = $954; - } else { - break; - } - } - $958 = ($935|0)==($630|0); - if (!($958)) { - $959 = $935; - $960 = $630; - $961 = (($959) - ($960))|0; - $962 = HEAP32[$953>>2]|0; - $963 = $962 & -2; - HEAP32[$953>>2] = $963; - $964 = $961 | 1; - $965 = ((($630)) + 4|0); - HEAP32[$965>>2] = $964; - HEAP32[$935>>2] = $961; - $966 = $961 >>> 3; - $967 = ($961>>>0)<(256); - if ($967) { - $968 = $966 << 1; - $969 = (16636 + ($968<<2)|0); - $970 = HEAP32[4149]|0; - $971 = 1 << $966; - $972 = $970 & $971; - $973 = ($972|0)==(0); - if ($973) { - $974 = $970 | $971; - HEAP32[4149] = $974; - $$pre$i$i = ((($969)) + 8|0); - $$0211$i$i = $969;$$pre$phi$i$iZ2D = $$pre$i$i; - } else { - $975 = ((($969)) + 8|0); - $976 = HEAP32[$975>>2]|0; - $977 = HEAP32[(16612)>>2]|0; - $978 = ($976>>>0)<($977>>>0); - if ($978) { - _abort(); - // unreachable; - } else { - $$0211$i$i = $976;$$pre$phi$i$iZ2D = $975; - } - } - HEAP32[$$pre$phi$i$iZ2D>>2] = $630; - $979 = ((($$0211$i$i)) + 12|0); - HEAP32[$979>>2] = $630; - $980 = ((($630)) + 8|0); - HEAP32[$980>>2] = $$0211$i$i; - $981 = ((($630)) + 12|0); - HEAP32[$981>>2] = $969; - break; - } - $982 = $961 >>> 8; - $983 = ($982|0)==(0); - if ($983) { - $$0212$i$i = 0; - } else { - $984 = ($961>>>0)>(16777215); - if ($984) { - $$0212$i$i = 31; - } else { - $985 = (($982) + 1048320)|0; - $986 = $985 >>> 16; - $987 = $986 & 8; - $988 = $982 << $987; - $989 = (($988) + 520192)|0; - $990 = $989 >>> 16; - $991 = $990 & 4; - $992 = $991 | $987; - $993 = $988 << $991; - $994 = (($993) + 245760)|0; - $995 = $994 >>> 16; - $996 = $995 & 2; - $997 = $992 | $996; - $998 = (14 - ($997))|0; - $999 = $993 << $996; - $1000 = $999 >>> 15; - $1001 = (($998) + ($1000))|0; - $1002 = $1001 << 1; - $1003 = (($1001) + 7)|0; - $1004 = $961 >>> $1003; - $1005 = $1004 & 1; - $1006 = $1005 | $1002; - $$0212$i$i = $1006; - } - } - $1007 = (16900 + ($$0212$i$i<<2)|0); - $1008 = ((($630)) + 28|0); - HEAP32[$1008>>2] = $$0212$i$i; - $1009 = ((($630)) + 20|0); - HEAP32[$1009>>2] = 0; - HEAP32[$933>>2] = 0; - $1010 = HEAP32[(16600)>>2]|0; - $1011 = 1 << $$0212$i$i; - $1012 = $1010 & $1011; - $1013 = ($1012|0)==(0); - if ($1013) { - $1014 = $1010 | $1011; - HEAP32[(16600)>>2] = $1014; - HEAP32[$1007>>2] = $630; - $1015 = ((($630)) + 24|0); - HEAP32[$1015>>2] = $1007; - $1016 = ((($630)) + 12|0); - HEAP32[$1016>>2] = $630; - $1017 = ((($630)) + 8|0); - HEAP32[$1017>>2] = $630; - break; - } - $1018 = HEAP32[$1007>>2]|0; - $1019 = ($$0212$i$i|0)==(31); - $1020 = $$0212$i$i >>> 1; - $1021 = (25 - ($1020))|0; - $1022 = $1019 ? 0 : $1021; - $1023 = $961 << $1022; - $$0206$i$i = $1023;$$0207$i$i = $1018; - while(1) { - $1024 = ((($$0207$i$i)) + 4|0); - $1025 = HEAP32[$1024>>2]|0; - $1026 = $1025 & -8; - $1027 = ($1026|0)==($961|0); - if ($1027) { - label = 292; - break; - } - $1028 = $$0206$i$i >>> 31; - $1029 = (((($$0207$i$i)) + 16|0) + ($1028<<2)|0); - $1030 = $$0206$i$i << 1; - $1031 = HEAP32[$1029>>2]|0; - $1032 = ($1031|0)==(0|0); - if ($1032) { - label = 289; - break; - } else { - $$0206$i$i = $1030;$$0207$i$i = $1031; - } - } - if ((label|0) == 289) { - $1033 = HEAP32[(16612)>>2]|0; - $1034 = ($1029>>>0)<($1033>>>0); - if ($1034) { - _abort(); - // unreachable; - } else { - HEAP32[$1029>>2] = $630; - $1035 = ((($630)) + 24|0); - HEAP32[$1035>>2] = $$0207$i$i; - $1036 = ((($630)) + 12|0); - HEAP32[$1036>>2] = $630; - $1037 = ((($630)) + 8|0); - HEAP32[$1037>>2] = $630; - break; - } - } - else if ((label|0) == 292) { - $1038 = ((($$0207$i$i)) + 8|0); - $1039 = HEAP32[$1038>>2]|0; - $1040 = HEAP32[(16612)>>2]|0; - $1041 = ($1039>>>0)>=($1040>>>0); - $not$$i$i = ($$0207$i$i>>>0)>=($1040>>>0); - $1042 = $1041 & $not$$i$i; - if ($1042) { - $1043 = ((($1039)) + 12|0); - HEAP32[$1043>>2] = $630; - HEAP32[$1038>>2] = $630; - $1044 = ((($630)) + 8|0); - HEAP32[$1044>>2] = $1039; - $1045 = ((($630)) + 12|0); - HEAP32[$1045>>2] = $$0207$i$i; - $1046 = ((($630)) + 24|0); - HEAP32[$1046>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } - } while(0); - $1048 = HEAP32[(16608)>>2]|0; - $1049 = ($1048>>>0)>($$0197>>>0); - if ($1049) { - $1050 = (($1048) - ($$0197))|0; - HEAP32[(16608)>>2] = $1050; - $1051 = HEAP32[(16620)>>2]|0; - $1052 = (($1051) + ($$0197)|0); - HEAP32[(16620)>>2] = $1052; - $1053 = $1050 | 1; - $1054 = ((($1052)) + 4|0); - HEAP32[$1054>>2] = $1053; - $1055 = $$0197 | 3; - $1056 = ((($1051)) + 4|0); - HEAP32[$1056>>2] = $1055; - $1057 = ((($1051)) + 8|0); - $$0 = $1057; - STACKTOP = sp;return ($$0|0); - } - } - $1058 = (___errno_location()|0); - HEAP32[$1058>>2] = 12; - $$0 = 0; - STACKTOP = sp;return ($$0|0); -} -function _free($0) { - $0 = $0|0; - var $$0212$i = 0, $$0212$in$i = 0, $$0383 = 0, $$0384 = 0, $$0396 = 0, $$0403 = 0, $$1 = 0, $$1382 = 0, $$1387 = 0, $$1390 = 0, $$1398 = 0, $$1402 = 0, $$2 = 0, $$3 = 0, $$3400 = 0, $$pre = 0, $$pre$phi443Z2D = 0, $$pre$phi445Z2D = 0, $$pre$phiZ2D = 0, $$pre442 = 0; - var $$pre444 = 0, $$sink3 = 0, $$sink5 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; - var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; - var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0; - var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0; - var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0; - var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0; - var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0; - var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0; - var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0; - var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0; - var $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0; - var $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0; - var $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; - var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; - var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; - var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; - var $99 = 0, $cond421 = 0, $cond422 = 0, $not$ = 0, $not$405 = 0, $not$437 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0|0); - if ($1) { - return; - } - $2 = ((($0)) + -8|0); - $3 = HEAP32[(16612)>>2]|0; - $4 = ($2>>>0)<($3>>>0); - if ($4) { - _abort(); - // unreachable; - } - $5 = ((($0)) + -4|0); - $6 = HEAP32[$5>>2]|0; - $7 = $6 & 3; - $8 = ($7|0)==(1); - if ($8) { - _abort(); - // unreachable; - } - $9 = $6 & -8; - $10 = (($2) + ($9)|0); - $11 = $6 & 1; - $12 = ($11|0)==(0); - L10: do { - if ($12) { - $13 = HEAP32[$2>>2]|0; - $14 = ($7|0)==(0); - if ($14) { - return; - } - $15 = (0 - ($13))|0; - $16 = (($2) + ($15)|0); - $17 = (($13) + ($9))|0; - $18 = ($16>>>0)<($3>>>0); - if ($18) { - _abort(); - // unreachable; - } - $19 = HEAP32[(16616)>>2]|0; - $20 = ($16|0)==($19|0); - if ($20) { - $104 = ((($10)) + 4|0); - $105 = HEAP32[$104>>2]|0; - $106 = $105 & 3; - $107 = ($106|0)==(3); - if (!($107)) { - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - $108 = (($16) + ($17)|0); - $109 = ((($16)) + 4|0); - $110 = $17 | 1; - $111 = $105 & -2; - HEAP32[(16604)>>2] = $17; - HEAP32[$104>>2] = $111; - HEAP32[$109>>2] = $110; - HEAP32[$108>>2] = $17; - return; - } - $21 = $13 >>> 3; - $22 = ($13>>>0)<(256); - if ($22) { - $23 = ((($16)) + 8|0); - $24 = HEAP32[$23>>2]|0; - $25 = ((($16)) + 12|0); - $26 = HEAP32[$25>>2]|0; - $27 = $21 << 1; - $28 = (16636 + ($27<<2)|0); - $29 = ($24|0)==($28|0); - if (!($29)) { - $30 = ($24>>>0)<($3>>>0); - if ($30) { - _abort(); - // unreachable; - } - $31 = ((($24)) + 12|0); - $32 = HEAP32[$31>>2]|0; - $33 = ($32|0)==($16|0); - if (!($33)) { - _abort(); - // unreachable; - } - } - $34 = ($26|0)==($24|0); - if ($34) { - $35 = 1 << $21; - $36 = $35 ^ -1; - $37 = HEAP32[4149]|0; - $38 = $37 & $36; - HEAP32[4149] = $38; - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - $39 = ($26|0)==($28|0); - if ($39) { - $$pre444 = ((($26)) + 8|0); - $$pre$phi445Z2D = $$pre444; - } else { - $40 = ($26>>>0)<($3>>>0); - if ($40) { - _abort(); - // unreachable; - } - $41 = ((($26)) + 8|0); - $42 = HEAP32[$41>>2]|0; - $43 = ($42|0)==($16|0); - if ($43) { - $$pre$phi445Z2D = $41; - } else { - _abort(); - // unreachable; - } - } - $44 = ((($24)) + 12|0); - HEAP32[$44>>2] = $26; - HEAP32[$$pre$phi445Z2D>>2] = $24; - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - $45 = ((($16)) + 24|0); - $46 = HEAP32[$45>>2]|0; - $47 = ((($16)) + 12|0); - $48 = HEAP32[$47>>2]|0; - $49 = ($48|0)==($16|0); - do { - if ($49) { - $59 = ((($16)) + 16|0); - $60 = ((($59)) + 4|0); - $61 = HEAP32[$60>>2]|0; - $62 = ($61|0)==(0|0); - if ($62) { - $63 = HEAP32[$59>>2]|0; - $64 = ($63|0)==(0|0); - if ($64) { - $$3 = 0; - break; - } else { - $$1387 = $63;$$1390 = $59; - } - } else { - $$1387 = $61;$$1390 = $60; - } - while(1) { - $65 = ((($$1387)) + 20|0); - $66 = HEAP32[$65>>2]|0; - $67 = ($66|0)==(0|0); - if (!($67)) { - $$1387 = $66;$$1390 = $65; - continue; - } - $68 = ((($$1387)) + 16|0); - $69 = HEAP32[$68>>2]|0; - $70 = ($69|0)==(0|0); - if ($70) { - break; - } else { - $$1387 = $69;$$1390 = $68; - } - } - $71 = ($$1390>>>0)<($3>>>0); - if ($71) { - _abort(); - // unreachable; - } else { - HEAP32[$$1390>>2] = 0; - $$3 = $$1387; - break; - } - } else { - $50 = ((($16)) + 8|0); - $51 = HEAP32[$50>>2]|0; - $52 = ($51>>>0)<($3>>>0); - if ($52) { - _abort(); - // unreachable; - } - $53 = ((($51)) + 12|0); - $54 = HEAP32[$53>>2]|0; - $55 = ($54|0)==($16|0); - if (!($55)) { - _abort(); - // unreachable; - } - $56 = ((($48)) + 8|0); - $57 = HEAP32[$56>>2]|0; - $58 = ($57|0)==($16|0); - if ($58) { - HEAP32[$53>>2] = $48; - HEAP32[$56>>2] = $51; - $$3 = $48; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $72 = ($46|0)==(0|0); - if ($72) { - $$1 = $16;$$1382 = $17;$113 = $16; - } else { - $73 = ((($16)) + 28|0); - $74 = HEAP32[$73>>2]|0; - $75 = (16900 + ($74<<2)|0); - $76 = HEAP32[$75>>2]|0; - $77 = ($16|0)==($76|0); - do { - if ($77) { - HEAP32[$75>>2] = $$3; - $cond421 = ($$3|0)==(0|0); - if ($cond421) { - $78 = 1 << $74; - $79 = $78 ^ -1; - $80 = HEAP32[(16600)>>2]|0; - $81 = $80 & $79; - HEAP32[(16600)>>2] = $81; - $$1 = $16;$$1382 = $17;$113 = $16; - break L10; - } - } else { - $82 = HEAP32[(16612)>>2]|0; - $83 = ($46>>>0)<($82>>>0); - if ($83) { - _abort(); - // unreachable; - } else { - $84 = ((($46)) + 16|0); - $85 = HEAP32[$84>>2]|0; - $not$405 = ($85|0)!=($16|0); - $$sink3 = $not$405&1; - $86 = (((($46)) + 16|0) + ($$sink3<<2)|0); - HEAP32[$86>>2] = $$3; - $87 = ($$3|0)==(0|0); - if ($87) { - $$1 = $16;$$1382 = $17;$113 = $16; - break L10; - } else { - break; - } - } - } - } while(0); - $88 = HEAP32[(16612)>>2]|0; - $89 = ($$3>>>0)<($88>>>0); - if ($89) { - _abort(); - // unreachable; - } - $90 = ((($$3)) + 24|0); - HEAP32[$90>>2] = $46; - $91 = ((($16)) + 16|0); - $92 = HEAP32[$91>>2]|0; - $93 = ($92|0)==(0|0); - do { - if (!($93)) { - $94 = ($92>>>0)<($88>>>0); - if ($94) { - _abort(); - // unreachable; - } else { - $95 = ((($$3)) + 16|0); - HEAP32[$95>>2] = $92; - $96 = ((($92)) + 24|0); - HEAP32[$96>>2] = $$3; - break; - } - } - } while(0); - $97 = ((($91)) + 4|0); - $98 = HEAP32[$97>>2]|0; - $99 = ($98|0)==(0|0); - if ($99) { - $$1 = $16;$$1382 = $17;$113 = $16; - } else { - $100 = HEAP32[(16612)>>2]|0; - $101 = ($98>>>0)<($100>>>0); - if ($101) { - _abort(); - // unreachable; - } else { - $102 = ((($$3)) + 20|0); - HEAP32[$102>>2] = $98; - $103 = ((($98)) + 24|0); - HEAP32[$103>>2] = $$3; - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - } - } - } else { - $$1 = $2;$$1382 = $9;$113 = $2; - } - } while(0); - $112 = ($113>>>0)<($10>>>0); - if (!($112)) { - _abort(); - // unreachable; - } - $114 = ((($10)) + 4|0); - $115 = HEAP32[$114>>2]|0; - $116 = $115 & 1; - $117 = ($116|0)==(0); - if ($117) { - _abort(); - // unreachable; - } - $118 = $115 & 2; - $119 = ($118|0)==(0); - if ($119) { - $120 = HEAP32[(16620)>>2]|0; - $121 = ($10|0)==($120|0); - $122 = HEAP32[(16616)>>2]|0; - if ($121) { - $123 = HEAP32[(16608)>>2]|0; - $124 = (($123) + ($$1382))|0; - HEAP32[(16608)>>2] = $124; - HEAP32[(16620)>>2] = $$1; - $125 = $124 | 1; - $126 = ((($$1)) + 4|0); - HEAP32[$126>>2] = $125; - $127 = ($$1|0)==($122|0); - if (!($127)) { - return; - } - HEAP32[(16616)>>2] = 0; - HEAP32[(16604)>>2] = 0; - return; - } - $128 = ($10|0)==($122|0); - if ($128) { - $129 = HEAP32[(16604)>>2]|0; - $130 = (($129) + ($$1382))|0; - HEAP32[(16604)>>2] = $130; - HEAP32[(16616)>>2] = $113; - $131 = $130 | 1; - $132 = ((($$1)) + 4|0); - HEAP32[$132>>2] = $131; - $133 = (($113) + ($130)|0); - HEAP32[$133>>2] = $130; - return; - } - $134 = $115 & -8; - $135 = (($134) + ($$1382))|0; - $136 = $115 >>> 3; - $137 = ($115>>>0)<(256); - L108: do { - if ($137) { - $138 = ((($10)) + 8|0); - $139 = HEAP32[$138>>2]|0; - $140 = ((($10)) + 12|0); - $141 = HEAP32[$140>>2]|0; - $142 = $136 << 1; - $143 = (16636 + ($142<<2)|0); - $144 = ($139|0)==($143|0); - if (!($144)) { - $145 = HEAP32[(16612)>>2]|0; - $146 = ($139>>>0)<($145>>>0); - if ($146) { - _abort(); - // unreachable; - } - $147 = ((($139)) + 12|0); - $148 = HEAP32[$147>>2]|0; - $149 = ($148|0)==($10|0); - if (!($149)) { - _abort(); - // unreachable; - } - } - $150 = ($141|0)==($139|0); - if ($150) { - $151 = 1 << $136; - $152 = $151 ^ -1; - $153 = HEAP32[4149]|0; - $154 = $153 & $152; - HEAP32[4149] = $154; - break; - } - $155 = ($141|0)==($143|0); - if ($155) { - $$pre442 = ((($141)) + 8|0); - $$pre$phi443Z2D = $$pre442; - } else { - $156 = HEAP32[(16612)>>2]|0; - $157 = ($141>>>0)<($156>>>0); - if ($157) { - _abort(); - // unreachable; - } - $158 = ((($141)) + 8|0); - $159 = HEAP32[$158>>2]|0; - $160 = ($159|0)==($10|0); - if ($160) { - $$pre$phi443Z2D = $158; - } else { - _abort(); - // unreachable; - } - } - $161 = ((($139)) + 12|0); - HEAP32[$161>>2] = $141; - HEAP32[$$pre$phi443Z2D>>2] = $139; - } else { - $162 = ((($10)) + 24|0); - $163 = HEAP32[$162>>2]|0; - $164 = ((($10)) + 12|0); - $165 = HEAP32[$164>>2]|0; - $166 = ($165|0)==($10|0); - do { - if ($166) { - $177 = ((($10)) + 16|0); - $178 = ((($177)) + 4|0); - $179 = HEAP32[$178>>2]|0; - $180 = ($179|0)==(0|0); - if ($180) { - $181 = HEAP32[$177>>2]|0; - $182 = ($181|0)==(0|0); - if ($182) { - $$3400 = 0; - break; - } else { - $$1398 = $181;$$1402 = $177; - } - } else { - $$1398 = $179;$$1402 = $178; - } - while(1) { - $183 = ((($$1398)) + 20|0); - $184 = HEAP32[$183>>2]|0; - $185 = ($184|0)==(0|0); - if (!($185)) { - $$1398 = $184;$$1402 = $183; - continue; - } - $186 = ((($$1398)) + 16|0); - $187 = HEAP32[$186>>2]|0; - $188 = ($187|0)==(0|0); - if ($188) { - break; - } else { - $$1398 = $187;$$1402 = $186; - } - } - $189 = HEAP32[(16612)>>2]|0; - $190 = ($$1402>>>0)<($189>>>0); - if ($190) { - _abort(); - // unreachable; - } else { - HEAP32[$$1402>>2] = 0; - $$3400 = $$1398; - break; - } - } else { - $167 = ((($10)) + 8|0); - $168 = HEAP32[$167>>2]|0; - $169 = HEAP32[(16612)>>2]|0; - $170 = ($168>>>0)<($169>>>0); - if ($170) { - _abort(); - // unreachable; - } - $171 = ((($168)) + 12|0); - $172 = HEAP32[$171>>2]|0; - $173 = ($172|0)==($10|0); - if (!($173)) { - _abort(); - // unreachable; - } - $174 = ((($165)) + 8|0); - $175 = HEAP32[$174>>2]|0; - $176 = ($175|0)==($10|0); - if ($176) { - HEAP32[$171>>2] = $165; - HEAP32[$174>>2] = $168; - $$3400 = $165; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $191 = ($163|0)==(0|0); - if (!($191)) { - $192 = ((($10)) + 28|0); - $193 = HEAP32[$192>>2]|0; - $194 = (16900 + ($193<<2)|0); - $195 = HEAP32[$194>>2]|0; - $196 = ($10|0)==($195|0); - do { - if ($196) { - HEAP32[$194>>2] = $$3400; - $cond422 = ($$3400|0)==(0|0); - if ($cond422) { - $197 = 1 << $193; - $198 = $197 ^ -1; - $199 = HEAP32[(16600)>>2]|0; - $200 = $199 & $198; - HEAP32[(16600)>>2] = $200; - break L108; - } - } else { - $201 = HEAP32[(16612)>>2]|0; - $202 = ($163>>>0)<($201>>>0); - if ($202) { - _abort(); - // unreachable; - } else { - $203 = ((($163)) + 16|0); - $204 = HEAP32[$203>>2]|0; - $not$ = ($204|0)!=($10|0); - $$sink5 = $not$&1; - $205 = (((($163)) + 16|0) + ($$sink5<<2)|0); - HEAP32[$205>>2] = $$3400; - $206 = ($$3400|0)==(0|0); - if ($206) { - break L108; - } else { - break; - } - } - } - } while(0); - $207 = HEAP32[(16612)>>2]|0; - $208 = ($$3400>>>0)<($207>>>0); - if ($208) { - _abort(); - // unreachable; - } - $209 = ((($$3400)) + 24|0); - HEAP32[$209>>2] = $163; - $210 = ((($10)) + 16|0); - $211 = HEAP32[$210>>2]|0; - $212 = ($211|0)==(0|0); - do { - if (!($212)) { - $213 = ($211>>>0)<($207>>>0); - if ($213) { - _abort(); - // unreachable; - } else { - $214 = ((($$3400)) + 16|0); - HEAP32[$214>>2] = $211; - $215 = ((($211)) + 24|0); - HEAP32[$215>>2] = $$3400; - break; - } - } - } while(0); - $216 = ((($210)) + 4|0); - $217 = HEAP32[$216>>2]|0; - $218 = ($217|0)==(0|0); - if (!($218)) { - $219 = HEAP32[(16612)>>2]|0; - $220 = ($217>>>0)<($219>>>0); - if ($220) { - _abort(); - // unreachable; - } else { - $221 = ((($$3400)) + 20|0); - HEAP32[$221>>2] = $217; - $222 = ((($217)) + 24|0); - HEAP32[$222>>2] = $$3400; - break; - } - } - } - } - } while(0); - $223 = $135 | 1; - $224 = ((($$1)) + 4|0); - HEAP32[$224>>2] = $223; - $225 = (($113) + ($135)|0); - HEAP32[$225>>2] = $135; - $226 = HEAP32[(16616)>>2]|0; - $227 = ($$1|0)==($226|0); - if ($227) { - HEAP32[(16604)>>2] = $135; - return; - } else { - $$2 = $135; - } - } else { - $228 = $115 & -2; - HEAP32[$114>>2] = $228; - $229 = $$1382 | 1; - $230 = ((($$1)) + 4|0); - HEAP32[$230>>2] = $229; - $231 = (($113) + ($$1382)|0); - HEAP32[$231>>2] = $$1382; - $$2 = $$1382; - } - $232 = $$2 >>> 3; - $233 = ($$2>>>0)<(256); - if ($233) { - $234 = $232 << 1; - $235 = (16636 + ($234<<2)|0); - $236 = HEAP32[4149]|0; - $237 = 1 << $232; - $238 = $236 & $237; - $239 = ($238|0)==(0); - if ($239) { - $240 = $236 | $237; - HEAP32[4149] = $240; - $$pre = ((($235)) + 8|0); - $$0403 = $235;$$pre$phiZ2D = $$pre; - } else { - $241 = ((($235)) + 8|0); - $242 = HEAP32[$241>>2]|0; - $243 = HEAP32[(16612)>>2]|0; - $244 = ($242>>>0)<($243>>>0); - if ($244) { - _abort(); - // unreachable; - } else { - $$0403 = $242;$$pre$phiZ2D = $241; - } - } - HEAP32[$$pre$phiZ2D>>2] = $$1; - $245 = ((($$0403)) + 12|0); - HEAP32[$245>>2] = $$1; - $246 = ((($$1)) + 8|0); - HEAP32[$246>>2] = $$0403; - $247 = ((($$1)) + 12|0); - HEAP32[$247>>2] = $235; - return; - } - $248 = $$2 >>> 8; - $249 = ($248|0)==(0); - if ($249) { - $$0396 = 0; - } else { - $250 = ($$2>>>0)>(16777215); - if ($250) { - $$0396 = 31; - } else { - $251 = (($248) + 1048320)|0; - $252 = $251 >>> 16; - $253 = $252 & 8; - $254 = $248 << $253; - $255 = (($254) + 520192)|0; - $256 = $255 >>> 16; - $257 = $256 & 4; - $258 = $257 | $253; - $259 = $254 << $257; - $260 = (($259) + 245760)|0; - $261 = $260 >>> 16; - $262 = $261 & 2; - $263 = $258 | $262; - $264 = (14 - ($263))|0; - $265 = $259 << $262; - $266 = $265 >>> 15; - $267 = (($264) + ($266))|0; - $268 = $267 << 1; - $269 = (($267) + 7)|0; - $270 = $$2 >>> $269; - $271 = $270 & 1; - $272 = $271 | $268; - $$0396 = $272; - } - } - $273 = (16900 + ($$0396<<2)|0); - $274 = ((($$1)) + 28|0); - HEAP32[$274>>2] = $$0396; - $275 = ((($$1)) + 16|0); - $276 = ((($$1)) + 20|0); - HEAP32[$276>>2] = 0; - HEAP32[$275>>2] = 0; - $277 = HEAP32[(16600)>>2]|0; - $278 = 1 << $$0396; - $279 = $277 & $278; - $280 = ($279|0)==(0); - do { - if ($280) { - $281 = $277 | $278; - HEAP32[(16600)>>2] = $281; - HEAP32[$273>>2] = $$1; - $282 = ((($$1)) + 24|0); - HEAP32[$282>>2] = $273; - $283 = ((($$1)) + 12|0); - HEAP32[$283>>2] = $$1; - $284 = ((($$1)) + 8|0); - HEAP32[$284>>2] = $$1; - } else { - $285 = HEAP32[$273>>2]|0; - $286 = ($$0396|0)==(31); - $287 = $$0396 >>> 1; - $288 = (25 - ($287))|0; - $289 = $286 ? 0 : $288; - $290 = $$2 << $289; - $$0383 = $290;$$0384 = $285; - while(1) { - $291 = ((($$0384)) + 4|0); - $292 = HEAP32[$291>>2]|0; - $293 = $292 & -8; - $294 = ($293|0)==($$2|0); - if ($294) { - label = 124; - break; - } - $295 = $$0383 >>> 31; - $296 = (((($$0384)) + 16|0) + ($295<<2)|0); - $297 = $$0383 << 1; - $298 = HEAP32[$296>>2]|0; - $299 = ($298|0)==(0|0); - if ($299) { - label = 121; - break; - } else { - $$0383 = $297;$$0384 = $298; - } - } - if ((label|0) == 121) { - $300 = HEAP32[(16612)>>2]|0; - $301 = ($296>>>0)<($300>>>0); - if ($301) { - _abort(); - // unreachable; - } else { - HEAP32[$296>>2] = $$1; - $302 = ((($$1)) + 24|0); - HEAP32[$302>>2] = $$0384; - $303 = ((($$1)) + 12|0); - HEAP32[$303>>2] = $$1; - $304 = ((($$1)) + 8|0); - HEAP32[$304>>2] = $$1; - break; - } - } - else if ((label|0) == 124) { - $305 = ((($$0384)) + 8|0); - $306 = HEAP32[$305>>2]|0; - $307 = HEAP32[(16612)>>2]|0; - $308 = ($306>>>0)>=($307>>>0); - $not$437 = ($$0384>>>0)>=($307>>>0); - $309 = $308 & $not$437; - if ($309) { - $310 = ((($306)) + 12|0); - HEAP32[$310>>2] = $$1; - HEAP32[$305>>2] = $$1; - $311 = ((($$1)) + 8|0); - HEAP32[$311>>2] = $306; - $312 = ((($$1)) + 12|0); - HEAP32[$312>>2] = $$0384; - $313 = ((($$1)) + 24|0); - HEAP32[$313>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } while(0); - $314 = HEAP32[(16628)>>2]|0; - $315 = (($314) + -1)|0; - HEAP32[(16628)>>2] = $315; - $316 = ($315|0)==(0); - if ($316) { - $$0212$in$i = (17052); - } else { - return; - } - while(1) { - $$0212$i = HEAP32[$$0212$in$i>>2]|0; - $317 = ($$0212$i|0)==(0|0); - $318 = ((($$0212$i)) + 8|0); - if ($317) { - break; - } else { - $$0212$in$i = $318; - } - } - HEAP32[(16628)>>2] = -1; - return; -} -function _emscripten_get_global_libc() { - var label = 0, sp = 0; - sp = STACKTOP; - return (17092|0); -} -function ___stdio_close($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = ((($0)) + 60|0); - $2 = HEAP32[$1>>2]|0; - $3 = (_dummy_738($2)|0); - HEAP32[$vararg_buffer>>2] = $3; - $4 = (___syscall6(6,($vararg_buffer|0))|0); - $5 = (___syscall_ret($4)|0); - STACKTOP = sp;return ($5|0); -} -function ___stdio_write($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$04756 = 0, $$04855 = 0, $$04954 = 0, $$051 = 0, $$1 = 0, $$150 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0; - var $vararg_ptr7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $vararg_buffer3 = sp + 16|0; - $vararg_buffer = sp; - $3 = sp + 32|0; - $4 = ((($0)) + 28|0); - $5 = HEAP32[$4>>2]|0; - HEAP32[$3>>2] = $5; - $6 = ((($3)) + 4|0); - $7 = ((($0)) + 20|0); - $8 = HEAP32[$7>>2]|0; - $9 = (($8) - ($5))|0; - HEAP32[$6>>2] = $9; - $10 = ((($3)) + 8|0); - HEAP32[$10>>2] = $1; - $11 = ((($3)) + 12|0); - HEAP32[$11>>2] = $2; - $12 = (($9) + ($2))|0; - $13 = ((($0)) + 60|0); - $14 = HEAP32[$13>>2]|0; - $15 = $3; - HEAP32[$vararg_buffer>>2] = $14; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $15; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = 2; - $16 = (___syscall146(146,($vararg_buffer|0))|0); - $17 = (___syscall_ret($16)|0); - $18 = ($12|0)==($17|0); - L1: do { - if ($18) { - label = 3; - } else { - $$04756 = 2;$$04855 = $12;$$04954 = $3;$26 = $17; - while(1) { - $25 = ($26|0)<(0); - if ($25) { - break; - } - $34 = (($$04855) - ($26))|0; - $35 = ((($$04954)) + 4|0); - $36 = HEAP32[$35>>2]|0; - $37 = ($26>>>0)>($36>>>0); - $38 = ((($$04954)) + 8|0); - $$150 = $37 ? $38 : $$04954; - $39 = $37 << 31 >> 31; - $$1 = (($39) + ($$04756))|0; - $40 = $37 ? $36 : 0; - $$0 = (($26) - ($40))|0; - $41 = HEAP32[$$150>>2]|0; - $42 = (($41) + ($$0)|0); - HEAP32[$$150>>2] = $42; - $43 = ((($$150)) + 4|0); - $44 = HEAP32[$43>>2]|0; - $45 = (($44) - ($$0))|0; - HEAP32[$43>>2] = $45; - $46 = HEAP32[$13>>2]|0; - $47 = $$150; - HEAP32[$vararg_buffer3>>2] = $46; - $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr6>>2] = $47; - $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); - HEAP32[$vararg_ptr7>>2] = $$1; - $48 = (___syscall146(146,($vararg_buffer3|0))|0); - $49 = (___syscall_ret($48)|0); - $50 = ($34|0)==($49|0); - if ($50) { - label = 3; - break L1; - } else { - $$04756 = $$1;$$04855 = $34;$$04954 = $$150;$26 = $49; - } - } - $27 = ((($0)) + 16|0); - HEAP32[$27>>2] = 0; - HEAP32[$4>>2] = 0; - HEAP32[$7>>2] = 0; - $28 = HEAP32[$0>>2]|0; - $29 = $28 | 32; - HEAP32[$0>>2] = $29; - $30 = ($$04756|0)==(2); - if ($30) { - $$051 = 0; - } else { - $31 = ((($$04954)) + 4|0); - $32 = HEAP32[$31>>2]|0; - $33 = (($2) - ($32))|0; - $$051 = $33; - } - } - } while(0); - if ((label|0) == 3) { - $19 = ((($0)) + 44|0); - $20 = HEAP32[$19>>2]|0; - $21 = ((($0)) + 48|0); - $22 = HEAP32[$21>>2]|0; - $23 = (($20) + ($22)|0); - $24 = ((($0)) + 16|0); - HEAP32[$24>>2] = $23; - HEAP32[$4>>2] = $20; - HEAP32[$7>>2] = $20; - $$051 = $2; - } - STACKTOP = sp;return ($$051|0); -} -function ___stdio_seek($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$pre = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $3 = sp + 20|0; - $4 = ((($0)) + 60|0); - $5 = HEAP32[$4>>2]|0; - $6 = $3; - HEAP32[$vararg_buffer>>2] = $5; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = 0; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $1; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $6; - $vararg_ptr4 = ((($vararg_buffer)) + 16|0); - HEAP32[$vararg_ptr4>>2] = $2; - $7 = (___syscall140(140,($vararg_buffer|0))|0); - $8 = (___syscall_ret($7)|0); - $9 = ($8|0)<(0); - if ($9) { - HEAP32[$3>>2] = -1; - $10 = -1; - } else { - $$pre = HEAP32[$3>>2]|0; - $10 = $$pre; - } - STACKTOP = sp;return ($10|0); -} -function ___syscall_ret($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0>>>0)>(4294963200); - if ($1) { - $2 = (0 - ($0))|0; - $3 = (___errno_location()|0); - HEAP32[$3>>2] = $2; - $$0 = -1; - } else { - $$0 = $0; - } - return ($$0|0); -} -function ___errno_location() { - var $0 = 0, $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (___pthread_self_108()|0); - $1 = ((($0)) + 64|0); - return ($1|0); -} -function ___pthread_self_108() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function _pthread_self() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2984|0); -} -function _dummy_738($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return ($0|0); -} -function ___stdout_write($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $3 = sp + 16|0; - $4 = ((($0)) + 36|0); - HEAP32[$4>>2] = 9; - $5 = HEAP32[$0>>2]|0; - $6 = $5 & 64; - $7 = ($6|0)==(0); - if ($7) { - $8 = ((($0)) + 60|0); - $9 = HEAP32[$8>>2]|0; - $10 = $3; - HEAP32[$vararg_buffer>>2] = $9; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = 21523; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $10; - $11 = (___syscall54(54,($vararg_buffer|0))|0); - $12 = ($11|0)==(0); - if (!($12)) { - $13 = ((($0)) + 75|0); - HEAP8[$13>>0] = -1; - } - } - $14 = (___stdio_write($0,$1,$2)|0); - STACKTOP = sp;return ($14|0); -} -function _strcmp($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$011 = 0, $$0710 = 0, $$lcssa = 0, $$lcssa8 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $2 = HEAP8[$0>>0]|0; - $3 = HEAP8[$1>>0]|0; - $4 = ($2<<24>>24)!=($3<<24>>24); - $5 = ($2<<24>>24)==(0); - $or$cond9 = $5 | $4; - if ($or$cond9) { - $$lcssa = $3;$$lcssa8 = $2; - } else { - $$011 = $1;$$0710 = $0; - while(1) { - $6 = ((($$0710)) + 1|0); - $7 = ((($$011)) + 1|0); - $8 = HEAP8[$6>>0]|0; - $9 = HEAP8[$7>>0]|0; - $10 = ($8<<24>>24)!=($9<<24>>24); - $11 = ($8<<24>>24)==(0); - $or$cond = $11 | $10; - if ($or$cond) { - $$lcssa = $9;$$lcssa8 = $8; - break; - } else { - $$011 = $7;$$0710 = $6; - } - } - } - $12 = $$lcssa8&255; - $13 = $$lcssa&255; - $14 = (($12) - ($13))|0; - return ($14|0); -} -function _memcmp($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$01318 = 0, $$01417 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $14 = 0; - } else { - $$01318 = $0;$$01417 = $2;$$019 = $1; - while(1) { - $4 = HEAP8[$$01318>>0]|0; - $5 = HEAP8[$$019>>0]|0; - $6 = ($4<<24>>24)==($5<<24>>24); - if (!($6)) { - break; - } - $7 = (($$01417) + -1)|0; - $8 = ((($$01318)) + 1|0); - $9 = ((($$019)) + 1|0); - $10 = ($7|0)==(0); - if ($10) { - $14 = 0; - break L1; - } else { - $$01318 = $8;$$01417 = $7;$$019 = $9; - } - } - $11 = $4&255; - $12 = $5&255; - $13 = (($11) - ($12))|0; - $14 = $13; - } - } while(0); - return ($14|0); -} -function _vsprintf($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (_vsnprintf($0,2147483647,$1,$2)|0); - return ($3|0); -} -function _vsnprintf($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$$015 = 0, $$0 = 0, $$014 = 0, $$015 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $4 = sp + 124|0; - $5 = sp; - dest=$5; src=3360; stop=dest+124|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $6 = (($1) + -1)|0; - $7 = ($6>>>0)>(2147483646); - if ($7) { - $8 = ($1|0)==(0); - if ($8) { - $$014 = $4;$$015 = 1; - label = 4; - } else { - $9 = (___errno_location()|0); - HEAP32[$9>>2] = 75; - $$0 = -1; - } - } else { - $$014 = $0;$$015 = $1; - label = 4; - } - if ((label|0) == 4) { - $10 = $$014; - $11 = (-2 - ($10))|0; - $12 = ($$015>>>0)>($11>>>0); - $$$015 = $12 ? $11 : $$015; - $13 = ((($5)) + 48|0); - HEAP32[$13>>2] = $$$015; - $14 = ((($5)) + 20|0); - HEAP32[$14>>2] = $$014; - $15 = ((($5)) + 44|0); - HEAP32[$15>>2] = $$014; - $16 = (($$014) + ($$$015)|0); - $17 = ((($5)) + 16|0); - HEAP32[$17>>2] = $16; - $18 = ((($5)) + 28|0); - HEAP32[$18>>2] = $16; - $19 = (_vfprintf($5,$2,$3)|0); - $20 = ($$$015|0)==(0); - if ($20) { - $$0 = $19; - } else { - $21 = HEAP32[$14>>2]|0; - $22 = HEAP32[$17>>2]|0; - $23 = ($21|0)==($22|0); - $24 = $23 << 31 >> 31; - $25 = (($21) + ($24)|0); - HEAP8[$25>>0] = 0; - $$0 = $19; - } - } - STACKTOP = sp;return ($$0|0); -} -function _vfprintf($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $$0 = 0, $$1 = 0, $$1$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); - $3 = sp + 120|0; - $4 = sp + 80|0; - $5 = sp; - $6 = sp + 136|0; - dest=$4; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - $vacopy_currentptr = HEAP32[$2>>2]|0; - HEAP32[$3>>2] = $vacopy_currentptr; - $7 = (_printf_core(0,$1,$3,$5,$4)|0); - $8 = ($7|0)<(0); - if ($8) { - $$0 = -1; - } else { - $9 = ((($0)) + 76|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)>(-1); - if ($11) { - $12 = (___lockfile($0)|0); - $40 = $12; - } else { - $40 = 0; - } - $13 = HEAP32[$0>>2]|0; - $14 = $13 & 32; - $15 = ((($0)) + 74|0); - $16 = HEAP8[$15>>0]|0; - $17 = ($16<<24>>24)<(1); - if ($17) { - $18 = $13 & -33; - HEAP32[$0>>2] = $18; - } - $19 = ((($0)) + 48|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($20|0)==(0); - if ($21) { - $23 = ((($0)) + 44|0); - $24 = HEAP32[$23>>2]|0; - HEAP32[$23>>2] = $6; - $25 = ((($0)) + 28|0); - HEAP32[$25>>2] = $6; - $26 = ((($0)) + 20|0); - HEAP32[$26>>2] = $6; - HEAP32[$19>>2] = 80; - $27 = ((($6)) + 80|0); - $28 = ((($0)) + 16|0); - HEAP32[$28>>2] = $27; - $29 = (_printf_core($0,$1,$3,$5,$4)|0); - $30 = ($24|0)==(0|0); - if ($30) { - $$1 = $29; - } else { - $31 = ((($0)) + 36|0); - $32 = HEAP32[$31>>2]|0; - (FUNCTION_TABLE_iiii[$32 & 15]($0,0,0)|0); - $33 = HEAP32[$26>>2]|0; - $34 = ($33|0)==(0|0); - $$ = $34 ? -1 : $29; - HEAP32[$23>>2] = $24; - HEAP32[$19>>2] = 0; - HEAP32[$28>>2] = 0; - HEAP32[$25>>2] = 0; - HEAP32[$26>>2] = 0; - $$1 = $$; - } - } else { - $22 = (_printf_core($0,$1,$3,$5,$4)|0); - $$1 = $22; - } - $35 = HEAP32[$0>>2]|0; - $36 = $35 & 32; - $37 = ($36|0)==(0); - $$1$ = $37 ? $$1 : -1; - $38 = $35 | $14; - HEAP32[$0>>2] = $38; - $39 = ($40|0)==(0); - if (!($39)) { - ___unlockfile($0); - } - $$0 = $$1$; - } - STACKTOP = sp;return ($$0|0); -} -function _printf_core($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$ = 0, $$$ = 0, $$$0259 = 0, $$$0262 = 0, $$$0269 = 0, $$$4266 = 0, $$$5 = 0, $$0 = 0, $$0228 = 0, $$0228$ = 0, $$0229322 = 0, $$0232 = 0, $$0235 = 0, $$0237 = 0, $$0240$lcssa = 0, $$0240$lcssa357 = 0, $$0240321 = 0, $$0243 = 0, $$0247 = 0, $$0249$lcssa = 0; - var $$0249306 = 0, $$0252 = 0, $$0253 = 0, $$0254 = 0, $$0254$$0254$ = 0, $$0259 = 0, $$0262$lcssa = 0, $$0262311 = 0, $$0269 = 0, $$0269$phi = 0, $$1 = 0, $$1230333 = 0, $$1233 = 0, $$1236 = 0, $$1238 = 0, $$1241332 = 0, $$1244320 = 0, $$1248 = 0, $$1250 = 0, $$1255 = 0; - var $$1260 = 0, $$1263 = 0, $$1263$ = 0, $$1270 = 0, $$2 = 0, $$2234 = 0, $$2239 = 0, $$2242305 = 0, $$2245 = 0, $$2251 = 0, $$2256 = 0, $$2256$ = 0, $$2256$$$2256 = 0, $$2261 = 0, $$2271 = 0, $$284$ = 0, $$289 = 0, $$290 = 0, $$3257 = 0, $$3265 = 0; - var $$3272 = 0, $$3303 = 0, $$377 = 0, $$4258355 = 0, $$4266 = 0, $$5 = 0, $$6268 = 0, $$lcssa295 = 0, $$pre = 0, $$pre346 = 0, $$pre347 = 0, $$pre347$pre = 0, $$pre349 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; - var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; - var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; - var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; - var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; - var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0; - var $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0; - var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0; - var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0; - var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0; - var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0; - var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0; - var $306 = 0.0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0; - var $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; - var $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0, $arglist_next3 = 0, $expanded = 0, $expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0, $expanded8 = 0, $isdigit = 0, $isdigit275 = 0, $isdigit277 = 0, $isdigittmp = 0, $isdigittmp$ = 0, $isdigittmp274 = 0; - var $isdigittmp276 = 0, $narrow = 0, $or$cond = 0, $or$cond281 = 0, $or$cond283 = 0, $or$cond286 = 0, $storemerge = 0, $storemerge273310 = 0, $storemerge278 = 0, $trunc = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $5 = sp + 16|0; - $6 = sp; - $7 = sp + 24|0; - $8 = sp + 8|0; - $9 = sp + 20|0; - HEAP32[$5>>2] = $1; - $10 = ($0|0)!=(0|0); - $11 = ((($7)) + 40|0); - $12 = $11; - $13 = ((($7)) + 39|0); - $14 = ((($8)) + 4|0); - $$0243 = 0;$$0247 = 0;$$0269 = 0;$21 = $1; - L1: while(1) { - $15 = ($$0247|0)>(-1); - do { - if ($15) { - $16 = (2147483647 - ($$0247))|0; - $17 = ($$0243|0)>($16|0); - if ($17) { - $18 = (___errno_location()|0); - HEAP32[$18>>2] = 75; - $$1248 = -1; - break; - } else { - $19 = (($$0243) + ($$0247))|0; - $$1248 = $19; - break; - } - } else { - $$1248 = $$0247; - } - } while(0); - $20 = HEAP8[$21>>0]|0; - $22 = ($20<<24>>24)==(0); - if ($22) { - label = 87; - break; - } else { - $23 = $20;$25 = $21; - } - L9: while(1) { - switch ($23<<24>>24) { - case 37: { - $$0249306 = $25;$27 = $25; - label = 9; - break L9; - break; - } - case 0: { - $$0249$lcssa = $25;$39 = $25; - break L9; - break; - } - default: { - } - } - $24 = ((($25)) + 1|0); - HEAP32[$5>>2] = $24; - $$pre = HEAP8[$24>>0]|0; - $23 = $$pre;$25 = $24; - } - L12: do { - if ((label|0) == 9) { - while(1) { - label = 0; - $26 = ((($27)) + 1|0); - $28 = HEAP8[$26>>0]|0; - $29 = ($28<<24>>24)==(37); - if (!($29)) { - $$0249$lcssa = $$0249306;$39 = $27; - break L12; - } - $30 = ((($$0249306)) + 1|0); - $31 = ((($27)) + 2|0); - HEAP32[$5>>2] = $31; - $32 = HEAP8[$31>>0]|0; - $33 = ($32<<24>>24)==(37); - if ($33) { - $$0249306 = $30;$27 = $31; - label = 9; - } else { - $$0249$lcssa = $30;$39 = $31; - break; - } - } - } - } while(0); - $34 = $$0249$lcssa; - $35 = $21; - $36 = (($34) - ($35))|0; - if ($10) { - _out($0,$21,$36); - } - $37 = ($36|0)==(0); - if (!($37)) { - $$0269$phi = $$0269;$$0243 = $36;$$0247 = $$1248;$21 = $39;$$0269 = $$0269$phi; - continue; - } - $38 = ((($39)) + 1|0); - $40 = HEAP8[$38>>0]|0; - $41 = $40 << 24 >> 24; - $isdigittmp = (($41) + -48)|0; - $isdigit = ($isdigittmp>>>0)<(10); - if ($isdigit) { - $42 = ((($39)) + 2|0); - $43 = HEAP8[$42>>0]|0; - $44 = ($43<<24>>24)==(36); - $45 = ((($39)) + 3|0); - $$377 = $44 ? $45 : $38; - $$$0269 = $44 ? 1 : $$0269; - $isdigittmp$ = $44 ? $isdigittmp : -1; - $$0253 = $isdigittmp$;$$1270 = $$$0269;$storemerge = $$377; - } else { - $$0253 = -1;$$1270 = $$0269;$storemerge = $38; - } - HEAP32[$5>>2] = $storemerge; - $46 = HEAP8[$storemerge>>0]|0; - $47 = $46 << 24 >> 24; - $48 = (($47) + -32)|0; - $49 = ($48>>>0)<(32); - L24: do { - if ($49) { - $$0262311 = 0;$329 = $46;$51 = $48;$storemerge273310 = $storemerge; - while(1) { - $50 = 1 << $51; - $52 = $50 & 75913; - $53 = ($52|0)==(0); - if ($53) { - $$0262$lcssa = $$0262311;$$lcssa295 = $329;$62 = $storemerge273310; - break L24; - } - $54 = $50 | $$0262311; - $55 = ((($storemerge273310)) + 1|0); - HEAP32[$5>>2] = $55; - $56 = HEAP8[$55>>0]|0; - $57 = $56 << 24 >> 24; - $58 = (($57) + -32)|0; - $59 = ($58>>>0)<(32); - if ($59) { - $$0262311 = $54;$329 = $56;$51 = $58;$storemerge273310 = $55; - } else { - $$0262$lcssa = $54;$$lcssa295 = $56;$62 = $55; - break; - } - } - } else { - $$0262$lcssa = 0;$$lcssa295 = $46;$62 = $storemerge; - } - } while(0); - $60 = ($$lcssa295<<24>>24)==(42); - if ($60) { - $61 = ((($62)) + 1|0); - $63 = HEAP8[$61>>0]|0; - $64 = $63 << 24 >> 24; - $isdigittmp276 = (($64) + -48)|0; - $isdigit277 = ($isdigittmp276>>>0)<(10); - if ($isdigit277) { - $65 = ((($62)) + 2|0); - $66 = HEAP8[$65>>0]|0; - $67 = ($66<<24>>24)==(36); - if ($67) { - $68 = (($4) + ($isdigittmp276<<2)|0); - HEAP32[$68>>2] = 10; - $69 = HEAP8[$61>>0]|0; - $70 = $69 << 24 >> 24; - $71 = (($70) + -48)|0; - $72 = (($3) + ($71<<3)|0); - $73 = $72; - $74 = $73; - $75 = HEAP32[$74>>2]|0; - $76 = (($73) + 4)|0; - $77 = $76; - $78 = HEAP32[$77>>2]|0; - $79 = ((($62)) + 3|0); - $$0259 = $75;$$2271 = 1;$storemerge278 = $79; - } else { - label = 23; - } - } else { - label = 23; - } - if ((label|0) == 23) { - label = 0; - $80 = ($$1270|0)==(0); - if (!($80)) { - $$0 = -1; - break; - } - if ($10) { - $arglist_current = HEAP32[$2>>2]|0; - $81 = $arglist_current; - $82 = ((0) + 4|0); - $expanded4 = $82; - $expanded = (($expanded4) - 1)|0; - $83 = (($81) + ($expanded))|0; - $84 = ((0) + 4|0); - $expanded8 = $84; - $expanded7 = (($expanded8) - 1)|0; - $expanded6 = $expanded7 ^ -1; - $85 = $83 & $expanded6; - $86 = $85; - $87 = HEAP32[$86>>2]|0; - $arglist_next = ((($86)) + 4|0); - HEAP32[$2>>2] = $arglist_next; - $$0259 = $87;$$2271 = 0;$storemerge278 = $61; - } else { - $$0259 = 0;$$2271 = 0;$storemerge278 = $61; - } - } - HEAP32[$5>>2] = $storemerge278; - $88 = ($$0259|0)<(0); - $89 = $$0262$lcssa | 8192; - $90 = (0 - ($$0259))|0; - $$$0262 = $88 ? $89 : $$0262$lcssa; - $$$0259 = $88 ? $90 : $$0259; - $$1260 = $$$0259;$$1263 = $$$0262;$$3272 = $$2271;$94 = $storemerge278; - } else { - $91 = (_getint($5)|0); - $92 = ($91|0)<(0); - if ($92) { - $$0 = -1; - break; - } - $$pre346 = HEAP32[$5>>2]|0; - $$1260 = $91;$$1263 = $$0262$lcssa;$$3272 = $$1270;$94 = $$pre346; - } - $93 = HEAP8[$94>>0]|0; - $95 = ($93<<24>>24)==(46); - do { - if ($95) { - $96 = ((($94)) + 1|0); - $97 = HEAP8[$96>>0]|0; - $98 = ($97<<24>>24)==(42); - if (!($98)) { - $125 = ((($94)) + 1|0); - HEAP32[$5>>2] = $125; - $126 = (_getint($5)|0); - $$pre347$pre = HEAP32[$5>>2]|0; - $$0254 = $126;$$pre347 = $$pre347$pre; - break; - } - $99 = ((($94)) + 2|0); - $100 = HEAP8[$99>>0]|0; - $101 = $100 << 24 >> 24; - $isdigittmp274 = (($101) + -48)|0; - $isdigit275 = ($isdigittmp274>>>0)<(10); - if ($isdigit275) { - $102 = ((($94)) + 3|0); - $103 = HEAP8[$102>>0]|0; - $104 = ($103<<24>>24)==(36); - if ($104) { - $105 = (($4) + ($isdigittmp274<<2)|0); - HEAP32[$105>>2] = 10; - $106 = HEAP8[$99>>0]|0; - $107 = $106 << 24 >> 24; - $108 = (($107) + -48)|0; - $109 = (($3) + ($108<<3)|0); - $110 = $109; - $111 = $110; - $112 = HEAP32[$111>>2]|0; - $113 = (($110) + 4)|0; - $114 = $113; - $115 = HEAP32[$114>>2]|0; - $116 = ((($94)) + 4|0); - HEAP32[$5>>2] = $116; - $$0254 = $112;$$pre347 = $116; - break; - } - } - $117 = ($$3272|0)==(0); - if (!($117)) { - $$0 = -1; - break L1; - } - if ($10) { - $arglist_current2 = HEAP32[$2>>2]|0; - $118 = $arglist_current2; - $119 = ((0) + 4|0); - $expanded11 = $119; - $expanded10 = (($expanded11) - 1)|0; - $120 = (($118) + ($expanded10))|0; - $121 = ((0) + 4|0); - $expanded15 = $121; - $expanded14 = (($expanded15) - 1)|0; - $expanded13 = $expanded14 ^ -1; - $122 = $120 & $expanded13; - $123 = $122; - $124 = HEAP32[$123>>2]|0; - $arglist_next3 = ((($123)) + 4|0); - HEAP32[$2>>2] = $arglist_next3; - $330 = $124; - } else { - $330 = 0; - } - HEAP32[$5>>2] = $99; - $$0254 = $330;$$pre347 = $99; - } else { - $$0254 = -1;$$pre347 = $94; - } - } while(0); - $$0252 = 0;$128 = $$pre347; - while(1) { - $127 = HEAP8[$128>>0]|0; - $129 = $127 << 24 >> 24; - $130 = (($129) + -65)|0; - $131 = ($130>>>0)>(57); - if ($131) { - $$0 = -1; - break L1; - } - $132 = ((($128)) + 1|0); - HEAP32[$5>>2] = $132; - $133 = HEAP8[$128>>0]|0; - $134 = $133 << 24 >> 24; - $135 = (($134) + -65)|0; - $136 = ((11387 + (($$0252*58)|0)|0) + ($135)|0); - $137 = HEAP8[$136>>0]|0; - $138 = $137&255; - $139 = (($138) + -1)|0; - $140 = ($139>>>0)<(8); - if ($140) { - $$0252 = $138;$128 = $132; - } else { - break; - } - } - $141 = ($137<<24>>24)==(0); - if ($141) { - $$0 = -1; - break; - } - $142 = ($137<<24>>24)==(19); - $143 = ($$0253|0)>(-1); - do { - if ($142) { - if ($143) { - $$0 = -1; - break L1; - } else { - label = 49; - } - } else { - if ($143) { - $144 = (($4) + ($$0253<<2)|0); - HEAP32[$144>>2] = $138; - $145 = (($3) + ($$0253<<3)|0); - $146 = $145; - $147 = $146; - $148 = HEAP32[$147>>2]|0; - $149 = (($146) + 4)|0; - $150 = $149; - $151 = HEAP32[$150>>2]|0; - $152 = $6; - $153 = $152; - HEAP32[$153>>2] = $148; - $154 = (($152) + 4)|0; - $155 = $154; - HEAP32[$155>>2] = $151; - label = 49; - break; - } - if (!($10)) { - $$0 = 0; - break L1; - } - _pop_arg($6,$138,$2); - } - } while(0); - if ((label|0) == 49) { - label = 0; - if (!($10)) { - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue; - } - } - $156 = HEAP8[$128>>0]|0; - $157 = $156 << 24 >> 24; - $158 = ($$0252|0)!=(0); - $159 = $157 & 15; - $160 = ($159|0)==(3); - $or$cond281 = $158 & $160; - $161 = $157 & -33; - $$0235 = $or$cond281 ? $161 : $157; - $162 = $$1263 & 8192; - $163 = ($162|0)==(0); - $164 = $$1263 & -65537; - $$1263$ = $163 ? $$1263 : $164; - L71: do { - switch ($$0235|0) { - case 110: { - $trunc = $$0252&255; - switch ($trunc<<24>>24) { - case 0: { - $171 = HEAP32[$6>>2]|0; - HEAP32[$171>>2] = $$1248; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 1: { - $172 = HEAP32[$6>>2]|0; - HEAP32[$172>>2] = $$1248; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 2: { - $173 = ($$1248|0)<(0); - $174 = $173 << 31 >> 31; - $175 = HEAP32[$6>>2]|0; - $176 = $175; - $177 = $176; - HEAP32[$177>>2] = $$1248; - $178 = (($176) + 4)|0; - $179 = $178; - HEAP32[$179>>2] = $174; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 3: { - $180 = $$1248&65535; - $181 = HEAP32[$6>>2]|0; - HEAP16[$181>>1] = $180; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 4: { - $182 = $$1248&255; - $183 = HEAP32[$6>>2]|0; - HEAP8[$183>>0] = $182; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 6: { - $184 = HEAP32[$6>>2]|0; - HEAP32[$184>>2] = $$1248; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 7: { - $185 = ($$1248|0)<(0); - $186 = $185 << 31 >> 31; - $187 = HEAP32[$6>>2]|0; - $188 = $187; - $189 = $188; - HEAP32[$189>>2] = $$1248; - $190 = (($188) + 4)|0; - $191 = $190; - HEAP32[$191>>2] = $186; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - default: { - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - } - } - break; - } - case 112: { - $192 = ($$0254>>>0)>(8); - $193 = $192 ? $$0254 : 8; - $194 = $$1263$ | 8; - $$1236 = 120;$$1255 = $193;$$3265 = $194; - label = 61; - break; - } - case 88: case 120: { - $$1236 = $$0235;$$1255 = $$0254;$$3265 = $$1263$; - label = 61; - break; - } - case 111: { - $210 = $6; - $211 = $210; - $212 = HEAP32[$211>>2]|0; - $213 = (($210) + 4)|0; - $214 = $213; - $215 = HEAP32[$214>>2]|0; - $216 = (_fmt_o($212,$215,$11)|0); - $217 = $$1263$ & 8; - $218 = ($217|0)==(0); - $219 = $216; - $220 = (($12) - ($219))|0; - $221 = ($$0254|0)>($220|0); - $222 = (($220) + 1)|0; - $223 = $218 | $221; - $$0254$$0254$ = $223 ? $$0254 : $222; - $$0228 = $216;$$1233 = 0;$$1238 = 11851;$$2256 = $$0254$$0254$;$$4266 = $$1263$;$248 = $212;$250 = $215; - label = 67; - break; - } - case 105: case 100: { - $224 = $6; - $225 = $224; - $226 = HEAP32[$225>>2]|0; - $227 = (($224) + 4)|0; - $228 = $227; - $229 = HEAP32[$228>>2]|0; - $230 = ($229|0)<(0); - if ($230) { - $231 = (_i64Subtract(0,0,($226|0),($229|0))|0); - $232 = tempRet0; - $233 = $6; - $234 = $233; - HEAP32[$234>>2] = $231; - $235 = (($233) + 4)|0; - $236 = $235; - HEAP32[$236>>2] = $232; - $$0232 = 1;$$0237 = 11851;$242 = $231;$243 = $232; - label = 66; - break L71; - } else { - $237 = $$1263$ & 2048; - $238 = ($237|0)==(0); - $239 = $$1263$ & 1; - $240 = ($239|0)==(0); - $$ = $240 ? 11851 : (11853); - $$$ = $238 ? $$ : (11852); - $241 = $$1263$ & 2049; - $narrow = ($241|0)!=(0); - $$284$ = $narrow&1; - $$0232 = $$284$;$$0237 = $$$;$242 = $226;$243 = $229; - label = 66; - break L71; - } - break; - } - case 117: { - $165 = $6; - $166 = $165; - $167 = HEAP32[$166>>2]|0; - $168 = (($165) + 4)|0; - $169 = $168; - $170 = HEAP32[$169>>2]|0; - $$0232 = 0;$$0237 = 11851;$242 = $167;$243 = $170; - label = 66; - break; - } - case 99: { - $259 = $6; - $260 = $259; - $261 = HEAP32[$260>>2]|0; - $262 = (($259) + 4)|0; - $263 = $262; - $264 = HEAP32[$263>>2]|0; - $265 = $261&255; - HEAP8[$13>>0] = $265; - $$2 = $13;$$2234 = 0;$$2239 = 11851;$$2251 = $11;$$5 = 1;$$6268 = $164; - break; - } - case 109: { - $266 = (___errno_location()|0); - $267 = HEAP32[$266>>2]|0; - $268 = (_strerror($267)|0); - $$1 = $268; - label = 71; - break; - } - case 115: { - $269 = HEAP32[$6>>2]|0; - $270 = ($269|0)!=(0|0); - $271 = $270 ? $269 : 11861; - $$1 = $271; - label = 71; - break; - } - case 67: { - $278 = $6; - $279 = $278; - $280 = HEAP32[$279>>2]|0; - $281 = (($278) + 4)|0; - $282 = $281; - $283 = HEAP32[$282>>2]|0; - HEAP32[$8>>2] = $280; - HEAP32[$14>>2] = 0; - HEAP32[$6>>2] = $8; - $$4258355 = -1;$331 = $8; - label = 75; - break; - } - case 83: { - $$pre349 = HEAP32[$6>>2]|0; - $284 = ($$0254|0)==(0); - if ($284) { - _pad_674($0,32,$$1260,0,$$1263$); - $$0240$lcssa357 = 0; - label = 84; - } else { - $$4258355 = $$0254;$331 = $$pre349; - label = 75; - } - break; - } - case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { - $306 = +HEAPF64[$6>>3]; - $307 = (_fmt_fp($0,$306,$$1260,$$0254,$$1263$,$$0235)|0); - $$0243 = $307;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - default: { - $$2 = $21;$$2234 = 0;$$2239 = 11851;$$2251 = $11;$$5 = $$0254;$$6268 = $$1263$; - } - } - } while(0); - L95: do { - if ((label|0) == 61) { - label = 0; - $195 = $6; - $196 = $195; - $197 = HEAP32[$196>>2]|0; - $198 = (($195) + 4)|0; - $199 = $198; - $200 = HEAP32[$199>>2]|0; - $201 = $$1236 & 32; - $202 = (_fmt_x($197,$200,$11,$201)|0); - $203 = ($197|0)==(0); - $204 = ($200|0)==(0); - $205 = $203 & $204; - $206 = $$3265 & 8; - $207 = ($206|0)==(0); - $or$cond283 = $207 | $205; - $208 = $$1236 >> 4; - $209 = (11851 + ($208)|0); - $$289 = $or$cond283 ? 11851 : $209; - $$290 = $or$cond283 ? 0 : 2; - $$0228 = $202;$$1233 = $$290;$$1238 = $$289;$$2256 = $$1255;$$4266 = $$3265;$248 = $197;$250 = $200; - label = 67; - } - else if ((label|0) == 66) { - label = 0; - $244 = (_fmt_u($242,$243,$11)|0); - $$0228 = $244;$$1233 = $$0232;$$1238 = $$0237;$$2256 = $$0254;$$4266 = $$1263$;$248 = $242;$250 = $243; - label = 67; - } - else if ((label|0) == 71) { - label = 0; - $272 = (_memchr($$1,0,$$0254)|0); - $273 = ($272|0)==(0|0); - $274 = $272; - $275 = $$1; - $276 = (($274) - ($275))|0; - $277 = (($$1) + ($$0254)|0); - $$3257 = $273 ? $$0254 : $276; - $$1250 = $273 ? $277 : $272; - $$2 = $$1;$$2234 = 0;$$2239 = 11851;$$2251 = $$1250;$$5 = $$3257;$$6268 = $164; - } - else if ((label|0) == 75) { - label = 0; - $$0229322 = $331;$$0240321 = 0;$$1244320 = 0; - while(1) { - $285 = HEAP32[$$0229322>>2]|0; - $286 = ($285|0)==(0); - if ($286) { - $$0240$lcssa = $$0240321;$$2245 = $$1244320; - break; - } - $287 = (_wctomb($9,$285)|0); - $288 = ($287|0)<(0); - $289 = (($$4258355) - ($$0240321))|0; - $290 = ($287>>>0)>($289>>>0); - $or$cond286 = $288 | $290; - if ($or$cond286) { - $$0240$lcssa = $$0240321;$$2245 = $287; - break; - } - $291 = ((($$0229322)) + 4|0); - $292 = (($287) + ($$0240321))|0; - $293 = ($$4258355>>>0)>($292>>>0); - if ($293) { - $$0229322 = $291;$$0240321 = $292;$$1244320 = $287; - } else { - $$0240$lcssa = $292;$$2245 = $287; - break; - } - } - $294 = ($$2245|0)<(0); - if ($294) { - $$0 = -1; - break L1; - } - _pad_674($0,32,$$1260,$$0240$lcssa,$$1263$); - $295 = ($$0240$lcssa|0)==(0); - if ($295) { - $$0240$lcssa357 = 0; - label = 84; - } else { - $$1230333 = $331;$$1241332 = 0; - while(1) { - $296 = HEAP32[$$1230333>>2]|0; - $297 = ($296|0)==(0); - if ($297) { - $$0240$lcssa357 = $$0240$lcssa; - label = 84; - break L95; - } - $298 = (_wctomb($9,$296)|0); - $299 = (($298) + ($$1241332))|0; - $300 = ($299|0)>($$0240$lcssa|0); - if ($300) { - $$0240$lcssa357 = $$0240$lcssa; - label = 84; - break L95; - } - $301 = ((($$1230333)) + 4|0); - _out($0,$9,$298); - $302 = ($299>>>0)<($$0240$lcssa>>>0); - if ($302) { - $$1230333 = $301;$$1241332 = $299; - } else { - $$0240$lcssa357 = $$0240$lcssa; - label = 84; - break; - } - } - } - } - } while(0); - if ((label|0) == 67) { - label = 0; - $245 = ($$2256|0)>(-1); - $246 = $$4266 & -65537; - $$$4266 = $245 ? $246 : $$4266; - $247 = ($248|0)!=(0); - $249 = ($250|0)!=(0); - $251 = $247 | $249; - $252 = ($$2256|0)!=(0); - $or$cond = $252 | $251; - $253 = $$0228; - $254 = (($12) - ($253))|0; - $255 = $251 ^ 1; - $256 = $255&1; - $257 = (($256) + ($254))|0; - $258 = ($$2256|0)>($257|0); - $$2256$ = $258 ? $$2256 : $257; - $$2256$$$2256 = $or$cond ? $$2256$ : $$2256; - $$0228$ = $or$cond ? $$0228 : $11; - $$2 = $$0228$;$$2234 = $$1233;$$2239 = $$1238;$$2251 = $11;$$5 = $$2256$$$2256;$$6268 = $$$4266; - } - else if ((label|0) == 84) { - label = 0; - $303 = $$1263$ ^ 8192; - _pad_674($0,32,$$1260,$$0240$lcssa357,$303); - $304 = ($$1260|0)>($$0240$lcssa357|0); - $305 = $304 ? $$1260 : $$0240$lcssa357; - $$0243 = $305;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue; - } - $308 = $$2251; - $309 = $$2; - $310 = (($308) - ($309))|0; - $311 = ($$5|0)<($310|0); - $$$5 = $311 ? $310 : $$5; - $312 = (($$$5) + ($$2234))|0; - $313 = ($$1260|0)<($312|0); - $$2261 = $313 ? $312 : $$1260; - _pad_674($0,32,$$2261,$312,$$6268); - _out($0,$$2239,$$2234); - $314 = $$6268 ^ 65536; - _pad_674($0,48,$$2261,$312,$314); - _pad_674($0,48,$$$5,$310,0); - _out($0,$$2,$310); - $315 = $$6268 ^ 8192; - _pad_674($0,32,$$2261,$312,$315); - $$0243 = $$2261;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - } - L114: do { - if ((label|0) == 87) { - $316 = ($0|0)==(0|0); - if ($316) { - $317 = ($$0269|0)==(0); - if ($317) { - $$0 = 0; - } else { - $$2242305 = 1; - while(1) { - $318 = (($4) + ($$2242305<<2)|0); - $319 = HEAP32[$318>>2]|0; - $320 = ($319|0)==(0); - if ($320) { - $$3303 = $$2242305; - break; - } - $321 = (($3) + ($$2242305<<3)|0); - _pop_arg($321,$319,$2); - $322 = (($$2242305) + 1)|0; - $323 = ($322|0)<(10); - if ($323) { - $$2242305 = $322; - } else { - $$0 = 1; - break L114; - } - } - while(1) { - $326 = (($4) + ($$3303<<2)|0); - $327 = HEAP32[$326>>2]|0; - $328 = ($327|0)==(0); - $325 = (($$3303) + 1)|0; - if (!($328)) { - $$0 = -1; - break L114; - } - $324 = ($325|0)<(10); - if ($324) { - $$3303 = $325; - } else { - $$0 = 1; - break; - } - } - } - } else { - $$0 = $$1248; - } - } - } while(0); - STACKTOP = sp;return ($$0|0); -} -function ___lockfile($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return 0; -} -function ___unlockfile($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function _out($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = HEAP32[$0>>2]|0; - $4 = $3 & 32; - $5 = ($4|0)==(0); - if ($5) { - (___fwritex($1,$2,$0)|0); - } - return; -} -function _getint($0) { - $0 = $0|0; - var $$0$lcssa = 0, $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $isdigit = 0, $isdigit5 = 0, $isdigittmp = 0, $isdigittmp4 = 0, $isdigittmp7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - $2 = HEAP8[$1>>0]|0; - $3 = $2 << 24 >> 24; - $isdigittmp4 = (($3) + -48)|0; - $isdigit5 = ($isdigittmp4>>>0)<(10); - if ($isdigit5) { - $$06 = 0;$7 = $1;$isdigittmp7 = $isdigittmp4; - while(1) { - $4 = ($$06*10)|0; - $5 = (($isdigittmp7) + ($4))|0; - $6 = ((($7)) + 1|0); - HEAP32[$0>>2] = $6; - $8 = HEAP8[$6>>0]|0; - $9 = $8 << 24 >> 24; - $isdigittmp = (($9) + -48)|0; - $isdigit = ($isdigittmp>>>0)<(10); - if ($isdigit) { - $$06 = $5;$7 = $6;$isdigittmp7 = $isdigittmp; - } else { - $$0$lcssa = $5; - break; - } - } - } else { - $$0$lcssa = 0; - } - return ($$0$lcssa|0); -} -function _pop_arg($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$mask = 0, $$mask31 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0; - var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, $arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, $expanded28 = 0, $expanded30 = 0, $expanded31 = 0; - var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, $expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 = 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, $expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 = 0, $expanded58 = 0, $expanded59 = 0; - var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, $expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 = 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, $expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 = 0, $expanded86 = 0, $expanded87 = 0; - var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, $expanded94 = 0, $expanded95 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($1>>>0)>(20); - L1: do { - if (!($3)) { - do { - switch ($1|0) { - case 9: { - $arglist_current = HEAP32[$2>>2]|0; - $4 = $arglist_current; - $5 = ((0) + 4|0); - $expanded28 = $5; - $expanded = (($expanded28) - 1)|0; - $6 = (($4) + ($expanded))|0; - $7 = ((0) + 4|0); - $expanded32 = $7; - $expanded31 = (($expanded32) - 1)|0; - $expanded30 = $expanded31 ^ -1; - $8 = $6 & $expanded30; - $9 = $8; - $10 = HEAP32[$9>>2]|0; - $arglist_next = ((($9)) + 4|0); - HEAP32[$2>>2] = $arglist_next; - HEAP32[$0>>2] = $10; - break L1; - break; - } - case 10: { - $arglist_current2 = HEAP32[$2>>2]|0; - $11 = $arglist_current2; - $12 = ((0) + 4|0); - $expanded35 = $12; - $expanded34 = (($expanded35) - 1)|0; - $13 = (($11) + ($expanded34))|0; - $14 = ((0) + 4|0); - $expanded39 = $14; - $expanded38 = (($expanded39) - 1)|0; - $expanded37 = $expanded38 ^ -1; - $15 = $13 & $expanded37; - $16 = $15; - $17 = HEAP32[$16>>2]|0; - $arglist_next3 = ((($16)) + 4|0); - HEAP32[$2>>2] = $arglist_next3; - $18 = ($17|0)<(0); - $19 = $18 << 31 >> 31; - $20 = $0; - $21 = $20; - HEAP32[$21>>2] = $17; - $22 = (($20) + 4)|0; - $23 = $22; - HEAP32[$23>>2] = $19; - break L1; - break; - } - case 11: { - $arglist_current5 = HEAP32[$2>>2]|0; - $24 = $arglist_current5; - $25 = ((0) + 4|0); - $expanded42 = $25; - $expanded41 = (($expanded42) - 1)|0; - $26 = (($24) + ($expanded41))|0; - $27 = ((0) + 4|0); - $expanded46 = $27; - $expanded45 = (($expanded46) - 1)|0; - $expanded44 = $expanded45 ^ -1; - $28 = $26 & $expanded44; - $29 = $28; - $30 = HEAP32[$29>>2]|0; - $arglist_next6 = ((($29)) + 4|0); - HEAP32[$2>>2] = $arglist_next6; - $31 = $0; - $32 = $31; - HEAP32[$32>>2] = $30; - $33 = (($31) + 4)|0; - $34 = $33; - HEAP32[$34>>2] = 0; - break L1; - break; - } - case 12: { - $arglist_current8 = HEAP32[$2>>2]|0; - $35 = $arglist_current8; - $36 = ((0) + 8|0); - $expanded49 = $36; - $expanded48 = (($expanded49) - 1)|0; - $37 = (($35) + ($expanded48))|0; - $38 = ((0) + 8|0); - $expanded53 = $38; - $expanded52 = (($expanded53) - 1)|0; - $expanded51 = $expanded52 ^ -1; - $39 = $37 & $expanded51; - $40 = $39; - $41 = $40; - $42 = $41; - $43 = HEAP32[$42>>2]|0; - $44 = (($41) + 4)|0; - $45 = $44; - $46 = HEAP32[$45>>2]|0; - $arglist_next9 = ((($40)) + 8|0); - HEAP32[$2>>2] = $arglist_next9; - $47 = $0; - $48 = $47; - HEAP32[$48>>2] = $43; - $49 = (($47) + 4)|0; - $50 = $49; - HEAP32[$50>>2] = $46; - break L1; - break; - } - case 13: { - $arglist_current11 = HEAP32[$2>>2]|0; - $51 = $arglist_current11; - $52 = ((0) + 4|0); - $expanded56 = $52; - $expanded55 = (($expanded56) - 1)|0; - $53 = (($51) + ($expanded55))|0; - $54 = ((0) + 4|0); - $expanded60 = $54; - $expanded59 = (($expanded60) - 1)|0; - $expanded58 = $expanded59 ^ -1; - $55 = $53 & $expanded58; - $56 = $55; - $57 = HEAP32[$56>>2]|0; - $arglist_next12 = ((($56)) + 4|0); - HEAP32[$2>>2] = $arglist_next12; - $58 = $57&65535; - $59 = $58 << 16 >> 16; - $60 = ($59|0)<(0); - $61 = $60 << 31 >> 31; - $62 = $0; - $63 = $62; - HEAP32[$63>>2] = $59; - $64 = (($62) + 4)|0; - $65 = $64; - HEAP32[$65>>2] = $61; - break L1; - break; - } - case 14: { - $arglist_current14 = HEAP32[$2>>2]|0; - $66 = $arglist_current14; - $67 = ((0) + 4|0); - $expanded63 = $67; - $expanded62 = (($expanded63) - 1)|0; - $68 = (($66) + ($expanded62))|0; - $69 = ((0) + 4|0); - $expanded67 = $69; - $expanded66 = (($expanded67) - 1)|0; - $expanded65 = $expanded66 ^ -1; - $70 = $68 & $expanded65; - $71 = $70; - $72 = HEAP32[$71>>2]|0; - $arglist_next15 = ((($71)) + 4|0); - HEAP32[$2>>2] = $arglist_next15; - $$mask31 = $72 & 65535; - $73 = $0; - $74 = $73; - HEAP32[$74>>2] = $$mask31; - $75 = (($73) + 4)|0; - $76 = $75; - HEAP32[$76>>2] = 0; - break L1; - break; - } - case 15: { - $arglist_current17 = HEAP32[$2>>2]|0; - $77 = $arglist_current17; - $78 = ((0) + 4|0); - $expanded70 = $78; - $expanded69 = (($expanded70) - 1)|0; - $79 = (($77) + ($expanded69))|0; - $80 = ((0) + 4|0); - $expanded74 = $80; - $expanded73 = (($expanded74) - 1)|0; - $expanded72 = $expanded73 ^ -1; - $81 = $79 & $expanded72; - $82 = $81; - $83 = HEAP32[$82>>2]|0; - $arglist_next18 = ((($82)) + 4|0); - HEAP32[$2>>2] = $arglist_next18; - $84 = $83&255; - $85 = $84 << 24 >> 24; - $86 = ($85|0)<(0); - $87 = $86 << 31 >> 31; - $88 = $0; - $89 = $88; - HEAP32[$89>>2] = $85; - $90 = (($88) + 4)|0; - $91 = $90; - HEAP32[$91>>2] = $87; - break L1; - break; - } - case 16: { - $arglist_current20 = HEAP32[$2>>2]|0; - $92 = $arglist_current20; - $93 = ((0) + 4|0); - $expanded77 = $93; - $expanded76 = (($expanded77) - 1)|0; - $94 = (($92) + ($expanded76))|0; - $95 = ((0) + 4|0); - $expanded81 = $95; - $expanded80 = (($expanded81) - 1)|0; - $expanded79 = $expanded80 ^ -1; - $96 = $94 & $expanded79; - $97 = $96; - $98 = HEAP32[$97>>2]|0; - $arglist_next21 = ((($97)) + 4|0); - HEAP32[$2>>2] = $arglist_next21; - $$mask = $98 & 255; - $99 = $0; - $100 = $99; - HEAP32[$100>>2] = $$mask; - $101 = (($99) + 4)|0; - $102 = $101; - HEAP32[$102>>2] = 0; - break L1; - break; - } - case 17: { - $arglist_current23 = HEAP32[$2>>2]|0; - $103 = $arglist_current23; - $104 = ((0) + 8|0); - $expanded84 = $104; - $expanded83 = (($expanded84) - 1)|0; - $105 = (($103) + ($expanded83))|0; - $106 = ((0) + 8|0); - $expanded88 = $106; - $expanded87 = (($expanded88) - 1)|0; - $expanded86 = $expanded87 ^ -1; - $107 = $105 & $expanded86; - $108 = $107; - $109 = +HEAPF64[$108>>3]; - $arglist_next24 = ((($108)) + 8|0); - HEAP32[$2>>2] = $arglist_next24; - HEAPF64[$0>>3] = $109; - break L1; - break; - } - case 18: { - $arglist_current26 = HEAP32[$2>>2]|0; - $110 = $arglist_current26; - $111 = ((0) + 8|0); - $expanded91 = $111; - $expanded90 = (($expanded91) - 1)|0; - $112 = (($110) + ($expanded90))|0; - $113 = ((0) + 8|0); - $expanded95 = $113; - $expanded94 = (($expanded95) - 1)|0; - $expanded93 = $expanded94 ^ -1; - $114 = $112 & $expanded93; - $115 = $114; - $116 = +HEAPF64[$115>>3]; - $arglist_next27 = ((($115)) + 8|0); - HEAP32[$2>>2] = $arglist_next27; - HEAPF64[$0>>3] = $116; - break L1; - break; - } - default: { - break L1; - } - } - } while(0); - } - } while(0); - return; -} -function _fmt_x($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$05$lcssa = 0, $$056 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $4 = ($0|0)==(0); - $5 = ($1|0)==(0); - $6 = $4 & $5; - if ($6) { - $$05$lcssa = $2; - } else { - $$056 = $2;$15 = $1;$8 = $0; - while(1) { - $7 = $8 & 15; - $9 = (11903 + ($7)|0); - $10 = HEAP8[$9>>0]|0; - $11 = $10&255; - $12 = $11 | $3; - $13 = $12&255; - $14 = ((($$056)) + -1|0); - HEAP8[$14>>0] = $13; - $16 = (_bitshift64Lshr(($8|0),($15|0),4)|0); - $17 = tempRet0; - $18 = ($16|0)==(0); - $19 = ($17|0)==(0); - $20 = $18 & $19; - if ($20) { - $$05$lcssa = $14; - break; - } else { - $$056 = $14;$15 = $17;$8 = $16; - } - } - } - return ($$05$lcssa|0); -} -function _fmt_o($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0$lcssa = 0, $$06 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(0); - $4 = ($1|0)==(0); - $5 = $3 & $4; - if ($5) { - $$0$lcssa = $2; - } else { - $$06 = $2;$11 = $1;$7 = $0; - while(1) { - $6 = $7&255; - $8 = $6 & 7; - $9 = $8 | 48; - $10 = ((($$06)) + -1|0); - HEAP8[$10>>0] = $9; - $12 = (_bitshift64Lshr(($7|0),($11|0),3)|0); - $13 = tempRet0; - $14 = ($12|0)==(0); - $15 = ($13|0)==(0); - $16 = $14 & $15; - if ($16) { - $$0$lcssa = $10; - break; - } else { - $$06 = $10;$11 = $13;$7 = $12; - } - } - } - return ($$0$lcssa|0); -} -function _fmt_u($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$010$lcssa$off0 = 0, $$012 = 0, $$09$lcssa = 0, $$0914 = 0, $$1$lcssa = 0, $$111 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($1>>>0)>(0); - $4 = ($0>>>0)>(4294967295); - $5 = ($1|0)==(0); - $6 = $5 & $4; - $7 = $3 | $6; - if ($7) { - $$0914 = $2;$8 = $0;$9 = $1; - while(1) { - $10 = (___uremdi3(($8|0),($9|0),10,0)|0); - $11 = tempRet0; - $12 = $10&255; - $13 = $12 | 48; - $14 = ((($$0914)) + -1|0); - HEAP8[$14>>0] = $13; - $15 = (___udivdi3(($8|0),($9|0),10,0)|0); - $16 = tempRet0; - $17 = ($9>>>0)>(9); - $18 = ($8>>>0)>(4294967295); - $19 = ($9|0)==(9); - $20 = $19 & $18; - $21 = $17 | $20; - if ($21) { - $$0914 = $14;$8 = $15;$9 = $16; - } else { - break; - } - } - $$010$lcssa$off0 = $15;$$09$lcssa = $14; - } else { - $$010$lcssa$off0 = $0;$$09$lcssa = $2; - } - $22 = ($$010$lcssa$off0|0)==(0); - if ($22) { - $$1$lcssa = $$09$lcssa; - } else { - $$012 = $$010$lcssa$off0;$$111 = $$09$lcssa; - while(1) { - $23 = (($$012>>>0) % 10)&-1; - $24 = $23 | 48; - $25 = $24&255; - $26 = ((($$111)) + -1|0); - HEAP8[$26>>0] = $25; - $27 = (($$012>>>0) / 10)&-1; - $28 = ($$012>>>0)<(10); - if ($28) { - $$1$lcssa = $26; - break; - } else { - $$012 = $27;$$111 = $26; - } - } - } - return ($$1$lcssa|0); -} -function _strerror($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (___pthread_self_105()|0); - $2 = ((($1)) + 188|0); - $3 = HEAP32[$2>>2]|0; - $4 = (___strerror_l($0,$3)|0); - return ($4|0); -} -function _memchr($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0$lcssa = 0, $$035$lcssa = 0, $$035$lcssa65 = 0, $$03555 = 0, $$036$lcssa = 0, $$036$lcssa64 = 0, $$03654 = 0, $$046 = 0, $$137$lcssa = 0, $$13745 = 0, $$140 = 0, $$2 = 0, $$23839 = 0, $$3 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond53 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = $1 & 255; - $4 = $0; - $5 = $4 & 3; - $6 = ($5|0)!=(0); - $7 = ($2|0)!=(0); - $or$cond53 = $7 & $6; - L1: do { - if ($or$cond53) { - $8 = $1&255; - $$03555 = $0;$$03654 = $2; - while(1) { - $9 = HEAP8[$$03555>>0]|0; - $10 = ($9<<24>>24)==($8<<24>>24); - if ($10) { - $$035$lcssa65 = $$03555;$$036$lcssa64 = $$03654; - label = 6; - break L1; - } - $11 = ((($$03555)) + 1|0); - $12 = (($$03654) + -1)|0; - $13 = $11; - $14 = $13 & 3; - $15 = ($14|0)!=(0); - $16 = ($12|0)!=(0); - $or$cond = $16 & $15; - if ($or$cond) { - $$03555 = $11;$$03654 = $12; - } else { - $$035$lcssa = $11;$$036$lcssa = $12;$$lcssa = $16; - label = 5; - break; - } - } - } else { - $$035$lcssa = $0;$$036$lcssa = $2;$$lcssa = $7; - label = 5; - } - } while(0); - if ((label|0) == 5) { - if ($$lcssa) { - $$035$lcssa65 = $$035$lcssa;$$036$lcssa64 = $$036$lcssa; - label = 6; - } else { - $$2 = $$035$lcssa;$$3 = 0; - } - } - L8: do { - if ((label|0) == 6) { - $17 = HEAP8[$$035$lcssa65>>0]|0; - $18 = $1&255; - $19 = ($17<<24>>24)==($18<<24>>24); - if ($19) { - $$2 = $$035$lcssa65;$$3 = $$036$lcssa64; - } else { - $20 = Math_imul($3, 16843009)|0; - $21 = ($$036$lcssa64>>>0)>(3); - L11: do { - if ($21) { - $$046 = $$035$lcssa65;$$13745 = $$036$lcssa64; - while(1) { - $22 = HEAP32[$$046>>2]|0; - $23 = $22 ^ $20; - $24 = (($23) + -16843009)|0; - $25 = $23 & -2139062144; - $26 = $25 ^ -2139062144; - $27 = $26 & $24; - $28 = ($27|0)==(0); - if (!($28)) { - break; - } - $29 = ((($$046)) + 4|0); - $30 = (($$13745) + -4)|0; - $31 = ($30>>>0)>(3); - if ($31) { - $$046 = $29;$$13745 = $30; - } else { - $$0$lcssa = $29;$$137$lcssa = $30; - label = 11; - break L11; - } - } - $$140 = $$046;$$23839 = $$13745; - } else { - $$0$lcssa = $$035$lcssa65;$$137$lcssa = $$036$lcssa64; - label = 11; - } - } while(0); - if ((label|0) == 11) { - $32 = ($$137$lcssa|0)==(0); - if ($32) { - $$2 = $$0$lcssa;$$3 = 0; - break; - } else { - $$140 = $$0$lcssa;$$23839 = $$137$lcssa; - } - } - while(1) { - $33 = HEAP8[$$140>>0]|0; - $34 = ($33<<24>>24)==($18<<24>>24); - if ($34) { - $$2 = $$140;$$3 = $$23839; - break L8; - } - $35 = ((($$140)) + 1|0); - $36 = (($$23839) + -1)|0; - $37 = ($36|0)==(0); - if ($37) { - $$2 = $35;$$3 = 0; - break; - } else { - $$140 = $35;$$23839 = $36; - } - } - } - } - } while(0); - $38 = ($$3|0)!=(0); - $39 = $38 ? $$2 : 0; - return ($39|0); -} -function _pad_674($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0$lcssa = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $5 = sp; - $6 = $4 & 73728; - $7 = ($6|0)==(0); - $8 = ($2|0)>($3|0); - $or$cond = $8 & $7; - if ($or$cond) { - $9 = (($2) - ($3))|0; - $10 = ($9>>>0)<(256); - $11 = $10 ? $9 : 256; - _memset(($5|0),($1|0),($11|0))|0; - $12 = ($9>>>0)>(255); - if ($12) { - $13 = (($2) - ($3))|0; - $$011 = $9; - while(1) { - _out($0,$5,256); - $14 = (($$011) + -256)|0; - $15 = ($14>>>0)>(255); - if ($15) { - $$011 = $14; - } else { - break; - } - } - $16 = $13 & 255; - $$0$lcssa = $16; - } else { - $$0$lcssa = $9; - } - _out($0,$5,$$0$lcssa); - } - STACKTOP = sp;return; -} -function _wctomb($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($0|0)==(0|0); - if ($2) { - $$0 = 0; - } else { - $3 = (_wcrtomb($0,$1,0)|0); - $$0 = $3; - } - return ($$0|0); -} -function _fmt_fp($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = +$1; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $$ = 0, $$$ = 0, $$$$559 = 0.0, $$$3484 = 0, $$$3484691 = 0, $$$3484692 = 0, $$$3501 = 0, $$$4502 = 0, $$$542 = 0.0, $$$559 = 0.0, $$0 = 0, $$0463$lcssa = 0, $$0463584 = 0, $$0464594 = 0, $$0471 = 0.0, $$0479 = 0, $$0487642 = 0, $$0488 = 0, $$0488653 = 0, $$0488655 = 0; - var $$0496$$9 = 0, $$0497654 = 0, $$0498 = 0, $$0509582 = 0.0, $$0510 = 0, $$0511 = 0, $$0514637 = 0, $$0520 = 0, $$0521 = 0, $$0521$ = 0, $$0523 = 0, $$0525 = 0, $$0527 = 0, $$0527629 = 0, $$0527631 = 0, $$0530636 = 0, $$1465 = 0, $$1467 = 0.0, $$1469 = 0.0, $$1472 = 0.0; - var $$1480 = 0, $$1482$lcssa = 0, $$1482661 = 0, $$1489641 = 0, $$1499$lcssa = 0, $$1499660 = 0, $$1508583 = 0, $$1512$lcssa = 0, $$1512607 = 0, $$1515 = 0, $$1524 = 0, $$1526 = 0, $$1528614 = 0, $$1531$lcssa = 0, $$1531630 = 0, $$1598 = 0, $$2 = 0, $$2473 = 0.0, $$2476 = 0, $$2476$$547 = 0; - var $$2476$$549 = 0, $$2483$ph = 0, $$2500 = 0, $$2513 = 0, $$2516618 = 0, $$2529 = 0, $$2532617 = 0, $$3 = 0.0, $$3477 = 0, $$3484$lcssa = 0, $$3484648 = 0, $$3501$lcssa = 0, $$3501647 = 0, $$3533613 = 0, $$4 = 0.0, $$4478$lcssa = 0, $$4478590 = 0, $$4492 = 0, $$4502 = 0, $$4518 = 0; - var $$5$lcssa = 0, $$534$ = 0, $$539 = 0, $$539$ = 0, $$542 = 0.0, $$546 = 0, $$548 = 0, $$5486$lcssa = 0, $$5486623 = 0, $$5493597 = 0, $$5519$ph = 0, $$555 = 0, $$556 = 0, $$559 = 0.0, $$5602 = 0, $$6 = 0, $$6494589 = 0, $$7495601 = 0, $$7505 = 0, $$7505$ = 0; - var $$7505$ph = 0, $$8 = 0, $$9$ph = 0, $$lcssa673 = 0, $$neg = 0, $$neg567 = 0, $$pn = 0, $$pn566 = 0, $$pr = 0, $$pr564 = 0, $$pre = 0, $$pre$phi690Z2D = 0, $$pre689 = 0, $$sink545$lcssa = 0, $$sink545622 = 0, $$sink562 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0; - var $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0; - var $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0; - var $14 = 0.0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0; - var $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0; - var $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0; - var $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0; - var $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0.0, $229 = 0.0, $23 = 0; - var $230 = 0, $231 = 0.0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0; - var $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0; - var $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0; - var $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0; - var $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0; - var $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0; - var $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0.0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0; - var $358 = 0, $359 = 0, $36 = 0.0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0; - var $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0; - var $narrow = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond3$not = 0, $or$cond537 = 0, $or$cond541 = 0, $or$cond544 = 0, $or$cond554 = 0, $or$cond6 = 0, $scevgep684 = 0, $scevgep684685 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 560|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(560|0); - $6 = sp + 8|0; - $7 = sp; - $8 = sp + 524|0; - $9 = $8; - $10 = sp + 512|0; - HEAP32[$7>>2] = 0; - $11 = ((($10)) + 12|0); - (___DOUBLE_BITS_675($1)|0); - $12 = tempRet0; - $13 = ($12|0)<(0); - if ($13) { - $14 = -$1; - $$0471 = $14;$$0520 = 1;$$0521 = 11868; - } else { - $15 = $4 & 2048; - $16 = ($15|0)==(0); - $17 = $4 & 1; - $18 = ($17|0)==(0); - $$ = $18 ? (11869) : (11874); - $$$ = $16 ? $$ : (11871); - $19 = $4 & 2049; - $narrow = ($19|0)!=(0); - $$534$ = $narrow&1; - $$0471 = $1;$$0520 = $$534$;$$0521 = $$$; - } - (___DOUBLE_BITS_675($$0471)|0); - $20 = tempRet0; - $21 = $20 & 2146435072; - $22 = ($21>>>0)<(2146435072); - $23 = (0)<(0); - $24 = ($21|0)==(2146435072); - $25 = $24 & $23; - $26 = $22 | $25; - do { - if ($26) { - $35 = (+_frexpl($$0471,$7)); - $36 = $35 * 2.0; - $37 = $36 != 0.0; - if ($37) { - $38 = HEAP32[$7>>2]|0; - $39 = (($38) + -1)|0; - HEAP32[$7>>2] = $39; - } - $40 = $5 | 32; - $41 = ($40|0)==(97); - if ($41) { - $42 = $5 & 32; - $43 = ($42|0)==(0); - $44 = ((($$0521)) + 9|0); - $$0521$ = $43 ? $$0521 : $44; - $45 = $$0520 | 2; - $46 = ($3>>>0)>(11); - $47 = (12 - ($3))|0; - $48 = ($47|0)==(0); - $49 = $46 | $48; - do { - if ($49) { - $$1472 = $36; - } else { - $$0509582 = 8.0;$$1508583 = $47; - while(1) { - $50 = (($$1508583) + -1)|0; - $51 = $$0509582 * 16.0; - $52 = ($50|0)==(0); - if ($52) { - break; - } else { - $$0509582 = $51;$$1508583 = $50; - } - } - $53 = HEAP8[$$0521$>>0]|0; - $54 = ($53<<24>>24)==(45); - if ($54) { - $55 = -$36; - $56 = $55 - $51; - $57 = $51 + $56; - $58 = -$57; - $$1472 = $58; - break; - } else { - $59 = $36 + $51; - $60 = $59 - $51; - $$1472 = $60; - break; - } - } - } while(0); - $61 = HEAP32[$7>>2]|0; - $62 = ($61|0)<(0); - $63 = (0 - ($61))|0; - $64 = $62 ? $63 : $61; - $65 = ($64|0)<(0); - $66 = $65 << 31 >> 31; - $67 = (_fmt_u($64,$66,$11)|0); - $68 = ($67|0)==($11|0); - if ($68) { - $69 = ((($10)) + 11|0); - HEAP8[$69>>0] = 48; - $$0511 = $69; - } else { - $$0511 = $67; - } - $70 = $61 >> 31; - $71 = $70 & 2; - $72 = (($71) + 43)|0; - $73 = $72&255; - $74 = ((($$0511)) + -1|0); - HEAP8[$74>>0] = $73; - $75 = (($5) + 15)|0; - $76 = $75&255; - $77 = ((($$0511)) + -2|0); - HEAP8[$77>>0] = $76; - $notrhs = ($3|0)<(1); - $78 = $4 & 8; - $79 = ($78|0)==(0); - $$0523 = $8;$$2473 = $$1472; - while(1) { - $80 = (~~(($$2473))); - $81 = (11903 + ($80)|0); - $82 = HEAP8[$81>>0]|0; - $83 = $82&255; - $84 = $83 | $42; - $85 = $84&255; - $86 = ((($$0523)) + 1|0); - HEAP8[$$0523>>0] = $85; - $87 = (+($80|0)); - $88 = $$2473 - $87; - $89 = $88 * 16.0; - $90 = $86; - $91 = (($90) - ($9))|0; - $92 = ($91|0)==(1); - if ($92) { - $notlhs = $89 == 0.0; - $or$cond3$not = $notrhs & $notlhs; - $or$cond = $79 & $or$cond3$not; - if ($or$cond) { - $$1524 = $86; - } else { - $93 = ((($$0523)) + 2|0); - HEAP8[$86>>0] = 46; - $$1524 = $93; - } - } else { - $$1524 = $86; - } - $94 = $89 != 0.0; - if ($94) { - $$0523 = $$1524;$$2473 = $89; - } else { - break; - } - } - $95 = ($3|0)!=(0); - $96 = $77; - $97 = $11; - $98 = $$1524; - $99 = (($98) - ($9))|0; - $100 = (($97) - ($96))|0; - $101 = (($99) + -2)|0; - $102 = ($101|0)<($3|0); - $or$cond537 = $95 & $102; - $103 = (($3) + 2)|0; - $$pn = $or$cond537 ? $103 : $99; - $$0525 = (($100) + ($45))|0; - $104 = (($$0525) + ($$pn))|0; - _pad_674($0,32,$2,$104,$4); - _out($0,$$0521$,$45); - $105 = $4 ^ 65536; - _pad_674($0,48,$2,$104,$105); - _out($0,$8,$99); - $106 = (($$pn) - ($99))|0; - _pad_674($0,48,$106,0,0); - _out($0,$77,$100); - $107 = $4 ^ 8192; - _pad_674($0,32,$2,$104,$107); - $$sink562 = $104; - break; - } - $108 = ($3|0)<(0); - $$539 = $108 ? 6 : $3; - if ($37) { - $109 = $36 * 268435456.0; - $110 = HEAP32[$7>>2]|0; - $111 = (($110) + -28)|0; - HEAP32[$7>>2] = $111; - $$3 = $109;$$pr = $111; - } else { - $$pre = HEAP32[$7>>2]|0; - $$3 = $36;$$pr = $$pre; - } - $112 = ($$pr|0)<(0); - $113 = ((($6)) + 288|0); - $$556 = $112 ? $6 : $113; - $$0498 = $$556;$$4 = $$3; - while(1) { - $114 = (~~(($$4))>>>0); - HEAP32[$$0498>>2] = $114; - $115 = ((($$0498)) + 4|0); - $116 = (+($114>>>0)); - $117 = $$4 - $116; - $118 = $117 * 1.0E+9; - $119 = $118 != 0.0; - if ($119) { - $$0498 = $115;$$4 = $118; - } else { - break; - } - } - $120 = ($$pr|0)>(0); - if ($120) { - $$1482661 = $$556;$$1499660 = $115;$122 = $$pr; - while(1) { - $121 = ($122|0)<(29); - $123 = $121 ? $122 : 29; - $$0488653 = ((($$1499660)) + -4|0); - $124 = ($$0488653>>>0)<($$1482661>>>0); - if ($124) { - $$2483$ph = $$1482661; - } else { - $$0488655 = $$0488653;$$0497654 = 0; - while(1) { - $125 = HEAP32[$$0488655>>2]|0; - $126 = (_bitshift64Shl(($125|0),0,($123|0))|0); - $127 = tempRet0; - $128 = (_i64Add(($126|0),($127|0),($$0497654|0),0)|0); - $129 = tempRet0; - $130 = (___uremdi3(($128|0),($129|0),1000000000,0)|0); - $131 = tempRet0; - HEAP32[$$0488655>>2] = $130; - $132 = (___udivdi3(($128|0),($129|0),1000000000,0)|0); - $133 = tempRet0; - $$0488 = ((($$0488655)) + -4|0); - $134 = ($$0488>>>0)<($$1482661>>>0); - if ($134) { - break; - } else { - $$0488655 = $$0488;$$0497654 = $132; - } - } - $135 = ($132|0)==(0); - if ($135) { - $$2483$ph = $$1482661; - } else { - $136 = ((($$1482661)) + -4|0); - HEAP32[$136>>2] = $132; - $$2483$ph = $136; - } - } - $$2500 = $$1499660; - while(1) { - $137 = ($$2500>>>0)>($$2483$ph>>>0); - if (!($137)) { - break; - } - $138 = ((($$2500)) + -4|0); - $139 = HEAP32[$138>>2]|0; - $140 = ($139|0)==(0); - if ($140) { - $$2500 = $138; - } else { - break; - } - } - $141 = HEAP32[$7>>2]|0; - $142 = (($141) - ($123))|0; - HEAP32[$7>>2] = $142; - $143 = ($142|0)>(0); - if ($143) { - $$1482661 = $$2483$ph;$$1499660 = $$2500;$122 = $142; - } else { - $$1482$lcssa = $$2483$ph;$$1499$lcssa = $$2500;$$pr564 = $142; - break; - } - } - } else { - $$1482$lcssa = $$556;$$1499$lcssa = $115;$$pr564 = $$pr; - } - $144 = ($$pr564|0)<(0); - if ($144) { - $145 = (($$539) + 25)|0; - $146 = (($145|0) / 9)&-1; - $147 = (($146) + 1)|0; - $148 = ($40|0)==(102); - $$3484648 = $$1482$lcssa;$$3501647 = $$1499$lcssa;$150 = $$pr564; - while(1) { - $149 = (0 - ($150))|0; - $151 = ($149|0)<(9); - $152 = $151 ? $149 : 9; - $153 = ($$3484648>>>0)<($$3501647>>>0); - if ($153) { - $157 = 1 << $152; - $158 = (($157) + -1)|0; - $159 = 1000000000 >>> $152; - $$0487642 = 0;$$1489641 = $$3484648; - while(1) { - $160 = HEAP32[$$1489641>>2]|0; - $161 = $160 & $158; - $162 = $160 >>> $152; - $163 = (($162) + ($$0487642))|0; - HEAP32[$$1489641>>2] = $163; - $164 = Math_imul($161, $159)|0; - $165 = ((($$1489641)) + 4|0); - $166 = ($165>>>0)<($$3501647>>>0); - if ($166) { - $$0487642 = $164;$$1489641 = $165; - } else { - break; - } - } - $167 = HEAP32[$$3484648>>2]|0; - $168 = ($167|0)==(0); - $169 = ((($$3484648)) + 4|0); - $$$3484 = $168 ? $169 : $$3484648; - $170 = ($164|0)==(0); - if ($170) { - $$$3484692 = $$$3484;$$4502 = $$3501647; - } else { - $171 = ((($$3501647)) + 4|0); - HEAP32[$$3501647>>2] = $164; - $$$3484692 = $$$3484;$$4502 = $171; - } - } else { - $154 = HEAP32[$$3484648>>2]|0; - $155 = ($154|0)==(0); - $156 = ((($$3484648)) + 4|0); - $$$3484691 = $155 ? $156 : $$3484648; - $$$3484692 = $$$3484691;$$4502 = $$3501647; - } - $172 = $148 ? $$556 : $$$3484692; - $173 = $$4502; - $174 = $172; - $175 = (($173) - ($174))|0; - $176 = $175 >> 2; - $177 = ($176|0)>($147|0); - $178 = (($172) + ($147<<2)|0); - $$$4502 = $177 ? $178 : $$4502; - $179 = HEAP32[$7>>2]|0; - $180 = (($179) + ($152))|0; - HEAP32[$7>>2] = $180; - $181 = ($180|0)<(0); - if ($181) { - $$3484648 = $$$3484692;$$3501647 = $$$4502;$150 = $180; - } else { - $$3484$lcssa = $$$3484692;$$3501$lcssa = $$$4502; - break; - } - } - } else { - $$3484$lcssa = $$1482$lcssa;$$3501$lcssa = $$1499$lcssa; - } - $182 = ($$3484$lcssa>>>0)<($$3501$lcssa>>>0); - $183 = $$556; - if ($182) { - $184 = $$3484$lcssa; - $185 = (($183) - ($184))|0; - $186 = $185 >> 2; - $187 = ($186*9)|0; - $188 = HEAP32[$$3484$lcssa>>2]|0; - $189 = ($188>>>0)<(10); - if ($189) { - $$1515 = $187; - } else { - $$0514637 = $187;$$0530636 = 10; - while(1) { - $190 = ($$0530636*10)|0; - $191 = (($$0514637) + 1)|0; - $192 = ($188>>>0)<($190>>>0); - if ($192) { - $$1515 = $191; - break; - } else { - $$0514637 = $191;$$0530636 = $190; - } - } - } - } else { - $$1515 = 0; - } - $193 = ($40|0)!=(102); - $194 = $193 ? $$1515 : 0; - $195 = (($$539) - ($194))|0; - $196 = ($40|0)==(103); - $197 = ($$539|0)!=(0); - $198 = $197 & $196; - $$neg = $198 << 31 >> 31; - $199 = (($195) + ($$neg))|0; - $200 = $$3501$lcssa; - $201 = (($200) - ($183))|0; - $202 = $201 >> 2; - $203 = ($202*9)|0; - $204 = (($203) + -9)|0; - $205 = ($199|0)<($204|0); - if ($205) { - $206 = ((($$556)) + 4|0); - $207 = (($199) + 9216)|0; - $208 = (($207|0) / 9)&-1; - $209 = (($208) + -1024)|0; - $210 = (($206) + ($209<<2)|0); - $211 = (($207|0) % 9)&-1; - $$0527629 = (($211) + 1)|0; - $212 = ($$0527629|0)<(9); - if ($212) { - $$0527631 = $$0527629;$$1531630 = 10; - while(1) { - $213 = ($$1531630*10)|0; - $$0527 = (($$0527631) + 1)|0; - $exitcond = ($$0527|0)==(9); - if ($exitcond) { - $$1531$lcssa = $213; - break; - } else { - $$0527631 = $$0527;$$1531630 = $213; - } - } - } else { - $$1531$lcssa = 10; - } - $214 = HEAP32[$210>>2]|0; - $215 = (($214>>>0) % ($$1531$lcssa>>>0))&-1; - $216 = ($215|0)==(0); - $217 = ((($210)) + 4|0); - $218 = ($217|0)==($$3501$lcssa|0); - $or$cond541 = $218 & $216; - if ($or$cond541) { - $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; - } else { - $219 = (($214>>>0) / ($$1531$lcssa>>>0))&-1; - $220 = $219 & 1; - $221 = ($220|0)==(0); - $$542 = $221 ? 9007199254740992.0 : 9007199254740994.0; - $222 = (($$1531$lcssa|0) / 2)&-1; - $223 = ($215>>>0)<($222>>>0); - $224 = ($215|0)==($222|0); - $or$cond544 = $218 & $224; - $$559 = $or$cond544 ? 1.0 : 1.5; - $$$559 = $223 ? 0.5 : $$559; - $225 = ($$0520|0)==(0); - if ($225) { - $$1467 = $$$559;$$1469 = $$542; - } else { - $226 = HEAP8[$$0521>>0]|0; - $227 = ($226<<24>>24)==(45); - $228 = -$$542; - $229 = -$$$559; - $$$542 = $227 ? $228 : $$542; - $$$$559 = $227 ? $229 : $$$559; - $$1467 = $$$$559;$$1469 = $$$542; - } - $230 = (($214) - ($215))|0; - HEAP32[$210>>2] = $230; - $231 = $$1469 + $$1467; - $232 = $231 != $$1469; - if ($232) { - $233 = (($230) + ($$1531$lcssa))|0; - HEAP32[$210>>2] = $233; - $234 = ($233>>>0)>(999999999); - if ($234) { - $$5486623 = $$3484$lcssa;$$sink545622 = $210; - while(1) { - $235 = ((($$sink545622)) + -4|0); - HEAP32[$$sink545622>>2] = 0; - $236 = ($235>>>0)<($$5486623>>>0); - if ($236) { - $237 = ((($$5486623)) + -4|0); - HEAP32[$237>>2] = 0; - $$6 = $237; - } else { - $$6 = $$5486623; - } - $238 = HEAP32[$235>>2]|0; - $239 = (($238) + 1)|0; - HEAP32[$235>>2] = $239; - $240 = ($239>>>0)>(999999999); - if ($240) { - $$5486623 = $$6;$$sink545622 = $235; - } else { - $$5486$lcssa = $$6;$$sink545$lcssa = $235; - break; - } - } - } else { - $$5486$lcssa = $$3484$lcssa;$$sink545$lcssa = $210; - } - $241 = $$5486$lcssa; - $242 = (($183) - ($241))|0; - $243 = $242 >> 2; - $244 = ($243*9)|0; - $245 = HEAP32[$$5486$lcssa>>2]|0; - $246 = ($245>>>0)<(10); - if ($246) { - $$4492 = $$sink545$lcssa;$$4518 = $244;$$8 = $$5486$lcssa; - } else { - $$2516618 = $244;$$2532617 = 10; - while(1) { - $247 = ($$2532617*10)|0; - $248 = (($$2516618) + 1)|0; - $249 = ($245>>>0)<($247>>>0); - if ($249) { - $$4492 = $$sink545$lcssa;$$4518 = $248;$$8 = $$5486$lcssa; - break; - } else { - $$2516618 = $248;$$2532617 = $247; - } - } - } - } else { - $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; - } - } - $250 = ((($$4492)) + 4|0); - $251 = ($$3501$lcssa>>>0)>($250>>>0); - $$$3501 = $251 ? $250 : $$3501$lcssa; - $$5519$ph = $$4518;$$7505$ph = $$$3501;$$9$ph = $$8; - } else { - $$5519$ph = $$1515;$$7505$ph = $$3501$lcssa;$$9$ph = $$3484$lcssa; - } - $$7505 = $$7505$ph; - while(1) { - $252 = ($$7505>>>0)>($$9$ph>>>0); - if (!($252)) { - $$lcssa673 = 0; - break; - } - $253 = ((($$7505)) + -4|0); - $254 = HEAP32[$253>>2]|0; - $255 = ($254|0)==(0); - if ($255) { - $$7505 = $253; - } else { - $$lcssa673 = 1; - break; - } - } - $256 = (0 - ($$5519$ph))|0; - do { - if ($196) { - $not$ = $197 ^ 1; - $257 = $not$&1; - $$539$ = (($257) + ($$539))|0; - $258 = ($$539$|0)>($$5519$ph|0); - $259 = ($$5519$ph|0)>(-5); - $or$cond6 = $258 & $259; - if ($or$cond6) { - $260 = (($5) + -1)|0; - $$neg567 = (($$539$) + -1)|0; - $261 = (($$neg567) - ($$5519$ph))|0; - $$0479 = $260;$$2476 = $261; - } else { - $262 = (($5) + -2)|0; - $263 = (($$539$) + -1)|0; - $$0479 = $262;$$2476 = $263; - } - $264 = $4 & 8; - $265 = ($264|0)==(0); - if ($265) { - if ($$lcssa673) { - $266 = ((($$7505)) + -4|0); - $267 = HEAP32[$266>>2]|0; - $268 = ($267|0)==(0); - if ($268) { - $$2529 = 9; - } else { - $269 = (($267>>>0) % 10)&-1; - $270 = ($269|0)==(0); - if ($270) { - $$1528614 = 0;$$3533613 = 10; - while(1) { - $271 = ($$3533613*10)|0; - $272 = (($$1528614) + 1)|0; - $273 = (($267>>>0) % ($271>>>0))&-1; - $274 = ($273|0)==(0); - if ($274) { - $$1528614 = $272;$$3533613 = $271; - } else { - $$2529 = $272; - break; - } - } - } else { - $$2529 = 0; - } - } - } else { - $$2529 = 9; - } - $275 = $$0479 | 32; - $276 = ($275|0)==(102); - $277 = $$7505; - $278 = (($277) - ($183))|0; - $279 = $278 >> 2; - $280 = ($279*9)|0; - $281 = (($280) + -9)|0; - if ($276) { - $282 = (($281) - ($$2529))|0; - $283 = ($282|0)>(0); - $$546 = $283 ? $282 : 0; - $284 = ($$2476|0)<($$546|0); - $$2476$$547 = $284 ? $$2476 : $$546; - $$1480 = $$0479;$$3477 = $$2476$$547;$$pre$phi690Z2D = 0; - break; - } else { - $285 = (($281) + ($$5519$ph))|0; - $286 = (($285) - ($$2529))|0; - $287 = ($286|0)>(0); - $$548 = $287 ? $286 : 0; - $288 = ($$2476|0)<($$548|0); - $$2476$$549 = $288 ? $$2476 : $$548; - $$1480 = $$0479;$$3477 = $$2476$$549;$$pre$phi690Z2D = 0; - break; - } - } else { - $$1480 = $$0479;$$3477 = $$2476;$$pre$phi690Z2D = $264; - } - } else { - $$pre689 = $4 & 8; - $$1480 = $5;$$3477 = $$539;$$pre$phi690Z2D = $$pre689; - } - } while(0); - $289 = $$3477 | $$pre$phi690Z2D; - $290 = ($289|0)!=(0); - $291 = $290&1; - $292 = $$1480 | 32; - $293 = ($292|0)==(102); - if ($293) { - $294 = ($$5519$ph|0)>(0); - $295 = $294 ? $$5519$ph : 0; - $$2513 = 0;$$pn566 = $295; - } else { - $296 = ($$5519$ph|0)<(0); - $297 = $296 ? $256 : $$5519$ph; - $298 = ($297|0)<(0); - $299 = $298 << 31 >> 31; - $300 = (_fmt_u($297,$299,$11)|0); - $301 = $11; - $302 = $300; - $303 = (($301) - ($302))|0; - $304 = ($303|0)<(2); - if ($304) { - $$1512607 = $300; - while(1) { - $305 = ((($$1512607)) + -1|0); - HEAP8[$305>>0] = 48; - $306 = $305; - $307 = (($301) - ($306))|0; - $308 = ($307|0)<(2); - if ($308) { - $$1512607 = $305; - } else { - $$1512$lcssa = $305; - break; - } - } - } else { - $$1512$lcssa = $300; - } - $309 = $$5519$ph >> 31; - $310 = $309 & 2; - $311 = (($310) + 43)|0; - $312 = $311&255; - $313 = ((($$1512$lcssa)) + -1|0); - HEAP8[$313>>0] = $312; - $314 = $$1480&255; - $315 = ((($$1512$lcssa)) + -2|0); - HEAP8[$315>>0] = $314; - $316 = $315; - $317 = (($301) - ($316))|0; - $$2513 = $315;$$pn566 = $317; - } - $318 = (($$0520) + 1)|0; - $319 = (($318) + ($$3477))|0; - $$1526 = (($319) + ($291))|0; - $320 = (($$1526) + ($$pn566))|0; - _pad_674($0,32,$2,$320,$4); - _out($0,$$0521,$$0520); - $321 = $4 ^ 65536; - _pad_674($0,48,$2,$320,$321); - if ($293) { - $322 = ($$9$ph>>>0)>($$556>>>0); - $$0496$$9 = $322 ? $$556 : $$9$ph; - $323 = ((($8)) + 9|0); - $324 = $323; - $325 = ((($8)) + 8|0); - $$5493597 = $$0496$$9; - while(1) { - $326 = HEAP32[$$5493597>>2]|0; - $327 = (_fmt_u($326,0,$323)|0); - $328 = ($$5493597|0)==($$0496$$9|0); - if ($328) { - $334 = ($327|0)==($323|0); - if ($334) { - HEAP8[$325>>0] = 48; - $$1465 = $325; - } else { - $$1465 = $327; - } - } else { - $329 = ($327>>>0)>($8>>>0); - if ($329) { - $330 = $327; - $331 = (($330) - ($9))|0; - _memset(($8|0),48,($331|0))|0; - $$0464594 = $327; - while(1) { - $332 = ((($$0464594)) + -1|0); - $333 = ($332>>>0)>($8>>>0); - if ($333) { - $$0464594 = $332; - } else { - $$1465 = $332; - break; - } - } - } else { - $$1465 = $327; - } - } - $335 = $$1465; - $336 = (($324) - ($335))|0; - _out($0,$$1465,$336); - $337 = ((($$5493597)) + 4|0); - $338 = ($337>>>0)>($$556>>>0); - if ($338) { - break; - } else { - $$5493597 = $337; - } - } - $339 = ($289|0)==(0); - if (!($339)) { - _out($0,11919,1); - } - $340 = ($337>>>0)<($$7505>>>0); - $341 = ($$3477|0)>(0); - $342 = $340 & $341; - if ($342) { - $$4478590 = $$3477;$$6494589 = $337; - while(1) { - $343 = HEAP32[$$6494589>>2]|0; - $344 = (_fmt_u($343,0,$323)|0); - $345 = ($344>>>0)>($8>>>0); - if ($345) { - $346 = $344; - $347 = (($346) - ($9))|0; - _memset(($8|0),48,($347|0))|0; - $$0463584 = $344; - while(1) { - $348 = ((($$0463584)) + -1|0); - $349 = ($348>>>0)>($8>>>0); - if ($349) { - $$0463584 = $348; - } else { - $$0463$lcssa = $348; - break; - } - } - } else { - $$0463$lcssa = $344; - } - $350 = ($$4478590|0)<(9); - $351 = $350 ? $$4478590 : 9; - _out($0,$$0463$lcssa,$351); - $352 = ((($$6494589)) + 4|0); - $353 = (($$4478590) + -9)|0; - $354 = ($352>>>0)<($$7505>>>0); - $355 = ($$4478590|0)>(9); - $356 = $354 & $355; - if ($356) { - $$4478590 = $353;$$6494589 = $352; - } else { - $$4478$lcssa = $353; - break; - } - } - } else { - $$4478$lcssa = $$3477; - } - $357 = (($$4478$lcssa) + 9)|0; - _pad_674($0,48,$357,9,0); - } else { - $358 = ((($$9$ph)) + 4|0); - $$7505$ = $$lcssa673 ? $$7505 : $358; - $359 = ($$3477|0)>(-1); - if ($359) { - $360 = ((($8)) + 9|0); - $361 = ($$pre$phi690Z2D|0)==(0); - $362 = $360; - $363 = (0 - ($9))|0; - $364 = ((($8)) + 8|0); - $$5602 = $$3477;$$7495601 = $$9$ph; - while(1) { - $365 = HEAP32[$$7495601>>2]|0; - $366 = (_fmt_u($365,0,$360)|0); - $367 = ($366|0)==($360|0); - if ($367) { - HEAP8[$364>>0] = 48; - $$0 = $364; - } else { - $$0 = $366; - } - $368 = ($$7495601|0)==($$9$ph|0); - do { - if ($368) { - $372 = ((($$0)) + 1|0); - _out($0,$$0,1); - $373 = ($$5602|0)<(1); - $or$cond554 = $361 & $373; - if ($or$cond554) { - $$2 = $372; - break; - } - _out($0,11919,1); - $$2 = $372; - } else { - $369 = ($$0>>>0)>($8>>>0); - if (!($369)) { - $$2 = $$0; - break; - } - $scevgep684 = (($$0) + ($363)|0); - $scevgep684685 = $scevgep684; - _memset(($8|0),48,($scevgep684685|0))|0; - $$1598 = $$0; - while(1) { - $370 = ((($$1598)) + -1|0); - $371 = ($370>>>0)>($8>>>0); - if ($371) { - $$1598 = $370; - } else { - $$2 = $370; - break; - } - } - } - } while(0); - $374 = $$2; - $375 = (($362) - ($374))|0; - $376 = ($$5602|0)>($375|0); - $377 = $376 ? $375 : $$5602; - _out($0,$$2,$377); - $378 = (($$5602) - ($375))|0; - $379 = ((($$7495601)) + 4|0); - $380 = ($379>>>0)<($$7505$>>>0); - $381 = ($378|0)>(-1); - $382 = $380 & $381; - if ($382) { - $$5602 = $378;$$7495601 = $379; - } else { - $$5$lcssa = $378; - break; - } - } - } else { - $$5$lcssa = $$3477; - } - $383 = (($$5$lcssa) + 18)|0; - _pad_674($0,48,$383,18,0); - $384 = $11; - $385 = $$2513; - $386 = (($384) - ($385))|0; - _out($0,$$2513,$386); - } - $387 = $4 ^ 8192; - _pad_674($0,32,$2,$320,$387); - $$sink562 = $320; - } else { - $27 = $5 & 32; - $28 = ($27|0)!=(0); - $29 = $28 ? 11887 : 11891; - $30 = ($$0471 != $$0471) | (0.0 != 0.0); - $31 = $28 ? 11895 : 11899; - $$0510 = $30 ? $31 : $29; - $32 = (($$0520) + 3)|0; - $33 = $4 & -65537; - _pad_674($0,32,$2,$32,$33); - _out($0,$$0521,$$0520); - _out($0,$$0510,3); - $34 = $4 ^ 8192; - _pad_674($0,32,$2,$32,$34); - $$sink562 = $32; - } - } while(0); - $388 = ($$sink562|0)<($2|0); - $$555 = $388 ? $2 : $$sink562; - STACKTOP = sp;return ($$555|0); -} -function ___DOUBLE_BITS_675($0) { - $0 = +$0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; - $2 = HEAP32[tempDoublePtr+4>>2]|0; - tempRet0 = ($2); - return ($1|0); -} -function _frexpl($0,$1) { - $0 = +$0; - $1 = $1|0; - var $2 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (+_frexp($0,$1)); - return (+$2); -} -function _frexp($0,$1) { - $0 = +$0; - $1 = $1|0; - var $$0 = 0.0, $$016 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, $storemerge = 0, $trunc$clear = 0, label = 0; - var sp = 0; - sp = STACKTOP; - HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; - $3 = HEAP32[tempDoublePtr+4>>2]|0; - $4 = (_bitshift64Lshr(($2|0),($3|0),52)|0); - $5 = tempRet0; - $6 = $4&65535; - $trunc$clear = $6 & 2047; - switch ($trunc$clear<<16>>16) { - case 0: { - $7 = $0 != 0.0; - if ($7) { - $8 = $0 * 1.8446744073709552E+19; - $9 = (+_frexp($8,$1)); - $10 = HEAP32[$1>>2]|0; - $11 = (($10) + -64)|0; - $$016 = $9;$storemerge = $11; - } else { - $$016 = $0;$storemerge = 0; - } - HEAP32[$1>>2] = $storemerge; - $$0 = $$016; - break; - } - case 2047: { - $$0 = $0; - break; - } - default: { - $12 = $4 & 2047; - $13 = (($12) + -1022)|0; - HEAP32[$1>>2] = $13; - $14 = $3 & -2146435073; - $15 = $14 | 1071644672; - HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $15;$16 = +HEAPF64[tempDoublePtr>>3]; - $$0 = $16; - } - } - return (+$$0); -} -function _wcrtomb($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $not$ = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(0|0); - do { - if ($3) { - $$0 = 1; - } else { - $4 = ($1>>>0)<(128); - if ($4) { - $5 = $1&255; - HEAP8[$0>>0] = $5; - $$0 = 1; - break; - } - $6 = (___pthread_self_448()|0); - $7 = ((($6)) + 188|0); - $8 = HEAP32[$7>>2]|0; - $9 = HEAP32[$8>>2]|0; - $not$ = ($9|0)==(0|0); - if ($not$) { - $10 = $1 & -128; - $11 = ($10|0)==(57216); - if ($11) { - $13 = $1&255; - HEAP8[$0>>0] = $13; - $$0 = 1; - break; - } else { - $12 = (___errno_location()|0); - HEAP32[$12>>2] = 84; - $$0 = -1; - break; - } - } - $14 = ($1>>>0)<(2048); - if ($14) { - $15 = $1 >>> 6; - $16 = $15 | 192; - $17 = $16&255; - $18 = ((($0)) + 1|0); - HEAP8[$0>>0] = $17; - $19 = $1 & 63; - $20 = $19 | 128; - $21 = $20&255; - HEAP8[$18>>0] = $21; - $$0 = 2; - break; - } - $22 = ($1>>>0)<(55296); - $23 = $1 & -8192; - $24 = ($23|0)==(57344); - $or$cond = $22 | $24; - if ($or$cond) { - $25 = $1 >>> 12; - $26 = $25 | 224; - $27 = $26&255; - $28 = ((($0)) + 1|0); - HEAP8[$0>>0] = $27; - $29 = $1 >>> 6; - $30 = $29 & 63; - $31 = $30 | 128; - $32 = $31&255; - $33 = ((($0)) + 2|0); - HEAP8[$28>>0] = $32; - $34 = $1 & 63; - $35 = $34 | 128; - $36 = $35&255; - HEAP8[$33>>0] = $36; - $$0 = 3; - break; - } - $37 = (($1) + -65536)|0; - $38 = ($37>>>0)<(1048576); - if ($38) { - $39 = $1 >>> 18; - $40 = $39 | 240; - $41 = $40&255; - $42 = ((($0)) + 1|0); - HEAP8[$0>>0] = $41; - $43 = $1 >>> 12; - $44 = $43 & 63; - $45 = $44 | 128; - $46 = $45&255; - $47 = ((($0)) + 2|0); - HEAP8[$42>>0] = $46; - $48 = $1 >>> 6; - $49 = $48 & 63; - $50 = $49 | 128; - $51 = $50&255; - $52 = ((($0)) + 3|0); - HEAP8[$47>>0] = $51; - $53 = $1 & 63; - $54 = $53 | 128; - $55 = $54&255; - HEAP8[$52>>0] = $55; - $$0 = 4; - break; - } else { - $56 = (___errno_location()|0); - HEAP32[$56>>2] = 84; - $$0 = -1; - break; - } - } - } while(0); - return ($$0|0); -} -function ___pthread_self_448() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function ___pthread_self_105() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function ___strerror_l($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$012$lcssa = 0, $$01214 = 0, $$016 = 0, $$113 = 0, $$115 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $$016 = 0; - while(1) { - $3 = (11921 + ($$016)|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&255; - $6 = ($5|0)==($0|0); - if ($6) { - label = 2; - break; - } - $7 = (($$016) + 1)|0; - $8 = ($7|0)==(87); - if ($8) { - $$01214 = 12009;$$115 = 87; - label = 5; - break; - } else { - $$016 = $7; - } - } - if ((label|0) == 2) { - $2 = ($$016|0)==(0); - if ($2) { - $$012$lcssa = 12009; - } else { - $$01214 = 12009;$$115 = $$016; - label = 5; - } - } - if ((label|0) == 5) { - while(1) { - label = 0; - $$113 = $$01214; - while(1) { - $9 = HEAP8[$$113>>0]|0; - $10 = ($9<<24>>24)==(0); - $11 = ((($$113)) + 1|0); - if ($10) { - break; - } else { - $$113 = $11; - } - } - $12 = (($$115) + -1)|0; - $13 = ($12|0)==(0); - if ($13) { - $$012$lcssa = $11; - break; - } else { - $$01214 = $11;$$115 = $12; - label = 5; - } - } - } - $14 = ((($1)) + 20|0); - $15 = HEAP32[$14>>2]|0; - $16 = (___lctrans($$012$lcssa,$15)|0); - return ($16|0); -} -function ___lctrans($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (___lctrans_impl($0,$1)|0); - return ($2|0); -} -function ___lctrans_impl($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)==(0|0); - if ($2) { - $$0 = 0; - } else { - $3 = HEAP32[$1>>2]|0; - $4 = ((($1)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = (___mo_lookup($3,$5,$0)|0); - $$0 = $6; - } - $7 = ($$0|0)!=(0|0); - $8 = $7 ? $$0 : $0; - return ($8|0); -} -function ___mo_lookup($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $$090 = 0, $$094 = 0, $$191 = 0, $$195 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond102 = 0, $or$cond104 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = HEAP32[$0>>2]|0; - $4 = (($3) + 1794895138)|0; - $5 = ((($0)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = (_swapc($6,$4)|0); - $8 = ((($0)) + 12|0); - $9 = HEAP32[$8>>2]|0; - $10 = (_swapc($9,$4)|0); - $11 = ((($0)) + 16|0); - $12 = HEAP32[$11>>2]|0; - $13 = (_swapc($12,$4)|0); - $14 = $1 >>> 2; - $15 = ($7>>>0)<($14>>>0); - L1: do { - if ($15) { - $16 = $7 << 2; - $17 = (($1) - ($16))|0; - $18 = ($10>>>0)<($17>>>0); - $19 = ($13>>>0)<($17>>>0); - $or$cond = $18 & $19; - if ($or$cond) { - $20 = $13 | $10; - $21 = $20 & 3; - $22 = ($21|0)==(0); - if ($22) { - $23 = $10 >>> 2; - $24 = $13 >>> 2; - $$090 = 0;$$094 = $7; - while(1) { - $25 = $$094 >>> 1; - $26 = (($$090) + ($25))|0; - $27 = $26 << 1; - $28 = (($27) + ($23))|0; - $29 = (($0) + ($28<<2)|0); - $30 = HEAP32[$29>>2]|0; - $31 = (_swapc($30,$4)|0); - $32 = (($28) + 1)|0; - $33 = (($0) + ($32<<2)|0); - $34 = HEAP32[$33>>2]|0; - $35 = (_swapc($34,$4)|0); - $36 = ($35>>>0)<($1>>>0); - $37 = (($1) - ($35))|0; - $38 = ($31>>>0)<($37>>>0); - $or$cond102 = $36 & $38; - if (!($or$cond102)) { - $$4 = 0; - break L1; - } - $39 = (($35) + ($31))|0; - $40 = (($0) + ($39)|0); - $41 = HEAP8[$40>>0]|0; - $42 = ($41<<24>>24)==(0); - if (!($42)) { - $$4 = 0; - break L1; - } - $43 = (($0) + ($35)|0); - $44 = (_strcmp($2,$43)|0); - $45 = ($44|0)==(0); - if ($45) { - break; - } - $62 = ($$094|0)==(1); - $63 = ($44|0)<(0); - $64 = (($$094) - ($25))|0; - $$195 = $63 ? $25 : $64; - $$191 = $63 ? $$090 : $26; - if ($62) { - $$4 = 0; - break L1; - } else { - $$090 = $$191;$$094 = $$195; - } - } - $46 = (($27) + ($24))|0; - $47 = (($0) + ($46<<2)|0); - $48 = HEAP32[$47>>2]|0; - $49 = (_swapc($48,$4)|0); - $50 = (($46) + 1)|0; - $51 = (($0) + ($50<<2)|0); - $52 = HEAP32[$51>>2]|0; - $53 = (_swapc($52,$4)|0); - $54 = ($53>>>0)<($1>>>0); - $55 = (($1) - ($53))|0; - $56 = ($49>>>0)<($55>>>0); - $or$cond104 = $54 & $56; - if ($or$cond104) { - $57 = (($0) + ($53)|0); - $58 = (($53) + ($49))|0; - $59 = (($0) + ($58)|0); - $60 = HEAP8[$59>>0]|0; - $61 = ($60<<24>>24)==(0); - $$ = $61 ? $57 : 0; - $$4 = $$; - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } while(0); - return ($$4|0); -} -function _swapc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$ = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)==(0); - $3 = (_llvm_bswap_i32(($0|0))|0); - $$ = $2 ? $0 : $3; - return ($$|0); -} -function ___fwritex($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$038 = 0, $$042 = 0, $$1 = 0, $$139 = 0, $$141 = 0, $$143 = 0, $$pre = 0, $$pre47 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; - var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($2)) + 16|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)==(0|0); - if ($5) { - $7 = (___towrite($2)|0); - $8 = ($7|0)==(0); - if ($8) { - $$pre = HEAP32[$3>>2]|0; - $12 = $$pre; - label = 5; - } else { - $$1 = 0; - } - } else { - $6 = $4; - $12 = $6; - label = 5; - } - L5: do { - if ((label|0) == 5) { - $9 = ((($2)) + 20|0); - $10 = HEAP32[$9>>2]|0; - $11 = (($12) - ($10))|0; - $13 = ($11>>>0)<($1>>>0); - $14 = $10; - if ($13) { - $15 = ((($2)) + 36|0); - $16 = HEAP32[$15>>2]|0; - $17 = (FUNCTION_TABLE_iiii[$16 & 15]($2,$0,$1)|0); - $$1 = $17; - break; - } - $18 = ((($2)) + 75|0); - $19 = HEAP8[$18>>0]|0; - $20 = ($19<<24>>24)>(-1); - L10: do { - if ($20) { - $$038 = $1; - while(1) { - $21 = ($$038|0)==(0); - if ($21) { - $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; - break L10; - } - $22 = (($$038) + -1)|0; - $23 = (($0) + ($22)|0); - $24 = HEAP8[$23>>0]|0; - $25 = ($24<<24>>24)==(10); - if ($25) { - break; - } else { - $$038 = $22; - } - } - $26 = ((($2)) + 36|0); - $27 = HEAP32[$26>>2]|0; - $28 = (FUNCTION_TABLE_iiii[$27 & 15]($2,$0,$$038)|0); - $29 = ($28>>>0)<($$038>>>0); - if ($29) { - $$1 = $28; - break L5; - } - $30 = (($0) + ($$038)|0); - $$042 = (($1) - ($$038))|0; - $$pre47 = HEAP32[$9>>2]|0; - $$139 = $$038;$$141 = $30;$$143 = $$042;$31 = $$pre47; - } else { - $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; - } - } while(0); - _memcpy(($31|0),($$141|0),($$143|0))|0; - $32 = HEAP32[$9>>2]|0; - $33 = (($32) + ($$143)|0); - HEAP32[$9>>2] = $33; - $34 = (($$139) + ($$143))|0; - $$1 = $34; - } - } while(0); - return ($$1|0); -} -function ___towrite($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 74|0); - $2 = HEAP8[$1>>0]|0; - $3 = $2 << 24 >> 24; - $4 = (($3) + 255)|0; - $5 = $4 | $3; - $6 = $5&255; - HEAP8[$1>>0] = $6; - $7 = HEAP32[$0>>2]|0; - $8 = $7 & 8; - $9 = ($8|0)==(0); - if ($9) { - $11 = ((($0)) + 8|0); - HEAP32[$11>>2] = 0; - $12 = ((($0)) + 4|0); - HEAP32[$12>>2] = 0; - $13 = ((($0)) + 44|0); - $14 = HEAP32[$13>>2]|0; - $15 = ((($0)) + 28|0); - HEAP32[$15>>2] = $14; - $16 = ((($0)) + 20|0); - HEAP32[$16>>2] = $14; - $17 = ((($0)) + 48|0); - $18 = HEAP32[$17>>2]|0; - $19 = (($14) + ($18)|0); - $20 = ((($0)) + 16|0); - HEAP32[$20>>2] = $19; - $$0 = 0; - } else { - $10 = $7 | 32; - HEAP32[$0>>2] = $10; - $$0 = -1; - } - return ($$0|0); -} -function _sn_write($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($0)) + 16|0); - $4 = HEAP32[$3>>2]|0; - $5 = ((($0)) + 20|0); - $6 = HEAP32[$5>>2]|0; - $7 = $6; - $8 = (($4) - ($7))|0; - $9 = ($8>>>0)>($2>>>0); - $$ = $9 ? $2 : $8; - _memcpy(($6|0),($1|0),($$|0))|0; - $10 = HEAP32[$5>>2]|0; - $11 = (($10) + ($$)|0); - HEAP32[$5>>2] = $11; - return ($2|0); -} -function _strlen($0) { - $0 = $0|0; - var $$0 = 0, $$015$lcssa = 0, $$01519 = 0, $$1$lcssa = 0, $$pn = 0, $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = $0; - $2 = $1 & 3; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $$015$lcssa = $0; - label = 4; - } else { - $$01519 = $0;$23 = $1; - while(1) { - $4 = HEAP8[$$01519>>0]|0; - $5 = ($4<<24>>24)==(0); - if ($5) { - $$sink = $23; - break L1; - } - $6 = ((($$01519)) + 1|0); - $7 = $6; - $8 = $7 & 3; - $9 = ($8|0)==(0); - if ($9) { - $$015$lcssa = $6; - label = 4; - break; - } else { - $$01519 = $6;$23 = $7; - } - } - } - } while(0); - if ((label|0) == 4) { - $$0 = $$015$lcssa; - while(1) { - $10 = HEAP32[$$0>>2]|0; - $11 = (($10) + -16843009)|0; - $12 = $10 & -2139062144; - $13 = $12 ^ -2139062144; - $14 = $13 & $11; - $15 = ($14|0)==(0); - $16 = ((($$0)) + 4|0); - if ($15) { - $$0 = $16; - } else { - break; - } - } - $17 = $10&255; - $18 = ($17<<24>>24)==(0); - if ($18) { - $$1$lcssa = $$0; - } else { - $$pn = $$0; - while(1) { - $19 = ((($$pn)) + 1|0); - $$pre = HEAP8[$19>>0]|0; - $20 = ($$pre<<24>>24)==(0); - if ($20) { - $$1$lcssa = $19; - break; - } else { - $$pn = $19; - } - } - } - $21 = $$1$lcssa; - $$sink = $21; - } - $22 = (($$sink) - ($1))|0; - return ($22|0); -} -function _strchr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (___strchrnul($0,$1)|0); - $3 = HEAP8[$2>>0]|0; - $4 = $1&255; - $5 = ($3<<24>>24)==($4<<24>>24); - $6 = $5 ? $2 : 0; - return ($6|0); -} -function ___strchrnul($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$029$lcssa = 0, $$02936 = 0, $$030$lcssa = 0, $$03039 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond33 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = $1 & 255; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $8 = (_strlen($0)|0); - $9 = (($0) + ($8)|0); - $$0 = $9; - } else { - $4 = $0; - $5 = $4 & 3; - $6 = ($5|0)==(0); - if ($6) { - $$030$lcssa = $0; - } else { - $7 = $1&255; - $$03039 = $0; - while(1) { - $10 = HEAP8[$$03039>>0]|0; - $11 = ($10<<24>>24)==(0); - $12 = ($10<<24>>24)==($7<<24>>24); - $or$cond = $11 | $12; - if ($or$cond) { - $$0 = $$03039; - break L1; - } - $13 = ((($$03039)) + 1|0); - $14 = $13; - $15 = $14 & 3; - $16 = ($15|0)==(0); - if ($16) { - $$030$lcssa = $13; - break; - } else { - $$03039 = $13; - } - } - } - $17 = Math_imul($2, 16843009)|0; - $18 = HEAP32[$$030$lcssa>>2]|0; - $19 = (($18) + -16843009)|0; - $20 = $18 & -2139062144; - $21 = $20 ^ -2139062144; - $22 = $21 & $19; - $23 = ($22|0)==(0); - L10: do { - if ($23) { - $$02936 = $$030$lcssa;$25 = $18; - while(1) { - $24 = $25 ^ $17; - $26 = (($24) + -16843009)|0; - $27 = $24 & -2139062144; - $28 = $27 ^ -2139062144; - $29 = $28 & $26; - $30 = ($29|0)==(0); - if (!($30)) { - $$029$lcssa = $$02936; - break L10; - } - $31 = ((($$02936)) + 4|0); - $32 = HEAP32[$31>>2]|0; - $33 = (($32) + -16843009)|0; - $34 = $32 & -2139062144; - $35 = $34 ^ -2139062144; - $36 = $35 & $33; - $37 = ($36|0)==(0); - if ($37) { - $$02936 = $31;$25 = $32; - } else { - $$029$lcssa = $31; - break; - } - } - } else { - $$029$lcssa = $$030$lcssa; - } - } while(0); - $38 = $1&255; - $$1 = $$029$lcssa; - while(1) { - $39 = HEAP8[$$1>>0]|0; - $40 = ($39<<24>>24)==(0); - $41 = ($39<<24>>24)==($38<<24>>24); - $or$cond33 = $40 | $41; - $42 = ((($$1)) + 1|0); - if ($or$cond33) { - $$0 = $$1; - break; - } else { - $$1 = $42; - } - } - } - } while(0); - return ($$0|0); -} -function _strcpy($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - (___stpcpy($0,$1)|0); - return ($0|0); -} -function ___stpcpy($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0$lcssa = 0, $$025$lcssa = 0, $$02536 = 0, $$026$lcssa = 0, $$02642 = 0, $$027$lcssa = 0, $$02741 = 0, $$029 = 0, $$037 = 0, $$1$ph = 0, $$128$ph = 0, $$12834 = 0, $$135 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; - var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = $1; - $3 = $0; - $4 = $2 ^ $3; - $5 = $4 & 3; - $6 = ($5|0)==(0); - L1: do { - if ($6) { - $7 = $2 & 3; - $8 = ($7|0)==(0); - if ($8) { - $$026$lcssa = $1;$$027$lcssa = $0; - } else { - $$02642 = $1;$$02741 = $0; - while(1) { - $9 = HEAP8[$$02642>>0]|0; - HEAP8[$$02741>>0] = $9; - $10 = ($9<<24>>24)==(0); - if ($10) { - $$029 = $$02741; - break L1; - } - $11 = ((($$02642)) + 1|0); - $12 = ((($$02741)) + 1|0); - $13 = $11; - $14 = $13 & 3; - $15 = ($14|0)==(0); - if ($15) { - $$026$lcssa = $11;$$027$lcssa = $12; - break; - } else { - $$02642 = $11;$$02741 = $12; - } - } - } - $16 = HEAP32[$$026$lcssa>>2]|0; - $17 = (($16) + -16843009)|0; - $18 = $16 & -2139062144; - $19 = $18 ^ -2139062144; - $20 = $19 & $17; - $21 = ($20|0)==(0); - if ($21) { - $$02536 = $$027$lcssa;$$037 = $$026$lcssa;$24 = $16; - while(1) { - $22 = ((($$037)) + 4|0); - $23 = ((($$02536)) + 4|0); - HEAP32[$$02536>>2] = $24; - $25 = HEAP32[$22>>2]|0; - $26 = (($25) + -16843009)|0; - $27 = $25 & -2139062144; - $28 = $27 ^ -2139062144; - $29 = $28 & $26; - $30 = ($29|0)==(0); - if ($30) { - $$02536 = $23;$$037 = $22;$24 = $25; - } else { - $$0$lcssa = $22;$$025$lcssa = $23; - break; - } - } - } else { - $$0$lcssa = $$026$lcssa;$$025$lcssa = $$027$lcssa; - } - $$1$ph = $$0$lcssa;$$128$ph = $$025$lcssa; - label = 8; - } else { - $$1$ph = $1;$$128$ph = $0; - label = 8; - } - } while(0); - if ((label|0) == 8) { - $31 = HEAP8[$$1$ph>>0]|0; - HEAP8[$$128$ph>>0] = $31; - $32 = ($31<<24>>24)==(0); - if ($32) { - $$029 = $$128$ph; - } else { - $$12834 = $$128$ph;$$135 = $$1$ph; - while(1) { - $33 = ((($$135)) + 1|0); - $34 = ((($$12834)) + 1|0); - $35 = HEAP8[$33>>0]|0; - HEAP8[$34>>0] = $35; - $36 = ($35<<24>>24)==(0); - if ($36) { - $$029 = $34; - break; - } else { - $$12834 = $34;$$135 = $33; - } - } - } - } - return ($$029|0); -} -function ___ofl_lock() { - var label = 0, sp = 0; - sp = STACKTOP; - ___lock((17156|0)); - return (17164|0); -} -function ___ofl_unlock() { - var label = 0, sp = 0; - sp = STACKTOP; - ___unlock((17156|0)); - return; -} -function _fflush($0) { - $0 = $0|0; - var $$0 = 0, $$023 = 0, $$02325 = 0, $$02327 = 0, $$024$lcssa = 0, $$02426 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0|0); - do { - if ($1) { - $8 = HEAP32[839]|0; - $9 = ($8|0)==(0|0); - if ($9) { - $29 = 0; - } else { - $10 = HEAP32[839]|0; - $11 = (_fflush($10)|0); - $29 = $11; - } - $12 = (___ofl_lock()|0); - $$02325 = HEAP32[$12>>2]|0; - $13 = ($$02325|0)==(0|0); - if ($13) { - $$024$lcssa = $29; - } else { - $$02327 = $$02325;$$02426 = $29; - while(1) { - $14 = ((($$02327)) + 76|0); - $15 = HEAP32[$14>>2]|0; - $16 = ($15|0)>(-1); - if ($16) { - $17 = (___lockfile($$02327)|0); - $26 = $17; - } else { - $26 = 0; - } - $18 = ((($$02327)) + 20|0); - $19 = HEAP32[$18>>2]|0; - $20 = ((($$02327)) + 28|0); - $21 = HEAP32[$20>>2]|0; - $22 = ($19>>>0)>($21>>>0); - if ($22) { - $23 = (___fflush_unlocked($$02327)|0); - $24 = $23 | $$02426; - $$1 = $24; - } else { - $$1 = $$02426; - } - $25 = ($26|0)==(0); - if (!($25)) { - ___unlockfile($$02327); - } - $27 = ((($$02327)) + 56|0); - $$023 = HEAP32[$27>>2]|0; - $28 = ($$023|0)==(0|0); - if ($28) { - $$024$lcssa = $$1; - break; - } else { - $$02327 = $$023;$$02426 = $$1; - } - } - } - ___ofl_unlock(); - $$0 = $$024$lcssa; - } else { - $2 = ((($0)) + 76|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)>(-1); - if (!($4)) { - $5 = (___fflush_unlocked($0)|0); - $$0 = $5; - break; - } - $6 = (___lockfile($0)|0); - $phitmp = ($6|0)==(0); - $7 = (___fflush_unlocked($0)|0); - if ($phitmp) { - $$0 = $7; - } else { - ___unlockfile($0); - $$0 = $7; - } - } - } while(0); - return ($$0|0); -} -function ___fflush_unlocked($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 20|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 28|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($2>>>0)>($4>>>0); - if ($5) { - $6 = ((($0)) + 36|0); - $7 = HEAP32[$6>>2]|0; - (FUNCTION_TABLE_iiii[$7 & 15]($0,0,0)|0); - $8 = HEAP32[$1>>2]|0; - $9 = ($8|0)==(0|0); - if ($9) { - $$0 = -1; - } else { - label = 3; - } - } else { - label = 3; - } - if ((label|0) == 3) { - $10 = ((($0)) + 4|0); - $11 = HEAP32[$10>>2]|0; - $12 = ((($0)) + 8|0); - $13 = HEAP32[$12>>2]|0; - $14 = ($11>>>0)<($13>>>0); - if ($14) { - $15 = $11; - $16 = $13; - $17 = (($15) - ($16))|0; - $18 = ((($0)) + 40|0); - $19 = HEAP32[$18>>2]|0; - (FUNCTION_TABLE_iiii[$19 & 15]($0,$17,1)|0); - } - $20 = ((($0)) + 16|0); - HEAP32[$20>>2] = 0; - HEAP32[$3>>2] = 0; - HEAP32[$1>>2] = 0; - HEAP32[$12>>2] = 0; - HEAP32[$10>>2] = 0; - $$0 = 0; - } - return ($$0|0); -} -function _strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = ($2<<24>>24)==(0); - do { - if ($3) { - $$0 = $0; - } else { - $4 = $2 << 24 >> 24; - $5 = (_strchr($0,$4)|0); - $6 = ($5|0)==(0|0); - if ($6) { - $$0 = 0; - } else { - $7 = ((($1)) + 1|0); - $8 = HEAP8[$7>>0]|0; - $9 = ($8<<24>>24)==(0); - if ($9) { - $$0 = $5; - } else { - $10 = ((($5)) + 1|0); - $11 = HEAP8[$10>>0]|0; - $12 = ($11<<24>>24)==(0); - if ($12) { - $$0 = 0; - } else { - $13 = ((($1)) + 2|0); - $14 = HEAP8[$13>>0]|0; - $15 = ($14<<24>>24)==(0); - if ($15) { - $16 = (_twobyte_strstr($5,$1)|0); - $$0 = $16; - break; - } - $17 = ((($5)) + 2|0); - $18 = HEAP8[$17>>0]|0; - $19 = ($18<<24>>24)==(0); - if ($19) { - $$0 = 0; - } else { - $20 = ((($1)) + 3|0); - $21 = HEAP8[$20>>0]|0; - $22 = ($21<<24>>24)==(0); - if ($22) { - $23 = (_threebyte_strstr($5,$1)|0); - $$0 = $23; - break; - } - $24 = ((($5)) + 3|0); - $25 = HEAP8[$24>>0]|0; - $26 = ($25<<24>>24)==(0); - if ($26) { - $$0 = 0; - } else { - $27 = ((($1)) + 4|0); - $28 = HEAP8[$27>>0]|0; - $29 = ($28<<24>>24)==(0); - if ($29) { - $30 = (_fourbyte_strstr($5,$1)|0); - $$0 = $30; - break; - } else { - $31 = (_twoway_strstr($5,$1)|0); - $$0 = $31; - break; - } - } - } - } - } - } - } - } while(0); - return ($$0|0); -} -function _twobyte_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$lcssa = 0, $$sink = 0, $$sink$in = 0, $$sink$masked = 0, $$sink17$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = $2&255; - $4 = $3 << 8; - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&255; - $8 = $4 | $7; - $9 = HEAP8[$0>>0]|0; - $10 = $9&255; - $$sink$in = $10;$$sink17$sink = $0; - while(1) { - $11 = ((($$sink17$sink)) + 1|0); - $12 = HEAP8[$11>>0]|0; - $13 = ($12<<24>>24)==(0); - if ($13) { - $$lcssa = 0; - break; - } - $$sink = $$sink$in << 8; - $14 = $12&255; - $$sink$masked = $$sink & 65280; - $15 = $14 | $$sink$masked; - $16 = ($15|0)==($8|0); - if ($16) { - $$lcssa = $$sink17$sink; - break; - } else { - $$sink$in = $15;$$sink17$sink = $11; - } - } - return ($$lcssa|0); -} -function _threebyte_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$016$lcssa = 0, $$01619 = 0, $$020 = 0, $$lcssa = 0, $$not = 0, $$not17 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond18 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = $2&255; - $4 = $3 << 24; - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&255; - $8 = $7 << 16; - $9 = $8 | $4; - $10 = ((($1)) + 2|0); - $11 = HEAP8[$10>>0]|0; - $12 = $11&255; - $13 = $12 << 8; - $14 = $9 | $13; - $15 = HEAP8[$0>>0]|0; - $16 = $15&255; - $17 = $16 << 24; - $18 = ((($0)) + 1|0); - $19 = HEAP8[$18>>0]|0; - $20 = $19&255; - $21 = $20 << 16; - $22 = $21 | $17; - $23 = ((($0)) + 2|0); - $24 = HEAP8[$23>>0]|0; - $25 = $24&255; - $26 = $25 << 8; - $27 = $22 | $26; - $28 = ($24<<24>>24)!=(0); - $$not17 = $28 ^ 1; - $29 = ($27|0)==($14|0); - $or$cond18 = $29 | $$not17; - if ($or$cond18) { - $$016$lcssa = $23;$$lcssa = $28; - } else { - $$01619 = $23;$$020 = $27; - while(1) { - $30 = ((($$01619)) + 1|0); - $31 = HEAP8[$30>>0]|0; - $32 = $31&255; - $33 = $32 | $$020; - $34 = $33 << 8; - $35 = ($31<<24>>24)!=(0); - $$not = $35 ^ 1; - $36 = ($34|0)==($14|0); - $or$cond = $36 | $$not; - if ($or$cond) { - $$016$lcssa = $30;$$lcssa = $35; - break; - } else { - $$01619 = $30;$$020 = $34; - } - } - } - $37 = ((($$016$lcssa)) + -2|0); - $38 = $$lcssa ? $37 : 0; - return ($38|0); -} -function _fourbyte_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$lcssa = 0, $$not = 0, $$not22 = 0, $$sink21$lcssa = 0, $$sink2124 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond23 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = $2&255; - $4 = $3 << 24; - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&255; - $8 = $7 << 16; - $9 = $8 | $4; - $10 = ((($1)) + 2|0); - $11 = HEAP8[$10>>0]|0; - $12 = $11&255; - $13 = $12 << 8; - $14 = $9 | $13; - $15 = ((($1)) + 3|0); - $16 = HEAP8[$15>>0]|0; - $17 = $16&255; - $18 = $14 | $17; - $19 = HEAP8[$0>>0]|0; - $20 = $19&255; - $21 = $20 << 24; - $22 = ((($0)) + 1|0); - $23 = HEAP8[$22>>0]|0; - $24 = $23&255; - $25 = $24 << 16; - $26 = $25 | $21; - $27 = ((($0)) + 2|0); - $28 = HEAP8[$27>>0]|0; - $29 = $28&255; - $30 = $29 << 8; - $31 = $26 | $30; - $32 = ((($0)) + 3|0); - $33 = HEAP8[$32>>0]|0; - $34 = $33&255; - $35 = $34 | $31; - $36 = ($33<<24>>24)!=(0); - $$not22 = $36 ^ 1; - $37 = ($35|0)==($18|0); - $or$cond23 = $37 | $$not22; - if ($or$cond23) { - $$lcssa = $36;$$sink21$lcssa = $32; - } else { - $$sink2124 = $32;$39 = $35; - while(1) { - $38 = $39 << 8; - $40 = ((($$sink2124)) + 1|0); - $41 = HEAP8[$40>>0]|0; - $42 = $41&255; - $43 = $42 | $38; - $44 = ($41<<24>>24)!=(0); - $$not = $44 ^ 1; - $45 = ($43|0)==($18|0); - $or$cond = $45 | $$not; - if ($or$cond) { - $$lcssa = $44;$$sink21$lcssa = $40; - break; - } else { - $$sink2124 = $40;$39 = $43; - } - } - } - $46 = ((($$sink21$lcssa)) + -3|0); - $47 = $$lcssa ? $46 : 0; - return ($47|0); -} -function _twoway_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0166 = 0, $$0168 = 0, $$0169 = 0, $$0169$be = 0, $$0170 = 0, $$0175$ph$ph$lcssa220 = 0, $$0175$ph$ph$lcssa220323 = 0, $$0175$ph$ph256 = 0, $$0179244 = 0, $$0183$ph200$ph255 = 0, $$0183$ph200250 = 0, $$0183$ph262 = 0, $$0185$ph$lcssa = 0, $$0185$ph$lcssa322 = 0, $$0185$ph261 = 0, $$0187$lcssa320321 = 0, $$0187266 = 0, $$1176$$0175 = 0, $$1176$ph$ph$lcssa211 = 0, $$1176$ph$ph235 = 0; - var $$1180224 = 0, $$1184$ph196$ph234 = 0, $$1184$ph196229 = 0, $$1184$ph241 = 0, $$1186$$0185 = 0, $$1186$$0185$ = 0, $$1186$ph$lcssa = 0, $$1186$ph240 = 0, $$2181 = 0, $$2181$sink = 0, $$3 = 0, $$3173 = 0, $$3178 = 0, $$3182223 = 0, $$4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0; - var $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0; - var $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; - var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; - var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; - var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; - var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0; - var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond191 = 0, $cond191222 = 0, $cond265 = 0, $div = 0, $div188 = 0, $or$cond = 0, $or$cond190 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); - $2 = sp + 1024|0; - $3 = sp; - ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; - $4 = HEAP8[$1>>0]|0; - $cond265 = ($4<<24>>24)==(0); - L1: do { - if ($cond265) { - $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = 0;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; - label = 27; - } else { - $5 = $4&255; - $$0187266 = 0;$12 = $4;$20 = $5; - while(1) { - $8 = (($0) + ($$0187266)|0); - $9 = HEAP8[$8>>0]|0; - $10 = ($9<<24>>24)==(0); - if ($10) { - $$3 = 0; - break L1; - } - $11 = $12 & 31; - $13 = $11&255; - $14 = 1 << $13; - $div188 = ($12&255) >>> 5; - $15 = $div188&255; - $16 = (($2) + ($15<<2)|0); - $17 = HEAP32[$16>>2]|0; - $18 = $17 | $14; - HEAP32[$16>>2] = $18; - $7 = (($$0187266) + 1)|0; - $19 = (($3) + ($20<<2)|0); - HEAP32[$19>>2] = $7; - $21 = (($1) + ($7)|0); - $22 = HEAP8[$21>>0]|0; - $23 = $22&255; - $cond = ($22<<24>>24)==(0); - if ($cond) { - break; - } else { - $$0187266 = $7;$12 = $22;$20 = $23; - } - } - $6 = ($7>>>0)>(1); - if ($6) { - $$0183$ph262 = 0;$$0185$ph261 = -1;$129 = 1; - L7: while(1) { - $$0175$ph$ph256 = 1;$$0183$ph200$ph255 = $$0183$ph262;$132 = $129; - while(1) { - $$0183$ph200250 = $$0183$ph200$ph255;$131 = $132; - L11: while(1) { - $$0179244 = 1;$31 = $131; - while(1) { - $27 = (($$0179244) + ($$0185$ph261))|0; - $28 = (($1) + ($27)|0); - $29 = HEAP8[$28>>0]|0; - $30 = (($1) + ($31)|0); - $32 = HEAP8[$30>>0]|0; - $33 = ($29<<24>>24)==($32<<24>>24); - if (!($33)) { - break L11; - } - $34 = ($$0179244|0)==($$0175$ph$ph256|0); - $25 = (($$0179244) + 1)|0; - if ($34) { - break; - } - $24 = (($25) + ($$0183$ph200250))|0; - $26 = ($24>>>0)<($7>>>0); - if ($26) { - $$0179244 = $25;$31 = $24; - } else { - $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; - break L7; - } - } - $35 = (($$0175$ph$ph256) + ($$0183$ph200250))|0; - $36 = (($35) + 1)|0; - $37 = ($36>>>0)<($7>>>0); - if ($37) { - $$0183$ph200250 = $35;$131 = $36; - } else { - $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; - break L7; - } - } - $38 = ($29&255)>($32&255); - $39 = (($31) - ($$0185$ph261))|0; - if (!($38)) { - break; - } - $43 = (($31) + 1)|0; - $44 = ($43>>>0)<($7>>>0); - if ($44) { - $$0175$ph$ph256 = $39;$$0183$ph200$ph255 = $31;$132 = $43; - } else { - $$0175$ph$ph$lcssa220 = $39;$$0185$ph$lcssa = $$0185$ph261; - break L7; - } - } - $40 = (($$0183$ph200250) + 1)|0; - $41 = (($$0183$ph200250) + 2)|0; - $42 = ($41>>>0)<($7>>>0); - if ($42) { - $$0183$ph262 = $40;$$0185$ph261 = $$0183$ph200250;$129 = $41; - } else { - $$0175$ph$ph$lcssa220 = 1;$$0185$ph$lcssa = $$0183$ph200250; - break; - } - } - if ($6) { - $$1184$ph241 = 0;$$1186$ph240 = -1;$130 = 1; - while(1) { - $$1176$ph$ph235 = 1;$$1184$ph196$ph234 = $$1184$ph241;$134 = $130; - while(1) { - $$1184$ph196229 = $$1184$ph196$ph234;$133 = $134; - L26: while(1) { - $$1180224 = 1;$52 = $133; - while(1) { - $48 = (($$1180224) + ($$1186$ph240))|0; - $49 = (($1) + ($48)|0); - $50 = HEAP8[$49>>0]|0; - $51 = (($1) + ($52)|0); - $53 = HEAP8[$51>>0]|0; - $54 = ($50<<24>>24)==($53<<24>>24); - if (!($54)) { - break L26; - } - $55 = ($$1180224|0)==($$1176$ph$ph235|0); - $46 = (($$1180224) + 1)|0; - if ($55) { - break; - } - $45 = (($46) + ($$1184$ph196229))|0; - $47 = ($45>>>0)<($7>>>0); - if ($47) { - $$1180224 = $46;$52 = $45; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; - label = 27; - break L1; - } - } - $56 = (($$1176$ph$ph235) + ($$1184$ph196229))|0; - $57 = (($56) + 1)|0; - $58 = ($57>>>0)<($7>>>0); - if ($58) { - $$1184$ph196229 = $56;$133 = $57; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; - label = 27; - break L1; - } - } - $59 = ($50&255)<($53&255); - $60 = (($52) - ($$1186$ph240))|0; - if (!($59)) { - break; - } - $64 = (($52) + 1)|0; - $65 = ($64>>>0)<($7>>>0); - if ($65) { - $$1176$ph$ph235 = $60;$$1184$ph196$ph234 = $52;$134 = $64; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $60;$$1186$ph$lcssa = $$1186$ph240; - label = 27; - break L1; - } - } - $61 = (($$1184$ph196229) + 1)|0; - $62 = (($$1184$ph196229) + 2)|0; - $63 = ($62>>>0)<($7>>>0); - if ($63) { - $$1184$ph241 = $61;$$1186$ph240 = $$1184$ph196229;$130 = $62; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = $$1184$ph196229; - label = 27; - break; - } - } - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; - label = 27; - } - } else { - $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; - label = 27; - } - } - } while(0); - L36: do { - if ((label|0) == 27) { - $66 = (($$1186$ph$lcssa) + 1)|0; - $67 = (($$0185$ph$lcssa322) + 1)|0; - $68 = ($66>>>0)>($67>>>0); - $$1176$$0175 = $68 ? $$1176$ph$ph$lcssa211 : $$0175$ph$ph$lcssa220323; - $$1186$$0185 = $68 ? $$1186$ph$lcssa : $$0185$ph$lcssa322; - $69 = (($1) + ($$1176$$0175)|0); - $70 = (($$1186$$0185) + 1)|0; - $71 = (_memcmp($1,$69,$70)|0); - $72 = ($71|0)==(0); - if ($72) { - $77 = (($$0187$lcssa320321) - ($$1176$$0175))|0; - $$0168 = $77;$$3178 = $$1176$$0175; - } else { - $73 = (($$0187$lcssa320321) - ($$1186$$0185))|0; - $74 = (($73) + -1)|0; - $75 = ($$1186$$0185>>>0)>($74>>>0); - $$1186$$0185$ = $75 ? $$1186$$0185 : $74; - $76 = (($$1186$$0185$) + 1)|0; - $$0168 = 0;$$3178 = $76; - } - $78 = $$0187$lcssa320321 | 63; - $79 = (($$0187$lcssa320321) + -1)|0; - $80 = ($$0168|0)!=(0); - $81 = (($$0187$lcssa320321) - ($$3178))|0; - $$0166 = $0;$$0169 = 0;$$0170 = $0; - while(1) { - $82 = $$0170; - $83 = $$0166; - $84 = (($82) - ($83))|0; - $85 = ($84>>>0)<($$0187$lcssa320321>>>0); - do { - if ($85) { - $86 = (_memchr($$0170,0,$78)|0); - $87 = ($86|0)==(0|0); - if ($87) { - $91 = (($$0170) + ($78)|0); - $$3173 = $91; - break; - } else { - $88 = $86; - $89 = (($88) - ($83))|0; - $90 = ($89>>>0)<($$0187$lcssa320321>>>0); - if ($90) { - $$3 = 0; - break L36; - } else { - $$3173 = $86; - break; - } - } - } else { - $$3173 = $$0170; - } - } while(0); - $92 = (($$0166) + ($79)|0); - $93 = HEAP8[$92>>0]|0; - $div = ($93&255) >>> 5; - $94 = $div&255; - $95 = (($2) + ($94<<2)|0); - $96 = HEAP32[$95>>2]|0; - $97 = $93 & 31; - $98 = $97&255; - $99 = 1 << $98; - $100 = $99 & $96; - $101 = ($100|0)==(0); - L50: do { - if ($101) { - $$0169$be = 0;$$2181$sink = $$0187$lcssa320321; - } else { - $102 = $93&255; - $103 = (($3) + ($102<<2)|0); - $104 = HEAP32[$103>>2]|0; - $105 = (($$0187$lcssa320321) - ($104))|0; - $106 = ($105|0)==(0); - if (!($106)) { - $107 = ($$0169|0)!=(0); - $or$cond = $80 & $107; - $108 = ($105>>>0)<($$3178>>>0); - $or$cond190 = $or$cond & $108; - $$2181 = $or$cond190 ? $81 : $105; - $$0169$be = 0;$$2181$sink = $$2181; - break; - } - $110 = ($70>>>0)>($$0169>>>0); - $111 = $110 ? $70 : $$0169; - $112 = (($1) + ($111)|0); - $113 = HEAP8[$112>>0]|0; - $cond191222 = ($113<<24>>24)==(0); - L55: do { - if ($cond191222) { - $$4 = $70; - } else { - $$3182223 = $111;$117 = $113; - while(1) { - $114 = (($$0166) + ($$3182223)|0); - $115 = HEAP8[$114>>0]|0; - $116 = ($117<<24>>24)==($115<<24>>24); - if (!($116)) { - break; - } - $118 = (($$3182223) + 1)|0; - $119 = (($1) + ($118)|0); - $120 = HEAP8[$119>>0]|0; - $cond191 = ($120<<24>>24)==(0); - if ($cond191) { - $$4 = $70; - break L55; - } else { - $$3182223 = $118;$117 = $120; - } - } - $121 = (($$3182223) - ($$1186$$0185))|0; - $$0169$be = 0;$$2181$sink = $121; - break L50; - } - } while(0); - while(1) { - $122 = ($$4>>>0)>($$0169>>>0); - if (!($122)) { - $$3 = $$0166; - break L36; - } - $123 = (($$4) + -1)|0; - $124 = (($1) + ($123)|0); - $125 = HEAP8[$124>>0]|0; - $126 = (($$0166) + ($123)|0); - $127 = HEAP8[$126>>0]|0; - $128 = ($125<<24>>24)==($127<<24>>24); - if ($128) { - $$4 = $123; - } else { - $$0169$be = $$0168;$$2181$sink = $$3178; - break; - } - } - } - } while(0); - $109 = (($$0166) + ($$2181$sink)|0); - $$0166 = $109;$$0169 = $$0169$be;$$0170 = $$3173; - } - } - } while(0); - STACKTOP = sp;return ($$3|0); -} -function _strspn($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$01925 = 0, $$020 = 0, $$1$lcssa = 0, $$123 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0, $div21 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $2 = sp; - ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; - $3 = HEAP8[$1>>0]|0; - $4 = ($3<<24>>24)==(0); - do { - if ($4) { - $$0 = 0; - } else { - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = ($6<<24>>24)==(0); - if ($7) { - $$020 = $0; - while(1) { - $8 = HEAP8[$$020>>0]|0; - $9 = ($8<<24>>24)==($3<<24>>24); - $10 = ((($$020)) + 1|0); - if ($9) { - $$020 = $10; - } else { - break; - } - } - $11 = $$020; - $12 = $0; - $13 = (($11) - ($12))|0; - $$0 = $13; - break; - } else { - $$01925 = $1;$17 = $3; - } - while(1) { - $16 = $17 & 31; - $18 = $16&255; - $19 = 1 << $18; - $div21 = ($17&255) >>> 5; - $20 = $div21&255; - $21 = (($2) + ($20<<2)|0); - $22 = HEAP32[$21>>2]|0; - $23 = $22 | $19; - HEAP32[$21>>2] = $23; - $24 = ((($$01925)) + 1|0); - $25 = HEAP8[$24>>0]|0; - $26 = ($25<<24>>24)==(0); - if ($26) { - break; - } else { - $$01925 = $24;$17 = $25; - } - } - $14 = HEAP8[$0>>0]|0; - $15 = ($14<<24>>24)==(0); - L10: do { - if ($15) { - $$1$lcssa = $0; - } else { - $$123 = $0;$27 = $14; - while(1) { - $div = ($27&255) >>> 5; - $28 = $div&255; - $29 = (($2) + ($28<<2)|0); - $30 = HEAP32[$29>>2]|0; - $31 = $27 & 31; - $32 = $31&255; - $33 = 1 << $32; - $34 = $30 & $33; - $35 = ($34|0)==(0); - if ($35) { - $$1$lcssa = $$123; - break L10; - } - $36 = ((($$123)) + 1|0); - $37 = HEAP8[$36>>0]|0; - $38 = ($37<<24>>24)==(0); - if ($38) { - $$1$lcssa = $36; - break; - } else { - $$123 = $36;$27 = $37; - } - } - } - } while(0); - $39 = $$1$lcssa; - $40 = $0; - $41 = (($39) - ($40))|0; - $$0 = $41; - } - } while(0); - STACKTOP = sp;return ($$0|0); -} -function _srand($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (($0) + -1)|0; - $2 = 14080; - $3 = $2; - HEAP32[$3>>2] = $1; - $4 = (($2) + 4)|0; - $5 = $4; - HEAP32[$5>>2] = 0; - return; -} -function _vprintf($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP32[807]|0; - $3 = (_vfprintf($2,$0,$1)|0); - return ($3|0); -} -function _strcspn($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$01824 = 0, $$019$sink = 0, $$01922 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0; - var $div20 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $2 = sp; - $3 = HEAP8[$1>>0]|0; - $4 = ($3<<24>>24)==(0); - L1: do { - if ($4) { - label = 3; - } else { - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = ($6<<24>>24)==(0); - if ($7) { - label = 3; - } else { - ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; - $$01824 = $1;$13 = $3; - while(1) { - $12 = $13 & 31; - $14 = $12&255; - $15 = 1 << $14; - $div20 = ($13&255) >>> 5; - $16 = $div20&255; - $17 = (($2) + ($16<<2)|0); - $18 = HEAP32[$17>>2]|0; - $19 = $18 | $15; - HEAP32[$17>>2] = $19; - $20 = ((($$01824)) + 1|0); - $21 = HEAP8[$20>>0]|0; - $22 = ($21<<24>>24)==(0); - if ($22) { - break; - } else { - $$01824 = $20;$13 = $21; - } - } - $10 = HEAP8[$0>>0]|0; - $11 = ($10<<24>>24)==(0); - if ($11) { - $$019$sink = $0; - } else { - $$01922 = $0;$23 = $10; - while(1) { - $div = ($23&255) >>> 5; - $24 = $div&255; - $25 = (($2) + ($24<<2)|0); - $26 = HEAP32[$25>>2]|0; - $27 = $23 & 31; - $28 = $27&255; - $29 = 1 << $28; - $30 = $26 & $29; - $31 = ($30|0)==(0); - if (!($31)) { - $$019$sink = $$01922; - break L1; - } - $32 = ((($$01922)) + 1|0); - $33 = HEAP8[$32>>0]|0; - $34 = ($33<<24>>24)==(0); - if ($34) { - $$019$sink = $32; - break; - } else { - $$01922 = $32;$23 = $33; - } - } - } - } - } - } while(0); - if ((label|0) == 3) { - $8 = $3 << 24 >> 24; - $9 = (___strchrnul($0,$8)|0); - $$019$sink = $9; - } - $35 = $$019$sink; - $36 = $0; - $37 = (($35) - ($36))|0; - STACKTOP = sp;return ($37|0); -} -function _strcat($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (_strlen($0)|0); - $3 = (($0) + ($2)|0); - (_strcpy($3,$1)|0); - return ($0|0); -} -function _strtok($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$010 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($0|0)==(0|0); - if ($2) { - $3 = HEAP32[4292]|0; - $4 = ($3|0)==(0|0); - if ($4) { - $$0 = 0; - } else { - $$010 = $3; - label = 3; - } - } else { - $$010 = $0; - label = 3; - } - do { - if ((label|0) == 3) { - $5 = (_strspn($$010,$1)|0); - $6 = (($$010) + ($5)|0); - $7 = HEAP8[$6>>0]|0; - $8 = ($7<<24>>24)==(0); - if ($8) { - HEAP32[4292] = 0; - $$0 = 0; - break; - } - $9 = (_strcspn($6,$1)|0); - $10 = (($6) + ($9)|0); - HEAP32[4292] = $10; - $11 = HEAP8[$10>>0]|0; - $12 = ($11<<24>>24)==(0); - if ($12) { - HEAP32[4292] = 0; - $$0 = $6; - break; - } else { - $13 = ((($10)) + 1|0); - HEAP32[4292] = $13; - HEAP8[$10>>0] = 0; - $$0 = $6; - break; - } - } - } while(0); - return ($$0|0); -} -function runPostSets() { -} -function _memset(ptr, value, num) { - ptr = ptr|0; value = value|0; num = num|0; - var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0; - end = (ptr + num)|0; - - value = value & 0xff; - if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) { - while ((ptr&3) != 0) { - HEAP8[((ptr)>>0)]=value; - ptr = (ptr+1)|0; - } - - aligned_end = (end & -4)|0; - block_aligned_end = (aligned_end - 64)|0; - value4 = value | (value << 8) | (value << 16) | (value << 24); - - while((ptr|0) <= (block_aligned_end|0)) { - HEAP32[((ptr)>>2)]=value4; - HEAP32[(((ptr)+(4))>>2)]=value4; - HEAP32[(((ptr)+(8))>>2)]=value4; - HEAP32[(((ptr)+(12))>>2)]=value4; - HEAP32[(((ptr)+(16))>>2)]=value4; - HEAP32[(((ptr)+(20))>>2)]=value4; - HEAP32[(((ptr)+(24))>>2)]=value4; - HEAP32[(((ptr)+(28))>>2)]=value4; - HEAP32[(((ptr)+(32))>>2)]=value4; - HEAP32[(((ptr)+(36))>>2)]=value4; - HEAP32[(((ptr)+(40))>>2)]=value4; - HEAP32[(((ptr)+(44))>>2)]=value4; - HEAP32[(((ptr)+(48))>>2)]=value4; - HEAP32[(((ptr)+(52))>>2)]=value4; - HEAP32[(((ptr)+(56))>>2)]=value4; - HEAP32[(((ptr)+(60))>>2)]=value4; - ptr = (ptr + 64)|0; - } - - while ((ptr|0) < (aligned_end|0) ) { - HEAP32[((ptr)>>2)]=value4; - ptr = (ptr+4)|0; - } - } - // The remaining bytes. - while ((ptr|0) < (end|0)) { - HEAP8[((ptr)>>0)]=value; - ptr = (ptr+1)|0; - } - return (end-num)|0; -} -function _i64Subtract(a, b, c, d) { - a = a|0; b = b|0; c = c|0; d = d|0; - var l = 0, h = 0; - l = (a - c)>>>0; - h = (b - d)>>>0; - h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow. - return ((tempRet0 = h,l|0)|0); -} -function _i64Add(a, b, c, d) { - /* - x = a + b*2^32 - y = c + d*2^32 - result = l + h*2^32 - */ - a = a|0; b = b|0; c = c|0; d = d|0; - var l = 0, h = 0; - l = (a + c)>>>0; - h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow. - return ((tempRet0 = h,l|0)|0); -} -function _llvm_cttz_i32(x) { - x = x|0; - var ret = 0; - ret = ((HEAP8[(((cttz_i8)+(x & 0xff))>>0)])|0); - if ((ret|0) < 8) return ret|0; - ret = ((HEAP8[(((cttz_i8)+((x >> 8)&0xff))>>0)])|0); - if ((ret|0) < 8) return (ret + 8)|0; - ret = ((HEAP8[(((cttz_i8)+((x >> 16)&0xff))>>0)])|0); - if ((ret|0) < 8) return (ret + 16)|0; - return (((HEAP8[(((cttz_i8)+(x >>> 24))>>0)])|0) + 24)|0; -} -function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - $rem = $rem | 0; - var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0; - $n_sroa_0_0_extract_trunc = $a$0; - $n_sroa_1_4_extract_shift$0 = $a$1; - $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; - $d_sroa_0_0_extract_trunc = $b$0; - $d_sroa_1_4_extract_shift$0 = $b$1; - $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; - if (($n_sroa_1_4_extract_trunc | 0) == 0) { - $4 = ($rem | 0) != 0; - if (($d_sroa_1_4_extract_trunc | 0) == 0) { - if ($4) { - HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); - HEAP32[$rem + 4 >> 2] = 0; - } - $_0$1 = 0; - $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - if (!$4) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - } - $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; - do { - if (($d_sroa_0_0_extract_trunc | 0) == 0) { - if ($17) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); - HEAP32[$rem + 4 >> 2] = 0; - } - $_0$1 = 0; - $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - if (($n_sroa_0_0_extract_trunc | 0) == 0) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0; - HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); - } - $_0$1 = 0; - $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $37 = $d_sroa_1_4_extract_trunc - 1 | 0; - if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0; - } - $_0$1 = 0; - $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; - $51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - if ($51 >>> 0 <= 30) { - $57 = $51 + 1 | 0; - $58 = 31 - $51 | 0; - $sr_1_ph = $57; - $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0); - $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0); - $q_sroa_0_1_ph = 0; - $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58; - break; - } - if (($rem | 0) == 0) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - if (!$17) { - $117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; - $119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - if ($119 >>> 0 <= 31) { - $125 = $119 + 1 | 0; - $126 = 31 - $119 | 0; - $130 = $119 - 31 >> 31; - $sr_1_ph = $125; - $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126; - $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130; - $q_sroa_0_1_ph = 0; - $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126; - break; - } - if (($rem | 0) == 0) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $66 = $d_sroa_0_0_extract_trunc - 1 | 0; - if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) { - $86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0; - $88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - $89 = 64 - $88 | 0; - $91 = 32 - $88 | 0; - $92 = $91 >> 31; - $95 = $88 - 32 | 0; - $105 = $95 >> 31; - $sr_1_ph = $88; - $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105; - $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0); - $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92; - $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31; - break; - } - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; - HEAP32[$rem + 4 >> 2] = 0; - } - if (($d_sroa_0_0_extract_trunc | 0) == 1) { - $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$0 = 0 | $a$0 & -1; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; - $_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0); - $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - } - } while (0); - if (($sr_1_ph | 0) == 0) { - $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; - $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; - $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; - $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; - $carry_0_lcssa$1 = 0; - $carry_0_lcssa$0 = 0; - } else { - $d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1; - $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0; - $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0; - $137$1 = tempRet0; - $q_sroa_1_1198 = $q_sroa_1_1_ph; - $q_sroa_0_1199 = $q_sroa_0_1_ph; - $r_sroa_1_1200 = $r_sroa_1_1_ph; - $r_sroa_0_1201 = $r_sroa_0_1_ph; - $sr_1202 = $sr_1_ph; - $carry_0203 = 0; - while (1) { - $147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; - $149 = $carry_0203 | $q_sroa_0_1199 << 1; - $r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | $q_sroa_1_1198 >>> 31); - $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; - _i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0) | 0; - $150$1 = tempRet0; - $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; - $152 = $151$0 & 1; - $154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1 | 0) | 0; - $r_sroa_0_0_extract_trunc = $154$0; - $r_sroa_1_4_extract_trunc = tempRet0; - $155 = $sr_1202 - 1 | 0; - if (($155 | 0) == 0) { - break; - } else { - $q_sroa_1_1198 = $147; - $q_sroa_0_1199 = $149; - $r_sroa_1_1200 = $r_sroa_1_4_extract_trunc; - $r_sroa_0_1201 = $r_sroa_0_0_extract_trunc; - $sr_1202 = $155; - $carry_0203 = $152; - } - } - $q_sroa_1_1_lcssa = $147; - $q_sroa_0_1_lcssa = $149; - $r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc; - $r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc; - $carry_0_lcssa$1 = 0; - $carry_0_lcssa$0 = $152; - } - $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; - $q_sroa_0_0_insert_ext75$1 = 0; - $q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1; - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa; - HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0; - } - $_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | $q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1; - $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0; - return (tempRet0 = $_0$1, $_0$0) | 0; -} -function ___udivdi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $1$0 = 0; - $1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; - return $1$0 | 0; -} -function _memcpy(dest, src, num) { - dest = dest|0; src = src|0; num = num|0; - var ret = 0; - var aligned_dest_end = 0; - var block_aligned_dest_end = 0; - var dest_end = 0; - // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use. - if ((num|0) >= - 8192 - ) { - return _emscripten_memcpy_big(dest|0, src|0, num|0)|0; - } - - ret = dest|0; - dest_end = (dest + num)|0; - if ((dest&3) == (src&3)) { - // The initial unaligned < 4-byte front. - while (dest & 3) { - if ((num|0) == 0) return ret|0; - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - dest = (dest+1)|0; - src = (src+1)|0; - num = (num-1)|0; - } - aligned_dest_end = (dest_end & -4)|0; - block_aligned_dest_end = (aligned_dest_end - 64)|0; - while ((dest|0) <= (block_aligned_dest_end|0) ) { - HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); - HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0); - HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0); - HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0); - HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0); - HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0); - HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0); - HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0); - HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0); - HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0); - HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0); - HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0); - HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0); - HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0); - HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0); - HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0); - dest = (dest+64)|0; - src = (src+64)|0; - } - while ((dest|0) < (aligned_dest_end|0) ) { - HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); - dest = (dest+4)|0; - src = (src+4)|0; - } - } else { - // In the unaligned copy case, unroll a bit as well. - aligned_dest_end = (dest_end - 4)|0; - while ((dest|0) < (aligned_dest_end|0) ) { - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0); - HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0); - HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0); - dest = (dest+4)|0; - src = (src+4)|0; - } - } - // The remaining unaligned < 4 byte tail. - while ((dest|0) < (dest_end|0)) { - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - dest = (dest+1)|0; - src = (src+1)|0; - } - return ret|0; -} -function _memmove(dest, src, num) { - dest = dest|0; src = src|0; num = num|0; - var ret = 0; - if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) { - // Unlikely case: Copy backwards in a safe manner - ret = dest; - src = (src + num)|0; - dest = (dest + num)|0; - while ((num|0) > 0) { - dest = (dest - 1)|0; - src = (src - 1)|0; - num = (num - 1)|0; - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - } - dest = ret; - } else { - _memcpy(dest, src, num) | 0; - } - return dest | 0; -} -function ___uremdi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $rem = 0, __stackBase__ = 0; - __stackBase__ = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - $rem = __stackBase__ | 0; - ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) | 0; - STACKTOP = __stackBase__; - return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0; -} -function _roundf(f) { - f = +f; - return f >= +0 ? +Math_floor(f + +0.5) : +Math_ceil(f - +0.5); // TODO: use fround? -} -function _bitshift64Lshr(low, high, bits) { - low = low|0; high = high|0; bits = bits|0; - var ander = 0; - if ((bits|0) < 32) { - ander = ((1 << bits) - 1)|0; - tempRet0 = high >>> bits; - return (low >>> bits) | ((high&ander) << (32 - bits)); - } - tempRet0 = 0; - return (high >>> (bits - 32))|0; -} -function _sbrk(increment) { - increment = increment|0; - var oldDynamicTop = 0; - var oldDynamicTopOnChange = 0; - var newDynamicTop = 0; - var totalMemory = 0; - increment = ((increment + 15) & -16)|0; - oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0; - newDynamicTop = oldDynamicTop + increment | 0; - - if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int. - | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract. - abortOnCannotGrowMemory()|0; - ___setErrNo(12); - return -1; - } - - HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop; - totalMemory = getTotalMemory()|0; - if ((newDynamicTop|0) > (totalMemory|0)) { - if ((enlargeMemory()|0) == 0) { - HEAP32[DYNAMICTOP_PTR>>2] = oldDynamicTop; - ___setErrNo(12); - return -1; - } - } - return oldDynamicTop|0; -} -function _bitshift64Shl(low, high, bits) { - low = low|0; high = high|0; bits = bits|0; - var ander = 0; - if ((bits|0) < 32) { - ander = ((1 << bits) - 1)|0; - tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits)); - return low << bits; - } - tempRet0 = low << (bits - 32); - return 0; -} -function _llvm_bswap_i32(x) { - x = x|0; - return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0; -} - - -function dynCall_viiiii(index,a1,a2,a3,a4,a5) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; - FUNCTION_TABLE_viiiii[index&7](a1|0,a2|0,a3|0,a4|0,a5|0); -} - - -function dynCall_vd(index,a1) { - index = index|0; - a1=+a1; - FUNCTION_TABLE_vd[index&3](+a1); -} - - -function dynCall_vid(index,a1,a2) { - index = index|0; - a1=a1|0; a2=+a2; - FUNCTION_TABLE_vid[index&3](a1|0,+a2); -} - - -function dynCall_vi(index,a1) { - index = index|0; - a1=a1|0; - FUNCTION_TABLE_vi[index&31](a1|0); -} - - -function dynCall_vii(index,a1,a2) { - index = index|0; - a1=a1|0; a2=a2|0; - FUNCTION_TABLE_vii[index&63](a1|0,a2|0); -} - - -function dynCall_ii(index,a1) { - index = index|0; - a1=a1|0; - return FUNCTION_TABLE_ii[index&15](a1|0)|0; -} - - -function dynCall_viddd(index,a1,a2,a3,a4) { - index = index|0; - a1=a1|0; a2=+a2; a3=+a3; a4=+a4; - FUNCTION_TABLE_viddd[index&3](a1|0,+a2,+a3,+a4); -} - - -function dynCall_vidd(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=+a2; a3=+a3; - FUNCTION_TABLE_vidd[index&7](a1|0,+a2,+a3); -} - - -function dynCall_iiii(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; - return FUNCTION_TABLE_iiii[index&15](a1|0,a2|0,a3|0)|0; -} - - -function dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; - FUNCTION_TABLE_viiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0); -} - - -function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; - FUNCTION_TABLE_viiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0); -} - - -function dynCall_viii(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; - FUNCTION_TABLE_viii[index&31](a1|0,a2|0,a3|0); -} - - -function dynCall_vidddd(index,a1,a2,a3,a4,a5) { - index = index|0; - a1=a1|0; a2=+a2; a3=+a3; a4=+a4; a5=+a5; - FUNCTION_TABLE_vidddd[index&3](a1|0,+a2,+a3,+a4,+a5); -} - - -function dynCall_vdi(index,a1,a2) { - index = index|0; - a1=+a1; a2=a2|0; - FUNCTION_TABLE_vdi[index&1](+a1,a2|0); -} - - -function dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; - FUNCTION_TABLE_viiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0); -} - - -function dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; a9=a9|0; - FUNCTION_TABLE_viiiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0,a9|0); -} - - -function dynCall_iii(index,a1,a2) { - index = index|0; - a1=a1|0; a2=a2|0; - return FUNCTION_TABLE_iii[index&3](a1|0,a2|0)|0; -} - - -function dynCall_i(index) { - index = index|0; - - return FUNCTION_TABLE_i[index&3]()|0; -} - - -function dynCall_vdddddd(index,a1,a2,a3,a4,a5,a6) { - index = index|0; - a1=+a1; a2=+a2; a3=+a3; a4=+a4; a5=+a5; a6=+a6; - FUNCTION_TABLE_vdddddd[index&1](+a1,+a2,+a3,+a4,+a5,+a6); -} - - -function dynCall_vdddd(index,a1,a2,a3,a4) { - index = index|0; - a1=+a1; a2=+a2; a3=+a3; a4=+a4; - FUNCTION_TABLE_vdddd[index&3](+a1,+a2,+a3,+a4); -} - - -function dynCall_vdd(index,a1,a2) { - index = index|0; - a1=+a1; a2=+a2; - FUNCTION_TABLE_vdd[index&3](+a1,+a2); -} - - -function dynCall_v(index) { - index = index|0; - - FUNCTION_TABLE_v[index&7](); -} - - -function dynCall_viid(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=+a3; - FUNCTION_TABLE_viid[index&1](a1|0,a2|0,+a3); -} - - -function dynCall_viiii(index,a1,a2,a3,a4) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; - FUNCTION_TABLE_viiii[index&31](a1|0,a2|0,a3|0,a4|0); -} - -function b0(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(0); -} -function _emscripten_glUniform4i__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glUniform4i(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function _emscripten_glFramebufferTexture2D__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glFramebufferTexture2D(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function _emscripten_glShaderBinary__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glShaderBinary(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function _emscripten_glDrawElementsInstanced__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glDrawElementsInstanced(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function b1(p0) { - p0 = +p0; nullFunc_vd(1); -} -function _emscripten_glClearDepth__wrapper(p0) { - p0 = +p0; _emscripten_glClearDepth(+p0); -} -function _emscripten_glClearDepthf__wrapper(p0) { - p0 = +p0; _emscripten_glClearDepthf(+p0); -} -function _emscripten_glLineWidth__wrapper(p0) { - p0 = +p0; _emscripten_glLineWidth(+p0); -} -function b2(p0,p1) { - p0 = p0|0;p1 = +p1; nullFunc_vid(2); -} -function _emscripten_glUniform1f__wrapper(p0,p1) { - p0 = p0|0;p1 = +p1; _emscripten_glUniform1f(p0|0,+p1); -} -function _emscripten_glVertexAttrib1f__wrapper(p0,p1) { - p0 = p0|0;p1 = +p1; _emscripten_glVertexAttrib1f(p0|0,+p1); -} -function b3(p0) { - p0 = p0|0; nullFunc_vi(3); -} -function _emscripten_glDeleteShader__wrapper(p0) { - p0 = p0|0; _emscripten_glDeleteShader(p0|0); -} -function _emscripten_glCompileShader__wrapper(p0) { - p0 = p0|0; _emscripten_glCompileShader(p0|0); -} -function _emscripten_glDeleteProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glDeleteProgram(p0|0); -} -function _emscripten_glLinkProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glLinkProgram(p0|0); -} -function _emscripten_glUseProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glUseProgram(p0|0); -} -function _emscripten_glValidateProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glValidateProgram(p0|0); -} -function _emscripten_glDeleteObjectARB__wrapper(p0) { - p0 = p0|0; _emscripten_glDeleteObjectARB(p0|0); -} -function _emscripten_glEnableClientState__wrapper(p0) { - p0 = p0|0; _emscripten_glEnableClientState(p0|0); -} -function _emscripten_glClientActiveTexture__wrapper(p0) { - p0 = p0|0; _emscripten_glClientActiveTexture(p0|0); -} -function _emscripten_glBindVertexArray__wrapper(p0) { - p0 = p0|0; _emscripten_glBindVertexArray(p0|0); -} -function _emscripten_glMatrixMode__wrapper(p0) { - p0 = p0|0; _emscripten_glMatrixMode(p0|0); -} -function _emscripten_glLoadMatrixf__wrapper(p0) { - p0 = p0|0; _emscripten_glLoadMatrixf(p0|0); -} -function _emscripten_glEnableVertexAttribArray__wrapper(p0) { - p0 = p0|0; _emscripten_glEnableVertexAttribArray(p0|0); -} -function _emscripten_glDisableVertexAttribArray__wrapper(p0) { - p0 = p0|0; _emscripten_glDisableVertexAttribArray(p0|0); -} -function _emscripten_glDepthFunc__wrapper(p0) { - p0 = p0|0; _emscripten_glDepthFunc(p0|0); -} -function _emscripten_glEnable__wrapper(p0) { - p0 = p0|0; _emscripten_glEnable(p0|0); -} -function _emscripten_glDisable__wrapper(p0) { - p0 = p0|0; _emscripten_glDisable(p0|0); -} -function _emscripten_glFrontFace__wrapper(p0) { - p0 = p0|0; _emscripten_glFrontFace(p0|0); -} -function _emscripten_glCullFace__wrapper(p0) { - p0 = p0|0; _emscripten_glCullFace(p0|0); -} -function _emscripten_glClear__wrapper(p0) { - p0 = p0|0; _emscripten_glClear(p0|0); -} -function _emscripten_glClearStencil__wrapper(p0) { - p0 = p0|0; _emscripten_glClearStencil(p0|0); -} -function _emscripten_glDepthMask__wrapper(p0) { - p0 = p0|0; _emscripten_glDepthMask(p0|0); -} -function _emscripten_glStencilMask__wrapper(p0) { - p0 = p0|0; _emscripten_glStencilMask(p0|0); -} -function _emscripten_glGenerateMipmap__wrapper(p0) { - p0 = p0|0; _emscripten_glGenerateMipmap(p0|0); -} -function _emscripten_glActiveTexture__wrapper(p0) { - p0 = p0|0; _emscripten_glActiveTexture(p0|0); -} -function _emscripten_glBlendEquation__wrapper(p0) { - p0 = p0|0; _emscripten_glBlendEquation(p0|0); -} -function b4(p0,p1) { - p0 = p0|0;p1 = p1|0; nullFunc_vii(4); -} -function _emscripten_glPixelStorei__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glPixelStorei(p0|0,p1|0); -} -function _emscripten_glGetIntegerv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetIntegerv(p0|0,p1|0); -} -function _emscripten_glGetFloatv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetFloatv(p0|0,p1|0); -} -function _emscripten_glGetBooleanv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetBooleanv(p0|0,p1|0); -} -function _emscripten_glGenTextures__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenTextures(p0|0,p1|0); -} -function _emscripten_glDeleteTextures__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteTextures(p0|0,p1|0); -} -function _emscripten_glBindTexture__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindTexture(p0|0,p1|0); -} -function _emscripten_glGenBuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenBuffers(p0|0,p1|0); -} -function _emscripten_glDeleteBuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteBuffers(p0|0,p1|0); -} -function _emscripten_glGenRenderbuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenRenderbuffers(p0|0,p1|0); -} -function _emscripten_glDeleteRenderbuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteRenderbuffers(p0|0,p1|0); -} -function _emscripten_glBindRenderbuffer__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindRenderbuffer(p0|0,p1|0); -} -function _emscripten_glUniform1i__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glUniform1i(p0|0,p1|0); -} -function _emscripten_glBindBuffer__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindBuffer(p0|0,p1|0); -} -function _emscripten_glVertexAttrib1fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib1fv(p0|0,p1|0); -} -function _emscripten_glVertexAttrib2fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib2fv(p0|0,p1|0); -} -function _emscripten_glVertexAttrib3fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib3fv(p0|0,p1|0); -} -function _emscripten_glVertexAttrib4fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib4fv(p0|0,p1|0); -} -function _emscripten_glAttachShader__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glAttachShader(p0|0,p1|0); -} -function _emscripten_glDetachShader__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDetachShader(p0|0,p1|0); -} -function _emscripten_glBindFramebuffer__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindFramebuffer(p0|0,p1|0); -} -function _emscripten_glGenFramebuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenFramebuffers(p0|0,p1|0); -} -function _emscripten_glDeleteFramebuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteFramebuffers(p0|0,p1|0); -} -function _emscripten_glBindProgramARB__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindProgramARB(p0|0,p1|0); -} -function _emscripten_glGetPointerv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetPointerv(p0|0,p1|0); -} -function _emscripten_glGenVertexArrays__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenVertexArrays(p0|0,p1|0); -} -function _emscripten_glDeleteVertexArrays__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteVertexArrays(p0|0,p1|0); -} -function _emscripten_glVertexAttribDivisor__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttribDivisor(p0|0,p1|0); -} -function _emscripten_glBlendFunc__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBlendFunc(p0|0,p1|0); -} -function _emscripten_glBlendEquationSeparate__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBlendEquationSeparate(p0|0,p1|0); -} -function _emscripten_glStencilMaskSeparate__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glStencilMaskSeparate(p0|0,p1|0); -} -function _emscripten_glHint__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glHint(p0|0,p1|0); -} -function _emscripten_glDrawBuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDrawBuffers(p0|0,p1|0); -} -function b5(p0) { - p0 = p0|0; nullFunc_ii(5);return 0; -} -function _emscripten_glGetString__wrapper(p0) { - p0 = p0|0; return _emscripten_glGetString(p0|0)|0; -} -function _emscripten_glIsTexture__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsTexture(p0|0)|0; -} -function _emscripten_glIsBuffer__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsBuffer(p0|0)|0; -} -function _emscripten_glIsRenderbuffer__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsRenderbuffer(p0|0)|0; -} -function _emscripten_glCreateShader__wrapper(p0) { - p0 = p0|0; return _emscripten_glCreateShader(p0|0)|0; -} -function _emscripten_glIsShader__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsShader(p0|0)|0; -} -function _emscripten_glIsProgram__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsProgram(p0|0)|0; -} -function _emscripten_glIsFramebuffer__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsFramebuffer(p0|0)|0; -} -function _emscripten_glCheckFramebufferStatus__wrapper(p0) { - p0 = p0|0; return _emscripten_glCheckFramebufferStatus(p0|0)|0; -} -function _emscripten_glIsEnabled__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsEnabled(p0|0)|0; -} -function b6(p0,p1,p2,p3) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_viddd(6); -} -function _emscripten_glUniform3f__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glUniform3f(p0|0,+p1,+p2,+p3); -} -function _emscripten_glVertexAttrib3f__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glVertexAttrib3f(p0|0,+p1,+p2,+p3); -} -function b7(p0,p1,p2) { - p0 = p0|0;p1 = +p1;p2 = +p2; nullFunc_vidd(7); -} -function _emscripten_glUniform2f__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glUniform2f(p0|0,+p1,+p2); -} -function _emscripten_glVertexAttrib2f__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glVertexAttrib2f(p0|0,+p1,+p2); -} -function b8(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(8);return 0; -} -function b9(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; nullFunc_viiiiiiii(9); -} -function _emscripten_glCompressedTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCompressedTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); -} -function _emscripten_glCopyTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); -} -function _emscripten_glCopyTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); -} -function b10(p0,p1,p2,p3,p4,p5) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; nullFunc_viiiiii(10); -} -function _emscripten_glDrawRangeElements__wrapper(p0,p1,p2,p3,p4,p5) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glDrawRangeElements(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); -} -function _emscripten_glVertexAttribPointer__wrapper(p0,p1,p2,p3,p4,p5) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glVertexAttribPointer(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); -} -function b11(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(11); -} -function _emscripten_glGetTexParameterfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameterfv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetTexParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glTexParameterfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameterfv(p0|0,p1|0,p2|0); -} -function _emscripten_glTexParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetBufferParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetBufferParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetRenderbufferParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetRenderbufferParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetUniformfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformfv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetUniformiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformiv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetVertexAttribfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribfv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetVertexAttribiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribiv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetVertexAttribPointerv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribPointerv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform2i__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2i(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform1iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform2iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform3iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform4iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform1fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1fv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform2fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2fv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform3fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3fv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform4fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4fv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetShaderiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetShaderiv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetProgramiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetProgramiv(p0|0,p1|0,p2|0); -} -function _emscripten_glBindAttribLocation__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glBindAttribLocation(p0|0,p1|0,p2|0); -} -function _emscripten_glGetObjectParameterivARB__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetObjectParameterivARB(p0|0,p1|0,p2|0); -} -function _emscripten_glNormalPointer__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glNormalPointer(p0|0,p1|0,p2|0); -} -function _emscripten_glDrawArrays__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glDrawArrays(p0|0,p1|0,p2|0); -} -function _emscripten_glTexParameteri__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteri(p0|0,p1|0,p2|0); -} -function _emscripten_glStencilFunc__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilFunc(p0|0,p1|0,p2|0); -} -function _emscripten_glStencilOp__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilOp(p0|0,p1|0,p2|0); -} -function b12(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; nullFunc_vidddd(12); -} -function _emscripten_glUniform4f__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glUniform4f(p0|0,+p1,+p2,+p3,+p4); -} -function _emscripten_glVertexAttrib4f__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glVertexAttrib4f(p0|0,+p1,+p2,+p3,+p4); -} -function b13(p0,p1) { - p0 = +p0;p1 = p1|0; nullFunc_vdi(13); -} -function _emscripten_glSampleCoverage__wrapper(p0,p1) { - p0 = +p0;p1 = p1|0; _emscripten_glSampleCoverage(+p0,p1|0); -} -function b14(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; nullFunc_viiiiiii(14); -} -function _emscripten_glReadPixels__wrapper(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glReadPixels(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); -} -function _emscripten_glGetActiveUniform__wrapper(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveUniform(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); -} -function _emscripten_glGetActiveAttrib__wrapper(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveAttrib(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); -} -function b15(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; nullFunc_viiiiiiiii(15); -} -function _emscripten_glCompressedTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glCompressedTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); -} -function _emscripten_glTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); -} -function _emscripten_glTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); -} -function b16(p0,p1) { - p0 = p0|0;p1 = p1|0; nullFunc_iii(16);return 0; -} -function _emscripten_glGetUniformLocation__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; return _emscripten_glGetUniformLocation(p0|0,p1|0)|0; -} -function _emscripten_glGetAttribLocation__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; return _emscripten_glGetAttribLocation(p0|0,p1|0)|0; -} -function b17() { - ; nullFunc_i(17);return 0; -} -function _emscripten_glCreateProgram__wrapper() { - ; return _emscripten_glCreateProgram()|0; -} -function _emscripten_glGetError__wrapper() { - ; return _emscripten_glGetError()|0; -} -function b18(p0,p1,p2,p3,p4,p5) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; nullFunc_vdddddd(18); -} -function _emscripten_glFrustum__wrapper(p0,p1,p2,p3,p4,p5) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; _emscripten_glFrustum(+p0,+p1,+p2,+p3,+p4,+p5); -} -function b19(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_vdddd(19); -} -function _emscripten_glRotatef__wrapper(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glRotatef(+p0,+p1,+p2,+p3); -} -function _emscripten_glClearColor__wrapper(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glClearColor(+p0,+p1,+p2,+p3); -} -function _emscripten_glBlendColor__wrapper(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glBlendColor(+p0,+p1,+p2,+p3); -} -function b20(p0,p1) { - p0 = +p0;p1 = +p1; nullFunc_vdd(20); -} -function _emscripten_glDepthRange__wrapper(p0,p1) { - p0 = +p0;p1 = +p1; _emscripten_glDepthRange(+p0,+p1); -} -function _emscripten_glDepthRangef__wrapper(p0,p1) { - p0 = +p0;p1 = +p1; _emscripten_glDepthRangef(+p0,+p1); -} -function _emscripten_glPolygonOffset__wrapper(p0,p1) { - p0 = +p0;p1 = +p1; _emscripten_glPolygonOffset(+p0,+p1); -} -function b21() { - ; nullFunc_v(21); -} -function _emscripten_glLoadIdentity__wrapper() { - ; _emscripten_glLoadIdentity(); -} -function _emscripten_glReleaseShaderCompiler__wrapper() { - ; _emscripten_glReleaseShaderCompiler(); -} -function _emscripten_glFinish__wrapper() { - ; _emscripten_glFinish(); -} -function _emscripten_glFlush__wrapper() { - ; _emscripten_glFlush(); -} -function b22(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = +p2; nullFunc_viid(22); -} -function _emscripten_glTexParameterf__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = +p2; _emscripten_glTexParameterf(p0|0,p1|0,+p2); -} -function b23(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(23); -} -function _emscripten_glBufferData__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferData(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glBufferSubData__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferSubData(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniform3i__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniform3i(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniformMatrix2fv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix2fv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniformMatrix3fv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix3fv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniformMatrix4fv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix4fv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetAttachedShaders__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetAttachedShaders(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glShaderSource__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glShaderSource(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetShaderSource__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderSource(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetShaderInfoLog__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderInfoLog(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetShaderPrecisionFormat__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderPrecisionFormat(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetProgramInfoLog__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetProgramInfoLog(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glFramebufferRenderbuffer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glFramebufferRenderbuffer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetFramebufferAttachmentParameteriv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetFramebufferAttachmentParameteriv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetInfoLogARB__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetInfoLogARB(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glVertexPointer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glVertexPointer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glTexCoordPointer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glTexCoordPointer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glColorPointer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorPointer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glDrawElements__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawElements(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glDrawArraysInstanced__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawArraysInstanced(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glViewport__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glViewport(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glScissor__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glScissor(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glColorMask__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorMask(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glRenderbufferStorage__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glRenderbufferStorage(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glBlendFuncSeparate__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBlendFuncSeparate(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glStencilFuncSeparate__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilFuncSeparate(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glStencilOpSeparate__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilOpSeparate(p0|0,p1|0,p2|0,p3|0); -} - -// EMSCRIPTEN_END_FUNCS -var FUNCTION_TABLE_viiiii = [b0,_KeyCallback,_emscripten_glUniform4i__wrapper,_emscripten_glFramebufferTexture2D__wrapper,_emscripten_glShaderBinary__wrapper,_emscripten_glDrawElementsInstanced__wrapper,b0,b0]; -var FUNCTION_TABLE_vd = [b1,_emscripten_glClearDepth__wrapper,_emscripten_glClearDepthf__wrapper,_emscripten_glLineWidth__wrapper]; -var FUNCTION_TABLE_vid = [b2,_emscripten_glUniform1f__wrapper,_emscripten_glVertexAttrib1f__wrapper,b2]; -var FUNCTION_TABLE_vi = [b3,_emscripten_glDeleteShader__wrapper,_emscripten_glCompileShader__wrapper,_emscripten_glDeleteProgram__wrapper,_emscripten_glLinkProgram__wrapper,_emscripten_glUseProgram__wrapper,_emscripten_glValidateProgram__wrapper,_emscripten_glDeleteObjectARB__wrapper,_emscripten_glEnableClientState__wrapper,_emscripten_glClientActiveTexture__wrapper,_emscripten_glBindVertexArray__wrapper,_emscripten_glMatrixMode__wrapper,_emscripten_glLoadMatrixf__wrapper,_emscripten_glEnableVertexAttribArray__wrapper,_emscripten_glDisableVertexAttribArray__wrapper,_emscripten_glDepthFunc__wrapper,_emscripten_glEnable__wrapper,_emscripten_glDisable__wrapper,_emscripten_glFrontFace__wrapper,_emscripten_glCullFace__wrapper,_emscripten_glClear__wrapper,_emscripten_glClearStencil__wrapper,_emscripten_glDepthMask__wrapper,_emscripten_glStencilMask__wrapper,_emscripten_glGenerateMipmap__wrapper,_emscripten_glActiveTexture__wrapper,_emscripten_glBlendEquation__wrapper,b3,b3 -,b3,b3,b3]; -var FUNCTION_TABLE_vii = [b4,_ErrorCallback,_CursorEnterCallback,_CharCallback,_WindowIconifyCallback,_emscripten_glPixelStorei__wrapper,_emscripten_glGetIntegerv__wrapper,_emscripten_glGetFloatv__wrapper,_emscripten_glGetBooleanv__wrapper,_emscripten_glGenTextures__wrapper,_emscripten_glDeleteTextures__wrapper,_emscripten_glBindTexture__wrapper,_emscripten_glGenBuffers__wrapper,_emscripten_glDeleteBuffers__wrapper,_emscripten_glGenRenderbuffers__wrapper,_emscripten_glDeleteRenderbuffers__wrapper,_emscripten_glBindRenderbuffer__wrapper,_emscripten_glUniform1i__wrapper,_emscripten_glBindBuffer__wrapper,_emscripten_glVertexAttrib1fv__wrapper,_emscripten_glVertexAttrib2fv__wrapper,_emscripten_glVertexAttrib3fv__wrapper,_emscripten_glVertexAttrib4fv__wrapper,_emscripten_glAttachShader__wrapper,_emscripten_glDetachShader__wrapper,_emscripten_glBindFramebuffer__wrapper,_emscripten_glGenFramebuffers__wrapper,_emscripten_glDeleteFramebuffers__wrapper,_emscripten_glBindProgramARB__wrapper,_emscripten_glGetPointerv__wrapper,_emscripten_glGenVertexArrays__wrapper,_emscripten_glDeleteVertexArrays__wrapper,_emscripten_glVertexAttribDivisor__wrapper,_emscripten_glBlendFunc__wrapper,_emscripten_glBlendEquationSeparate__wrapper,_emscripten_glStencilMaskSeparate__wrapper,_emscripten_glHint__wrapper,_emscripten_glDrawBuffers__wrapper,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4]; -var FUNCTION_TABLE_ii = [b5,___stdio_close,_emscripten_glGetString__wrapper,_emscripten_glIsTexture__wrapper,_emscripten_glIsBuffer__wrapper,_emscripten_glIsRenderbuffer__wrapper,_emscripten_glCreateShader__wrapper,_emscripten_glIsShader__wrapper,_emscripten_glIsProgram__wrapper,_emscripten_glIsFramebuffer__wrapper,_emscripten_glCheckFramebufferStatus__wrapper,_emscripten_glIsEnabled__wrapper,b5,b5,b5,b5]; -var FUNCTION_TABLE_viddd = [b6,_emscripten_glUniform3f__wrapper,_emscripten_glVertexAttrib3f__wrapper,b6]; -var FUNCTION_TABLE_vidd = [b7,_MouseCursorPosCallback,_ScrollCallback,_emscripten_glUniform2f__wrapper,_emscripten_glVertexAttrib2f__wrapper,b7,b7,b7]; -var FUNCTION_TABLE_iiii = [b8,___stdout_write,___stdio_seek,_sn_write,_EmscriptenFullscreenChangeCallback,_EmscriptenKeyboardCallback,_EmscriptenMouseCallback,_EmscriptenTouchCallback,_EmscriptenGamepadCallback,___stdio_write,b8,b8,b8,b8,b8,b8]; -var FUNCTION_TABLE_viiiiiiii = [b9,_emscripten_glCompressedTexImage2D__wrapper,_emscripten_glCopyTexImage2D__wrapper,_emscripten_glCopyTexSubImage2D__wrapper]; -var FUNCTION_TABLE_viiiiii = [b10,_emscripten_glDrawRangeElements__wrapper,_emscripten_glVertexAttribPointer__wrapper,b10]; -var FUNCTION_TABLE_viii = [b11,_WindowSizeCallback,_emscripten_glGetTexParameterfv__wrapper,_emscripten_glGetTexParameteriv__wrapper,_emscripten_glTexParameterfv__wrapper,_emscripten_glTexParameteriv__wrapper,_emscripten_glGetBufferParameteriv__wrapper,_emscripten_glGetRenderbufferParameteriv__wrapper,_emscripten_glGetUniformfv__wrapper,_emscripten_glGetUniformiv__wrapper,_emscripten_glGetVertexAttribfv__wrapper,_emscripten_glGetVertexAttribiv__wrapper,_emscripten_glGetVertexAttribPointerv__wrapper,_emscripten_glUniform2i__wrapper,_emscripten_glUniform1iv__wrapper,_emscripten_glUniform2iv__wrapper,_emscripten_glUniform3iv__wrapper,_emscripten_glUniform4iv__wrapper,_emscripten_glUniform1fv__wrapper,_emscripten_glUniform2fv__wrapper,_emscripten_glUniform3fv__wrapper,_emscripten_glUniform4fv__wrapper,_emscripten_glGetShaderiv__wrapper,_emscripten_glGetProgramiv__wrapper,_emscripten_glBindAttribLocation__wrapper,_emscripten_glGetObjectParameterivARB__wrapper,_emscripten_glNormalPointer__wrapper,_emscripten_glDrawArrays__wrapper,_emscripten_glTexParameteri__wrapper,_emscripten_glStencilFunc__wrapper,_emscripten_glStencilOp__wrapper,b11]; -var FUNCTION_TABLE_vidddd = [b12,_emscripten_glUniform4f__wrapper,_emscripten_glVertexAttrib4f__wrapper,b12]; -var FUNCTION_TABLE_vdi = [b13,_emscripten_glSampleCoverage__wrapper]; -var FUNCTION_TABLE_viiiiiii = [b14,_emscripten_glReadPixels__wrapper,_emscripten_glGetActiveUniform__wrapper,_emscripten_glGetActiveAttrib__wrapper]; -var FUNCTION_TABLE_viiiiiiiii = [b15,_emscripten_glCompressedTexSubImage2D__wrapper,_emscripten_glTexImage2D__wrapper,_emscripten_glTexSubImage2D__wrapper]; -var FUNCTION_TABLE_iii = [b16,_emscripten_glGetUniformLocation__wrapper,_emscripten_glGetAttribLocation__wrapper,b16]; -var FUNCTION_TABLE_i = [b17,_emscripten_glCreateProgram__wrapper,_emscripten_glGetError__wrapper,b17]; -var FUNCTION_TABLE_vdddddd = [b18,_emscripten_glFrustum__wrapper]; -var FUNCTION_TABLE_vdddd = [b19,_emscripten_glRotatef__wrapper,_emscripten_glClearColor__wrapper,_emscripten_glBlendColor__wrapper]; -var FUNCTION_TABLE_vdd = [b20,_emscripten_glDepthRange__wrapper,_emscripten_glDepthRangef__wrapper,_emscripten_glPolygonOffset__wrapper]; -var FUNCTION_TABLE_v = [b21,_UpdateDrawFrame,_emscripten_glLoadIdentity__wrapper,_emscripten_glReleaseShaderCompiler__wrapper,_emscripten_glFinish__wrapper,_emscripten_glFlush__wrapper,b21,b21]; -var FUNCTION_TABLE_viid = [b22,_emscripten_glTexParameterf__wrapper]; -var FUNCTION_TABLE_viiii = [b23,_MouseButtonCallback,_emscripten_glBufferData__wrapper,_emscripten_glBufferSubData__wrapper,_emscripten_glUniform3i__wrapper,_emscripten_glUniformMatrix2fv__wrapper,_emscripten_glUniformMatrix3fv__wrapper,_emscripten_glUniformMatrix4fv__wrapper,_emscripten_glGetAttachedShaders__wrapper,_emscripten_glShaderSource__wrapper,_emscripten_glGetShaderSource__wrapper,_emscripten_glGetShaderInfoLog__wrapper,_emscripten_glGetShaderPrecisionFormat__wrapper,_emscripten_glGetProgramInfoLog__wrapper,_emscripten_glFramebufferRenderbuffer__wrapper,_emscripten_glGetFramebufferAttachmentParameteriv__wrapper,_emscripten_glGetInfoLogARB__wrapper,_emscripten_glVertexPointer__wrapper,_emscripten_glTexCoordPointer__wrapper,_emscripten_glColorPointer__wrapper,_emscripten_glDrawElements__wrapper,_emscripten_glDrawArraysInstanced__wrapper,_emscripten_glViewport__wrapper,_emscripten_glScissor__wrapper,_emscripten_glColorMask__wrapper,_emscripten_glRenderbufferStorage__wrapper,_emscripten_glBlendFuncSeparate__wrapper,_emscripten_glStencilFuncSeparate__wrapper,_emscripten_glStencilOpSeparate__wrapper,b23,b23,b23]; - - return { _llvm_bswap_i32: _llvm_bswap_i32, _roundf: _roundf, _main: _main, dynCall_i: dynCall_i, stackSave: stackSave, _i64Subtract: _i64Subtract, ___udivdi3: ___udivdi3, dynCall_vidddd: dynCall_vidddd, setThrew: setThrew, dynCall_viii: dynCall_viii, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, dynCall_iii: dynCall_iii, _memset: _memset, _sbrk: _sbrk, _memcpy: _memcpy, stackAlloc: stackAlloc, dynCall_vd: dynCall_vd, dynCall_vii: dynCall_vii, ___uremdi3: ___uremdi3, dynCall_vid: dynCall_vid, dynCall_vi: dynCall_vi, dynCall_viiiiiii: dynCall_viiiiiii, getTempRet0: getTempRet0, setTempRet0: setTempRet0, _i64Add: _i64Add, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_iiii: dynCall_iiii, _emscripten_get_global_libc: _emscripten_get_global_libc, dynCall_viid: dynCall_viid, dynCall_ii: dynCall_ii, _emscripten_GetProcAddress: _emscripten_GetProcAddress, dynCall_viiii: dynCall_viiii, ___errno_location: ___errno_location, dynCall_viiiii: dynCall_viiiii, dynCall_viddd: dynCall_viddd, dynCall_vidd: dynCall_vidd, _free: _free, runPostSets: runPostSets, dynCall_viiiiii: dynCall_viiiiii, establishStackSpace: establishStackSpace, _memmove: _memmove, _strstr: _strstr, stackRestore: stackRestore, _malloc: _malloc, dynCall_vdi: dynCall_vdi, dynCall_viiiiiiiii: dynCall_viiiiiiiii, dynCall_vdd: dynCall_vdd, dynCall_v: dynCall_v, dynCall_vdddddd: dynCall_vdddddd, dynCall_vdddd: dynCall_vdddd }; -}) -// EMSCRIPTEN_END_ASM -(Module.asmGlobalArg, Module.asmLibraryArg, buffer); - -var real__llvm_bswap_i32 = asm["_llvm_bswap_i32"]; asm["_llvm_bswap_i32"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__llvm_bswap_i32.apply(null, arguments); -}; - -var real__roundf = asm["_roundf"]; asm["_roundf"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__roundf.apply(null, arguments); -}; - -var real__main = asm["_main"]; asm["_main"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__main.apply(null, arguments); -}; - -var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackSave.apply(null, arguments); -}; - -var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_getTempRet0.apply(null, arguments); -}; - -var real____udivdi3 = asm["___udivdi3"]; asm["___udivdi3"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____udivdi3.apply(null, arguments); -}; - -var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_setThrew.apply(null, arguments); -}; - -var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__bitshift64Lshr.apply(null, arguments); -}; - -var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__bitshift64Shl.apply(null, arguments); -}; - -var real__fflush = asm["_fflush"]; asm["_fflush"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__fflush.apply(null, arguments); -}; - -var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__sbrk.apply(null, arguments); -}; - -var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackAlloc.apply(null, arguments); -}; - -var real____uremdi3 = asm["___uremdi3"]; asm["___uremdi3"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____uremdi3.apply(null, arguments); -}; - -var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__i64Subtract.apply(null, arguments); -}; - -var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_setTempRet0.apply(null, arguments); -}; - -var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__i64Add.apply(null, arguments); -}; - -var real__emscripten_get_global_libc = asm["_emscripten_get_global_libc"]; asm["_emscripten_get_global_libc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__emscripten_get_global_libc.apply(null, arguments); -}; - -var real__emscripten_GetProcAddress = asm["_emscripten_GetProcAddress"]; asm["_emscripten_GetProcAddress"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__emscripten_GetProcAddress.apply(null, arguments); -}; - -var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____errno_location.apply(null, arguments); -}; - -var real__free = asm["_free"]; asm["_free"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__free.apply(null, arguments); -}; - -var real_establishStackSpace = asm["establishStackSpace"]; asm["establishStackSpace"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_establishStackSpace.apply(null, arguments); -}; - -var real__memmove = asm["_memmove"]; asm["_memmove"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__memmove.apply(null, arguments); -}; - -var real__strstr = asm["_strstr"]; asm["_strstr"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__strstr.apply(null, arguments); -}; - -var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackRestore.apply(null, arguments); -}; - -var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__malloc.apply(null, arguments); -}; -var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"]; -var _roundf = Module["_roundf"] = asm["_roundf"]; -var _main = Module["_main"] = asm["_main"]; -var stackSave = Module["stackSave"] = asm["stackSave"]; -var getTempRet0 = Module["getTempRet0"] = asm["getTempRet0"]; -var ___udivdi3 = Module["___udivdi3"] = asm["___udivdi3"]; -var setThrew = Module["setThrew"] = asm["setThrew"]; -var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; -var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; -var _fflush = Module["_fflush"] = asm["_fflush"]; -var _memset = Module["_memset"] = asm["_memset"]; -var _sbrk = Module["_sbrk"] = asm["_sbrk"]; -var _memcpy = Module["_memcpy"] = asm["_memcpy"]; -var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"]; -var ___uremdi3 = Module["___uremdi3"] = asm["___uremdi3"]; -var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; -var setTempRet0 = Module["setTempRet0"] = asm["setTempRet0"]; -var _i64Add = Module["_i64Add"] = asm["_i64Add"]; -var _emscripten_get_global_libc = Module["_emscripten_get_global_libc"] = asm["_emscripten_get_global_libc"]; -var _emscripten_GetProcAddress = Module["_emscripten_GetProcAddress"] = asm["_emscripten_GetProcAddress"]; -var ___errno_location = Module["___errno_location"] = asm["___errno_location"]; -var _free = Module["_free"] = asm["_free"]; -var runPostSets = Module["runPostSets"] = asm["runPostSets"]; -var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"]; -var _memmove = Module["_memmove"] = asm["_memmove"]; -var _strstr = Module["_strstr"] = asm["_strstr"]; -var stackRestore = Module["stackRestore"] = asm["stackRestore"]; -var _malloc = Module["_malloc"] = asm["_malloc"]; -var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; -var dynCall_vd = Module["dynCall_vd"] = asm["dynCall_vd"]; -var dynCall_vid = Module["dynCall_vid"] = asm["dynCall_vid"]; -var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; -var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; -var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; -var dynCall_viddd = Module["dynCall_viddd"] = asm["dynCall_viddd"]; -var dynCall_vidd = Module["dynCall_vidd"] = asm["dynCall_vidd"]; -var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; -var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = asm["dynCall_viiiiiiii"]; -var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; -var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; -var dynCall_vidddd = Module["dynCall_vidddd"] = asm["dynCall_vidddd"]; -var dynCall_vdi = Module["dynCall_vdi"] = asm["dynCall_vdi"]; -var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = asm["dynCall_viiiiiii"]; -var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = asm["dynCall_viiiiiiiii"]; -var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; -var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; -var dynCall_vdddddd = Module["dynCall_vdddddd"] = asm["dynCall_vdddddd"]; -var dynCall_vdddd = Module["dynCall_vdddd"] = asm["dynCall_vdddd"]; -var dynCall_vdd = Module["dynCall_vdd"] = asm["dynCall_vdd"]; -var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; -var dynCall_viid = Module["dynCall_viid"] = asm["dynCall_viid"]; -var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; -; -Runtime.stackAlloc = Module['stackAlloc']; -Runtime.stackSave = Module['stackSave']; -Runtime.stackRestore = Module['stackRestore']; -Runtime.establishStackSpace = Module['establishStackSpace']; -Runtime.setTempRet0 = Module['setTempRet0']; -Runtime.getTempRet0 = Module['getTempRet0']; - - -// === Auto-generated postamble setup entry stuff === - -Module['asm'] = asm; - - - - - - -/** - * @constructor - * @extends {Error} - */ -function ExitStatus(status) { - this.name = "ExitStatus"; - this.message = "Program terminated with exit(" + status + ")"; - this.status = status; -}; -ExitStatus.prototype = new Error(); -ExitStatus.prototype.constructor = ExitStatus; - -var initialStackTop; -var preloadStartTime = null; -var calledMain = false; - -dependenciesFulfilled = function runCaller() { - // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) - if (!Module['calledRun']) run(); - if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled -} - -Module['callMain'] = Module.callMain = function callMain(args) { - assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)'); - assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); - - args = args || []; - - ensureInitRuntime(); - - var argc = args.length+1; - function pad() { - for (var i = 0; i < 4-1; i++) { - argv.push(0); - } - } - var argv = [allocate(intArrayFromString(Module['thisProgram']), 'i8', ALLOC_NORMAL) ]; - pad(); - for (var i = 0; i < argc-1; i = i + 1) { - argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL)); - pad(); - } - argv.push(0); - argv = allocate(argv, 'i32', ALLOC_NORMAL); - - - try { - - var ret = Module['_main'](argc, argv, 0); - - - // if we're not running an evented main loop, it's time to exit - exit(ret, /* implicit = */ true); - } - catch(e) { - if (e instanceof ExitStatus) { - // exit() throws this once it's done to make sure execution - // has been stopped completely - return; - } else if (e == 'SimulateInfiniteLoop') { - // running an evented main loop, don't immediately exit - Module['noExitRuntime'] = true; - return; - } else { - var toLog = e; - if (e && typeof e === 'object' && e.stack) { - toLog = [e, e.stack]; - } - Module.printErr('exception thrown: ' + toLog); - Module['quit'](1, e); - } - } finally { - calledMain = true; - } -} - - - - -/** @type {function(Array=)} */ -function run(args) { - args = args || Module['arguments']; - - if (preloadStartTime === null) preloadStartTime = Date.now(); - - if (runDependencies > 0) { - return; - } - - writeStackCookie(); - - preRun(); - - if (runDependencies > 0) return; // a preRun added a dependency, run will be called later - if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame - - function doRun() { - if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening - Module['calledRun'] = true; - - if (ABORT) return; - - ensureInitRuntime(); - - preMain(); - - if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) { - Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms'); - } - - if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); - - if (Module['_main'] && shouldRunNow) Module['callMain'](args); - - postRun(); - } - - if (Module['setStatus']) { - Module['setStatus']('Running...'); - setTimeout(function() { - setTimeout(function() { - Module['setStatus'](''); - }, 1); - doRun(); - }, 1); - } else { - doRun(); - } - checkStackCookie(); -} -Module['run'] = Module.run = run; - -function exit(status, implicit) { - if (implicit && Module['noExitRuntime']) { - Module.printErr('exit(' + status + ') implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)'); - return; - } - - if (Module['noExitRuntime']) { - Module.printErr('exit(' + status + ') called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)'); - } else { - - ABORT = true; - EXITSTATUS = status; - STACKTOP = initialStackTop; - - exitRuntime(); - - if (Module['onExit']) Module['onExit'](status); - } - - if (ENVIRONMENT_IS_NODE) { - process['exit'](status); - } - Module['quit'](status, new ExitStatus(status)); -} -Module['exit'] = Module.exit = exit; - -var abortDecorators = []; - -function abort(what) { - if (Module['onAbort']) { - Module['onAbort'](what); - } - - if (what !== undefined) { - Module.print(what); - Module.printErr(what); - what = JSON.stringify(what) - } else { - what = ''; - } - - ABORT = true; - EXITSTATUS = 1; - - var extra = ''; - - var output = 'abort(' + what + ') at ' + stackTrace() + extra; - if (abortDecorators) { - abortDecorators.forEach(function(decorator) { - output = decorator(output, what); - }); - } - throw output; -} -Module['abort'] = Module.abort = abort; - -// {{PRE_RUN_ADDITIONS}} - -if (Module['preInit']) { - if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; - while (Module['preInit'].length > 0) { - Module['preInit'].pop()(); - } -} - -// shouldRunNow refers to calling main(), not run(). -var shouldRunNow = true; -if (Module['noInitialRun']) { - shouldRunNow = false; -} - - -run(); - -// {{POST_RUN_ADDITIONS}} - - - - - -// {{MODULE_ADDITIONS}} - - - diff --git a/examples/web/core/core_mouse_wheel.png b/examples/web/core/core_mouse_wheel.png deleted file mode 100644 index 26a1f24..0000000 Binary files a/examples/web/core/core_mouse_wheel.png and /dev/null differ diff --git a/examples/web/core/core_window_letterbox.png b/examples/web/core/core_window_letterbox.png new file mode 100644 index 0000000..5acf2d7 Binary files /dev/null and b/examples/web/core/core_window_letterbox.png differ diff --git a/examples/web/models/models_first_person_maze.png b/examples/web/models/models_first_person_maze.png new file mode 100644 index 0000000..ed6047e Binary files /dev/null and b/examples/web/models/models_first_person_maze.png differ diff --git a/examples/web/models/models_mesh_picking.png b/examples/web/models/models_mesh_picking.png index 045db58..0972f94 100644 Binary files a/examples/web/models/models_mesh_picking.png and b/examples/web/models/models_mesh_picking.png differ diff --git a/examples/web/models/models_obj_loading.png b/examples/web/models/models_obj_loading.png index 560348b..098aa60 100644 Binary files a/examples/web/models/models_obj_loading.png and b/examples/web/models/models_obj_loading.png differ diff --git a/examples/web/models/models_obj_viewer.png b/examples/web/models/models_obj_viewer.png new file mode 100644 index 0000000..6ac7076 Binary files /dev/null and b/examples/web/models/models_obj_viewer.png differ diff --git a/examples/web/models/models_orthographic_projection.png b/examples/web/models/models_orthographic_projection.png new file mode 100644 index 0000000..2942eee Binary files /dev/null and b/examples/web/models/models_orthographic_projection.png differ diff --git a/examples/web/models/models_rlgl_solar_system.png b/examples/web/models/models_rlgl_solar_system.png new file mode 100644 index 0000000..576510c Binary files /dev/null and b/examples/web/models/models_rlgl_solar_system.png differ diff --git a/examples/web/models/models_skybox.png b/examples/web/models/models_skybox.png index 31694fa..feb0f73 100644 Binary files a/examples/web/models/models_skybox.png and b/examples/web/models/models_skybox.png differ diff --git a/examples/web/others/audio_standalone.c b/examples/web/others/audio_standalone.c deleted file mode 100644 index 3edf889..0000000 --- a/examples/web/others/audio_standalone.c +++ /dev/null @@ -1,123 +0,0 @@ -/******************************************************************************************* -* -* raylib [audio] example - Using audio module as standalone module -* -* NOTE: This example does not require any graphic device, it can run directly on console. -* -* [audio] module requires some external libs: -* OpenAL Soft - Audio device management lib (http://kcat.strangesoft.net/openal.html) -* stb_vorbis - Ogg audio files loading (http://www.nothings.org/stb_vorbis/) -* jar_xm - XM module file loading -* jar_mod - MOD audio file loading -* -* Compile audio module using: -* gcc -c audio.c stb_vorbis.c -Wall -std=c99 -DAUDIO_STANDALONE -* -* Compile example using: -* gcc -o $(NAME_PART).exe $(FILE_NAME) audio.o stb_vorbis.o -lopenal32 -std=c99 -* -* This example has been created using raylib 1.5 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include -#if defined(_WIN32) -#include // Windows only, no stardard library -#endif -#include "audio.h" - -#if defined(__linux__) - -#include -#include -#include -#include - -static int kbhit(void) -{ - struct termios oldt, newt; - int ch; - int oldf; - - tcgetattr(STDIN_FILENO, &oldt); - newt = oldt; - newt.c_lflag &= ~(ICANON | ECHO); - tcsetattr(STDIN_FILENO, TCSANOW, &newt); - oldf = fcntl(STDIN_FILENO, F_GETFL, 0); - fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK); - - ch = getchar(); - - tcsetattr(STDIN_FILENO, TCSANOW, &oldt); - fcntl(STDIN_FILENO, F_SETFL, oldf); - - if(ch != EOF) - { - ungetc(ch, stdin); - return 1; - } - - return 0; -} - -static char getch() -{ - return getchar(); -} - -#endif - -#define KEY_ESCAPE 27 - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - unsigned char key; - - InitAudioDevice(); - - Sound fxWav = LoadSound("resources/audio/weird.wav"); // Load WAV audio file - Sound fxOgg = LoadSound("resources/audio/tanatana.ogg"); // Load OGG audio file - - Music music = LoadMusicStream("resources/audio/guitar_noodling.ogg"); - PlayMusicStream(music); - - printf("\nPress s or d to play sounds...\n"); - //-------------------------------------------------------------------------------------- - - // Main loop - while (key != KEY_ESCAPE) - { - if (kbhit()) key = getch(); - - if (key == 's') - { - PlaySound(fxWav); - key = 0; - } - - if (key == 'd') - { - PlaySound(fxOgg); - key = 0; - } - - UpdateMusicStream(music); - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadSound(fxWav); // Unload sound data - UnloadSound(fxOgg); // Unload sound data - - UnloadMusicStream(music); // Unload music stream data - - CloseAudioDevice(); - //-------------------------------------------------------------------------------------- - - return 0; -} diff --git a/examples/web/others/font_selector.c b/examples/web/others/font_selector.c deleted file mode 100644 index 0984bbd..0000000 --- a/examples/web/others/font_selector.c +++ /dev/null @@ -1,196 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Font selector (adapted for HTML5 platform) -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#if defined(PLATFORM_WEB) - #include -#endif - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -int screenWidth = 800; -int screenHeight = 450; - -SpriteFont fonts[8]; // SpriteFont array - -int currentFont = 0; // Selected font - -Color *colors; -const char (*fontNames)[20]; - -const char text[50] = "THIS is THE FONT you SELECTED!"; - -Vector2 textSize; -Vector2 mousePoint; - -Color btnNextOutColor; // Button color (outside line) -Color btnNextInColor; // Button color (inside) - -int framesCounter = 0; // Useful to count frames button is 'active' = clicked -int positionY = 180; // Text selector and button Y position - -Rectangle btnNextRec; - -//---------------------------------------------------------------------------------- -// Module Functions Declaration -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void); // Update and Draw one frame - -//---------------------------------------------------------------------------------- -// Main Enry Point -//---------------------------------------------------------------------------------- -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - InitWindow(screenWidth, screenHeight, "raylib [text] example - font selector"); - - btnNextOutColor = DARKBLUE; - btnNextInColor = SKYBLUE; - - // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) - fonts[0] = LoadSpriteFont("resources/fonts/alagard.rbmf"); // SpriteFont loading - fonts[1] = LoadSpriteFont("resources/fonts/pixelplay.rbmf"); // SpriteFont loading - fonts[2] = LoadSpriteFont("resources/fonts/mecha.rbmf"); // SpriteFont loading - fonts[3] = LoadSpriteFont("resources/fonts/setback.rbmf"); // SpriteFont loading - fonts[4] = LoadSpriteFont("resources/fonts/romulus.rbmf"); // SpriteFont loading - fonts[5] = LoadSpriteFont("resources/fonts/pixantiqua.rbmf"); // SpriteFont loading - fonts[6] = LoadSpriteFont("resources/fonts/alpha_beta.rbmf"); // SpriteFont loading - fonts[7] = LoadSpriteFont("resources/fonts/jupiter_crash.rbmf"); // SpriteFont loading - - Color tempColors[8] = { MAROON, ORANGE, DARKGREEN, DARKBLUE, DARKPURPLE, LIME, GOLD, RED }; - - colors = tempColors; - - const char tempFontNames[8][20] = { "[0] Alagard", "[1] PixelPlay", "[2] MECHA", "[3] Setback", - "[4] Romulus", "[5] PixAntiqua", "[6] Alpha Beta", "[7] Jupiter Crash" };; - - fontNames = tempFontNames; - - textSize = MeasureTextEx(fonts[currentFont], text, fonts[currentFont].baseSize*3, 1); - - btnNextRec = (Rectangle){ 673, positionY, 109, 44 }; // Button rectangle (useful for collision) - -#if defined(PLATFORM_WEB) - emscripten_set_main_loop(UpdateDrawFrame, 0, 1); -#else - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - UpdateDrawFrame(); - } -#endif - - // De-Initialization - //-------------------------------------------------------------------------------------- - for (int i = 0; i < 8; i++) UnloadSpriteFont(fonts[i]); // SpriteFont(s) unloading - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void) -{ - // Update - //---------------------------------------------------------------------------------- - // Keyboard-based font selection (easy) - if (IsKeyPressed(KEY_RIGHT)) - { - if (currentFont < 7) currentFont++; - } - - if (IsKeyPressed(KEY_LEFT)) - { - if (currentFont > 0) currentFont--; - } - - if (IsKeyPressed('0')) currentFont = 0; - else if (IsKeyPressed('1')) currentFont = 1; - else if (IsKeyPressed('2')) currentFont = 2; - else if (IsKeyPressed('3')) currentFont = 3; - else if (IsKeyPressed('4')) currentFont = 4; - else if (IsKeyPressed('5')) currentFont = 5; - else if (IsKeyPressed('6')) currentFont = 6; - else if (IsKeyPressed('7')) currentFont = 7; - - // Mouse-based font selection (NEXT button logic) - mousePoint = GetMousePosition(); - - if (CheckCollisionPointRec(mousePoint, btnNextRec)) - { - // Mouse hover button logic - if (framesCounter == 0) - { - btnNextOutColor = DARKPURPLE; - btnNextInColor = PURPLE; - } - - if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) - { - framesCounter = 20; // Frames button is 'active' - btnNextOutColor = MAROON; - btnNextInColor = RED; - } - } - else - { - // Mouse not hover button - btnNextOutColor = DARKBLUE; - btnNextInColor = SKYBLUE; - } - - if (framesCounter > 0) framesCounter--; - - if (framesCounter == 1) // We change font on frame 1 - { - currentFont++; - if (currentFont > 7) currentFont = 0; - } - - // Text measurement for better positioning on screen - textSize = MeasureTextEx(fonts[currentFont], text, fonts[currentFont].baseSize*3, 1); - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("font selector - use arroys, button or numbers", 160, 80, 20, DARKGRAY); - DrawLine(120, 120, 680, 120, DARKGRAY); - - DrawRectangle(18, positionY, 644, 44, DARKGRAY); - DrawRectangle(20, positionY + 2, 640, 40, LIGHTGRAY); - DrawText(fontNames[currentFont], 30, positionY + 13, 20, BLACK); - DrawText("< >", 610, positionY + 8, 30, BLACK); - - DrawRectangleRec(btnNextRec, btnNextOutColor); - DrawRectangle(675, positionY + 2, 105, 40, btnNextInColor); - DrawText("NEXT", 700, positionY + 13, 20, btnNextOutColor); - - DrawTextEx(fonts[currentFont], text, (Vector2){ screenWidth/2 - textSize.x/2, - 260 + (70 - textSize.y)/2 }, fonts[currentFont].baseSize*3, - 1, colors[currentFont]); - - EndDrawing(); - //---------------------------------------------------------------------------------- -} \ No newline at end of file diff --git a/examples/web/others/oculus_rift.c b/examples/web/others/oculus_rift.c deleted file mode 100644 index f1b0bd3..0000000 --- a/examples/web/others/oculus_rift.c +++ /dev/null @@ -1,538 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Oculus Rift CV1 -* -* Compile example using: -* gcc -o $(NAME_PART).exe $(FILE_NAME) -I..\src\external -I..\src\external\OculusSDK\LibOVR\Include / -* -L. -L..\src\external\OculusSDK\LibOVR -lLibOVRRT32_1 -lraylib -lglfw3 -lopengl32 -lgdi32 -std=c99 / -* -Wl,-allow-multiple-definition -* -* #define SUPPORT_OCULUS_RIFT_CV1 / RLGL_OCULUS_SUPPORT -* Enable Oculus Rift CV1 functionality -* -* This example has been created using raylib 1.5 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2016 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#include "glad.h" // Required for: OpenGL types and functions declarations -#include "raymath.h" // Required for: Vector3, Quaternion and Matrix functionality - -#include // Required for: memset() -#include // Required for: exit() -#include // required for: vfprintf() -#include // Required for: va_list, va_start(), vfprintf(), va_end() - -#define RLGL_OCULUS_SUPPORT // Enable Oculus Rift code -#if defined(RLGL_OCULUS_SUPPORT) - #include "OVR_CAPI_GL.h" // Oculus SDK for OpenGL -#endif - -//---------------------------------------------------------------------------------- -// Defines and Macros -//---------------------------------------------------------------------------------- -// ... - -//---------------------------------------------------------------------------------- -// Types and Structures Definition -//---------------------------------------------------------------------------------- - -// TraceLog message types -typedef enum { INFO = 0, ERROR, WARNING, DEBUG, OTHER } TraceLogType; - -#if defined(RLGL_OCULUS_SUPPORT) -// Oculus buffer type -typedef struct OculusBuffer { - ovrTextureSwapChain textureChain; - GLuint depthId; - GLuint fboId; - int width; - int height; -} OculusBuffer; - -// Oculus mirror texture type -typedef struct OculusMirror { - ovrMirrorTexture texture; - GLuint fboId; - int width; - int height; -} OculusMirror; - -// Oculus layer type -typedef struct OculusLayer { - ovrViewScaleDesc viewScaleDesc; - ovrLayerEyeFov eyeLayer; // layer 0 - //ovrLayerQuad quadLayer; // TODO: layer 1: '2D' quad for GUI - Matrix eyeProjections[2]; - int width; - int height; -} OculusLayer; -#endif - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -#if defined(RLGL_OCULUS_SUPPORT) -// OVR device variables -static ovrSession session; // Oculus session (pointer to ovrHmdStruct) -static ovrHmdDesc hmdDesc; // Oculus device descriptor parameters -static ovrGraphicsLuid luid; // Oculus locally unique identifier for the program (64 bit) -static OculusLayer layer; // Oculus drawing layer (similar to photoshop) -static OculusBuffer buffer; // Oculus internal buffers (texture chain and fbo) -static OculusMirror mirror; // Oculus mirror texture and fbo -static unsigned int frameIndex = 0; // Oculus frames counter, used to discard frames from chain -#endif - -//---------------------------------------------------------------------------------- -// Module specific Functions Declaration -//---------------------------------------------------------------------------------- -#if defined(RLGL_OCULUS_SUPPORT) -static bool InitOculusDevice(void); // Initialize Oculus device (returns true if success) -static void CloseOculusDevice(void); // Close Oculus device -static void UpdateOculusTracking(Camera *camera); // Update Oculus head position-orientation tracking -static void BeginOculusDrawing(void); // Setup Oculus buffers for drawing -static void EndOculusDrawing(void); // Finish Oculus drawing and blit framebuffer to mirror - -static OculusBuffer LoadOculusBuffer(ovrSession session, int width, int height); // Load Oculus required buffers -static void UnloadOculusBuffer(ovrSession session, OculusBuffer buffer); // Unload texture required buffers -static OculusMirror LoadOculusMirror(ovrSession session, int width, int height); // Load Oculus mirror buffers -static void UnloadOculusMirror(ovrSession session, OculusMirror mirror); // Unload Oculus mirror buffers -static void BlitOculusMirror(ovrSession session, OculusMirror mirror); // Copy Oculus screen buffer to mirror texture -static OculusLayer InitOculusLayer(ovrSession session); // Init Oculus layer (similar to photoshop) -static Matrix FromOvrMatrix(ovrMatrix4f ovrM); // Convert from Oculus ovrMatrix4f struct to raymath Matrix struct -#endif - -static void TraceLog(int msgType, const char *text, ...); - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 1080; - int screenHeight = 600; - - // NOTE: screenWidth/screenHeight should match VR device aspect ratio - - InitWindow(screenWidth, screenHeight, "raylib [core] example - oculus rift"); - - bool vrDeviceReady = InitOculusDevice(); // Init VR device Oculus Rift CV1 - - if (!vrDeviceReady) InitVrSimulator(HMD_OCULUS_RIFT_CV1); // Init VR simulator if device fails - - // Define the camera to look into our 3d world - Camera camera; - camera.position = (Vector3){ 5.0f, 2.0f, 5.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 2.0f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 60.0f; // Camera field-of-view Y - - Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; - - SetCameraMode(camera, CAMERA_FIRST_PERSON); // Set first person camera mode - - SetTargetFPS(90); // Set our game to run at 90 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (!vrDeviceReady) UpdateCamera(&camera); // Update camera (simulator mode) - else UpdateOculusTracking(&camera); // Update camera with device tracking data - - if (IsKeyPressed(KEY_SPACE)) ToggleVrMode(); // Toggle VR mode - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - if (vrDeviceReady) BeginOculusDrawing(); - else BeginVrDrawing(); - - Begin3dMode(camera); - - DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); - DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); - - DrawGrid(40, 1.0f); - - End3dMode(); - - if (vrDeviceReady) EndOculusDrawing(); - else EndVrDrawing(); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - if (vrDeviceReady) CloseOculusDevice(); - else CloseVrSimulator(); - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - -//---------------------------------------------------------------------------------- -// Module specific Functions Definition -//---------------------------------------------------------------------------------- - -#if defined(RLGL_OCULUS_SUPPORT) -// Set internal projection and modelview matrix depending on eyes tracking data -static void SetStereoView(int eye, Matrix matProjection, Matrix matModelView) -{ - Matrix eyeProjection = matProjection; - Matrix eyeModelView = matModelView; - - glViewport(layer.eyeLayer.Viewport[eye].Pos.x, layer.eyeLayer.Viewport[eye].Pos.y, - layer.eyeLayer.Viewport[eye].Size.w, layer.eyeLayer.Viewport[eye].Size.h); - - Quaternion eyeRenderPose = (Quaternion){ layer.eyeLayer.RenderPose[eye].Orientation.x, - layer.eyeLayer.RenderPose[eye].Orientation.y, - layer.eyeLayer.RenderPose[eye].Orientation.z, - layer.eyeLayer.RenderPose[eye].Orientation.w }; - QuaternionInvert(&eyeRenderPose); - Matrix eyeOrientation = QuaternionToMatrix(eyeRenderPose); - Matrix eyeTranslation = MatrixTranslate(-layer.eyeLayer.RenderPose[eye].Position.x, - -layer.eyeLayer.RenderPose[eye].Position.y, - -layer.eyeLayer.RenderPose[eye].Position.z); - - Matrix eyeView = MatrixMultiply(eyeTranslation, eyeOrientation); // Matrix containing eye-head movement - eyeModelView = MatrixMultiply(matModelView, eyeView); // Combine internal camera matrix (modelview) wih eye-head movement - - eyeProjection = layer.eyeProjections[eye]; -} - -// Initialize Oculus device (returns true if success) -static bool InitOculusDevice(void) -{ - bool oculusReady = false; - - ovrResult result = ovr_Initialize(NULL); - - if (OVR_FAILURE(result)) TraceLog(WARNING, "OVR: Could not initialize Oculus device"); - else - { - result = ovr_Create(&session, &luid); - if (OVR_FAILURE(result)) - { - TraceLog(WARNING, "OVR: Could not create Oculus session"); - ovr_Shutdown(); - } - else - { - hmdDesc = ovr_GetHmdDesc(session); - - TraceLog(INFO, "OVR: Product Name: %s", hmdDesc.ProductName); - TraceLog(INFO, "OVR: Manufacturer: %s", hmdDesc.Manufacturer); - TraceLog(INFO, "OVR: Product ID: %i", hmdDesc.ProductId); - TraceLog(INFO, "OVR: Product Type: %i", hmdDesc.Type); - //TraceLog(INFO, "OVR: Serial Number: %s", hmdDesc.SerialNumber); - TraceLog(INFO, "OVR: Resolution: %ix%i", hmdDesc.Resolution.w, hmdDesc.Resolution.h); - - // NOTE: Oculus mirror is set to defined screenWidth and screenHeight... - // ...ideally, it should be (hmdDesc.Resolution.w/2, hmdDesc.Resolution.h/2) - - // Initialize Oculus Buffers - layer = InitOculusLayer(session); - buffer = LoadOculusBuffer(session, layer.width, layer.height); - mirror = LoadOculusMirror(session, hmdDesc.Resolution.w/2, hmdDesc.Resolution.h/2); // NOTE: hardcoded... - layer.eyeLayer.ColorTexture[0] = buffer.textureChain; //SetOculusLayerTexture(eyeLayer, buffer.textureChain); - - // Recenter OVR tracking origin - ovr_RecenterTrackingOrigin(session); - - oculusReady = true; - } - } - - return oculusReady; -} - -// Close Oculus device (and unload buffers) -static void CloseOculusDevice(void) -{ - UnloadOculusMirror(session, mirror); // Unload Oculus mirror buffer - UnloadOculusBuffer(session, buffer); // Unload Oculus texture buffers - - ovr_Destroy(session); // Free Oculus session data - ovr_Shutdown(); // Close Oculus device connection -} - -// Update Oculus head position-orientation tracking -static void UpdateOculusTracking(Camera *camera) -{ - frameIndex++; - - ovrPosef eyePoses[2]; - ovr_GetEyePoses(session, frameIndex, ovrTrue, layer.viewScaleDesc.HmdToEyeOffset, eyePoses, &layer.eyeLayer.SensorSampleTime); - - layer.eyeLayer.RenderPose[0] = eyePoses[0]; - layer.eyeLayer.RenderPose[1] = eyePoses[1]; - - // TODO: Update external camera with eyePoses data (position, orientation) - // NOTE: We can simplify to simple camera if we consider IPD and HMD device configuration again later - // it will be useful for the user to draw, lets say, billboards oriented to camera - - // Get session status information - ovrSessionStatus sessionStatus; - ovr_GetSessionStatus(session, &sessionStatus); - - if (sessionStatus.ShouldQuit) TraceLog(WARNING, "OVR: Session should quit..."); - if (sessionStatus.ShouldRecenter) ovr_RecenterTrackingOrigin(session); - //if (sessionStatus.HmdPresent) // HMD is present. - //if (sessionStatus.DisplayLost) // HMD was unplugged or the display driver was manually disabled or encountered a TDR. - //if (sessionStatus.HmdMounted) // HMD is on the user's head. - //if (sessionStatus.IsVisible) // the game or experience has VR focus and is visible in the HMD. -} - -// Setup Oculus buffers for drawing -static void BeginOculusDrawing(void) -{ - GLuint currentTexId; - int currentIndex; - - ovr_GetTextureSwapChainCurrentIndex(session, buffer.textureChain, ¤tIndex); - ovr_GetTextureSwapChainBufferGL(session, buffer.textureChain, currentIndex, ¤tTexId); - - glBindFramebuffer(GL_DRAW_FRAMEBUFFER, buffer.fboId); - glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, currentTexId, 0); - //glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, buffer.depthId, 0); // Already binded -} - -// Finish Oculus drawing and blit framebuffer to mirror -static void EndOculusDrawing(void) -{ - // Unbind current framebuffer (Oculus buffer) - glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 0, 0); - glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); - - ovr_CommitTextureSwapChain(session, buffer.textureChain); - - ovrLayerHeader *layers = &layer.eyeLayer.Header; - ovr_SubmitFrame(session, frameIndex, &layer.viewScaleDesc, &layers, 1); - - // Blit mirror texture to back buffer - BlitOculusMirror(session, mirror); -} - -// Load Oculus required buffers: texture-swap-chain, fbo, texture-depth -static OculusBuffer LoadOculusBuffer(ovrSession session, int width, int height) -{ - OculusBuffer buffer; - buffer.width = width; - buffer.height = height; - - // Create OVR texture chain - ovrTextureSwapChainDesc desc = {}; - desc.Type = ovrTexture_2D; - desc.ArraySize = 1; - desc.Width = width; - desc.Height = height; - desc.MipLevels = 1; - desc.Format = OVR_FORMAT_R8G8B8A8_UNORM_SRGB; // Requires glEnable(GL_FRAMEBUFFER_SRGB); - desc.SampleCount = 1; - desc.StaticImage = ovrFalse; - - ovrResult result = ovr_CreateTextureSwapChainGL(session, &desc, &buffer.textureChain); - - if (!OVR_SUCCESS(result)) TraceLog(WARNING, "OVR: Failed to create swap textures buffer"); - - int textureCount = 0; - ovr_GetTextureSwapChainLength(session, buffer.textureChain, &textureCount); - - if (!OVR_SUCCESS(result) || !textureCount) TraceLog(WARNING, "OVR: Unable to count swap chain textures"); - - for (int i = 0; i < textureCount; ++i) - { - GLuint chainTexId; - ovr_GetTextureSwapChainBufferGL(session, buffer.textureChain, i, &chainTexId); - glBindTexture(GL_TEXTURE_2D, chainTexId); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - } - - glBindTexture(GL_TEXTURE_2D, 0); - - /* - // Setup framebuffer object (using depth texture) - glGenFramebuffers(1, &buffer.fboId); - glGenTextures(1, &buffer.depthId); - glBindTexture(GL_TEXTURE_2D, buffer.depthId); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT16, buffer.width, buffer.height, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL); - */ - - // Setup framebuffer object (using depth renderbuffer) - glGenFramebuffers(1, &buffer.fboId); - glGenRenderbuffers(1, &buffer.depthId); - glBindFramebuffer(GL_DRAW_FRAMEBUFFER, buffer.fboId); - glBindRenderbuffer(GL_RENDERBUFFER, buffer.depthId); - glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, buffer.width, buffer.height); - glBindRenderbuffer(GL_RENDERBUFFER, 0); - glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, buffer.depthId); - glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); - - return buffer; -} - -// Unload texture required buffers -static void UnloadOculusBuffer(ovrSession session, OculusBuffer buffer) -{ - if (buffer.textureChain) - { - ovr_DestroyTextureSwapChain(session, buffer.textureChain); - buffer.textureChain = NULL; - } - - if (buffer.depthId != 0) glDeleteTextures(1, &buffer.depthId); - if (buffer.fboId != 0) glDeleteFramebuffers(1, &buffer.fboId); -} - -// Load Oculus mirror buffers -static OculusMirror LoadOculusMirror(ovrSession session, int width, int height) -{ - OculusMirror mirror; - mirror.width = width; - mirror.height = height; - - ovrMirrorTextureDesc mirrorDesc; - memset(&mirrorDesc, 0, sizeof(mirrorDesc)); - mirrorDesc.Format = OVR_FORMAT_R8G8B8A8_UNORM_SRGB; - mirrorDesc.Width = mirror.width; - mirrorDesc.Height = mirror.height; - - if (!OVR_SUCCESS(ovr_CreateMirrorTextureGL(session, &mirrorDesc, &mirror.texture))) TraceLog(WARNING, "Could not create mirror texture"); - - glGenFramebuffers(1, &mirror.fboId); - - return mirror; -} - -// Unload Oculus mirror buffers -static void UnloadOculusMirror(ovrSession session, OculusMirror mirror) -{ - if (mirror.fboId != 0) glDeleteFramebuffers(1, &mirror.fboId); - if (mirror.texture) ovr_DestroyMirrorTexture(session, mirror.texture); -} - -// Copy Oculus screen buffer to mirror texture -static void BlitOculusMirror(ovrSession session, OculusMirror mirror) -{ - GLuint mirrorTextureId; - - ovr_GetMirrorTextureBufferGL(session, mirror.texture, &mirrorTextureId); - - glBindFramebuffer(GL_READ_FRAMEBUFFER, mirror.fboId); - glFramebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, mirrorTextureId, 0); -#if defined(GRAPHICS_API_OPENGL_33) - // NOTE: glBlitFramebuffer() requires extension: GL_EXT_framebuffer_blit (not available in OpenGL ES 2.0) - glBlitFramebuffer(0, 0, mirror.width, mirror.height, 0, mirror.height, mirror.width, 0, GL_COLOR_BUFFER_BIT, GL_NEAREST); -#endif - glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); -} - -// Init Oculus layer (similar to photoshop) -static OculusLayer InitOculusLayer(ovrSession session) -{ - OculusLayer layer = { 0 }; - - layer.viewScaleDesc.HmdSpaceToWorldScaleInMeters = 1.0f; - - memset(&layer.eyeLayer, 0, sizeof(ovrLayerEyeFov)); - layer.eyeLayer.Header.Type = ovrLayerType_EyeFov; - layer.eyeLayer.Header.Flags = ovrLayerFlag_TextureOriginAtBottomLeft; - - ovrEyeRenderDesc eyeRenderDescs[2]; - - for (int eye = 0; eye < 2; eye++) - { - eyeRenderDescs[eye] = ovr_GetRenderDesc(session, eye, hmdDesc.DefaultEyeFov[eye]); - ovrMatrix4f ovrPerspectiveProjection = ovrMatrix4f_Projection(eyeRenderDescs[eye].Fov, 0.01f, 10000.0f, ovrProjection_None); //ovrProjection_ClipRangeOpenGL); - layer.eyeProjections[eye] = FromOvrMatrix(ovrPerspectiveProjection); // NOTE: struct ovrMatrix4f { float M[4][4] } --> struct Matrix - - layer.viewScaleDesc.HmdToEyeOffset[eye] = eyeRenderDescs[eye].HmdToEyeOffset; - layer.eyeLayer.Fov[eye] = eyeRenderDescs[eye].Fov; - - ovrSizei eyeSize = ovr_GetFovTextureSize(session, eye, layer.eyeLayer.Fov[eye], 1.0f); - layer.eyeLayer.Viewport[eye].Size = eyeSize; - layer.eyeLayer.Viewport[eye].Pos.x = layer.width; - layer.eyeLayer.Viewport[eye].Pos.y = 0; - - layer.height = eyeSize.h; //std::max(renderTargetSize.y, (uint32_t)eyeSize.h); - layer.width += eyeSize.w; - } - - return layer; -} - -// Convert from Oculus ovrMatrix4f struct to raymath Matrix struct -static Matrix FromOvrMatrix(ovrMatrix4f ovrmat) -{ - Matrix rmat; - - rmat.m0 = ovrmat.M[0][0]; - rmat.m1 = ovrmat.M[1][0]; - rmat.m2 = ovrmat.M[2][0]; - rmat.m3 = ovrmat.M[3][0]; - rmat.m4 = ovrmat.M[0][1]; - rmat.m5 = ovrmat.M[1][1]; - rmat.m6 = ovrmat.M[2][1]; - rmat.m7 = ovrmat.M[3][1]; - rmat.m8 = ovrmat.M[0][2]; - rmat.m9 = ovrmat.M[1][2]; - rmat.m10 = ovrmat.M[2][2]; - rmat.m11 = ovrmat.M[3][2]; - rmat.m12 = ovrmat.M[0][3]; - rmat.m13 = ovrmat.M[1][3]; - rmat.m14 = ovrmat.M[2][3]; - rmat.m15 = ovrmat.M[3][3]; - - MatrixTranspose(&rmat); - - return rmat; -} -#endif - -// Output a trace log message -// NOTE: Expected msgType: (0)Info, (1)Error, (2)Warning -static void TraceLog(int msgType, const char *text, ...) -{ - va_list args; - va_start(args, text); - - switch (msgType) - { - case INFO: fprintf(stdout, "INFO: "); break; - case ERROR: fprintf(stdout, "ERROR: "); break; - case WARNING: fprintf(stdout, "WARNING: "); break; - case DEBUG: fprintf(stdout, "DEBUG: "); break; - default: break; - } - - vfprintf(stdout, text, args); - fprintf(stdout, "\n"); - - va_end(args); - - if (msgType == ERROR) exit(1); -} - diff --git a/examples/web/others/resources/shaders/glsl100/standard.fs b/examples/web/others/resources/shaders/glsl100/standard.fs deleted file mode 100644 index fe604e2..0000000 --- a/examples/web/others/resources/shaders/glsl100/standard.fs +++ /dev/null @@ -1,152 +0,0 @@ -#version 100 - -precision mediump float; - -varying vec3 fragPosition; -varying vec2 fragTexCoord; -varying vec4 fragColor; -varying vec3 fragNormal; - -uniform sampler2D texture0; -uniform sampler2D texture1; -uniform sampler2D texture2; - -uniform vec4 colAmbient; -uniform vec4 colDiffuse; -uniform vec4 colSpecular; -uniform float glossiness; - -uniform int useNormal; -uniform int useSpecular; - -uniform mat4 modelMatrix; -uniform vec3 viewDir; - -struct Light { - int enabled; - int type; - vec3 position; - vec3 direction; - vec4 diffuse; - float intensity; - float radius; - float coneAngle; -}; - -const int maxLights = 8; -uniform Light lights[maxLights]; - -vec3 ComputeLightPoint(Light l, vec3 n, vec3 v, float s) -{ - vec3 surfacePos = vec3(modelMatrix*vec4(fragPosition, 1.0)); - vec3 surfaceToLight = l.position - surfacePos; - - // Diffuse shading - float brightness = clamp(float(dot(n, surfaceToLight)/(length(surfaceToLight)*length(n))), 0.0, 1.0); - float diff = 1.0/dot(surfaceToLight/l.radius, surfaceToLight/l.radius)*brightness*l.intensity; - - // Specular shading - float spec = 0.0; - if (diff > 0.0) - { - vec3 h = normalize(-l.direction + v); - spec = pow(abs(dot(n, h)), 3.0 + glossiness)*s; - } - - return (diff*l.diffuse.rgb + spec*colSpecular.rgb); -} - -vec3 ComputeLightDirectional(Light l, vec3 n, vec3 v, float s) -{ - vec3 lightDir = normalize(-l.direction); - - // Diffuse shading - float diff = clamp(float(dot(n, lightDir)), 0.0, 1.0)*l.intensity; - - // Specular shading - float spec = 0.0; - if (diff > 0.0) - { - vec3 h = normalize(lightDir + v); - spec = pow(abs(dot(n, h)), 3.0 + glossiness)*s; - } - - // Combine results - return (diff*l.intensity*l.diffuse.rgb + spec*colSpecular.rgb); -} - -vec3 ComputeLightSpot(Light l, vec3 n, vec3 v, float s) -{ - vec3 surfacePos = vec3(modelMatrix*vec4(fragPosition, 1)); - vec3 lightToSurface = normalize(surfacePos - l.position); - vec3 lightDir = normalize(-l.direction); - - // Diffuse shading - float diff = clamp(float(dot(n, lightDir)), 0.0, 1.0)*l.intensity; - - // Spot attenuation - float attenuation = clamp(float(dot(n, lightToSurface)), 0.0, 1.0); - attenuation = dot(lightToSurface, -lightDir); - - float lightToSurfaceAngle = degrees(acos(attenuation)); - if (lightToSurfaceAngle > l.coneAngle) attenuation = 0.0; - - float falloff = (l.coneAngle - lightToSurfaceAngle)/l.coneAngle; - - // Combine diffuse and attenuation - float diffAttenuation = diff*attenuation; - - // Specular shading - float spec = 0.0; - if (diffAttenuation > 0.0) - { - vec3 h = normalize(lightDir + v); - spec = pow(abs(dot(n, h)), 3.0 + glossiness)*s; - } - - return (falloff*(diffAttenuation*l.diffuse.rgb + spec*colSpecular.rgb)); -} - -void main() -{ - // Calculate fragment normal in screen space - // NOTE: important to multiply model matrix by fragment normal to apply model transformation (rotation and scale) - mat3 normalMatrix = mat3(modelMatrix); - vec3 normal = normalize(normalMatrix*fragNormal); - - // Normalize normal and view direction vectors - vec3 n = normalize(normal); - vec3 v = normalize(viewDir); - - // Calculate diffuse texture color fetching - vec4 texelColor = texture2D(texture0, fragTexCoord); - vec3 lighting = colAmbient.rgb; - - // Calculate normal texture color fetching or set to maximum normal value by default - if (useNormal == 1) - { - n *= texture2D(texture1, fragTexCoord).rgb; - n = normalize(n); - } - - // Calculate specular texture color fetching or set to maximum specular value by default - float spec = 1.0; - if (useSpecular == 1) spec = texture2D(texture2, fragTexCoord).r; - - for (int i = 0; i < maxLights; i++) - { - // Check if light is enabled - if (lights[i].enabled == 1) - { - // Calculate lighting based on light type - if(lights[i].type == 0) lighting += ComputeLightPoint(lights[i], n, v, spec); - else if(lights[i].type == 1) lighting += ComputeLightDirectional(lights[i], n, v, spec); - else if(lights[i].type == 2) lighting += ComputeLightSpot(lights[i], n, v, spec); - - // NOTE: It seems that too many ComputeLight*() operations inside for loop breaks the shader on RPI - } - } - - // Calculate final fragment color - gl_FragColor = vec4(texelColor.rgb*lighting*colDiffuse.rgb, texelColor.a*colDiffuse.a); -} diff --git a/examples/web/others/resources/shaders/glsl100/standard.vs b/examples/web/others/resources/shaders/glsl100/standard.vs deleted file mode 100644 index 49c5a3e..0000000 --- a/examples/web/others/resources/shaders/glsl100/standard.vs +++ /dev/null @@ -1,23 +0,0 @@ -#version 100 - -attribute vec3 vertexPosition; -attribute vec3 vertexNormal; -attribute vec2 vertexTexCoord; -attribute vec4 vertexColor; - -varying vec3 fragPosition; -varying vec2 fragTexCoord; -varying vec4 fragColor; -varying vec3 fragNormal; - -uniform mat4 mvpMatrix; - -void main() -{ - fragPosition = vertexPosition; - fragTexCoord = vertexTexCoord; - fragColor = vertexColor; - fragNormal = vertexNormal; - - gl_Position = mvpMatrix*vec4(vertexPosition, 1.0); -} \ No newline at end of file diff --git a/examples/web/others/resources/shaders/glsl330/standard.fs b/examples/web/others/resources/shaders/glsl330/standard.fs deleted file mode 100644 index 0d46148..0000000 --- a/examples/web/others/resources/shaders/glsl330/standard.fs +++ /dev/null @@ -1,150 +0,0 @@ -#version 330 - -in vec3 fragPosition; -in vec2 fragTexCoord; -in vec4 fragColor; -in vec3 fragNormal; - -out vec4 finalColor; - -uniform sampler2D texture0; -uniform sampler2D texture1; -uniform sampler2D texture2; - -uniform vec4 colAmbient; -uniform vec4 colDiffuse; -uniform vec4 colSpecular; -uniform float glossiness; - -uniform int useNormal; -uniform int useSpecular; - -uniform mat4 modelMatrix; -uniform vec3 viewDir; - -struct Light { - int enabled; - int type; - vec3 position; - vec3 direction; - vec4 diffuse; - float intensity; - float radius; - float coneAngle; -}; - -const int maxLights = 8; -uniform Light lights[maxLights]; - -vec3 ComputeLightPoint(Light l, vec3 n, vec3 v, float s) -{ - vec3 surfacePos = vec3(modelMatrix*vec4(fragPosition, 1)); - vec3 surfaceToLight = l.position - surfacePos; - - // Diffuse shading - float brightness = clamp(float(dot(n, surfaceToLight)/(length(surfaceToLight)*length(n))), 0.0, 1.0); - float diff = 1.0/dot(surfaceToLight/l.radius, surfaceToLight/l.radius)*brightness*l.intensity; - - // Specular shading - float spec = 0.0; - if (diff > 0.0) - { - vec3 h = normalize(-l.direction + v); - spec = pow(abs(dot(n, h)), 3.0 + glossiness)*s; - } - - return (diff*l.diffuse.rgb + spec*colSpecular.rgb); -} - -vec3 ComputeLightDirectional(Light l, vec3 n, vec3 v, float s) -{ - vec3 lightDir = normalize(-l.direction); - - // Diffuse shading - float diff = clamp(float(dot(n, lightDir)), 0.0, 1.0)*l.intensity; - - // Specular shading - float spec = 0.0; - if (diff > 0.0) - { - vec3 h = normalize(lightDir + v); - spec = pow(abs(dot(n, h)), 3.0 + glossiness)*s; - } - - // Combine results - return (diff*l.intensity*l.diffuse.rgb + spec*colSpecular.rgb); -} - -vec3 ComputeLightSpot(Light l, vec3 n, vec3 v, float s) -{ - vec3 surfacePos = vec3(modelMatrix*vec4(fragPosition, 1)); - vec3 lightToSurface = normalize(surfacePos - l.position); - vec3 lightDir = normalize(-l.direction); - - // Diffuse shading - float diff = clamp(float(dot(n, lightDir)), 0.0, 1.0)*l.intensity; - - // Spot attenuation - float attenuation = clamp(float(dot(n, lightToSurface)), 0.0, 1.0); - attenuation = dot(lightToSurface, -lightDir); - - float lightToSurfaceAngle = degrees(acos(attenuation)); - if (lightToSurfaceAngle > l.coneAngle) attenuation = 0.0; - - float falloff = (l.coneAngle - lightToSurfaceAngle)/l.coneAngle; - - // Combine diffuse and attenuation - float diffAttenuation = diff*attenuation; - - // Specular shading - float spec = 0.0; - if (diffAttenuation > 0.0) - { - vec3 h = normalize(lightDir + v); - spec = pow(abs(dot(n, h)), 3.0 + glossiness)*s; - } - - return (falloff*(diffAttenuation*l.diffuse.rgb + spec*colSpecular.rgb)); -} - -void main() -{ - // Calculate fragment normal in screen space - // NOTE: important to multiply model matrix by fragment normal to apply model transformation (rotation and scale) - mat3 normalMatrix = mat3(modelMatrix); - vec3 normal = normalize(normalMatrix*fragNormal); - - // Normalize normal and view direction vectors - vec3 n = normalize(normal); - vec3 v = normalize(viewDir); - - // Calculate diffuse texture color fetching - vec4 texelColor = texture(texture0, fragTexCoord); - vec3 lighting = colAmbient.rgb; - - // Calculate normal texture color fetching or set to maximum normal value by default - if (useNormal == 1) - { - n *= texture(texture1, fragTexCoord).rgb; - n = normalize(n); - } - - // Calculate specular texture color fetching or set to maximum specular value by default - float spec = 1.0; - if (useSpecular == 1) spec = texture(texture2, fragTexCoord).r; - - for (int i = 0; i < maxLights; i++) - { - // Check if light is enabled - if (lights[i].enabled == 1) - { - // Calculate lighting based on light type - if (lights[i].type == 0) lighting += ComputeLightPoint(lights[i], n, v, spec); - else if (lights[i].type == 1) lighting += ComputeLightDirectional(lights[i], n, v, spec); - else if (lights[i].type == 2) lighting += ComputeLightSpot(lights[i], n, v, spec); - } - } - - // Calculate final fragment color - finalColor = vec4(texelColor.rgb*lighting*colDiffuse.rgb, texelColor.a*colDiffuse.a); -} diff --git a/examples/web/others/resources/shaders/glsl330/standard.vs b/examples/web/others/resources/shaders/glsl330/standard.vs deleted file mode 100644 index fc0a5ff..0000000 --- a/examples/web/others/resources/shaders/glsl330/standard.vs +++ /dev/null @@ -1,23 +0,0 @@ -#version 330 - -in vec3 vertexPosition; -in vec3 vertexNormal; -in vec2 vertexTexCoord; -in vec4 vertexColor; - -out vec3 fragPosition; -out vec2 fragTexCoord; -out vec4 fragColor; -out vec3 fragNormal; - -uniform mat4 mvpMatrix; - -void main() -{ - fragPosition = vertexPosition; - fragTexCoord = vertexTexCoord; - fragColor = vertexColor; - fragNormal = vertexNormal; - - gl_Position = mvpMatrix*vec4(vertexPosition, 1.0); -} \ No newline at end of file diff --git a/examples/web/others/rlgl_standalone.c b/examples/web/others/rlgl_standalone.c deleted file mode 100644 index be0cfc5..0000000 --- a/examples/web/others/rlgl_standalone.c +++ /dev/null @@ -1,395 +0,0 @@ -/******************************************************************************************* -* -* raylib [rlgl] example - Using rlgl module as standalone module -* -* NOTE: This example requires OpenGL 3.3 or ES2 versions for shaders support, -* OpenGL 1.1 does not support shaders but it can also be used. -* -* Compile rlgl module using: -* gcc -c rlgl.c -Wall -std=c99 -DRLGL_STANDALONE -DRAYMATH_IMPLEMENTATION -DGRAPHICS_API_OPENGL_33 -* -* NOTE: rlgl module requires the following header-only files: -* external/glad.h - OpenGL extensions loader (stripped to only required extensions) -* shader_standard.h - Standard shader for materials and lighting -* shader_distortion.h - Distortion shader for VR -* raymath.h - Vector and matrix math functions -* -* Compile example using: -* gcc -o rlgl_standalone.exe rlgl_standalone.c rlgl.o -lglfw3 -lopengl32 -lgdi32 -std=c99 -* -* This example has been created using raylib 1.5 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include // Windows/Context and inputs management - -#define RLGL_STANDALONE -#include "rlgl.h" // rlgl library: OpenGL 1.1 immediate-mode style coding - -#define RED (Color){ 230, 41, 55, 255 } // Red -#define RAYWHITE (Color){ 245, 245, 245, 255 } // My own White (raylib logo) -#define DARKGRAY (Color){ 80, 80, 80, 255 } // Dark Gray - -//---------------------------------------------------------------------------------- -// Module specific Functions Declaration -//---------------------------------------------------------------------------------- -static void ErrorCallback(int error, const char* description); -static void KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods); - -// Drawing functions (uses rlgl functionality) -static void DrawGrid(int slices, float spacing); -static void DrawCube(Vector3 position, float width, float height, float length, Color color); -static void DrawCubeWires(Vector3 position, float width, float height, float length, Color color); -static void DrawRectangleV(Vector2 position, Vector2 size, Color color); - -//---------------------------------------------------------------------------------- -// Main Entry point -//---------------------------------------------------------------------------------- -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - // GLFW3 Initialization + OpenGL 3.3 Context + Extensions - //-------------------------------------------------------- - glfwSetErrorCallback(ErrorCallback); - - if (!glfwInit()) - { - TraceLog(WARNING, "GLFW3: Can not initialize GLFW"); - return 1; - } - else TraceLog(INFO, "GLFW3: GLFW initialized successfully"); - - glfwWindowHint(GLFW_SAMPLES, 4); - glfwWindowHint(GLFW_DEPTH_BITS, 16); - glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); - glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); - glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); - glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GL_TRUE); - - GLFWwindow *window = glfwCreateWindow(screenWidth, screenHeight, "rlgl standalone", NULL, NULL); - - if (!window) - { - glfwTerminate(); - return 2; - } - else TraceLog(INFO, "GLFW3: Window created successfully"); - - glfwSetWindowPos(window, 200, 200); - - glfwSetKeyCallback(window, KeyCallback); - - glfwMakeContextCurrent(window); - glfwSwapInterval(1); - - // Load OpenGL 3.3 supported extensions - rlglLoadExtensions(glfwGetProcAddress); - //-------------------------------------------------------- - - // Initialize OpenGL context (states and resources) - rlglInit(screenWidth, screenHeight); - - // Initialize viewport and internal projection/modelview matrices - rlViewport(0, 0, screenWidth, screenHeight); - rlMatrixMode(RL_PROJECTION); // Switch to PROJECTION matrix - rlLoadIdentity(); // Reset current matrix (PROJECTION) - rlOrtho(0, screenWidth, screenHeight, 0, 0.0f, 1.0f); // Orthographic projection with top-left corner at (0,0) - rlMatrixMode(RL_MODELVIEW); // Switch back to MODELVIEW matrix - rlLoadIdentity(); // Reset current matrix (MODELVIEW) - - rlClearColor(245, 245, 245, 255); // Define clear color - rlEnableDepthTest(); // Enable DEPTH_TEST for 3D - - Camera camera; - camera.position = (Vector3){ 5.0f, 5.0f, 5.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 45.0f; // Camera field-of-view Y - - Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; // Cube default position (center) - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!glfwWindowShouldClose(window)) - { - // Update - //---------------------------------------------------------------------------------- - // ... - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - rlClearScreenBuffers(); // Clear current framebuffer - - // Calculate projection matrix (from perspective) and view matrix from camera look at - Matrix matProj = MatrixPerspective(camera.fovy, (double)screenWidth/(double)screenHeight, 0.01, 1000.0); - MatrixTranspose(&matProj); - Matrix matView = MatrixLookAt(camera.position, camera.target, camera.up); - - SetMatrixModelview(matView); // Replace internal modelview matrix by a custom one - SetMatrixProjection(matProj); // Replace internal projection matrix by a custom one - - DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); - DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, RAYWHITE); - DrawGrid(10, 1.0f); - - // NOTE: Internal buffers drawing (3D data) - rlglDraw(); - - // Draw '2D' elements in the scene (GUI) -#define RLGL_CREATE_MATRIX_MANUALLY -#if defined(RLGL_CREATE_MATRIX_MANUALLY) - matProj = MatrixOrtho(0.0, screenWidth, screenHeight, 0.0, 0.0, 1.0); - MatrixTranspose(&matProj); - matView = MatrixIdentity(); - - SetMatrixModelview(matView); // Replace internal modelview matrix by a custom one - SetMatrixProjection(matProj); // Replace internal projection matrix by a custom one - -#else // Let rlgl generate and multiply matrix internally - - rlMatrixMode(RL_PROJECTION); // Enable internal projection matrix - rlLoadIdentity(); // Reset internal projection matrix - rlOrtho(0.0, screenWidth, screenHeight, 0.0, 0.0, 1.0); // Recalculate internal projection matrix - rlMatrixMode(RL_MODELVIEW); // Enable internal modelview matrix - rlLoadIdentity(); // Reset internal modelview matrix -#endif - DrawRectangleV((Vector2){ 10.0f, 10.0f }, (Vector2){ 780.0f, 20.0f }, DARKGRAY); - - // NOTE: Internal buffers drawing (2D data) - rlglDraw(); - - glfwSwapBuffers(window); - glfwPollEvents(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - rlglClose(); // Unload rlgl internal buffers and default shader/texture - - glfwDestroyWindow(window); // Close window - glfwTerminate(); // Free GLFW3 resources - //-------------------------------------------------------------------------------------- - - return 0; -} - -//---------------------------------------------------------------------------------- -// Module specific Functions Definitions -//---------------------------------------------------------------------------------- - -// GLFW3: Error callback -static void ErrorCallback(int error, const char* description) -{ - TraceLog(ERROR, description); -} - -// GLFW3: Keyboard callback -static void KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods) -{ - if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) - { - glfwSetWindowShouldClose(window, GL_TRUE); - } -} - -// Draw rectangle using rlgl OpenGL 1.1 style coding (translated to OpenGL 3.3 internally) -static void DrawRectangleV(Vector2 position, Vector2 size, Color color) -{ - rlBegin(RL_TRIANGLES); - rlColor4ub(color.r, color.g, color.b, color.a); - - rlVertex2i(position.x, position.y); - rlVertex2i(position.x, position.y + size.y); - rlVertex2i(position.x + size.x, position.y + size.y); - - rlVertex2i(position.x, position.y); - rlVertex2i(position.x + size.x, position.y + size.y); - rlVertex2i(position.x + size.x, position.y); - rlEnd(); -} - -// Draw a grid centered at (0, 0, 0) -static void DrawGrid(int slices, float spacing) -{ - int halfSlices = slices / 2; - - rlBegin(RL_LINES); - for(int i = -halfSlices; i <= halfSlices; i++) - { - if (i == 0) - { - rlColor3f(0.5f, 0.5f, 0.5f); - rlColor3f(0.5f, 0.5f, 0.5f); - rlColor3f(0.5f, 0.5f, 0.5f); - rlColor3f(0.5f, 0.5f, 0.5f); - } - else - { - rlColor3f(0.75f, 0.75f, 0.75f); - rlColor3f(0.75f, 0.75f, 0.75f); - rlColor3f(0.75f, 0.75f, 0.75f); - rlColor3f(0.75f, 0.75f, 0.75f); - } - - rlVertex3f((float)i*spacing, 0.0f, (float)-halfSlices*spacing); - rlVertex3f((float)i*spacing, 0.0f, (float)halfSlices*spacing); - - rlVertex3f((float)-halfSlices*spacing, 0.0f, (float)i*spacing); - rlVertex3f((float)halfSlices*spacing, 0.0f, (float)i*spacing); - } - rlEnd(); -} - -// Draw cube -// NOTE: Cube position is the center position -void DrawCube(Vector3 position, float width, float height, float length, Color color) -{ - float x = 0.0f; - float y = 0.0f; - float z = 0.0f; - - rlPushMatrix(); - - // NOTE: Be careful! Function order matters (rotate -> scale -> translate) - rlTranslatef(position.x, position.y, position.z); - //rlScalef(2.0f, 2.0f, 2.0f); - //rlRotatef(45, 0, 1, 0); - - rlBegin(RL_TRIANGLES); - rlColor4ub(color.r, color.g, color.b, color.a); - - // Front Face ----------------------------------------------------- - rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom Left - rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right - rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left - - rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Right - rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left - rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right - - // Back Face ------------------------------------------------------ - rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom Left - rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left - rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right - - rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right - rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right - rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left - - // Top Face ------------------------------------------------------- - rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left - rlVertex3f(x-width/2, y+height/2, z+length/2); // Bottom Left - rlVertex3f(x+width/2, y+height/2, z+length/2); // Bottom Right - - rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right - rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left - rlVertex3f(x+width/2, y+height/2, z+length/2); // Bottom Right - - // Bottom Face ---------------------------------------------------- - rlVertex3f(x-width/2, y-height/2, z-length/2); // Top Left - rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right - rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom Left - - rlVertex3f(x+width/2, y-height/2, z-length/2); // Top Right - rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right - rlVertex3f(x-width/2, y-height/2, z-length/2); // Top Left - - // Right face ----------------------------------------------------- - rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right - rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right - rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Left - - rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Left - rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right - rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Left - - // Left Face ------------------------------------------------------ - rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom Right - rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left - rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Right - - rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom Left - rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left - rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom Right - rlEnd(); - rlPopMatrix(); -} - -// Draw cube wires -void DrawCubeWires(Vector3 position, float width, float height, float length, Color color) -{ - float x = 0.0f; - float y = 0.0f; - float z = 0.0f; - - rlPushMatrix(); - - rlTranslatef(position.x, position.y, position.z); - //rlRotatef(45, 0, 1, 0); - - rlBegin(RL_LINES); - rlColor4ub(color.r, color.g, color.b, color.a); - - // Front Face ----------------------------------------------------- - // Bottom Line - rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom Left - rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right - - // Left Line - rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right - rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Right - - // Top Line - rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Right - rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left - - // Right Line - rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left - rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom Left - - // Back Face ------------------------------------------------------ - // Bottom Line - rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom Left - rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right - - // Left Line - rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right - rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right - - // Top Line - rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right - rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left - - // Right Line - rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left - rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom Left - - // Top Face ------------------------------------------------------- - // Left Line - rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left Front - rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left Back - - // Right Line - rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Right Front - rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right Back - - // Bottom Face --------------------------------------------------- - // Left Line - rlVertex3f(x-width/2, y-height/2, z+length/2); // Top Left Front - rlVertex3f(x-width/2, y-height/2, z-length/2); // Top Left Back - - // Right Line - rlVertex3f(x+width/2, y-height/2, z+length/2); // Top Right Front - rlVertex3f(x+width/2, y-height/2, z-length/2); // Top Right Back - rlEnd(); - rlPopMatrix(); -} diff --git a/examples/web/others/standard_lighting.c b/examples/web/others/standard_lighting.c deleted file mode 100644 index 728ebb4..0000000 --- a/examples/web/others/standard_lighting.c +++ /dev/null @@ -1,154 +0,0 @@ -/******************************************************************************************* -* -* raylib [shaders] example - Standard lighting (materials and lights) -* -* NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, -* OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. -* -* NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example -* on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders -* raylib comes with shaders ready for both versions, check raylib/shaders install folder -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2016 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#if defined(PLATFORM_WEB) - #include -#endif - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -int screenWidth = 800; -int screenHeight = 450; - -// Define the camera to look into our 3d world -Camera camera = {{ 4.0f, 4.0f, 4.0f }, { 0.0f, 1.5f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f }; -Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position - -Model dwarf; -Material material; - -Light spotLight; -Light dirLight; -Light pointLight; - -//---------------------------------------------------------------------------------- -// Module Functions Declaration -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void); // Update and Draw one frame - -//---------------------------------------------------------------------------------- -// Main Enry Point -//---------------------------------------------------------------------------------- -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available) - InitWindow(screenWidth, screenHeight, "raylib [shaders] example - model shader"); - - dwarf = LoadModel("resources/model/dwarf.obj"); // Load OBJ model - material = LoadStandardMaterial(); - - material.texDiffuse = LoadTexture("resources/model/dwarf_diffuse.png"); // Load model diffuse texture - material.texNormal = LoadTexture("resources/model/dwarf_normal.png"); // Load model normal texture - material.texSpecular = LoadTexture("resources/model/dwarf_specular.png"); // Load model specular texture - material.colDiffuse = WHITE; - material.colAmbient = (Color){0, 0, 10, 255}; - material.colSpecular = WHITE; - material.glossiness = 50.0f; - - dwarf.material = material; // Apply material to model - - spotLight = CreateLight(LIGHT_SPOT, (Vector3){3.0f, 5.0f, 2.0f}, (Color){255, 255, 255, 255}); - spotLight->target = (Vector3){0.0f, 0.0f, 0.0f}; - spotLight->intensity = 2.0f; - spotLight->diffuse = (Color){255, 100, 100, 255}; - spotLight->coneAngle = 60.0f; - - dirLight = CreateLight(LIGHT_DIRECTIONAL, (Vector3){0.0f, -3.0f, -3.0f}, (Color){255, 255, 255, 255}); - dirLight->target = (Vector3){1.0f, -2.0f, -2.0f}; - dirLight->intensity = 2.0f; - dirLight->diffuse = (Color){100, 255, 100, 255}; - - pointLight = CreateLight(LIGHT_POINT, (Vector3){0.0f, 4.0f, 5.0f}, (Color){255, 255, 255, 255}); - pointLight->intensity = 2.0f; - pointLight->diffuse = (Color){100, 100, 255, 255}; - pointLight->radius = 3.0f; - - // Setup orbital camera - SetCameraMode(CAMERA_ORBITAL); // Set an orbital camera mode - SetCameraPosition(camera.position); // Set internal camera position to match our camera position - SetCameraTarget(camera.target); // Set internal camera target to match our camera target - -#if defined(PLATFORM_WEB) - emscripten_set_main_loop(UpdateDrawFrame, 0, 1); -#else - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - UpdateDrawFrame(); - } -#endif - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadMaterial(material); // Unload material and assigned textures - UnloadModel(dwarf); // Unload model - - // Destroy all created lights - DestroyLight(pointLight); - DestroyLight(dirLight); - DestroyLight(spotLight); - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void) -{ - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update internal camera and our camera - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - Begin3dMode(camera); - - DrawModel(dwarf, position, 2.0f, WHITE); // Draw 3d model with texture - - DrawLight(spotLight); // Draw spot light - DrawLight(dirLight); // Draw directional light - DrawLight(pointLight); // Draw point light - - DrawGrid(10, 1.0f); // Draw a grid - - End3dMode(); - - DrawText("(c) Dwarf 3D model by David Moreno", screenWidth - 200, screenHeight - 20, 10, GRAY); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- -} \ No newline at end of file diff --git a/examples/web/shaders/shaders_custom_uniform.png b/examples/web/shaders/shaders_custom_uniform.png index dfddc3a..96e3e00 100644 Binary files a/examples/web/shaders/shaders_custom_uniform.png and b/examples/web/shaders/shaders_custom_uniform.png differ diff --git a/examples/web/shaders/shaders_julia_set.png b/examples/web/shaders/shaders_julia_set.png new file mode 100644 index 0000000..5117ed0 Binary files /dev/null and b/examples/web/shaders/shaders_julia_set.png differ diff --git a/examples/web/shaders/shaders_model_shader.png b/examples/web/shaders/shaders_model_shader.png index b829dea..df1ad7e 100644 Binary files a/examples/web/shaders/shaders_model_shader.png and b/examples/web/shaders/shaders_model_shader.png differ diff --git a/examples/web/shaders/shaders_postprocessing.png b/examples/web/shaders/shaders_postprocessing.png index 628ab81..ec08726 100644 Binary files a/examples/web/shaders/shaders_postprocessing.png and b/examples/web/shaders/shaders_postprocessing.png differ diff --git a/examples/web/shaders/shaders_raymarching.png b/examples/web/shaders/shaders_raymarching.png new file mode 100644 index 0000000..e113e80 Binary files /dev/null and b/examples/web/shaders/shaders_raymarching.png differ diff --git a/examples/web/shaders/shaders_texture_drawing.png b/examples/web/shaders/shaders_texture_drawing.png new file mode 100644 index 0000000..12df6fa Binary files /dev/null and b/examples/web/shaders/shaders_texture_drawing.png differ diff --git a/examples/web/shaders/shaders_texture_waves.png b/examples/web/shaders/shaders_texture_waves.png new file mode 100644 index 0000000..99781a1 Binary files /dev/null and b/examples/web/shaders/shaders_texture_waves.png differ diff --git a/examples/web/shapes/shapes_bouncing_ball.png b/examples/web/shapes/shapes_bouncing_ball.png new file mode 100644 index 0000000..9d98e3a Binary files /dev/null and b/examples/web/shapes/shapes_bouncing_ball.png differ diff --git a/examples/web/shapes/shapes_collision_area.png b/examples/web/shapes/shapes_collision_area.png new file mode 100644 index 0000000..760e1bc Binary files /dev/null and b/examples/web/shapes/shapes_collision_area.png differ diff --git a/examples/web/shapes/shapes_colors_palette.png b/examples/web/shapes/shapes_colors_palette.png index 4073b67..b68e497 100644 Binary files a/examples/web/shapes/shapes_colors_palette.png and b/examples/web/shapes/shapes_colors_palette.png differ diff --git a/examples/web/shapes/shapes_draw_circle_sector.png b/examples/web/shapes/shapes_draw_circle_sector.png new file mode 100644 index 0000000..f1624b8 Binary files /dev/null and b/examples/web/shapes/shapes_draw_circle_sector.png differ diff --git a/examples/web/shapes/shapes_draw_rectangle_rounded.png b/examples/web/shapes/shapes_draw_rectangle_rounded.png new file mode 100644 index 0000000..20d1708 Binary files /dev/null and b/examples/web/shapes/shapes_draw_rectangle_rounded.png differ diff --git a/examples/web/shapes/shapes_draw_ring.png b/examples/web/shapes/shapes_draw_ring.png new file mode 100644 index 0000000..f97734a Binary files /dev/null and b/examples/web/shapes/shapes_draw_ring.png differ diff --git a/examples/web/shapes/shapes_easings_ball_anim.png b/examples/web/shapes/shapes_easings_ball_anim.png new file mode 100644 index 0000000..1668b13 Binary files /dev/null and b/examples/web/shapes/shapes_easings_ball_anim.png differ diff --git a/examples/web/shapes/shapes_easings_box_anim.png b/examples/web/shapes/shapes_easings_box_anim.png new file mode 100644 index 0000000..8798241 Binary files /dev/null and b/examples/web/shapes/shapes_easings_box_anim.png differ diff --git a/examples/web/shapes/shapes_easings_rectangle_array.png b/examples/web/shapes/shapes_easings_rectangle_array.png new file mode 100644 index 0000000..661290e Binary files /dev/null and b/examples/web/shapes/shapes_easings_rectangle_array.png differ diff --git a/examples/web/shapes/shapes_following_eyes.png b/examples/web/shapes/shapes_following_eyes.png new file mode 100644 index 0000000..7a2bc9c Binary files /dev/null and b/examples/web/shapes/shapes_following_eyes.png differ diff --git a/examples/web/shapes/shapes_rectangle_scaling.png b/examples/web/shapes/shapes_rectangle_scaling.png new file mode 100644 index 0000000..83d67de Binary files /dev/null and b/examples/web/shapes/shapes_rectangle_scaling.png differ diff --git a/examples/web/text/text_bmfont_ttf.png b/examples/web/text/text_bmfont_ttf.png index 8305d36..a99027a 100644 Binary files a/examples/web/text/text_bmfont_ttf.png and b/examples/web/text/text_bmfont_ttf.png differ diff --git a/examples/web/text/text_bmfont_unordered.data b/examples/web/text/text_bmfont_unordered.data deleted file mode 100644 index f88ee52..0000000 --- a/examples/web/text/text_bmfont_unordered.data +++ /dev/null @@ -1,213 +0,0 @@ -info face="PixAntiqua" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=2,2,2,2 spacing=2,2 outline=0 -common lineHeight=32 base=27 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4 -page id=0 file="pixantiqua_0.png" -chars count=184 -char id=32 x=9 y=304 width=7 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=33 x=391 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=34 x=240 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 -char id=35 x=468 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=36 x=152 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=37 x=176 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=38 x=303 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=39 x=495 y=266 width=8 height=36 xoffset=-3 yoffset=-2 xadvance=5 page=0 chnl=15 -char id=40 x=256 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 -char id=199 x=432 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=200 x=126 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=201 x=147 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=202 x=288 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=203 x=189 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=204 x=468 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 -char id=205 x=486 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 -char id=206 x=0 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 -char id=207 x=72 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 -char id=208 x=329 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=209 x=277 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=210 x=182 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=211 x=26 y=76 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=41 x=272 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 -char id=42 x=288 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 -char id=43 x=414 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=44 x=378 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=45 x=414 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 -char id=46 x=443 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=47 x=392 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=48 x=485 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=49 x=450 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 -char id=50 x=21 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=51 x=42 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=59 x=456 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=60 x=168 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=61 x=309 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=62 x=336 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=63 x=315 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=64 x=364 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=65 x=390 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=66 x=120 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=67 x=144 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=68 x=168 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=69 x=294 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=52 x=488 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=53 x=63 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=54 x=24 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=55 x=48 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=56 x=72 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=57 x=96 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=58 x=404 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=70 x=252 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=71 x=192 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=72 x=78 y=76 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=78 x=78 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=79 x=355 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=80 x=264 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=81 x=381 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=82 x=288 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=83 x=312 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=91 x=144 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 -char id=92 x=108 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 -char id=93 x=304 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 -char id=94 x=34 y=0 width=32 height=36 xoffset=-3 yoffset=-2 xadvance=29 page=0 chnl=15 -char id=95 x=231 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=96 x=442 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=97 x=408 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=98 x=432 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=99 x=210 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=84 x=336 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=85 x=360 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=86 x=0 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=87 x=68 y=0 width=30 height=36 xoffset=-3 yoffset=-2 xadvance=27 page=0 chnl=15 -char id=88 x=26 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=89 x=384 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=90 x=84 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=100 x=456 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=101 x=480 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=102 x=54 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 -char id=103 x=0 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=104 x=24 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=105 x=469 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=106 x=18 y=266 width=16 height=36 xoffset=-8 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=107 x=48 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=108 x=417 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=109 x=161 y=0 width=27 height=36 xoffset=-3 yoffset=-2 xadvance=24 page=0 chnl=15 -char id=110 x=72 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=111 x=96 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=117 x=192 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=118 x=216 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=119 x=248 y=0 width=27 height=36 xoffset=-3 yoffset=-2 xadvance=24 page=0 chnl=15 -char id=120 x=240 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=121 x=264 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=122 x=288 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=123 x=432 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 -char id=124 x=365 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=125 x=378 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 -char id=126 x=393 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=127 x=132 y=0 width=27 height=36 xoffset=-3 yoffset=-2 xadvance=24 page=0 chnl=15 -char id=160 x=0 y=304 width=7 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=161 x=352 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=162 x=351 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=163 x=336 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=165 x=360 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=167 x=384 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=169 x=433 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=170 x=224 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 -char id=171 x=105 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=172 x=0 y=0 width=32 height=36 xoffset=-3 yoffset=-2 xadvance=29 page=0 chnl=15 -char id=173 x=494 y=38 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 -char id=174 x=52 y=76 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=175 x=52 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=176 x=126 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 -char id=177 x=435 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=178 x=320 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 -char id=179 x=336 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 -char id=181 x=459 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=112 x=120 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=113 x=144 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=114 x=396 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 -char id=115 x=168 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=116 x=36 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 -char id=182 x=408 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=183 x=498 y=190 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=185 x=192 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 -char id=186 x=208 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 -char id=187 x=477 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=191 x=456 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=192 x=407 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=193 x=234 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=194 x=416 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=195 x=156 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=196 x=130 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=197 x=104 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=198 x=190 y=0 width=27 height=36 xoffset=-3 yoffset=-2 xadvance=24 page=0 chnl=15 -char id=212 x=0 y=76 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=213 x=338 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=214 x=312 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=215 x=357 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=216 x=286 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=217 x=456 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=218 x=480 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=219 x=0 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=220 x=24 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=221 x=48 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=222 x=260 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=223 x=72 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=224 x=96 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=225 x=120 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=226 x=144 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=227 x=168 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=228 x=192 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=229 x=216 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=230 x=219 y=0 width=27 height=36 xoffset=-3 yoffset=-2 xadvance=24 page=0 chnl=15 -char id=231 x=372 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=73 x=90 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 -char id=74 x=216 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=75 x=240 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=76 x=273 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=77 x=100 y=0 width=30 height=36 xoffset=-3 yoffset=-2 xadvance=27 page=0 chnl=15 -char id=232 x=312 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=233 x=240 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=234 x=264 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=235 x=104 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=236 x=430 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=237 x=482 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=238 x=160 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 -char id=239 x=176 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 -char id=240 x=128 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=241 x=200 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=242 x=224 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=243 x=248 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=244 x=272 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=245 x=296 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=246 x=320 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=247 x=330 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=248 x=208 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 -char id=249 x=344 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=250 x=368 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=251 x=416 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=252 x=440 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=253 x=464 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -char id=254 x=0 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 -char id=255 x=0 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 -‰PNG - - IHDRÑ‹&zIDATxœíÝO^ó*ÀqâçÝ„u.¡ƵµS‡u nC‡º Þ¥%p’´Þ‡ßwò\Óük.='ÆÀœÑ:Ç-r<dÜò 5ާ¯|´?·:ƒ|·éÞñçQ0%E½ÇŸs`žT?¾JÖ(úÛï)ˆo“¿/{.åŽ`W¬DFkGéÄ1jm5†'ïcÃ'-—¢ - sÆ0ÐkÍÏ£ýyŒ×hñqÄ >÷ÕP9éœVШÖ1ú—¥:tæcŒxi×Dèœ+¾ðí1æñÇý{ÿ5-¦öô+{¾Ía†áá[Ø£þó8ïóh¿î§ËƒcZkwƳ;ïÇ5ƒ.­ÓøW2ž¶¿«hKÿÓ -þM?Ôì«BÿzƘÃ0|}âíçóð–o¦±écÖØ ¾ s€ÎÝù(ô68óý0¼cÌïÓðâV -ôÞ˜}ó½öÛðôëþë÷ix3æí\‰ÇN‘ðcç-wÖ¾O¿á¿ãtÏbudŒ««2[NÄ*þ0 çÚìR­ˆuç¾¾<þØ×!ðüYt¼ÑÚÝéÂß‹Ð9 -@çΠ¤Yhe ³ûÚåÚìõ‚f´1ÆßG¬vÛ,†óñr£² jÊ´î\IPå\èÑ»ðß_Ï»¸`oD€ÎÝ] -îÊ¿#5Íܱô&[«ý¹ÃE©Kóq´ÖžºöI÷Ü·S³Qú-¹öìú_ezœœø«6!tŽÐ9WüͲ™m *Ý®.´ïí×½ù8µ1&ñkÚãé£V]jÎÛ0 ®"›ˆÃµïê(çëGí“õ¾‚ÌwºH]«³ß†çOû*u, ˆ£tîî2æh.ÚŤpp ü±¸º‰øaå>¼EÏY|J7”]Òp©.Ê?ñÕVz/B…&tŠœú‚ -kznD€Î¹~€÷Ëx€’ÛUn@72iMÛ¦¯ÖZûz>ñ ãn®ïåüë²O·¯´‡Î?3 /ä´«å½è]ð?ÌZkíçsQÏãáÒ:ÎÐ9 -Jù—fâÖ¿$˜Ö°`,AÃ"@ç(û_ÍÊ÷_æcØêLúöýp£¥.CÓËû õL`3“ZÅd]mI´Ö̺¢w¯bL;ëcød°ú{ÑÐ9 -¦¹¢é®Ê'F͆’ÝÆäŸ)ŠY²ÉºZ¹’³ã‚l Å•ÝÌYëô´dâuËæ¤±‰sˆ£àÚU@ö. 2ÓW.âN«j”<6ü¦59ëå®AÍYª+ÿÇy}£)¹ŒzSÏÌüsÛ¤g­5Û”_™’xkîêè)þª3Ãf¯žñrä8uï„Òt%tŽйÒ0ÊóôÉZª,%ó¡§dCI·™Ë½èçT½NçM(‰·<Ÿ'›fö üqüŒå8åæ{>ÁWz ”³žþ_Óo–Oz!tŽй»4ÓÁ$\¤tó¤ä:&—ùPßÿLÐέÝÉá\¬jr\vƲiÂÙêéuÂ]Í|J –³žGèÜ´( `’ü¢ôlF)ɹl(Ú69éo¶èW&Ú—NÁ-âµÒqÒkÐ~Ö’¸ï€Ð9 -@çÎYÂ|¨ŒD,i‚‰÷çz —²¡Ìm£Óƒö|â­4»Ëºù _†çO÷½âsÔ3ÂÔ]ƒi~÷(WŒ÷b  {€Î ½Ûïg׸Õƒ\Ë6RïÅ\>âܸ®àAèô6Ê=R]ê/—Þg<âòŠ¥îºÑŒBçð2<ý®ŸÛ/L¯µ.=½–»ÿ=7šJÒ÷ëo{ ö泑G¯¨Lýu¸œÛFo9¬Bè€nd“ŸÜðEuI`´Ü\z®.mÿòòÚÜ_õÇÕl³>ƒ:G€3“½«f:FQB…Éq‚t&ér§¨ÊææÒBº¢Åë¡í_û^ Çõû‹‹èç#7[õçOèNuFÅ\–°ìñ'kú=¹ºVÆÝÿ„Ê\i5â,mD˜™|[ó™¸j²j‰:±q5&Yn¢_Šòþµãn·’Äû×îë¤ÙÙ"@ç(»›Ë*¥ù'5 -7ŸÅ,þ^oÃӝܨ««zÊeh6в³:Gèœ+bV©µLûªhïÔ):ϹçæmUß^zŽ¿©u»ÊãÑÂDx™çËârá—3÷Ü_ £ï?^¬ß¿+Ëš³Œi×¥4û˜QFRe²zU­_56žD€ÎQà”þ4)Z¯ÕhB "@ç(0õ!½iýŠ*WCœiÙ¨ -²Tõb•·Ÿ­H?ùÅôtŽMÙkÇ ‡Öò1¦>Fv}í|äªÐ9 -@ç(‹ ³¥}b‡÷„™Us*µõ}óý0¼§c߇‡oé). s®h£IÍi<¿Ö8ÑòãeF«NF笿Ê(ß±~}môrUãm2¿?“ -&XˆRÄhÿ_Äõ:GèÜÝÜ,Ô¹ì^“P¶“²Ze9ë§Ç“gïÎÑWESáĬhùƛޘ‹SÁSçâªmoŒ1¿OÃÛSö"@ç(k.Ë-¶w\B峕ý}~ŬdŸ`3î’sµåVZ  sw­ùýjóì-¤f-}h¢Ñ²reOù ci$ñç)\ŸÑÚ1+å\ s€Îݵß_¯Šk†aX#1ãhí{’õ+“2Ƈn¡ÊвoiçŸV=Z\}¬i–ö s€Î @ö©ŸàmPlrwqv,?Ô©41£Zý~…/fK ºd3w=Ú«¢QÇKWsz>Û" °áûû²Ïñµó(õ…“*ÀÏRQ[äD€ÎQ:· ­kcŒ6ëVL£»;ú‡ù}J²úD@÷ò€ñüo‚Ð9 -@ç®P -²_u¹£e÷*Ìú%F{±^(çrÒF­¸L´)HL檕Ãùß`Ÿî"@ç(»bˆ³~Ýz¹Ó˜Ý+í+Ç·ŒUÐn7FkwR6³£ý|VRœ`š²KéÙ®ä‡AUû¿Örí.¯zÏç¾ef¿Š›/°gjòÿ¤kú¯Ù6iCÁ<ž—ì“9ΆнéÛÃçÓX¥ µIR~zÑ bñ7¨ü0…6Zºfý˜Ûò\‡pŽU:Ú~I£:xïp]«2jú7¬_æ¤K"@ç(;€·iKÆÍ& -úÍÅIR_÷ÉõÜ­bŽí×ý\®•`^°œa]Ñ) )râüº¹SÚYû^Ðxå'¿å:G@fN_¶[4×qj”îÊô%DboªÖÅšî3³yIè/ß¼ü”œ´%¯=µ ×,9sqô4J–"@÷ò@lq‰ Ón„”˜®Ä‰rp‰ }ÓNÈ‹"n^®|óò5_’¦òa^“yúÚŒþ³4òˆÌfD€ÎQ:—)bt­ÝMWóÉRâƒ4\Ï&-Ì[7ô­å $K+ÊÑÚ÷iÊÖA.šö:.ƒÐ9 -@ç‚§“Äð1jÊV>þŽ7]çTºåQtáxçù͵öôw>Õßvˆ(Y°EÚ¿7Ó³57زñ@…ãšÆ¦:'Ëãc¸yá¶âVá÷-Yâ:G@Õ£“c²…¸ðú›o€Ýt^@ "@ç(¨oµÆ-É^ƒûÏÛtvp!"ô)ÉÇRt“i?†ÿ¶ò}¶ÓwüdO¤ê©¿Ÿ¿ÉÿŸ¼~|~ñ…Ú¢O|LzÞgÄ'¡î€~€ÎQ`Šs-¦Y§òϤÄa é1fE!XÉékÞâ×ÄiÛ›´ -)ø;þæz•2¡×åŸTs›\uª„((Ìv8;ÛTÜOºNtŒôÞ¡¡=ÖTsÛÇg-WÙ»”löãÅUÀªˆ»ÓóGE7{cL’w.\¢ïg¢%¡^ù/ì|Œ]î+.Ø‹4ÿËoOvžLXý\Ø‹ŽD€ÎQ:§€Id,O<˜ç·š,y·Ö&™”Qÿ¾Ìöói}ÈŽÿÞÀ.í~_t¼l‹°$#ØdµÜ6D€ÎQ:w“%yÐr,ŠC¼ü´n­‰óÇw¢Ï ó_ s×/‡aøØô7hÎ)¹sŸ´[¢F[ s€ÎݨT¥y¹ 1!e“ò\Þåï¬X s€Îݤ¼T¾a[i÷ôµèY× [ô“ÕÚúˆ»“žì·)3ðGÅÏïãçûY7öЀ(n–õ믧3•Yº²M½u«Æ†Ä¸D€ÎQºmÖ¯­Ÿß/U{~-7øçÕð?ŒÀñM.|il8IEND®B`‚ \ No newline at end of file diff --git a/examples/web/text/text_bmfont_unordered.html b/examples/web/text/text_bmfont_unordered.html deleted file mode 100644 index 3c2deac..0000000 --- a/examples/web/text/text_bmfont_unordered.html +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - - raylib HTML5 GAME - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
Downloading...
- - - - - -
- -
-
- -
- -
- - - - - - - \ No newline at end of file diff --git a/examples/web/text/text_bmfont_unordered.js b/examples/web/text/text_bmfont_unordered.js deleted file mode 100644 index eb5e6c5..0000000 --- a/examples/web/text/text_bmfont_unordered.js +++ /dev/null @@ -1,50652 +0,0 @@ - -var Module; - -if (typeof Module === 'undefined') Module = {}; - -if (!Module.expectedDataFileDownloads) { - Module.expectedDataFileDownloads = 0; - Module.finishedDataFileDownloads = 0; -} -Module.expectedDataFileDownloads++; -(function() { - var loadPackage = function(metadata) { - - var PACKAGE_PATH; - if (typeof window === 'object') { - PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/'); - } else if (typeof location !== 'undefined') { - // worker - PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/'); - } else { - throw 'using preloaded data can only be done on a web page or in a web worker'; - } - var PACKAGE_NAME = 'text/text_bmfont_unordered.data'; - var REMOTE_PACKAGE_BASE = 'text_bmfont_unordered.data'; - if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) { - Module['locateFile'] = Module['locateFilePackage']; - Module.printErr('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)'); - } - var REMOTE_PACKAGE_NAME = typeof Module['locateFile'] === 'function' ? - Module['locateFile'](REMOTE_PACKAGE_BASE) : - ((Module['filePackagePrefixURL'] || '') + REMOTE_PACKAGE_BASE); - - var REMOTE_PACKAGE_SIZE = metadata.remote_package_size; - var PACKAGE_UUID = metadata.package_uuid; - - function fetchRemotePackage(packageName, packageSize, callback, errback) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', packageName, true); - xhr.responseType = 'arraybuffer'; - xhr.onprogress = function(event) { - var url = packageName; - var size = packageSize; - if (event.total) size = event.total; - if (event.loaded) { - if (!xhr.addedTotal) { - xhr.addedTotal = true; - if (!Module.dataFileDownloads) Module.dataFileDownloads = {}; - Module.dataFileDownloads[url] = { - loaded: event.loaded, - total: size - }; - } else { - Module.dataFileDownloads[url].loaded = event.loaded; - } - var total = 0; - var loaded = 0; - var num = 0; - for (var download in Module.dataFileDownloads) { - var data = Module.dataFileDownloads[download]; - total += data.total; - loaded += data.loaded; - num++; - } - total = Math.ceil(total * Module.expectedDataFileDownloads/num); - if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')'); - } else if (!Module.dataFileDownloads) { - if (Module['setStatus']) Module['setStatus']('Downloading data...'); - } - }; - xhr.onerror = function(event) { - throw new Error("NetworkError for: " + packageName); - } - xhr.onload = function(event) { - if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 - var packageData = xhr.response; - callback(packageData); - } else { - throw new Error(xhr.statusText + " : " + xhr.responseURL); - } - }; - xhr.send(null); - }; - - function handleError(error) { - console.error('package error:', error); - }; - - var fetchedCallback = null; - var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null; - - if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) { - if (fetchedCallback) { - fetchedCallback(data); - fetchedCallback = null; - } else { - fetched = data; - } - }, handleError); - - function runWithFS() { - - function assert(check, msg) { - if (!check) throw msg + new Error().stack; - } -Module['FS_createPath']('/', 'resources', true, true); - - function DataRequest(start, end, crunched, audio) { - this.start = start; - this.end = end; - this.crunched = crunched; - this.audio = audio; - } - DataRequest.prototype = { - requests: {}, - open: function(mode, name) { - this.name = name; - this.requests[name] = this; - Module['addRunDependency']('fp ' + this.name); - }, - send: function() {}, - onload: function() { - var byteArray = this.byteArray.subarray(this.start, this.end); - - this.finish(byteArray); - - }, - finish: function(byteArray) { - var that = this; - - Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change - Module['removeRunDependency']('fp ' + that.name); - - this.requests[this.name] = null; - } - }; - - var files = metadata.files; - for (var i = 0; i < files.length; ++i) { - new DataRequest(files[i].start, files[i].end, files[i].crunched, files[i].audio).open('GET', files[i].filename); - } - - - function processPackageData(arrayBuffer) { - Module.finishedDataFileDownloads++; - assert(arrayBuffer, 'Loading data file failed.'); - assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData'); - var byteArray = new Uint8Array(arrayBuffer); - var curr; - - // copy the entire loaded file into a spot in the heap. Files will refer to slices in that. They cannot be freed though - // (we may be allocating before malloc is ready, during startup). - if (Module['SPLIT_MEMORY']) Module.printErr('warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting'); - var ptr = Module['getMemory'](byteArray.length); - Module['HEAPU8'].set(byteArray, ptr); - DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length); - - var files = metadata.files; - for (var i = 0; i < files.length; ++i) { - DataRequest.prototype.requests[files[i].filename].onload(); - } - Module['removeRunDependency']('datafile_text/text_bmfont_unordered.data'); - - }; - Module['addRunDependency']('datafile_text/text_bmfont_unordered.data'); - - if (!Module.preloadResults) Module.preloadResults = {}; - - Module.preloadResults[PACKAGE_NAME] = {fromCache: false}; - if (fetched) { - processPackageData(fetched); - fetched = null; - } else { - fetchedCallback = processPackageData; - } - - } - if (Module['calledRun']) { - runWithFS(); - } else { - if (!Module['preRun']) Module['preRun'] = []; - Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it - } - - } - loadPackage({"files": [{"audio": 0, "start": 0, "crunched": 0, "end": 21276, "filename": "/resources/pixantiqua.fnt"}, {"audio": 0, "start": 21276, "crunched": 0, "end": 25807, "filename": "/resources/pixantiqua_0.png"}], "remote_package_size": 25807, "package_uuid": "103b8f6f-8c54-4352-978b-600fb0bf82be"}); - -})(); - -// The Module object: Our interface to the outside world. We import -// and export values on it, and do the work to get that through -// closure compiler if necessary. There are various ways Module can be used: -// 1. Not defined. We create it here -// 2. A function parameter, function(Module) { ..generated code.. } -// 3. pre-run appended it, var Module = {}; ..generated code.. -// 4. External script tag defines var Module. -// We need to do an eval in order to handle the closure compiler -// case, where this code here is minified but Module was defined -// elsewhere (e.g. case 4 above). We also need to check if Module -// already exists (e.g. case 3 above). -// Note that if you want to run closure, and also to use Module -// after the generated code, you will need to define var Module = {}; -// before the code. Then that object will be used in the code, and you -// can continue to use Module afterwards as well. -var Module; -if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {}; - -// Sometimes an existing Module object exists with properties -// meant to overwrite the default module functionality. Here -// we collect those properties and reapply _after_ we configure -// the current environment's defaults to avoid having to be so -// defensive during initialization. -var moduleOverrides = {}; -for (var key in Module) { - if (Module.hasOwnProperty(key)) { - moduleOverrides[key] = Module[key]; - } -} - -// The environment setup code below is customized to use Module. -// *** Environment setup code *** -var ENVIRONMENT_IS_WEB = false; -var ENVIRONMENT_IS_WORKER = false; -var ENVIRONMENT_IS_NODE = false; -var ENVIRONMENT_IS_SHELL = false; - -// Three configurations we can be running in: -// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) -// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) -// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) - -if (Module['ENVIRONMENT']) { - if (Module['ENVIRONMENT'] === 'WEB') { - ENVIRONMENT_IS_WEB = true; - } else if (Module['ENVIRONMENT'] === 'WORKER') { - ENVIRONMENT_IS_WORKER = true; - } else if (Module['ENVIRONMENT'] === 'NODE') { - ENVIRONMENT_IS_NODE = true; - } else if (Module['ENVIRONMENT'] === 'SHELL') { - ENVIRONMENT_IS_SHELL = true; - } else { - throw new Error('The provided Module[\'ENVIRONMENT\'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.'); - } -} else { - ENVIRONMENT_IS_WEB = typeof window === 'object'; - ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; - ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; - ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; -} - - -if (ENVIRONMENT_IS_NODE) { - // Expose functionality in the same simple way that the shells work - // Note that we pollute the global namespace here, otherwise we break in node - if (!Module['print']) Module['print'] = console.log; - if (!Module['printErr']) Module['printErr'] = console.warn; - - var nodeFS; - var nodePath; - - Module['read'] = function shell_read(filename, binary) { - if (!nodeFS) nodeFS = require('fs'); - if (!nodePath) nodePath = require('path'); - filename = nodePath['normalize'](filename); - var ret = nodeFS['readFileSync'](filename); - return binary ? ret : ret.toString(); - }; - - Module['readBinary'] = function readBinary(filename) { - var ret = Module['read'](filename, true); - if (!ret.buffer) { - ret = new Uint8Array(ret); - } - assert(ret.buffer); - return ret; - }; - - Module['load'] = function load(f) { - globalEval(read(f)); - }; - - if (!Module['thisProgram']) { - if (process['argv'].length > 1) { - Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); - } else { - Module['thisProgram'] = 'unknown-program'; - } - } - - Module['arguments'] = process['argv'].slice(2); - - if (typeof module !== 'undefined') { - module['exports'] = Module; - } - - process['on']('uncaughtException', function(ex) { - // suppress ExitStatus exceptions from showing an error - if (!(ex instanceof ExitStatus)) { - throw ex; - } - }); - - Module['inspect'] = function () { return '[Emscripten Module object]'; }; -} -else if (ENVIRONMENT_IS_SHELL) { - if (!Module['print']) Module['print'] = print; - if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm - - if (typeof read != 'undefined') { - Module['read'] = read; - } else { - Module['read'] = function shell_read() { throw 'no read() available' }; - } - - Module['readBinary'] = function readBinary(f) { - if (typeof readbuffer === 'function') { - return new Uint8Array(readbuffer(f)); - } - var data = read(f, 'binary'); - assert(typeof data === 'object'); - return data; - }; - - if (typeof scriptArgs != 'undefined') { - Module['arguments'] = scriptArgs; - } else if (typeof arguments != 'undefined') { - Module['arguments'] = arguments; - } - - if (typeof quit === 'function') { - Module['quit'] = function(status, toThrow) { - quit(status); - } - } - -} -else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { - Module['read'] = function shell_read(url) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.send(null); - return xhr.responseText; - }; - - if (ENVIRONMENT_IS_WORKER) { - Module['readBinary'] = function readBinary(url) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.responseType = 'arraybuffer'; - xhr.send(null); - return new Uint8Array(xhr.response); - }; - } - - Module['readAsync'] = function readAsync(url, onload, onerror) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.onload = function xhr_onload() { - if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 - onload(xhr.response); - } else { - onerror(); - } - }; - xhr.onerror = onerror; - xhr.send(null); - }; - - if (typeof arguments != 'undefined') { - Module['arguments'] = arguments; - } - - if (typeof console !== 'undefined') { - if (!Module['print']) Module['print'] = function shell_print(x) { - console.log(x); - }; - if (!Module['printErr']) Module['printErr'] = function shell_printErr(x) { - console.warn(x); - }; - } else { - // Probably a worker, and without console.log. We can do very little here... - var TRY_USE_DUMP = false; - if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) { - dump(x); - }) : (function(x) { - // self.postMessage(x); // enable this if you want stdout to be sent as messages - })); - } - - if (ENVIRONMENT_IS_WORKER) { - Module['load'] = importScripts; - } - - if (typeof Module['setWindowTitle'] === 'undefined') { - Module['setWindowTitle'] = function(title) { document.title = title }; - } -} -else { - // Unreachable because SHELL is dependant on the others - throw 'Unknown runtime environment. Where are we?'; -} - -function globalEval(x) { - eval.call(null, x); -} -if (!Module['load'] && Module['read']) { - Module['load'] = function load(f) { - globalEval(Module['read'](f)); - }; -} -if (!Module['print']) { - Module['print'] = function(){}; -} -if (!Module['printErr']) { - Module['printErr'] = Module['print']; -} -if (!Module['arguments']) { - Module['arguments'] = []; -} -if (!Module['thisProgram']) { - Module['thisProgram'] = './this.program'; -} -if (!Module['quit']) { - Module['quit'] = function(status, toThrow) { - throw toThrow; - } -} - -// *** Environment setup code *** - -// Closure helpers -Module.print = Module['print']; -Module.printErr = Module['printErr']; - -// Callbacks -Module['preRun'] = []; -Module['postRun'] = []; - -// Merge back in the overrides -for (var key in moduleOverrides) { - if (moduleOverrides.hasOwnProperty(key)) { - Module[key] = moduleOverrides[key]; - } -} -// Free the object hierarchy contained in the overrides, this lets the GC -// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. -moduleOverrides = undefined; - - - -// {{PREAMBLE_ADDITIONS}} - -// === Preamble library stuff === - -// Documentation for the public APIs defined in this file must be updated in: -// site/source/docs/api_reference/preamble.js.rst -// A prebuilt local version of the documentation is available at: -// site/build/text/docs/api_reference/preamble.js.txt -// You can also build docs locally as HTML or other formats in site/ -// An online HTML version (which may be of a different version of Emscripten) -// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html - -//======================================== -// Runtime code shared with compiler -//======================================== - -var Runtime = { - setTempRet0: function (value) { - tempRet0 = value; - return value; - }, - getTempRet0: function () { - return tempRet0; - }, - stackSave: function () { - return STACKTOP; - }, - stackRestore: function (stackTop) { - STACKTOP = stackTop; - }, - getNativeTypeSize: function (type) { - switch (type) { - case 'i1': case 'i8': return 1; - case 'i16': return 2; - case 'i32': return 4; - case 'i64': return 8; - case 'float': return 4; - case 'double': return 8; - default: { - if (type[type.length-1] === '*') { - return Runtime.QUANTUM_SIZE; // A pointer - } else if (type[0] === 'i') { - var bits = parseInt(type.substr(1)); - assert(bits % 8 === 0); - return bits/8; - } else { - return 0; - } - } - } - }, - getNativeFieldSize: function (type) { - return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE); - }, - STACK_ALIGN: 16, - prepVararg: function (ptr, type) { - if (type === 'double' || type === 'i64') { - // move so the load is aligned - if (ptr & 7) { - assert((ptr & 7) === 4); - ptr += 4; - } - } else { - assert((ptr & 3) === 0); - } - return ptr; - }, - getAlignSize: function (type, size, vararg) { - // we align i64s and doubles on 64-bit boundaries, unlike x86 - if (!vararg && (type == 'i64' || type == 'double')) return 8; - if (!type) return Math.min(size, 8); // align structures internally to 64 bits - return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE); - }, - dynCall: function (sig, ptr, args) { - if (args && args.length) { - assert(args.length == sig.length-1); - assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); - return Module['dynCall_' + sig].apply(null, [ptr].concat(args)); - } else { - assert(sig.length == 1); - assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); - return Module['dynCall_' + sig].call(null, ptr); - } - }, - functionPointers: [], - addFunction: function (func) { - for (var i = 0; i < Runtime.functionPointers.length; i++) { - if (!Runtime.functionPointers[i]) { - Runtime.functionPointers[i] = func; - return 2*(1 + i); - } - } - throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; - }, - removeFunction: function (index) { - Runtime.functionPointers[(index-2)/2] = null; - }, - warnOnce: function (text) { - if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; - if (!Runtime.warnOnce.shown[text]) { - Runtime.warnOnce.shown[text] = 1; - Module.printErr(text); - } - }, - funcWrappers: {}, - getFuncWrapper: function (func, sig) { - assert(sig); - if (!Runtime.funcWrappers[sig]) { - Runtime.funcWrappers[sig] = {}; - } - var sigCache = Runtime.funcWrappers[sig]; - if (!sigCache[func]) { - // optimize away arguments usage in common cases - if (sig.length === 1) { - sigCache[func] = function dynCall_wrapper() { - return Runtime.dynCall(sig, func); - }; - } else if (sig.length === 2) { - sigCache[func] = function dynCall_wrapper(arg) { - return Runtime.dynCall(sig, func, [arg]); - }; - } else { - // general case - sigCache[func] = function dynCall_wrapper() { - return Runtime.dynCall(sig, func, Array.prototype.slice.call(arguments)); - }; - } - } - return sigCache[func]; - }, - getCompilerSetting: function (name) { - throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work'; - }, - stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+15)&-16);(assert((((STACKTOP|0) < (STACK_MAX|0))|0))|0); return ret; }, - staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + (assert(!staticSealed),size))|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; }, - dynamicAlloc: function (size) { assert(DYNAMICTOP_PTR);var ret = HEAP32[DYNAMICTOP_PTR>>2];var end = (((ret + size + 15)|0) & -16);HEAP32[DYNAMICTOP_PTR>>2] = end;if (end >= TOTAL_MEMORY) {var success = enlargeMemory();if (!success) {HEAP32[DYNAMICTOP_PTR>>2] = ret;return 0;}}return ret;}, - alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 16))*(quantum ? quantum : 16); return ret; }, - makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0))); return ret; }, - GLOBAL_BASE: 8, - QUANTUM_SIZE: 4, - __dummy__: 0 -} - - - -Module["Runtime"] = Runtime; - - - -//======================================== -// Runtime essentials -//======================================== - -var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort() -var EXITSTATUS = 0; - -/** @type {function(*, string=)} */ -function assert(condition, text) { - if (!condition) { - abort('Assertion failed: ' + text); - } -} - -var globalScope = this; - -// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) -function getCFunc(ident) { - var func = Module['_' + ident]; // closure exported function - if (!func) { - try { func = eval('_' + ident); } catch(e) {} - } - assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)'); - return func; -} - -var cwrap, ccall; -(function(){ - var JSfuncs = { - // Helpers for cwrap -- it can't refer to Runtime directly because it might - // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find - // out what the minified function name is. - 'stackSave': function() { - Runtime.stackSave() - }, - 'stackRestore': function() { - Runtime.stackRestore() - }, - // type conversion from js to c - 'arrayToC' : function(arr) { - var ret = Runtime.stackAlloc(arr.length); - writeArrayToMemory(arr, ret); - return ret; - }, - 'stringToC' : function(str) { - var ret = 0; - if (str !== null && str !== undefined && str !== 0) { // null string - // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' - var len = (str.length << 2) + 1; - ret = Runtime.stackAlloc(len); - stringToUTF8(str, ret, len); - } - return ret; - } - }; - // For fast lookup of conversion functions - var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']}; - - // C calling interface. - ccall = function ccallFunc(ident, returnType, argTypes, args, opts) { - var func = getCFunc(ident); - var cArgs = []; - var stack = 0; - assert(returnType !== 'array', 'Return type should not be "array".'); - if (args) { - for (var i = 0; i < args.length; i++) { - var converter = toC[argTypes[i]]; - if (converter) { - if (stack === 0) stack = Runtime.stackSave(); - cArgs[i] = converter(args[i]); - } else { - cArgs[i] = args[i]; - } - } - } - var ret = func.apply(null, cArgs); - if ((!opts || !opts.async) && typeof EmterpreterAsync === 'object') { - assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling ccall'); - } - if (opts && opts.async) assert(!returnType, 'async ccalls cannot return values'); - if (returnType === 'string') ret = Pointer_stringify(ret); - if (stack !== 0) { - if (opts && opts.async) { - EmterpreterAsync.asyncFinalizers.push(function() { - Runtime.stackRestore(stack); - }); - return; - } - Runtime.stackRestore(stack); - } - return ret; - } - - var sourceRegex = /^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; - function parseJSFunc(jsfunc) { - // Match the body and the return value of a javascript function source - var parsed = jsfunc.toString().match(sourceRegex).slice(1); - return {arguments : parsed[0], body : parsed[1], returnValue: parsed[2]} - } - - // sources of useful functions. we create this lazily as it can trigger a source decompression on this entire file - var JSsource = null; - function ensureJSsource() { - if (!JSsource) { - JSsource = {}; - for (var fun in JSfuncs) { - if (JSfuncs.hasOwnProperty(fun)) { - // Elements of toCsource are arrays of three items: - // the code, and the return value - JSsource[fun] = parseJSFunc(JSfuncs[fun]); - } - } - } - } - - cwrap = function cwrap(ident, returnType, argTypes) { - argTypes = argTypes || []; - var cfunc = getCFunc(ident); - // When the function takes numbers and returns a number, we can just return - // the original function - var numericArgs = argTypes.every(function(type){ return type === 'number'}); - var numericRet = (returnType !== 'string'); - if ( numericRet && numericArgs) { - return cfunc; - } - // Creation of the arguments list (["$1","$2",...,"$nargs"]) - var argNames = argTypes.map(function(x,i){return '$'+i}); - var funcstr = "(function(" + argNames.join(',') + ") {"; - var nargs = argTypes.length; - if (!numericArgs) { - // Generate the code needed to convert the arguments from javascript - // values to pointers - ensureJSsource(); - funcstr += 'var stack = ' + JSsource['stackSave'].body + ';'; - for (var i = 0; i < nargs; i++) { - var arg = argNames[i], type = argTypes[i]; - if (type === 'number') continue; - var convertCode = JSsource[type + 'ToC']; // [code, return] - funcstr += 'var ' + convertCode.arguments + ' = ' + arg + ';'; - funcstr += convertCode.body + ';'; - funcstr += arg + '=(' + convertCode.returnValue + ');'; - } - } - - // When the code is compressed, the name of cfunc is not literally 'cfunc' anymore - var cfuncname = parseJSFunc(function(){return cfunc}).returnValue; - // Call the function - funcstr += 'var ret = ' + cfuncname + '(' + argNames.join(',') + ');'; - if (!numericRet) { // Return type can only by 'string' or 'number' - // Convert the result to a string - var strgfy = parseJSFunc(function(){return Pointer_stringify}).returnValue; - funcstr += 'ret = ' + strgfy + '(ret);'; - } - funcstr += "if (typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling cwrap') }"; - if (!numericArgs) { - // If we had a stack, restore it - ensureJSsource(); - funcstr += JSsource['stackRestore'].body.replace('()', '(stack)') + ';'; - } - funcstr += 'return ret})'; - return eval(funcstr); - }; -})(); -Module["ccall"] = ccall; -Module["cwrap"] = cwrap; - -/** @type {function(number, number, string, boolean=)} */ -function setValue(ptr, value, type, noSafe) { - type = type || 'i8'; - if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit - switch(type) { - case 'i1': HEAP8[((ptr)>>0)]=value; break; - case 'i8': HEAP8[((ptr)>>0)]=value; break; - case 'i16': HEAP16[((ptr)>>1)]=value; break; - case 'i32': HEAP32[((ptr)>>2)]=value; break; - case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; - case 'float': HEAPF32[((ptr)>>2)]=value; break; - case 'double': HEAPF64[((ptr)>>3)]=value; break; - default: abort('invalid type for setValue: ' + type); - } -} -Module["setValue"] = setValue; - -/** @type {function(number, string, boolean=)} */ -function getValue(ptr, type, noSafe) { - type = type || 'i8'; - if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit - switch(type) { - case 'i1': return HEAP8[((ptr)>>0)]; - case 'i8': return HEAP8[((ptr)>>0)]; - case 'i16': return HEAP16[((ptr)>>1)]; - case 'i32': return HEAP32[((ptr)>>2)]; - case 'i64': return HEAP32[((ptr)>>2)]; - case 'float': return HEAPF32[((ptr)>>2)]; - case 'double': return HEAPF64[((ptr)>>3)]; - default: abort('invalid type for setValue: ' + type); - } - return null; -} -Module["getValue"] = getValue; - -var ALLOC_NORMAL = 0; // Tries to use _malloc() -var ALLOC_STACK = 1; // Lives for the duration of the current function call -var ALLOC_STATIC = 2; // Cannot be freed -var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk -var ALLOC_NONE = 4; // Do not allocate -Module["ALLOC_NORMAL"] = ALLOC_NORMAL; -Module["ALLOC_STACK"] = ALLOC_STACK; -Module["ALLOC_STATIC"] = ALLOC_STATIC; -Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC; -Module["ALLOC_NONE"] = ALLOC_NONE; - -// allocate(): This is for internal use. You can use it yourself as well, but the interface -// is a little tricky (see docs right below). The reason is that it is optimized -// for multiple syntaxes to save space in generated code. So you should -// normally not use allocate(), and instead allocate memory using _malloc(), -// initialize it with setValue(), and so forth. -// @slab: An array of data, or a number. If a number, then the size of the block to allocate, -// in *bytes* (note that this is sometimes confusing: the next parameter does not -// affect this!) -// @types: Either an array of types, one for each byte (or 0 if no type at that position), -// or a single type which is used for the entire block. This only matters if there -// is initial data - if @slab is a number, then this does not matter at all and is -// ignored. -// @allocator: How to allocate memory, see ALLOC_* -/** @type {function((TypedArray|Array|number), string, number, number=)} */ -function allocate(slab, types, allocator, ptr) { - var zeroinit, size; - if (typeof slab === 'number') { - zeroinit = true; - size = slab; - } else { - zeroinit = false; - size = slab.length; - } - - var singleType = typeof types === 'string' ? types : null; - - var ret; - if (allocator == ALLOC_NONE) { - ret = ptr; - } else { - ret = [typeof _malloc === 'function' ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); - } - - if (zeroinit) { - var ptr = ret, stop; - assert((ret & 3) == 0); - stop = ret + (size & ~3); - for (; ptr < stop; ptr += 4) { - HEAP32[((ptr)>>2)]=0; - } - stop = ret + size; - while (ptr < stop) { - HEAP8[((ptr++)>>0)]=0; - } - return ret; - } - - if (singleType === 'i8') { - if (slab.subarray || slab.slice) { - HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret); - } else { - HEAPU8.set(new Uint8Array(slab), ret); - } - return ret; - } - - var i = 0, type, typeSize, previousType; - while (i < size) { - var curr = slab[i]; - - if (typeof curr === 'function') { - curr = Runtime.getFunctionIndex(curr); - } - - type = singleType || types[i]; - if (type === 0) { - i++; - continue; - } - assert(type, 'Must know what type to store in allocate!'); - - if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later - - setValue(ret+i, curr, type); - - // no need to look up size unless type changes, so cache it - if (previousType !== type) { - typeSize = Runtime.getNativeTypeSize(type); - previousType = type; - } - i += typeSize; - } - - return ret; -} -Module["allocate"] = allocate; - -// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready -function getMemory(size) { - if (!staticSealed) return Runtime.staticAlloc(size); - if (!runtimeInitialized) return Runtime.dynamicAlloc(size); - return _malloc(size); -} -Module["getMemory"] = getMemory; - -/** @type {function(number, number=)} */ -function Pointer_stringify(ptr, length) { - if (length === 0 || !ptr) return ''; - // TODO: use TextDecoder - // Find the length, and check for UTF while doing so - var hasUtf = 0; - var t; - var i = 0; - while (1) { - assert(ptr + i < TOTAL_MEMORY); - t = HEAPU8[(((ptr)+(i))>>0)]; - hasUtf |= t; - if (t == 0 && !length) break; - i++; - if (length && i == length) break; - } - if (!length) length = i; - - var ret = ''; - - if (hasUtf < 128) { - var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack - var curr; - while (length > 0) { - curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); - ret = ret ? ret + curr : curr; - ptr += MAX_CHUNK; - length -= MAX_CHUNK; - } - return ret; - } - return Module['UTF8ToString'](ptr); -} -Module["Pointer_stringify"] = Pointer_stringify; - -// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -function AsciiToString(ptr) { - var str = ''; - while (1) { - var ch = HEAP8[((ptr++)>>0)]; - if (!ch) return str; - str += String.fromCharCode(ch); - } -} -Module["AsciiToString"] = AsciiToString; - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. - -function stringToAscii(str, outPtr) { - return writeAsciiToMemory(str, outPtr, false); -} -Module["stringToAscii"] = stringToAscii; - -// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns -// a copy of that string as a Javascript String object. - -var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; -function UTF8ArrayToString(u8Array, idx) { - var endPtr = idx; - // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. - // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. - while (u8Array[endPtr]) ++endPtr; - - if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { - return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); - } else { - var u0, u1, u2, u3, u4, u5; - - var str = ''; - while (1) { - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 - u0 = u8Array[idx++]; - if (!u0) return str; - if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } - u1 = u8Array[idx++] & 63; - if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } - u2 = u8Array[idx++] & 63; - if ((u0 & 0xF0) == 0xE0) { - u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; - } else { - u3 = u8Array[idx++] & 63; - if ((u0 & 0xF8) == 0xF0) { - u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; - } else { - u4 = u8Array[idx++] & 63; - if ((u0 & 0xFC) == 0xF8) { - u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; - } else { - u5 = u8Array[idx++] & 63; - u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; - } - } - } - if (u0 < 0x10000) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } - } - } -} -Module["UTF8ArrayToString"] = UTF8ArrayToString; - -// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -function UTF8ToString(ptr) { - return UTF8ArrayToString(HEAPU8,ptr); -} -Module["UTF8ToString"] = UTF8ToString; - -// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', -// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. -// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element. -// outIdx: The starting offset in the array to begin the copying. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. -// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { - if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. - return 0; - - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); - if (u <= 0x7F) { - if (outIdx >= endIdx) break; - outU8Array[outIdx++] = u; - } else if (u <= 0x7FF) { - if (outIdx + 1 >= endIdx) break; - outU8Array[outIdx++] = 0xC0 | (u >> 6); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0xFFFF) { - if (outIdx + 2 >= endIdx) break; - outU8Array[outIdx++] = 0xE0 | (u >> 12); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0x1FFFFF) { - if (outIdx + 3 >= endIdx) break; - outU8Array[outIdx++] = 0xF0 | (u >> 18); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0x3FFFFFF) { - if (outIdx + 4 >= endIdx) break; - outU8Array[outIdx++] = 0xF8 | (u >> 24); - outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else { - if (outIdx + 5 >= endIdx) break; - outU8Array[outIdx++] = 0xFC | (u >> 30); - outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } - } - // Null-terminate the pointer to the buffer. - outU8Array[outIdx] = 0; - return outIdx - startIdx; -} -Module["stringToUTF8Array"] = stringToUTF8Array; - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. -// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF8(str, outPtr, maxBytesToWrite) { - assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); -} -Module["stringToUTF8"] = stringToUTF8; - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); - if (u <= 0x7F) { - ++len; - } else if (u <= 0x7FF) { - len += 2; - } else if (u <= 0xFFFF) { - len += 3; - } else if (u <= 0x1FFFFF) { - len += 4; - } else if (u <= 0x3FFFFFF) { - len += 5; - } else { - len += 6; - } - } - return len; -} -Module["lengthBytesUTF8"] = lengthBytesUTF8; - -// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; -function UTF16ToString(ptr) { - assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); - var endPtr = ptr; - // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. - // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. - var idx = endPtr >> 1; - while (HEAP16[idx]) ++idx; - endPtr = idx << 1; - - if (endPtr - ptr > 32 && UTF16Decoder) { - return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); - } else { - var i = 0; - - var str = ''; - while (1) { - var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; - if (codeUnit == 0) return str; - ++i; - // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. - str += String.fromCharCode(codeUnit); - } - } -} - - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. -// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outPtr: Byte address in Emscripten HEAP where to write the string to. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. -// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF16(str, outPtr, maxBytesToWrite) { - assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); - assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. - if (maxBytesToWrite === undefined) { - maxBytesToWrite = 0x7FFFFFFF; - } - if (maxBytesToWrite < 2) return 0; - maxBytesToWrite -= 2; // Null terminator. - var startPtr = outPtr; - var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; - for (var i = 0; i < numCharsToWrite; ++i) { - // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. - var codeUnit = str.charCodeAt(i); // possibly a lead surrogate - HEAP16[((outPtr)>>1)]=codeUnit; - outPtr += 2; - } - // Null-terminate the pointer to the HEAP. - HEAP16[((outPtr)>>1)]=0; - return outPtr - startPtr; -} - - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF16(str) { - return str.length*2; -} - - -function UTF32ToString(ptr) { - assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); - var i = 0; - - var str = ''; - while (1) { - var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; - if (utf32 == 0) - return str; - ++i; - // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - if (utf32 >= 0x10000) { - var ch = utf32 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } else { - str += String.fromCharCode(utf32); - } - } -} - - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. -// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outPtr: Byte address in Emscripten HEAP where to write the string to. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. -// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF32(str, outPtr, maxBytesToWrite) { - assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); - assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. - if (maxBytesToWrite === undefined) { - maxBytesToWrite = 0x7FFFFFFF; - } - if (maxBytesToWrite < 4) return 0; - var startPtr = outPtr; - var endPtr = startPtr + maxBytesToWrite - 4; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var codeUnit = str.charCodeAt(i); // possibly a lead surrogate - if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { - var trailSurrogate = str.charCodeAt(++i); - codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); - } - HEAP32[((outPtr)>>2)]=codeUnit; - outPtr += 4; - if (outPtr + 4 > endPtr) break; - } - // Null-terminate the pointer to the HEAP. - HEAP32[((outPtr)>>2)]=0; - return outPtr - startPtr; -} - - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF32(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var codeUnit = str.charCodeAt(i); - if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. - len += 4; - } - - return len; -} - - -function demangle(func) { - var __cxa_demangle_func = Module['___cxa_demangle'] || Module['__cxa_demangle']; - if (__cxa_demangle_func) { - try { - var s = - func.substr(1); - var len = lengthBytesUTF8(s)+1; - var buf = _malloc(len); - stringToUTF8(s, buf, len); - var status = _malloc(4); - var ret = __cxa_demangle_func(buf, 0, 0, status); - if (getValue(status, 'i32') === 0 && ret) { - return Pointer_stringify(ret); - } - // otherwise, libcxxabi failed - } catch(e) { - // ignore problems here - } finally { - if (buf) _free(buf); - if (status) _free(status); - if (ret) _free(ret); - } - // failure when using libcxxabi, don't demangle - return func; - } - Runtime.warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); - return func; -} - -function demangleAll(text) { - var regex = - /__Z[\w\d_]+/g; - return text.replace(regex, - function(x) { - var y = demangle(x); - return x === y ? x : (x + ' [' + y + ']'); - }); -} - -function jsStackTrace() { - var err = new Error(); - if (!err.stack) { - // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, - // so try that as a special-case. - try { - throw new Error(0); - } catch(e) { - err = e; - } - if (!err.stack) { - return '(no stack trace available)'; - } - } - return err.stack.toString(); -} - -function stackTrace() { - var js = jsStackTrace(); - if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace'](); - return demangleAll(js); -} -Module["stackTrace"] = stackTrace; - -// Memory management - -var PAGE_SIZE = 16384; -var WASM_PAGE_SIZE = 65536; -var ASMJS_PAGE_SIZE = 16777216; -var MIN_TOTAL_MEMORY = 16777216; - -function alignUp(x, multiple) { - if (x % multiple > 0) { - x += multiple - (x % multiple); - } - return x; -} - -var HEAP, -/** @type {ArrayBuffer} */ - buffer, -/** @type {Int8Array} */ - HEAP8, -/** @type {Uint8Array} */ - HEAPU8, -/** @type {Int16Array} */ - HEAP16, -/** @type {Uint16Array} */ - HEAPU16, -/** @type {Int32Array} */ - HEAP32, -/** @type {Uint32Array} */ - HEAPU32, -/** @type {Float32Array} */ - HEAPF32, -/** @type {Float64Array} */ - HEAPF64; - -function updateGlobalBuffer(buf) { - Module['buffer'] = buffer = buf; -} - -function updateGlobalBufferViews() { - Module['HEAP8'] = HEAP8 = new Int8Array(buffer); - Module['HEAP16'] = HEAP16 = new Int16Array(buffer); - Module['HEAP32'] = HEAP32 = new Int32Array(buffer); - Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer); - Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer); - Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer); - Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer); - Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer); -} - -var STATIC_BASE, STATICTOP, staticSealed; // static area -var STACK_BASE, STACKTOP, STACK_MAX; // stack area -var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk - - STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; - staticSealed = false; - - -// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. -function writeStackCookie() { - assert((STACK_MAX & 3) == 0); - HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467; - HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE; -} - -function checkStackCookie() { - if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) { - abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16)); - } - // Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own. - if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!'; -} - -function abortStackOverflow(allocSize) { - abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - Module['asm'].stackSave() + allocSize) + ' bytes available!'); -} - -function abortOnCannotGrowMemory() { - abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); -} - - -function enlargeMemory() { - abortOnCannotGrowMemory(); -} - - -var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; -var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216; -if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); - -// Initialize the runtime's memory -// check for full engine support (use string 'subarray' to avoid closure compiler confusion) -assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined, - 'JS engine does not provide full typed array support'); - - - -// Use a provided buffer, if there is one, or else allocate a new one -if (Module['buffer']) { - buffer = Module['buffer']; - assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength); -} else { - // Use a WebAssembly memory where available - { - buffer = new ArrayBuffer(TOTAL_MEMORY); - } - assert(buffer.byteLength === TOTAL_MEMORY); -} -updateGlobalBufferViews(); - - -function getTotalMemory() { - return TOTAL_MEMORY; -} - -// Endianness check (note: assumes compiler arch was little-endian) - HEAP32[0] = 0x63736d65; /* 'emsc' */ -HEAP16[1] = 0x6373; -if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!'; - -Module['HEAP'] = HEAP; -Module['buffer'] = buffer; -Module['HEAP8'] = HEAP8; -Module['HEAP16'] = HEAP16; -Module['HEAP32'] = HEAP32; -Module['HEAPU8'] = HEAPU8; -Module['HEAPU16'] = HEAPU16; -Module['HEAPU32'] = HEAPU32; -Module['HEAPF32'] = HEAPF32; -Module['HEAPF64'] = HEAPF64; - -function callRuntimeCallbacks(callbacks) { - while(callbacks.length > 0) { - var callback = callbacks.shift(); - if (typeof callback == 'function') { - callback(); - continue; - } - var func = callback.func; - if (typeof func === 'number') { - if (callback.arg === undefined) { - Module['dynCall_v'](func); - } else { - Module['dynCall_vi'](func, callback.arg); - } - } else { - func(callback.arg === undefined ? null : callback.arg); - } - } -} - -var __ATPRERUN__ = []; // functions called before the runtime is initialized -var __ATINIT__ = []; // functions called during startup -var __ATMAIN__ = []; // functions called when main() is to be run -var __ATEXIT__ = []; // functions called during shutdown -var __ATPOSTRUN__ = []; // functions called after the runtime has exited - -var runtimeInitialized = false; -var runtimeExited = false; - - -function preRun() { - // compatibility - merge in anything from Module['preRun'] at this time - if (Module['preRun']) { - if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; - while (Module['preRun'].length) { - addOnPreRun(Module['preRun'].shift()); - } - } - callRuntimeCallbacks(__ATPRERUN__); -} - -function ensureInitRuntime() { - checkStackCookie(); - if (runtimeInitialized) return; - runtimeInitialized = true; - callRuntimeCallbacks(__ATINIT__); -} - -function preMain() { - checkStackCookie(); - callRuntimeCallbacks(__ATMAIN__); -} - -function exitRuntime() { - checkStackCookie(); - callRuntimeCallbacks(__ATEXIT__); - runtimeExited = true; -} - -function postRun() { - checkStackCookie(); - // compatibility - merge in anything from Module['postRun'] at this time - if (Module['postRun']) { - if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; - while (Module['postRun'].length) { - addOnPostRun(Module['postRun'].shift()); - } - } - callRuntimeCallbacks(__ATPOSTRUN__); -} - -function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); -} -Module["addOnPreRun"] = addOnPreRun; - -function addOnInit(cb) { - __ATINIT__.unshift(cb); -} -Module["addOnInit"] = addOnInit; - -function addOnPreMain(cb) { - __ATMAIN__.unshift(cb); -} -Module["addOnPreMain"] = addOnPreMain; - -function addOnExit(cb) { - __ATEXIT__.unshift(cb); -} -Module["addOnExit"] = addOnExit; - -function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); -} -Module["addOnPostRun"] = addOnPostRun; - -// Tools - -/** @type {function(string, boolean=, number=)} */ -function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) u8array.length = numBytesWritten; - return u8array; -} -Module["intArrayFromString"] = intArrayFromString; - -function intArrayToString(array) { - var ret = []; - for (var i = 0; i < array.length; i++) { - var chr = array[i]; - if (chr > 0xFF) { - assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); - chr &= 0xFF; - } - ret.push(String.fromCharCode(chr)); - } - return ret.join(''); -} -Module["intArrayToString"] = intArrayToString; - -// Deprecated: This function should not be called because it is unsafe and does not provide -// a maximum length limit of how many bytes it is allowed to write. Prefer calling the -// function stringToUTF8Array() instead, which takes in a maximum length that can be used -// to be secure from out of bounds writes. -/** @deprecated */ -function writeStringToMemory(string, buffer, dontAddNull) { - Runtime.warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); - - var /** @type {number} */ lastChar, /** @type {number} */ end; - if (dontAddNull) { - // stringToUTF8Array always appends null. If we don't want to do that, remember the - // character that existed at the location where the null will be placed, and restore - // that after the write (below). - end = buffer + lengthBytesUTF8(string); - lastChar = HEAP8[end]; - } - stringToUTF8(string, buffer, Infinity); - if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. -} -Module["writeStringToMemory"] = writeStringToMemory; - -function writeArrayToMemory(array, buffer) { - assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') - HEAP8.set(array, buffer); -} -Module["writeArrayToMemory"] = writeArrayToMemory; - -function writeAsciiToMemory(str, buffer, dontAddNull) { - for (var i = 0; i < str.length; ++i) { - assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); - HEAP8[((buffer++)>>0)]=str.charCodeAt(i); - } - // Null-terminate the pointer to the HEAP. - if (!dontAddNull) HEAP8[((buffer)>>0)]=0; -} -Module["writeAsciiToMemory"] = writeAsciiToMemory; - -function unSign(value, bits, ignore) { - if (value >= 0) { - return value; - } - return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts - : Math.pow(2, bits) + value; -} -function reSign(value, bits, ignore) { - if (value <= 0) { - return value; - } - var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 - : Math.pow(2, bits-1); - if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that - // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors - // TODO: In i64 mode 1, resign the two parts separately and safely - value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts - } - return value; -} - -// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 ) -if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) { - var ah = a >>> 16; - var al = a & 0xffff; - var bh = b >>> 16; - var bl = b & 0xffff; - return (al*bl + ((ah*bl + al*bh) << 16))|0; -}; -Math.imul = Math['imul']; - - -if (!Math['clz32']) Math['clz32'] = function(x) { - x = x >>> 0; - for (var i = 0; i < 32; i++) { - if (x & (1 << (31 - i))) return i; - } - return 32; -}; -Math.clz32 = Math['clz32'] - -if (!Math['trunc']) Math['trunc'] = function(x) { - return x < 0 ? Math.ceil(x) : Math.floor(x); -}; -Math.trunc = Math['trunc']; - -var Math_abs = Math.abs; -var Math_cos = Math.cos; -var Math_sin = Math.sin; -var Math_tan = Math.tan; -var Math_acos = Math.acos; -var Math_asin = Math.asin; -var Math_atan = Math.atan; -var Math_atan2 = Math.atan2; -var Math_exp = Math.exp; -var Math_log = Math.log; -var Math_sqrt = Math.sqrt; -var Math_ceil = Math.ceil; -var Math_floor = Math.floor; -var Math_pow = Math.pow; -var Math_imul = Math.imul; -var Math_fround = Math.fround; -var Math_round = Math.round; -var Math_min = Math.min; -var Math_clz32 = Math.clz32; -var Math_trunc = Math.trunc; - -// A counter of dependencies for calling run(). If we need to -// do asynchronous work before running, increment this and -// decrement it. Incrementing must happen in a place like -// PRE_RUN_ADDITIONS (used by emcc to add file preloading). -// Note that you can add dependencies in preRun, even though -// it happens right before run - run will be postponed until -// the dependencies are met. -var runDependencies = 0; -var runDependencyWatcher = null; -var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled -var runDependencyTracking = {}; - -function getUniqueRunDependency(id) { - var orig = id; - while (1) { - if (!runDependencyTracking[id]) return id; - id = orig + Math.random(); - } - return id; -} - -function addRunDependency(id) { - runDependencies++; - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - if (id) { - assert(!runDependencyTracking[id]); - runDependencyTracking[id] = 1; - if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { - // Check for missing dependencies every few seconds - runDependencyWatcher = setInterval(function() { - if (ABORT) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - return; - } - var shown = false; - for (var dep in runDependencyTracking) { - if (!shown) { - shown = true; - Module.printErr('still waiting on run dependencies:'); - } - Module.printErr('dependency: ' + dep); - } - if (shown) { - Module.printErr('(end of list)'); - } - }, 10000); - } - } else { - Module.printErr('warning: run dependency added without ID'); - } -} -Module["addRunDependency"] = addRunDependency; - -function removeRunDependency(id) { - runDependencies--; - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - if (id) { - assert(runDependencyTracking[id]); - delete runDependencyTracking[id]; - } else { - Module.printErr('warning: run dependency removed without ID'); - } - if (runDependencies == 0) { - if (runDependencyWatcher !== null) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - } - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); // can add another dependenciesFulfilled - } - } -} -Module["removeRunDependency"] = removeRunDependency; - -Module["preloadedImages"] = {}; // maps url to image data -Module["preloadedAudios"] = {}; // maps url to audio data - - - -var memoryInitializer = null; - - - - - - -// === Body === - -var ASM_CONSTS = [function($0, $1) { Module.printErr('bad name in getProcAddress: ' + [Pointer_stringify($0), Pointer_stringify($1)]) }]; - -function _emscripten_asm_const_iii(code, a0, a1) { - return ASM_CONSTS[code](a0, a1); -} - - - -STATIC_BASE = Runtime.GLOBAL_BASE; - -STATICTOP = STATIC_BASE + 25792; -/* global initializers */ __ATINIT__.push(); - - -/* memory initializer */ allocate([1,1,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,176,1,0,0,0,0,0,0,0,0,0,32,37,249,142,0,10,2,0,0,128,190,125,95,244,125,31,160,242,43,74,30,9,82,8,0,64,34,65,80,20,4,16,32,32,41,46,18,8,34,8,0,32,34,65,80,20,4,16,32,32,249,16,76,8,250,62,60,16,34,125,222,247,125,16,32,32,161,232,50,8,34,8,0,8,34,5,16,4,69,16,0,240,163,164,50,8,82,8,0,4,34,5,16,4,69,16,32,32,249,226,94,8,2,0,129,2,62,125,31,244,125,16,0,0,32,0,0,176,1,128,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,0,0,0,0,190,15,0,192,15,224,247,251,125,126,191,95,232,190,80,0,162,8,8,68,232,47,20,10,133,2,129,80,72,160,80,0,162,40,228,73,40,40,20,10,132,2,129,64,72,160,72,0,190,15,2,16,175,235,247,9,132,62,159,216,79,160,71,0,34,136,228,9,161,42,20,10,132,2,129,80,72,160,72,0,34,40,8,4,160,47,20,10,133,2,129,80,72,162,80,0,190,143,0,0,33,32,244,251,125,126,129,95,232,156,208,7,0,128,0,0,224,15,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,0,0,128,1,12,0,130,66,191,223,239,247,251,11,5,5,133,66,191,4,72,0,198,66,161,80,40,20,64,8,5,37,133,66,160,8,168,0,170,70,161,80,40,20,64,8,5,37,133,66,144,16,8,0,146,74,161,95,232,247,67,8,5,37,121,126,136,32,8,0,130,82,161,64,40,1,66,8,137,36,133,64,132,64,8,0,130,98,161,64,42,2,66,8,81,36,133,64,130,128,8,0,130,66,191,192,47,244,67,248,33,252,133,126,191,0,9,62,0,0,0,0,4,0,0,0,0,0,0,0,128,1,12,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,2,4,0,4,0,32,72,65,0,0,0,0,0,8,0,0,4,4,0,4,60,32,0,65,0,0,0,0,0,8,0,0,240,125,223,247,133,239,75,81,190,239,251,190,239,59,81,4,0,69,65,20,133,40,74,73,170,40,138,162,32,8,81,4,240,69,65,244,157,40,74,71,170,40,138,162,224,11,81,4,16,69,65,20,132,40,74,73,170,40,138,162,0,10,145,2,240,125,223,247,133,47,74,209,170,232,251,190,224,123,31,1,0,0,0,0,4,8,64,0,0,0,8,32,0,0,0,0,0,0,0,0,132,15,96,0,0,0,8,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,1,15,0,0,0,0,0,0,0,0,0,0,0,0,0,36,1,15,0,0,0,0,0,0,0,0,0,6,0,0,0,36,1,15,0,0,0,0,0,0,0,128,16,9,162,40,250,36,1,15,0,0,0,0,0,0,0,0,62,1,42,37,66,34,82,15,0,0,0,0,0,0,0,128,138,3,42,34,34,36,41,15,0,0,0,0,0,0,0,128,10,1,42,37,18,36,1,15,0,0,0,0,0,0,0,128,10,1,190,232,251,36,1,15,0,0,0,0,0,0,0,128,190,14,0,0,2,172,1,15,0,0,0,0,0,0,0,128,4,0,0,224,3,0,0,15,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,14,184,67,132,3,58,32,0,128,160,190,2,32,0,0,240,138,32,82,196,2,43,32,4,34,145,2,248,59,0,240,7,142,56,75,228,2,58,32,2,28,138,30,8,42,233,17,4,224,11,66,244,2,130,36,1,20,4,20,232,186,4,209,5,128,184,195,231,10,58,137,0,28,14,60,40,2,9,80,4,128,0,64,196,2,128,68,0,34,132,32,232,2,0,80,4,0,0,64,128,2,0,32,5,0,142,62,8,2,0,16,4,224,3,64,128,66,0,0,7,0,132,0,248,3,0,240,7,0,0,64,128,34,0,0,4,0,0,0,0,0,0,0,0,0,0,64,128,2,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,128,0,194,160,72,24,0,0,1,132,33,9,146,2,66,38,4,1,33,81,0,0,127,63,2,66,2,16,41,0,34,20,192,239,247,251,253,126,9,161,223,239,247,187,187,3,18,15,68,40,20,10,133,66,9,129,64,32,16,16,17,1,8,4,68,40,20,10,133,66,127,129,64,32,16,16,17,1,4,130,199,239,247,251,253,126,9,129,207,231,243,17,17,1,50,169,80,40,20,10,133,66,9,161,64,32,16,16,17,1,64,184,80,40,20,10,133,66,121,191,223,239,247,187,187,3,32,160,31,0,0,0,0,0,0,16,0,0,0,0,0,0,112,32,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,40,2,8,131,34,1,0,2,8,67,2,1,0,1,1,124,20,4,132,68,1,0,32,4,132,4,128,8,63,130,0,132,66,191,223,239,247,3,126,161,80,40,20,10,33,0,0,132,70,161,80,40,20,138,82,161,80,40,20,122,161,239,3,158,74,161,80,40,20,82,82,161,80,40,20,74,31,8,2,132,82,161,80,40,20,34,74,161,80,40,244,75,161,239,3,132,98,161,80,40,20,82,74,161,80,40,4,122,161,40,2,124,66,191,223,239,247,139,126,191,223,239,247,11,189,239,3,0,0,0,0,0,0,0,4,0,0,0,0,8,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,8,5,32,0,0,4,132,0,34,129,69,17,16,66,1,0,148,66,81,0,0,8,66,81,148,42,162,32,8,165,80,0,0,0,32,0,0,0,0,0,0,0,5,0,0,0,0,8,190,239,251,254,251,190,239,251,20,145,235,251,190,239,251,0,32,8,130,32,10,162,40,138,20,145,40,138,162,40,138,62,190,239,251,254,11,190,239,251,20,145,40,138,162,40,138,0,162,40,138,34,8,130,32,8,20,145,40,138,162,40,138,8,190,239,251,254,251,190,239,251,20,145,47,250,190,239,251,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,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,1,33,0,4,0,0,0,0,0,0,0,0,0,0,0,0,130,80,20,2,20,0,0,0,0,0,0,0,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,190,40,138,162,40,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,168,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,190,239,251,190,47,62,0,0,0,0,0,0,0,0,0,0,4,0,0,0,40,32,0,0,0,0,0,0,0,0,0,0,0,0,0,128,15,62,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,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,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,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,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,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,3,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,7,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,7,0,0,0,3,0,0,0,5,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,5,0,0,0,205,204,12,64,0,0,128,63,0,0,128,63,46,186,232,62,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,27,0,0,0,31,0,0,0,35,0,0,0,43,0,0,0,51,0,0,0,59,0,0,0,67,0,0,0,83,0,0,0,99,0,0,0,115,0,0,0,131,0,0,0,163,0,0,0,195,0,0,0,227,0,0,0,2,1,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,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,13,0,0,0,17,0,0,0,25,0,0,0,33,0,0,0,49,0,0,0,65,0,0,0,97,0,0,0,129,0,0,0,193,0,0,0,1,1,0,0,129,1,0,0,1,2,0,0,1,3,0,0,1,4,0,0,1,6,0,0,1,8,0,0,1,12,0,0,1,16,0,0,1,24,0,0,1,32,0,0,1,48,0,0,1,64,0,0,1,96,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,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,10,0,0,0,10,0,0,0,11,0,0,0,11,0,0,0,12,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,128,191,255,255,255,255,255,255,255,255,0,1,0,0,255,255,255,255,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,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,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,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,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,64,91,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,0,0,240,15,0,0,5,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,187,96,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,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,240,15,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,4,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,255,255,255,255,255,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,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,95,112,137,0,255,9,47,15,65,83,67,73,73,32,101,120,116,101,110,100,101,100,32,99,104,97,114,97,99,116,101,114,115,58,10,194,161,194,162,194,163,194,164,194,165,194,166,194,167,194,168,194,169,194,170,194,171,194,172,194,174,194,175,194,176,194,177,194,178,194,179,194,180,194,181,194,182,194,183,194,184,194,185,194,186,194,187,194,188,194,189,194,190,194,191,195,128,195,129,195,130,195,131,195,132,195,133,195,134,10,195,135,195,136,195,137,195,138,195,139,195,140,195,141,195,142,195,143,195,144,195,145,195,146,195,147,195,148,195,149,195,150,195,151,195,152,195,153,195,154,195,155,195,156,195,157,195,158,195,159,195,160,195,161,195,162,195,163,195,164,195,165,195,166,10,195,167,195,168,195,169,195,170,195,171,195,172,195,173,195,174,195,175,195,176,195,177,195,178,195,179,195,180,195,181,195,182,195,183,195,184,195,185,195,186,195,187,195,188,195,189,195,190,195,191,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,114,97,121,108,105,98,32,91,116,101,120,116,93,32,101,120,97,109,112,108,101,32,45,32,98,109,102,111,110,116,32,117,110,111,114,100,101,114,101,100,32,108,111,97,100,105,110,103,32,97,110,100,32,100,114,97,119,105,110,103,0,114,101,115,111,117,114,99,101,115,47,112,105,120,97,110,116,105,113,117,97,46,102,110,116,0,70,111,110,116,32,110,97,109,101,58,32,32,32,32,32,32,32,80,105,120,65,110,116,105,113,117,97,0,70,111,110,116,32,98,97,115,101,32,115,105,122,101,58,32,32,32,32,32,32,32,32,32,32,32,37,105,0,70,111,110,116,32,99,104,97,114,115,32,110,117,109,98,101,114,58,32,32,32,32,32,37,105,0,5,5,4,0,2,3,7,0,3,3,11,0,91,37,115,93,32,114,82,69,83,32,114,97,121,108,105,98,32,114,101,115,111,117,114,99,101,32,102,105,108,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,111,112,101,110,101,100,0,91,37,115,93,32,84,104,105,115,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,114,97,121,108,105,98,32,114,101,115,111,117,114,99,101,32,102,105,108,101,0,91,37,115,93,91,73,68,32,37,105,93,32,82,101,115,111,117,114,99,101,32,100,97,116,97,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,37,115,93,91,73,68,32,37,105,93,32,82,101,113,117,101,115,116,101,100,32,114,101,115,111,117,114,99,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,102,111,117,110,100,0,79,117,116,32,111,102,32,109,101,109,111,114,121,32,119,104,105,108,101,32,100,101,99,111,109,112,114,101,115,115,105,110,103,32,100,97,116,97,0,68,97,116,97,32,100,101,99,111,109,112,114,101,115,115,105,111,110,32,102,97,105,108,101,100,0,69,120,112,101,99,116,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,32,100,111,32,110,111,116,32,109,97,116,99,104,44,32,100,97,116,97,32,109,97,121,32,98,101,32,99,111,114,114,117,112,116,101,100,0,32,45,45,32,69,120,112,101,99,116,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,58,32,37,105,0,32,45,45,32,82,101,116,117,114,110,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,58,32,37,105,0,68,97,116,97,32,100,101,99,111,109,112,114,101,115,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,102,114,111,109,32,37,117,32,98,121,116,101,115,32,116,111,32,37,117,32,98,121,116,101,115,0,73,78,70,79,58,32,0,87,65,82,78,73,78,71,58,32,0,91,84,69,88,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,102,111,110,116,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,80,97,114,97,109,101,116,101,114,115,58,32,37,105,120,37,105,44,32,37,105,32,109,105,112,115,44,32,102,111,114,109,97,116,32,37,105,0,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,50,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,84,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,84,101,120,116,117,114,101,32,99,114,101,97,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,84,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,99,114,101,97,116,101,100,0,73,109,97,103,101,32,100,97,116,97,32,102,111,114,109,97,116,32,105,115,32,99,111,109,112,114,101,115,115,101,100,44,32,99,97,110,32,110,111,116,32,98,101,32,99,111,110,118,101,114,116,101,100,0,70,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,112,105,120,101,108,32,100,97,116,97,32,114,101,116,114,105,101,118,97,108,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,46,116,116,102,0,46,102,110,116,0,91,37,115,93,32,83,112,114,105,116,101,70,111,110,116,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,44,32,117,115,105,110,103,32,100,101,102,97,117,108,116,32,102,111,110,116,0,91,84,69,88,32,73,68,32,37,105,93,32,78,111,32,109,105,112,109,97,112,115,32,97,118,97,105,108,97,98,108,101,32,102,111,114,32,84,82,73,76,73,78,69,65,82,32,116,101,120,116,117,114,101,32,102,105,108,116,101,114,105,110,103,0,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,109,111,100,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,77,97,120,105,109,117,109,32,97,110,105,115,111,116,114,111,112,105,99,32,102,105,108,116,101,114,32,108,101,118,101,108,32,115,117,112,112,111,114,116,101,100,32,105,115,32,37,105,88,0,65,110,105,115,111,116,114,111,112,105,99,32,102,105,108,116,101,114,105,110,103,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,112,114,105,116,101,70,111,110,116,32,100,97,116,97,32,112,97,114,115,101,100,32,99,111,114,114,101,99,116,108,121,32,102,114,111,109,32,105,109,97,103,101,0,73,109,97,103,101,32,102,105,108,101,32,108,111,97,100,101,100,32,99,111,114,114,101,99,116,108,121,32,97,115,32,83,112,114,105,116,101,70,111,110,116,0,46,114,114,101,115,0,91,37,115,93,32,82,101,115,111,117,114,99,101,32,102,105,108,101,32,100,111,101,115,32,110,111,116,32,99,111,110,116,97,105,110,32,105,109,97,103,101,32,100,97,116,97,0,46,112,110,103,0,46,103,105,102,0,46,104,100,114,0,91,37,115,93,32,73,109,97,103,101,32,102,105,108,101,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,40,111,110,108,121,32,51,32,99,104,97,110,110,101,108,32,51,50,32,98,105,116,32,102,108,111,97,116,115,41,0,46,100,100,115,0,91,37,115,93,32,73,109,97,103,101,32,102,105,108,101,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,37,115,93,32,73,109,97,103,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,91,37,115,93,32,73,109,97,103,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,91,37,115,93,32,68,68,83,32,102,105,108,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,111,112,101,110,101,100,0,68,68,83,32,0,91,37,115,93,32,68,68,83,32,102,105,108,101,32,100,111,101,115,32,110,111,116,32,115,101,101,109,32,116,111,32,98,101,32,97,32,118,97,108,105,100,32,105,109,97,103,101,0,91,37,115,93,32,68,68,83,32,102,105,108,101,32,104,101,97,100,101,114,32,115,105,122,101,58,32,37,105,0,91,37,115,93,32,68,68,83,32,102,105,108,101,32,112,105,120,101,108,32,102,111,114,109,97,116,32,115,105,122,101,58,32,37,105,0,91,37,115,93,32,68,68,83,32,102,105,108,101,32,112,105,120,101,108,32,102,111,114,109,97,116,32,102,108,97,103,115,58,32,48,120,37,120,0,91,37,115,93,32,68,68,83,32,102,105,108,101,32,102,111,114,109,97,116,58,32,48,120,37,120,0,91,37,115,93,32,68,68,83,32,102,105,108,101,32,98,105,116,32,99,111,117,110,116,58,32,48,120,37,120,0,80,105,116,99,104,32,111,114,32,108,105,110,101,97,114,32,115,105,122,101,58,32,37,105,0,117,110,107,110,111,119,110,32,105,109,97,103,101,32,116,121,112,101,0,111,117,116,111,102,109,101,109,0,114,105,46,98,105,116,115,95,112,101,114,95,99,104,97,110,110,101,108,32,61,61,32,49,54,0,46,47,101,120,116,101,114,110,97,108,47,115,116,98,95,105,109,97,103,101,46,104,0,115,116,98,105,95,95,108,111,97,100,95,97,110,100,95,112,111,115,116,112,114,111,99,101,115,115,95,56,98,105,116,0,98,97,100,32,114,101,113,95,99,111,109,112,0,114,101,113,95,99,111,109,112,32,62,61,32,49,32,38,38,32,114,101,113,95,99,111,109,112,32,60,61,32,52,0,115,116,98,105,95,95,99,111,110,118,101,114,116,95,102,111,114,109,97,116,49,54,0,115,116,98,105,95,95,99,111,110,118,101,114,116,95,102,111,114,109,97,116,0,109,117,108,116,105,112,108,101,32,73,72,68,82,0,98,97,100,32,73,72,68,82,32,108,101,110,0,116,111,111,32,108,97,114,103,101,0,49,47,50,47,52,47,56,47,49,54,45,98,105,116,32,111,110,108,121,0,98,97,100,32,99,116,121,112,101,0,98,97,100,32,99,111,109,112,32,109,101,116,104,111,100,0,98,97,100,32,102,105,108,116,101,114,32,109,101,116,104,111,100,0,98,97,100,32,105,110,116,101,114,108,97,99,101,32,109,101,116,104,111,100,0,48,45,112,105,120,101,108,32,105,109,97,103,101,0,102,105,114,115,116,32,110,111,116,32,73,72,68,82,0,105,110,118,97,108,105,100,32,80,76,84,69,0,116,82,78,83,32,97,102,116,101,114,32,73,68,65,84,0,116,82,78,83,32,98,101,102,111,114,101,32,80,76,84,69,0,98,97,100,32,116,82,78,83,32,108,101,110,0,116,82,78,83,32,119,105,116,104,32,97,108,112,104,97,0,0,255,85,0,17,0,0,0,1,110,111,32,80,76,84,69,0,111,117,116,111,102,100,97,116,97,0,110,111,32,73,68,65,84,0,88,88,88,88,32,80,78,71,32,99,104,117,110,107,32,110,111,116,32,107,110,111,119,110,0,115,45,62,105,109,103,95,111,117,116,95,110,32,61,61,32,52,0,115,116,98,105,95,95,100,101,95,105,112,104,111,110,101,0,111,117,116,95,110,32,61,61,32,50,32,124,124,32,111,117,116,95,110,32,61,61,32,52,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,116,114,97,110,115,112,97,114,101,110,99,121,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,116,114,97,110,115,112,97,114,101,110,99,121,49,54,0,111,117,116,95,110,32,61,61,32,115,45,62,105,109,103,95,110,32,124,124,32,111,117,116,95,110,32,61,61,32,115,45,62,105,109,103,95,110,43,49,0,115,116,98,105,95,95,99,114,101,97,116,101,95,112,110,103,95,105,109,97,103,101,95,114,97,119,0,110,111,116,32,101,110,111,117,103,104,32,112,105,120,101,108,115,0,105,109,103,95,119,105,100,116,104,95,98,121,116,101,115,32,60,61,32,120,0,0,1,0,5,6,105,109,103,95,110,43,49,32,61,61,32,111,117,116,95,110,0,105,110,118,97,108,105,100,32,102,105,108,116,101,114,0,105,109,103,95,110,32,61,61,32,51,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,98,97,100,32,104,117,102,102,109,97,110,32,99,111,100,101,0,98,97,100,32,100,105,115,116,0,111,117,116,112,117,116,32,98,117,102,102,101,114,32,108,105,109,105,116,0,122,45,62,115,105,122,101,91,98,93,32,61,61,32,115,0,115,116,98,105,95,95,122,104,117,102,102,109,97,110,95,100,101,99,111,100,101,95,115,108,111,119,112,97,116,104,0,98,105,116,115,32,60,61,32,49,54,0,115,116,98,105,95,95,98,105,116,95,114,101,118,101,114,115,101,0,122,45,62,99,111,100,101,95,98,117,102,102,101,114,32,60,32,40,49,85,32,60,60,32,122,45,62,110,117,109,95,98,105,116,115,41,0,115,116,98,105,95,95,102,105,108,108,95,98,105,116,115,0,16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,98,97,100,32,99,111,100,101,108,101,110,103,116,104,115,0,99,32,61,61,32,49,56,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,104,117,102,102,109,97,110,95,99,111,100,101,115,0,98,97,100,32,115,105,122,101,115,0,97,45,62,110,117,109,95,98,105,116,115,32,61,61,32,48,0,115,116,98,105,95,95,112,97,114,115,101,95,117,110,99,111,109,112,114,101,115,115,101,100,95,98,108,111,99,107,0,122,108,105,98,32,99,111,114,114,117,112,116,0,114,101,97,100,32,112,97,115,116,32,98,117,102,102,101,114,0,98,97,100,32,122,108,105,98,32,104,101,97,100,101,114,0,110,111,32,112,114,101,115,101,116,32,100,105,99,116,0,98,97,100,32,99,111,109,112,114,101,115,115,105,111,110,0,98,97,100,32,112,110,103,32,115,105,103,0,35,63,82,65,68,73,65,78,67,69,0,35,63,82,71,66,69,0,110,111,116,32,72,68,82,0,70,79,82,77,65,84,61,51,50,45,98,105,116,95,114,108,101,95,114,103,98,101,0,117,110,115,117,112,112,111,114,116,101,100,32,102,111,114,109,97,116,0,45,89,32,0,117,110,115,117,112,112,111,114,116,101,100,32,100,97,116,97,32,108,97,121,111,117,116,0,43,88,32,0,105,110,118,97,108,105,100,32,100,101,99,111,100,101,100,32,115,99,97,110,108,105,110,101,32,108,101,110,103,116,104,0,99,111,114,114,117,112,116,0,35,63,82,65,68,73,65,78,67,69,10,0,35,63,82,71,66,69,10,0,114,116,0,91,37,115,93,32,70,78,84,32,102,105,108,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,111,112,101,110,101,100,0,108,105,110,101,72,101,105,103,104,116,0,108,105,110,101,72,101,105,103,104,116,61,37,105,32,98,97,115,101,61,37,105,32,115,99,97,108,101,87,61,37,105,32,115,99,97,108,101,72,61,37,105,0,91,37,115,93,32,70,111,110,116,32,115,105,122,101,58,32,37,105,0,91,37,115,93,32,70,111,110,116,32,116,101,120,116,117,114,101,32,115,99,97,108,101,58,32,37,105,120,37,105,0,102,105,108,101,0,102,105,108,101,61,34,37,49,50,56,91,94,34,93,34,0,91,37,115,93,32,70,111,110,116,32,116,101,120,116,117,114,101,32,102,105,108,101,110,97,109,101,58,32,37,115,0,99,111,117,110,116,0,99,111,117,110,116,61,37,105,0,91,37,115,93,32,70,111,110,116,32,110,117,109,32,99,104,97,114,115,58,32,37,105,0,91,37,115,93,32,70,111,110,116,32,116,101,120,116,117,114,101,32,108,111,97,100,105,110,103,32,112,97,116,104,58,32,37,115,0,99,104,97,114,32,105,100,61,37,105,32,120,61,37,105,32,121,61,37,105,32,119,105,100,116,104,61,37,105,32,104,101,105,103,104,116,61,37,105,32,120,111,102,102,115,101,116,61,37,105,32,121,111,102,102,115,101,116,61,37,105,32,120,97,100,118,97,110,99,101,61,37,105,0,91,37,115,93,32,83,112,114,105,116,101,70,111,110,116,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,85,110,108,111,97,100,101,100,32,115,112,114,105,116,101,32,102,111,110,116,32,100,97,116,97,0,65,108,112,104,97,32,109,97,115,107,32,109,117,115,116,32,98,101,32,115,97,109,101,32,115,105,122,101,32,97,115,32,105,109,97,103,101,0,65,108,112,104,97,32,109,97,115,107,32,99,97,110,32,110,111,116,32,98,101,32,97,112,112,108,105,101,100,32,116,111,32,99,111,109,112,114,101,115,115,101,100,32,100,97,116,97,32,102,111,114,109,97,116,115,0,73,109,97,103,101,32,102,111,114,109,97,116,32,110,111,116,32,114,101,99,111,103,110,105,122,101,100,0,91,37,115,93,32,83,112,114,105,116,101,70,111,110,116,32,99,111,117,108,100,32,110,111,116,32,98,101,32,103,101,110,101,114,97,116,101,100,44,32,117,115,105,110,103,32,100,101,102,97,117,108,116,32,102,111,110,116,0,84,84,70,32,115,112,114,105,116,101,102,111,110,116,32,108,111,97,100,105,110,103,58,32,80,114,101,100,105,99,116,101,100,32,116,101,120,116,117,114,101,32,115,105,122,101,58,32,37,105,120,37,105,0,114,98,0,91,37,115,93,32,84,84,70,32,102,105,108,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,111,112,101,110,101,100,0,84,84,70,32,115,112,114,105,116,101,102,111,110,116,32,108,111,97,100,105,110,103,58,32,102,105,114,115,116,32,99,104,97,114,97,99,116,101,114,32,105,115,32,110,111,116,32,83,80,65,67,69,40,51,50,41,32,99,104,97,114,97,99,116,101,114,0,84,84,70,32,115,112,114,105,116,101,102,111,110,116,32,108,111,97,100,105,110,103,58,32,78,111,116,32,97,108,108,32,116,104,101,32,99,104,97,114,97,99,116,101,114,115,32,102,105,116,32,105,110,32,116,104,101,32,102,111,110,116,0,120,43,103,119,32,60,32,112,119,0,46,47,101,120,116,101,114,110,97,108,47,115,116,98,95,116,114,117,101,116,121,112,101,46,104,0,115,116,98,116,116,95,66,97,107,101,70,111,110,116,66,105,116,109,97,112,95,105,110,116,101,114,110,97,108,0,122,45,62,100,105,114,101,99,116,105,111,110,0,115,116,98,116,116,95,95,114,97,115,116,101,114,105,122,101,95,115,111,114,116,101,100,95,101,100,103,101,115,0,122,45,62,101,121,32,62,61,32,115,99,97,110,95,121,95,116,111,112,0,101,45,62,101,121,32,62,61,32,121,95,116,111,112,0,115,116,98,116,116,95,95,102,105,108,108,95,97,99,116,105,118,101,95,101,100,103,101,115,95,110,101,119,0,101,45,62,115,121,32,60,61,32,121,95,98,111,116,116,111,109,32,38,38,32,101,45,62,101,121,32,62,61,32,121,95,116,111,112,0,120,32,62,61,32,48,32,38,38,32,120,32,60,32,108,101,110,0,102,97,98,115,40,97,114,101,97,41,32,60,61,32,49,46,48,49,102,0,121,48,32,60,32,121,49,0,115,116,98,116,116,95,95,104,97,110,100,108,101,95,99,108,105,112,112,101,100,95,101,100,103,101,0,101,45,62,115,121,32,60,61,32,101,45,62,101,121,0,120,49,32,60,61,32,120,43,49,0,120,49,32,62,61,32,120,0,120,49,32,60,61,32,120,0,120,49,32,62,61,32,120,43,49,0,120,49,32,62,61,32,120,32,38,38,32,120,49,32,60,61,32,120,43,49,0,120,48,32,62,61,32,120,32,38,38,32,120,48,32,60,61,32,120,43,49,32,38,38,32,120,49,32,62,61,32,120,32,38,38,32,120,49,32,60,61,32,120,43,49,0,122,32,33,61,32,40,40,118,111,105,100,42,41,48,41,0,115,116,98,116,116,95,95,110,101,119,95,97,99,116,105,118,101,0,33,105,110,102,111,45,62,99,102,102,46,115,105,122,101,0,115,116,98,116,116,95,95,71,101,116,71,108,121,102,79,102,102,115,101,116,0,48,0,115,116,98,116,116,95,95,99,102,102,95,105,110,116,0,110,32,62,61,32,49,32,38,38,32,110,32,60,61,32,52,0,115,116,98,116,116,95,95,98,117,102,95,103,101,116,0,115,105,122,101,32,60,32,48,120,52,48,48,48,48,48,48,48,0,115,116,98,116,116,95,95,110,101,119,95,98,117,102,0,33,40,111,32,62,32,98,45,62,115,105,122,101,32,124,124,32,111,32,60,32,48,41,0,115,116,98,116,116,95,95,98,117,102,95,115,101,101,107,0,111,102,102,115,105,122,101,32,62,61,32,49,32,38,38,32,111,102,102,115,105,122,101,32,60,61,32,52,0,115,116,98,116,116,95,95,99,102,102,95,103,101,116,95,105,110,100,101,120,0,98,48,32,62,61,32,50,56,0,115,116,98,116,116,95,95,99,102,102,95,115,107,105,112,95,111,112,101,114,97,110,100,0,105,32,62,61,32,48,32,38,38,32,105,32,60,32,99,111,117,110,116,0,115,116,98,116,116,95,95,99,102,102,95,105,110,100,101,120,95,103,101,116,0,111,117,116,112,117,116,95,99,116,120,46,110,117,109,95,118,101,114,116,105,99,101,115,32,61,61,32,99,111,117,110,116,95,99,116,120,46,110,117,109,95,118,101,114,116,105,99,101,115,0,115,116,98,116,116,95,95,71,101,116,71,108,121,112,104,83,104,97,112,101,84,50,0,115,116,98,116,116,95,95,71,101,116,71,108,121,112,104,83,104,97,112,101,84,84,0,115,116,98,116,116,95,70,105,110,100,71,108,121,112,104,73,110,100,101,120,0,117,110,105,99,111,100,101,95,99,111,100,101,112,111,105,110,116,32,60,61,32,116,116,85,83,72,79,82,84,40,100,97,116,97,32,43,32,101,110,100,67,111,117,110,116,32,43,32,50,42,105,116,101,109,41,0,99,109,97,112,0,108,111,99,97,0,104,101,97,100,0,103,108,121,102,0,104,104,101,97,0,104,109,116,120,0,107,101,114,110,0,67,70,70,32,0,109,97,120,112,0,77,65,88,95,76,73,78,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,84,82,73,65,78,71,76,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,81,85,65,68,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,83,116,97,99,107,32,66,117,102,102,101,114,32,79,118,101,114,102,108,111,119,32,40,77,65,88,32,37,105,32,77,97,116,114,105,120,41,0,73,110,105,116,105,97,108,105,122,105,110,103,32,114,97,121,108,105,98,32,40,118,49,46,56,46,48,41,0,35,99,97,110,118,97,115,0,84,97,114,103,101,116,32], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); -/* memory initializer */ allocate([116,105,109,101,32,112,101,114,32,102,114,97,109,101,58,32,37,48,50,46,48,51,102,32,109,105,108,108,105,115,101,99,111,110,100,115,0,69,115,99,97,112,101,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,102,117,108,108,115,99,114,101,101,110,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,119,105,110,100,111,119,101,100,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,71,76,70,87,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,77,83,65,65,32,120,52,0,67,108,111,115,101,115,116,32,102,117,108,108,115,99,114,101,101,110,32,118,105,100,101,111,109,111,100,101,58,32,37,105,32,120,32,37,105,0,71,76,70,87,32,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,87,105,110,100,111,119,0,68,105,115,112,108,97,121,32,100,101,118,105,99,101,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,82,101,110,100,101,114,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,83,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,86,105,101,119,112,111,114,116,32,111,102,102,115,101,116,115,58,32,37,105,44,32,37,105,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,86,83,89,78,67,0,71,80,85,58,32,86,101,110,100,111,114,58,32,32,32,37,115,0,71,80,85,58,32,82,101,110,100,101,114,101,114,58,32,37,115,0,71,80,85,58,32,86,101,114,115,105,111,110,58,32,32,37,115,0,71,80,85,58,32,71,76,83,76,58,32,32,32,32,32,37,115,0,32,0,78,117,109,98,101,114,32,111,102,32,115,117,112,112,111,114,116,101,100,32,101,120,116,101,110,115,105,111,110,115,58,32,37,105,0,71,76,95,79,69,83,95,118,101,114,116,101,120,95,97,114,114,97,121,95,111,98,106,101,99,116,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,79,69,83,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,71,76,95,79,69,83,95,116,101,120,116,117,114,101,95,110,112,111,116,0,79,69,83,95,116,101,120,116,117,114,101,95,102,108,111,97,116,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,115,51,116,99,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,87,69,66,75,73,84,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,79,69,83,95,99,111,109,112,114,101,115,115,101,100,95,69,84,67,49,95,82,71,66,56,95,116,101,120,116,117,114,101,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,101,116,99,49,0,71,76,95,65,82,66,95,69,83,51,95,99,111,109,112,97,116,105,98,105,108,105,116,121,0,71,76,95,73,77,71,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,112,118,114,116,99,0,71,76,95,75,72,82,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,97,115,116,99,95,104,100,114,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,102,105,108,116,101,114,95,97,110,105,115,111,116,114,111,112,105,99,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,109,105,114,114,111,114,95,99,108,97,109,112,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,86,65,79,32,102,117,110,99,116,105,111,110,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,86,65,79,32,117,115,97,103,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,102,117,108,108,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,108,105,109,105,116,101,100,32,78,80,79,84,32,115,117,112,112,111,114,116,32,40,110,111,45,109,105,112,109,97,112,115,44,32,110,111,45,114,101,112,101,97,116,41,0,91,69,88,84,69,78,83,73,79,78,93,32,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,50,47,69,65,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,110,105,115,111,116,114,111,112,105,99,32,116,101,120,116,117,114,101,115,32,102,105,108,116,101,114,105,110,103,32,115,117,112,112,111,114,116,101,100,32,40,109,97,120,58,32,37,46,48,102,88,41,0,91,69,88,84,69,78,83,73,79,78,93,32,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,116,101,120,116,117,114,101,32,109,111,100,101,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,79,112,101,110,71,76,32,100,101,102,97,117,108,116,32,115,116,97,116,101,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,67,80,85,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,44,32,116,114,105,97,110,103,108,101,115,44,32,113,117,97,100,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,51,32,118,101,114,116,101,120,80,111,115,105,116,105,111,110,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,50,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,52,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,109,97,116,52,32,109,118,112,59,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,102,114,97,103,84,101,120,67,111,111,114,100,32,61,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,10,32,32,32,32,102,114,97,103,67,111,108,111,114,32,61,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,10,32,32,32,32,103,108,95,80,111,115,105,116,105,111,110,32,61,32,109,118,112,42,118,101,99,52,40,118,101,114,116,101,120,80,111,115,105,116,105,111,110,44,32,49,46,48,41,59,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,112,114,101,99,105,115,105,111,110,32,109,101,100,105,117,109,112,32,102,108,111,97,116,59,32,32,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,116,101,120,116,117,114,101,48,59,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,118,101,99,52,32,99,111,108,68,105,102,102,117,115,101,59,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,118,101,99,52,32,116,101,120,101,108,67,111,108,111,114,32,61,32,116,101,120,116,117,114,101,50,68,40,116,101,120,116,117,114,101,48,44,32,102,114,97,103,84,101,120,67,111,111,114,100,41,59,32,10,32,32,32,32,103,108,95,70,114,97,103,67,111,108,111,114,32,61,32,116,101,120,101,108,67,111,108,111,114,42,99,111,108,68,105,102,102,117,115,101,42,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,118,101,114,116,101,120,80,111,115,105,116,105,111,110,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,0,118,101,114,116,101,120,67,111,108,111,114,0,109,118,112,0,99,111,108,68,105,102,102,117,115,101,0,116,101,120,116,117,114,101,48,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,118,101,114,116,101,120,32,115,104,97,100,101,114,46,46,46,0,37,115,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,86,101,114,116,101,120,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,102,114,97,103,109,101,110,116,32,115,104,97,100,101,114,46,46,46,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,114,97,103,109,101,110,116,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,118,101,114,116,101,120,78,111,114,109,97,108,0,118,101,114,116,101,120,84,97,110,103,101,110,116,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,50,0,91,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,108,105,110,107,32,115,104,97,100,101,114,32,112,114,111,103,114,97,109,46,46,46,0,91,83,72,68,82,32,73,68,32,37,105,93,32,83,104,97,100,101,114,32,112,114,111,103,114,97,109,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,79,87,78,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,32,40,37,105,120,37,105,41,32,105,115,32,98,105,103,103,101,114,32,116,104,97,110,32,100,105,115,112,108,97,121,32,115,105,122,101,32,40,37,105,120,37,105,41,0,68,111,119,110,115,99,97,108,101,32,109,97,116,114,105,120,32,103,101,110,101,114,97,116,101,100,44,32,99,111,110,116,101,110,116,32,119,105,108,108,32,98,101,32,114,101,110,100,101,114,101,100,32,97,116,58,32,37,105,32,120,32,37,105,0,85,80,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,32,45,62,32,68,105,115,112,108,97,121,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,91,71,76,70,87,51,32,69,114,114,111,114,93,32,67,111,100,101,58,32,37,105,32,68,101,99,114,105,112,116,105,111,110,58,32,37,115,0,87,105,110,100,111,119,32,99,108,111,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,40,98,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,41,32,102,114,111,109,32,86,82,65,77,0,69,88,84,0,65,82,66,0,79,69,83,0,65,78,71,76,69,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,0,103,108,85,115,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,85,115,101,80,114,111,103,114,97,109,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,0,103,108,65,116,116,97,99,104,79,98,106,101,99,116,0,103,108,65,116,116,97,99,104,83,104,97,100,101,114,0,103,108,68,101,116,97,99,104,79,98,106,101,99,116,0,103,108,68,101,116,97,99,104,83,104,97,100,101,114,0,103,108,80,105,120,101,108,83,116,111,114,101,105,0,103,108,71,101,116,83,116,114,105,110,103,0,103,108,71,101,116,73,110,116,101,103,101,114,118,0,103,108,71,101,116,70,108,111,97,116,118,0,103,108,71,101,116,66,111,111,108,101,97,110,118,0,103,108,71,101,110,84,101,120,116,117,114,101,115,0,103,108,68,101,108,101,116,101,84,101,120,116,117,114,101,115,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,84,101,120,73,109,97,103,101,50,68,0,103,108,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,82,101,97,100,80,105,120,101,108,115,0,103,108,66,105,110,100,84,101,120,116,117,114,101,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,84,101,120,116,117,114,101,0,103,108,71,101,110,66,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,66,117,102,102,101,114,115,0,103,108,71,101,116,66,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,66,117,102,102,101,114,68,97,116,97,0,103,108,66,117,102,102,101,114,83,117,98,68,97,116,97,0,103,108,73,115,66,117,102,102,101,114,0,103,108,71,101,110,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,66,105,110,100,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,82,101,110,100,101,114,98,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,85,110,105,102,111,114,109,102,118,0,103,108,71,101,116,85,110,105,102,111,114,109,105,118,0,103,108,71,101,116,85,110,105,102,111,114,109,76,111,99,97,116,105,111,110,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,102,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,105,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,118,0,103,108,71,101,116,65,99,116,105,118,101,85,110,105,102,111,114,109,0,103,108,85,110,105,102,111,114,109,49,102,0,103,108,85,110,105,102,111,114,109,50,102,0,103,108,85,110,105,102,111,114,109,51,102,0,103,108,85,110,105,102,111,114,109,52,102,0,103,108,85,110,105,102,111,114,109,49,105,0,103,108,85,110,105,102,111,114,109,50,105,0,103,108,85,110,105,102,111,114,109,51,105,0,103,108,85,110,105,102,111,114,109,52,105,0,103,108,85,110,105,102,111,114,109,49,105,118,0,103,108,85,110,105,102,111,114,109,50,105,118,0,103,108,85,110,105,102,111,114,109,51,105,118,0,103,108,85,110,105,102,111,114,109,52,105,118,0,103,108,85,110,105,102,111,114,109,49,102,118,0,103,108,85,110,105,102,111,114,109,50,102,118,0,103,108,85,110,105,102,111,114,109,51,102,118,0,103,108,85,110,105,102,111,114,109,52,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,50,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,51,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,52,102,118,0,103,108,66,105,110,100,66,117,102,102,101,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,118,0,103,108,71,101,116,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,71,101,116,65,99,116,105,118,101,65,116,116,114,105,98,0,103,108,68,101,108,101,116,101,83,104,97,100,101,114,0,103,108,71,101,116,65,116,116,97,99,104,101,100,83,104,97,100,101,114,115,0,103,108,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,71,101,116,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,67,111,109,112,105,108,101,83,104,97,100,101,114,0,103,108,71,101,116,83,104,97,100,101,114,73,110,102,111,76,111,103,0,103,108,71,101,116,83,104,97,100,101,114,105,118,0,103,108,71,101,116,80,114,111,103,114,97,109,105,118,0,103,108,73,115,83,104,97,100,101,114,0,103,108,68,101,108,101,116,101,80,114,111,103,114,97,109,0,103,108,71,101,116,83,104,97,100,101,114,80,114,101,99,105,115,105,111,110,70,111,114,109,97,116,0,103,108,76,105,110,107,80,114,111,103,114,97,109,0,103,108,71,101,116,80,114,111,103,114,97,109,73,110,102,111,76,111,103,0,103,108,86,97,108,105,100,97,116,101,80,114,111,103,114,97,109,0,103,108,73,115,80,114,111,103,114,97,109,0,103,108,66,105,110,100,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,66,105,110,100,70,114,97,109,101,98,117,102,102,101,114,0,103,108,71,101,110,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,70,114,97,109,101,98,117,102,102,101,114,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,70,114,97,109,101,98,117,102,102,101,114,84,101,120,116,117,114,101,50,68,0,103,108,71,101,116,70,114,97,109,101,98,117,102,102,101,114,65,116,116,97,99,104,109,101,110,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,70,114,97,109,101,98,117,102,102,101,114,0,103,108,68,101,108,101,116,101,79,98,106,101,99,116,0,103,108,71,101,116,79,98,106,101,99,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,71,101,116,73,110,102,111,76,111,103,0,103,108,66,105,110,100,80,114,111,103,114,97,109,0,103,108,71,101,116,80,111,105,110,116,101,114,118,0,103,108,68,114,97,119,82,97,110,103,101,69,108,101,109,101,110,116,115,0,103,108,69,110,97,98,108,101,67,108,105,101,110,116,83,116,97,116,101,0,103,108,86,101,114,116,101,120,80,111,105,110,116,101,114,0,103,108,84,101,120,67,111,111,114,100,80,111,105,110,116,101,114,0,103,108,78,111,114,109,97,108,80,111,105,110,116,101,114,0,103,108,67,111,108,111,114,80,111,105,110,116,101,114,0,103,108,67,108,105,101,110,116,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,0,103,108,77,97,116,114,105,120,77,111,100,101,0,103,108,76,111,97,100,73,100,101,110,116,105,116,121,0,103,108,76,111,97,100,77,97,116,114,105,120,102,0,103,108,70,114,117,115,116,117,109,0,103,108,82,111,116,97,116,101,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,0,103,108,69,110,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,105,115,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,114,97,119,65,114,114,97,121,115,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,0,103,108,83,104,97,100,101,114,66,105,110,97,114,121,0,103,108,82,101,108,101,97,115,101,83,104,97,100,101,114,67,111,109,112,105,108,101,114,0,103,108,71,101,116,69,114,114,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,68,105,118,105,115,111,114,0,103,108,68,114,97,119,65,114,114,97,121,115,73,110,115,116,97,110,99,101,100,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,73,110,115,116,97,110,99,101,100,0,103,108,70,105,110,105,115,104,0,103,108,70,108,117,115,104,0,103,108,67,108,101,97,114,68,101,112,116,104,0,103,108,67,108,101,97,114,68,101,112,116,104,102,0,103,108,68,101,112,116,104,70,117,110,99,0,103,108,69,110,97,98,108,101,0,103,108,68,105,115,97,98,108,101,0,103,108,70,114,111,110,116,70,97,99,101,0,103,108,67,117,108,108,70,97,99,101,0,103,108,67,108,101,97,114,0,103,108,76,105,110,101,87,105,100,116,104,0,103,108,67,108,101,97,114,83,116,101,110,99,105,108,0,103,108,68,101,112,116,104,77,97,115,107,0,103,108,83,116,101,110,99,105,108,77,97,115,107,0,103,108,67,104,101,99,107,70,114,97,109,101,98,117,102,102,101,114,83,116,97,116,117,115,0,103,108,71,101,110,101,114,97,116,101,77,105,112,109,97,112,0,103,108,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,0,103,108,73,115,69,110,97,98,108,101,100,0,103,108,66,108,101,110,100,70,117,110,99,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,83,101,112,97,114,97,116,101,0,103,108,68,101,112,116,104,82,97,110,103,101,0,103,108,68,101,112,116,104,82,97,110,103,101,102,0,103,108,83,116,101,110,99,105,108,77,97,115,107,83,101,112,97,114,97,116,101,0,103,108,72,105,110,116,0,103,108,80,111,108,121,103,111,110,79,102,102,115,101,116,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,0,103,108,83,97,109,112,108,101,67,111,118,101,114,97,103,101,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,0,103,108,83,116,101,110,99,105,108,70,117,110,99,0,103,108,83,116,101,110,99,105,108,79,112,0,103,108,86,105,101,119,112,111,114,116,0,103,108,67,108,101,97,114,67,111,108,111,114,0,103,108,83,99,105,115,115,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,0,103,108,67,111,108,111,114,77,97,115,107,0,103,108,82,101,110,100,101,114,98,117,102,102,101,114,83,116,111,114,97,103,101,0,103,108,66,108,101,110,100,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,66,108,101,110,100,67,111,108,111,114,0,103,108,83,116,101,110,99,105,108,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,83,116,101,110,99,105,108,79,112,83,101,112,97,114,97,116,101,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,0,103,108,67,111,112,121,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,112,121,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,68,114,97,119,66,117,102,102,101,114,115,0,77,111,100,117,108,101,46,112,114,105,110,116,69,114,114,40,39,98,97,100,32,110,97,109,101,32,105,110,32,103,101,116,80,114,111,99,65,100,100,114,101,115,115,58,32,39,32,43,32,91,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,48,41,44,32,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,49,41,93,41,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,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,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,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,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,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,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,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,18,0,0,0,18,18,18,0,0,0,0,0,0,9,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,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,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,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,105,110,102,105,110,105,116,121,0,110,97,110,0,114,119,97,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240); - - - - - -/* no memory initializer */ -var tempDoublePtr = STATICTOP; STATICTOP += 16; - -assert(tempDoublePtr % 8 == 0); - -function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much - - HEAP8[tempDoublePtr] = HEAP8[ptr]; - - HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; - - HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; - - HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; - -} - -function copyTempDouble(ptr) { - - HEAP8[tempDoublePtr] = HEAP8[ptr]; - - HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; - - HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; - - HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; - - HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; - - HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; - - HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; - - HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; - -} - -// {{PRE_LIBRARY}} - - - - var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},tempFixedLengthArray:[],packAlignment:4,unpackAlignment:4,init:function () { - GL.miniTempBuffer = new Float32Array(GL.MINI_TEMP_BUFFER_SIZE); - for (var i = 0; i < GL.MINI_TEMP_BUFFER_SIZE; i++) { - GL.miniTempBufferViews[i] = GL.miniTempBuffer.subarray(0, i+1); - } - - // For functions such as glDrawBuffers, glInvalidateFramebuffer and glInvalidateSubFramebuffer that need to pass a short array to the WebGL API, - // create a set of short fixed-length arrays to avoid having to generate any garbage when calling those functions. - for (var i = 0; i < 32; i++) { - GL.tempFixedLengthArray.push(new Array(i)); - } - },recordError:function recordError(errorCode) { - if (!GL.lastError) { - GL.lastError = errorCode; - } - },getNewId:function (table) { - var ret = GL.counter++; - for (var i = table.length; i < ret; i++) { - table[i] = null; - } - return ret; - },MINI_TEMP_BUFFER_SIZE:256,miniTempBuffer:null,miniTempBufferViews:[0],getSource:function (shader, count, string, length) { - var source = ''; - for (var i = 0; i < count; ++i) { - var frag; - if (length) { - var len = HEAP32[(((length)+(i*4))>>2)]; - if (len < 0) { - frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); - } else { - frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)], len); - } - } else { - frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); - } - source += frag; - } - return source; - },createContext:function (canvas, webGLContextAttributes) { - if (typeof webGLContextAttributes['majorVersion'] === 'undefined' && typeof webGLContextAttributes['minorVersion'] === 'undefined') { - webGLContextAttributes['majorVersion'] = 1; - webGLContextAttributes['minorVersion'] = 0; - } - - - var ctx; - var errorInfo = '?'; - function onContextCreationError(event) { - errorInfo = event.statusMessage || errorInfo; - } - try { - canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false); - try { - if (webGLContextAttributes['majorVersion'] == 1 && webGLContextAttributes['minorVersion'] == 0) { - ctx = canvas.getContext("webgl", webGLContextAttributes) || canvas.getContext("experimental-webgl", webGLContextAttributes); - } else if (webGLContextAttributes['majorVersion'] == 2 && webGLContextAttributes['minorVersion'] == 0) { - ctx = canvas.getContext("webgl2", webGLContextAttributes); - } else { - throw 'Unsupported WebGL context version ' + majorVersion + '.' + minorVersion + '!' - } - } finally { - canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false); - } - if (!ctx) throw ':('; - } catch (e) { - Module.print('Could not create canvas: ' + [errorInfo, e, JSON.stringify(webGLContextAttributes)]); - return 0; - } - // possible GL_DEBUG entry point: ctx = wrapDebugGL(ctx); - - if (!ctx) return 0; - return GL.registerContext(ctx, webGLContextAttributes); - },registerContext:function (ctx, webGLContextAttributes) { - var handle = GL.getNewId(GL.contexts); - var context = { - handle: handle, - attributes: webGLContextAttributes, - version: webGLContextAttributes['majorVersion'], - GLctx: ctx - }; - - - // Store the created context object so that we can access the context given a canvas without having to pass the parameters again. - if (ctx.canvas) ctx.canvas.GLctxObject = context; - GL.contexts[handle] = context; - if (typeof webGLContextAttributes['enableExtensionsByDefault'] === 'undefined' || webGLContextAttributes['enableExtensionsByDefault']) { - GL.initExtensions(context); - } - return handle; - },makeContextCurrent:function (contextHandle) { - var context = GL.contexts[contextHandle]; - if (!context) return false; - GLctx = Module.ctx = context.GLctx; // Active WebGL context object. - GL.currentContext = context; // Active Emscripten GL layer context object. - return true; - },getContext:function (contextHandle) { - return GL.contexts[contextHandle]; - },deleteContext:function (contextHandle) { - if (GL.currentContext === GL.contexts[contextHandle]) GL.currentContext = null; - if (typeof JSEvents === 'object') JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); // Release all JS event handlers on the DOM element that the GL context is associated with since the context is now deleted. - if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; // Make sure the canvas object no longer refers to the context object so there are no GC surprises. - GL.contexts[contextHandle] = null; - },initExtensions:function (context) { - // If this function is called without a specific context object, init the extensions of the currently active context. - if (!context) context = GL.currentContext; - - if (context.initExtensionsDone) return; - context.initExtensionsDone = true; - - var GLctx = context.GLctx; - - context.maxVertexAttribs = GLctx.getParameter(GLctx.MAX_VERTEX_ATTRIBS); - - // Detect the presence of a few extensions manually, this GL interop layer itself will need to know if they exist. - - if (context.version < 2) { - // Extension available from Firefox 26 and Google Chrome 30 - var instancedArraysExt = GLctx.getExtension('ANGLE_instanced_arrays'); - if (instancedArraysExt) { - GLctx['vertexAttribDivisor'] = function(index, divisor) { instancedArraysExt['vertexAttribDivisorANGLE'](index, divisor); }; - GLctx['drawArraysInstanced'] = function(mode, first, count, primcount) { instancedArraysExt['drawArraysInstancedANGLE'](mode, first, count, primcount); }; - GLctx['drawElementsInstanced'] = function(mode, count, type, indices, primcount) { instancedArraysExt['drawElementsInstancedANGLE'](mode, count, type, indices, primcount); }; - } - - // Extension available from Firefox 25 and WebKit - var vaoExt = GLctx.getExtension('OES_vertex_array_object'); - if (vaoExt) { - GLctx['createVertexArray'] = function() { return vaoExt['createVertexArrayOES'](); }; - GLctx['deleteVertexArray'] = function(vao) { vaoExt['deleteVertexArrayOES'](vao); }; - GLctx['bindVertexArray'] = function(vao) { vaoExt['bindVertexArrayOES'](vao); }; - GLctx['isVertexArray'] = function(vao) { return vaoExt['isVertexArrayOES'](vao); }; - } - - var drawBuffersExt = GLctx.getExtension('WEBGL_draw_buffers'); - if (drawBuffersExt) { - GLctx['drawBuffers'] = function(n, bufs) { drawBuffersExt['drawBuffersWEBGL'](n, bufs); }; - } - } - - GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); - - // These are the 'safe' feature-enabling extensions that don't add any performance impact related to e.g. debugging, and - // should be enabled by default so that client GLES2/GL code will not need to go through extra hoops to get its stuff working. - // As new extensions are ratified at http://www.khronos.org/registry/webgl/extensions/ , feel free to add your new extensions - // here, as long as they don't produce a performance impact for users that might not be using those extensions. - // E.g. debugging-related extensions should probably be off by default. - var automaticallyEnabledExtensions = [ "OES_texture_float", "OES_texture_half_float", "OES_standard_derivatives", - "OES_vertex_array_object", "WEBGL_compressed_texture_s3tc", "WEBGL_depth_texture", - "OES_element_index_uint", "EXT_texture_filter_anisotropic", "ANGLE_instanced_arrays", - "OES_texture_float_linear", "OES_texture_half_float_linear", "WEBGL_compressed_texture_atc", - "WEBGL_compressed_texture_pvrtc", "EXT_color_buffer_half_float", "WEBGL_color_buffer_float", - "EXT_frag_depth", "EXT_sRGB", "WEBGL_draw_buffers", "WEBGL_shared_resources", - "EXT_shader_texture_lod", "EXT_color_buffer_float"]; - - function shouldEnableAutomatically(extension) { - var ret = false; - automaticallyEnabledExtensions.forEach(function(include) { - if (ext.indexOf(include) != -1) { - ret = true; - } - }); - return ret; - } - - var exts = GLctx.getSupportedExtensions(); - if (exts && exts.length > 0) { - GLctx.getSupportedExtensions().forEach(function(ext) { - if (automaticallyEnabledExtensions.indexOf(ext) != -1) { - GLctx.getExtension(ext); // Calling .getExtension enables that extension permanently, no need to store the return value to be enabled. - } - }); - } - },populateUniformTable:function (program) { - var p = GL.programs[program]; - GL.programInfos[program] = { - uniforms: {}, - maxUniformLength: 0, // This is eagerly computed below, since we already enumerate all uniforms anyway. - maxAttributeLength: -1, // This is lazily computed and cached, computed when/if first asked, "-1" meaning not computed yet. - maxUniformBlockNameLength: -1 // Lazily computed as well - }; - - var ptable = GL.programInfos[program]; - var utable = ptable.uniforms; - // A program's uniform table maps the string name of an uniform to an integer location of that uniform. - // The global GL.uniforms map maps integer locations to WebGLUniformLocations. - var numUniforms = GLctx.getProgramParameter(p, GLctx.ACTIVE_UNIFORMS); - for (var i = 0; i < numUniforms; ++i) { - var u = GLctx.getActiveUniform(p, i); - - var name = u.name; - ptable.maxUniformLength = Math.max(ptable.maxUniformLength, name.length+1); - - // Strip off any trailing array specifier we might have got, e.g. "[0]". - if (name.indexOf(']', name.length-1) !== -1) { - var ls = name.lastIndexOf('['); - name = name.slice(0, ls); - } - - // Optimize memory usage slightly: If we have an array of uniforms, e.g. 'vec3 colors[3];', then - // only store the string 'colors' in utable, and 'colors[0]', 'colors[1]' and 'colors[2]' will be parsed as 'colors'+i. - // Note that for the GL.uniforms table, we still need to fetch the all WebGLUniformLocations for all the indices. - var loc = GLctx.getUniformLocation(p, name); - if (loc != null) - { - var id = GL.getNewId(GL.uniforms); - utable[name] = [u.size, id]; - GL.uniforms[id] = loc; - - for (var j = 1; j < u.size; ++j) { - var n = name + '['+j+']'; - loc = GLctx.getUniformLocation(p, n); - id = GL.getNewId(GL.uniforms); - - GL.uniforms[id] = loc; - } - } - } - }};function _emscripten_glIsRenderbuffer(renderbuffer) { - var rb = GL.renderbuffers[renderbuffer]; - if (!rb) return 0; - return GLctx.isRenderbuffer(rb); - } - - function _emscripten_glStencilMaskSeparate(x0, x1) { GLctx['stencilMaskSeparate'](x0, x1) } - - - - function _emscripten_get_now() { abort() } - - - - function _emscripten_set_main_loop_timing(mode, value) { - Browser.mainLoop.timingMode = mode; - Browser.mainLoop.timingValue = value; - - if (!Browser.mainLoop.func) { - console.error('emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.'); - return 1; // Return non-zero on failure, can't set timing mode when there is no main loop. - } - - if (mode == 0 /*EM_TIMING_SETTIMEOUT*/) { - Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { - var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now())|0; - setTimeout(Browser.mainLoop.runner, timeUntilNextTick); // doing this each time means that on exception, we stop - }; - Browser.mainLoop.method = 'timeout'; - } else if (mode == 1 /*EM_TIMING_RAF*/) { - Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { - Browser.requestAnimationFrame(Browser.mainLoop.runner); - }; - Browser.mainLoop.method = 'rAF'; - } else if (mode == 2 /*EM_TIMING_SETIMMEDIATE*/) { - if (!window['setImmediate']) { - // Emulate setImmediate. (note: not a complete polyfill, we don't emulate clearImmediate() to keep code size to minimum, since not needed) - var setImmediates = []; - var emscriptenMainLoopMessageId = 'setimmediate'; - function Browser_setImmediate_messageHandler(event) { - if (event.source === window && event.data === emscriptenMainLoopMessageId) { - event.stopPropagation(); - setImmediates.shift()(); - } - } - window.addEventListener("message", Browser_setImmediate_messageHandler, true); - window['setImmediate'] = function Browser_emulated_setImmediate(func) { - setImmediates.push(func); - if (ENVIRONMENT_IS_WORKER) { - if (Module['setImmediates'] === undefined) Module['setImmediates'] = []; - Module['setImmediates'].push(func); - window.postMessage({target: emscriptenMainLoopMessageId}); // In --proxy-to-worker, route the message via proxyClient.js - } else window.postMessage(emscriptenMainLoopMessageId, "*"); // On the main thread, can just send the message to itself. - } - } - Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { - window['setImmediate'](Browser.mainLoop.runner); - }; - Browser.mainLoop.method = 'immediate'; - } - return 0; - }function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) { - Module['noExitRuntime'] = true; - - assert(!Browser.mainLoop.func, 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.'); - - Browser.mainLoop.func = func; - Browser.mainLoop.arg = arg; - - var browserIterationFunc; - if (typeof arg !== 'undefined') { - browserIterationFunc = function() { - Module['dynCall_vi'](func, arg); - }; - } else { - browserIterationFunc = function() { - Module['dynCall_v'](func); - }; - } - - var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; - - Browser.mainLoop.runner = function Browser_mainLoop_runner() { - if (ABORT) return; - if (Browser.mainLoop.queue.length > 0) { - var start = Date.now(); - var blocker = Browser.mainLoop.queue.shift(); - blocker.func(blocker.arg); - if (Browser.mainLoop.remainingBlockers) { - var remaining = Browser.mainLoop.remainingBlockers; - var next = remaining%1 == 0 ? remaining-1 : Math.floor(remaining); - if (blocker.counted) { - Browser.mainLoop.remainingBlockers = next; - } else { - // not counted, but move the progress along a tiny bit - next = next + 0.5; // do not steal all the next one's progress - Browser.mainLoop.remainingBlockers = (8*remaining + next)/9; - } - } - console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers); - Browser.mainLoop.updateStatus(); - - // catches pause/resume main loop from blocker execution - if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; - - setTimeout(Browser.mainLoop.runner, 0); - return; - } - - // catch pauses from non-main loop sources - if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; - - // Implement very basic swap interval control - Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; - if (Browser.mainLoop.timingMode == 1/*EM_TIMING_RAF*/ && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { - // Not the scheduled time to render this frame - skip. - Browser.mainLoop.scheduler(); - return; - } else if (Browser.mainLoop.timingMode == 0/*EM_TIMING_SETTIMEOUT*/) { - Browser.mainLoop.tickStartTime = _emscripten_get_now(); - } - - // Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize - // VBO double-buffering and reduce GPU stalls. - - - if (Browser.mainLoop.method === 'timeout' && Module.ctx) { - Module.printErr('Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!'); - Browser.mainLoop.method = ''; // just warn once per call to set main loop - } - - Browser.mainLoop.runIter(browserIterationFunc); - - checkStackCookie(); - - // catch pauses from the main loop itself - if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; - - // Queue new audio data. This is important to be right after the main loop invocation, so that we will immediately be able - // to queue the newest produced audio samples. - // TODO: Consider adding pre- and post- rAF callbacks so that GL.newRenderingFrameStarted() and SDL.audio.queueNewAudioData() - // do not need to be hardcoded into this function, but can be more generic. - if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); - - Browser.mainLoop.scheduler(); - } - - if (!noSetTiming) { - if (fps && fps > 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 1000.0 / fps); - else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, 1); // Do rAF by rendering each frame (no decimating) - - Browser.mainLoop.scheduler(); - } - - if (simulateInfiniteLoop) { - throw 'SimulateInfiniteLoop'; - } - }var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function () { - Browser.mainLoop.scheduler = null; - Browser.mainLoop.currentlyRunningMainloop++; // Incrementing this signals the previous main loop that it's now become old, and it must return. - },resume:function () { - Browser.mainLoop.currentlyRunningMainloop++; - var timingMode = Browser.mainLoop.timingMode; - var timingValue = Browser.mainLoop.timingValue; - var func = Browser.mainLoop.func; - Browser.mainLoop.func = null; - _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true /* do not set timing and call scheduler, we will do it on the next lines */); - _emscripten_set_main_loop_timing(timingMode, timingValue); - Browser.mainLoop.scheduler(); - },updateStatus:function () { - if (Module['setStatus']) { - var message = Module['statusMessage'] || 'Please wait...'; - var remaining = Browser.mainLoop.remainingBlockers; - var expected = Browser.mainLoop.expectedBlockers; - if (remaining) { - if (remaining < expected) { - Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')'); - } else { - Module['setStatus'](message); - } - } else { - Module['setStatus'](''); - } - } - },runIter:function (func) { - if (ABORT) return; - if (Module['preMainLoop']) { - var preRet = Module['preMainLoop'](); - if (preRet === false) { - return; // |return false| skips a frame - } - } - try { - func(); - } catch (e) { - if (e instanceof ExitStatus) { - return; - } else { - if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); - throw e; - } - } - if (Module['postMainLoop']) Module['postMainLoop'](); - }},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () { - if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers - - if (Browser.initted) return; - Browser.initted = true; - - try { - new Blob(); - Browser.hasBlobConstructor = true; - } catch(e) { - Browser.hasBlobConstructor = false; - console.log("warning: no blob constructor, cannot create blobs with mimetypes"); - } - Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null)); - Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined; - if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') { - console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); - Module.noImageDecoding = true; - } - - // Support for plugins that can process preloaded files. You can add more of these to - // your app by creating and appending to Module.preloadPlugins. - // - // Each plugin is asked if it can handle a file based on the file's name. If it can, - // it is given the file's raw data. When it is done, it calls a callback with the file's - // (possibly modified) data. For example, a plugin might decompress a file, or it - // might create some side data structure for use later (like an Image element, etc.). - - var imagePlugin = {}; - imagePlugin['canHandle'] = function imagePlugin_canHandle(name) { - return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); - }; - imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) { - var b = null; - if (Browser.hasBlobConstructor) { - try { - b = new Blob([byteArray], { type: Browser.getMimetype(name) }); - if (b.size !== byteArray.length) { // Safari bug #118630 - // Safari's Blob can only take an ArrayBuffer - b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) }); - } - } catch(e) { - Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder'); - } - } - if (!b) { - var bb = new Browser.BlobBuilder(); - bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range - b = bb.getBlob(); - } - var url = Browser.URLObject.createObjectURL(b); - assert(typeof url == 'string', 'createObjectURL must return a url as a string'); - var img = new Image(); - img.onload = function img_onload() { - assert(img.complete, 'Image ' + name + ' could not be decoded'); - var canvas = document.createElement('canvas'); - canvas.width = img.width; - canvas.height = img.height; - var ctx = canvas.getContext('2d'); - ctx.drawImage(img, 0, 0); - Module["preloadedImages"][name] = canvas; - Browser.URLObject.revokeObjectURL(url); - if (onload) onload(byteArray); - }; - img.onerror = function img_onerror(event) { - console.log('Image ' + url + ' could not be decoded'); - if (onerror) onerror(); - }; - img.src = url; - }; - Module['preloadPlugins'].push(imagePlugin); - - var audioPlugin = {}; - audioPlugin['canHandle'] = function audioPlugin_canHandle(name) { - return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 }; - }; - audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) { - var done = false; - function finish(audio) { - if (done) return; - done = true; - Module["preloadedAudios"][name] = audio; - if (onload) onload(byteArray); - } - function fail() { - if (done) return; - done = true; - Module["preloadedAudios"][name] = new Audio(); // empty shim - if (onerror) onerror(); - } - if (Browser.hasBlobConstructor) { - try { - var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); - } catch(e) { - return fail(); - } - var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this! - assert(typeof url == 'string', 'createObjectURL must return a url as a string'); - var audio = new Audio(); - audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926 - audio.onerror = function audio_onerror(event) { - if (done) return; - console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach'); - function encode64(data) { - var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - var PAD = '='; - var ret = ''; - var leftchar = 0; - var leftbits = 0; - for (var i = 0; i < data.length; i++) { - leftchar = (leftchar << 8) | data[i]; - leftbits += 8; - while (leftbits >= 6) { - var curr = (leftchar >> (leftbits-6)) & 0x3f; - leftbits -= 6; - ret += BASE[curr]; - } - } - if (leftbits == 2) { - ret += BASE[(leftchar&3) << 4]; - ret += PAD + PAD; - } else if (leftbits == 4) { - ret += BASE[(leftchar&0xf) << 2]; - ret += PAD; - } - return ret; - } - audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray); - finish(audio); // we don't wait for confirmation this worked - but it's worth trying - }; - audio.src = url; - // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror - Browser.safeSetTimeout(function() { - finish(audio); // try to use it even though it is not necessarily ready to play - }, 10000); - } else { - return fail(); - } - }; - Module['preloadPlugins'].push(audioPlugin); - - // Canvas event setup - - function pointerLockChange() { - Browser.pointerLock = document['pointerLockElement'] === Module['canvas'] || - document['mozPointerLockElement'] === Module['canvas'] || - document['webkitPointerLockElement'] === Module['canvas'] || - document['msPointerLockElement'] === Module['canvas']; - } - var canvas = Module['canvas']; - if (canvas) { - // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module - // Module['forcedAspectRatio'] = 4 / 3; - - canvas.requestPointerLock = canvas['requestPointerLock'] || - canvas['mozRequestPointerLock'] || - canvas['webkitRequestPointerLock'] || - canvas['msRequestPointerLock'] || - function(){}; - canvas.exitPointerLock = document['exitPointerLock'] || - document['mozExitPointerLock'] || - document['webkitExitPointerLock'] || - document['msExitPointerLock'] || - function(){}; // no-op if function does not exist - canvas.exitPointerLock = canvas.exitPointerLock.bind(document); - - document.addEventListener('pointerlockchange', pointerLockChange, false); - document.addEventListener('mozpointerlockchange', pointerLockChange, false); - document.addEventListener('webkitpointerlockchange', pointerLockChange, false); - document.addEventListener('mspointerlockchange', pointerLockChange, false); - - if (Module['elementPointerLock']) { - canvas.addEventListener("click", function(ev) { - if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { - Module['canvas'].requestPointerLock(); - ev.preventDefault(); - } - }, false); - } - } - },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) { - if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; // no need to recreate GL context if it's already been created for this canvas. - - var ctx; - var contextHandle; - if (useWebGL) { - // For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults. - var contextAttributes = { - antialias: false, - alpha: false - }; - - if (webGLContextAttributes) { - for (var attribute in webGLContextAttributes) { - contextAttributes[attribute] = webGLContextAttributes[attribute]; - } - } - - contextHandle = GL.createContext(canvas, contextAttributes); - if (contextHandle) { - ctx = GL.getContext(contextHandle).GLctx; - } - } else { - ctx = canvas.getContext('2d'); - } - - if (!ctx) return null; - - if (setInModule) { - if (!useWebGL) assert(typeof GLctx === 'undefined', 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it'); - - Module.ctx = ctx; - if (useWebGL) GL.makeContextCurrent(contextHandle); - Module.useWebGL = useWebGL; - Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() }); - Browser.init(); - } - return ctx; - },destroyContext:function (canvas, useWebGL, setInModule) {},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function (lockPointer, resizeCanvas, vrDevice) { - Browser.lockPointer = lockPointer; - Browser.resizeCanvas = resizeCanvas; - Browser.vrDevice = vrDevice; - if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true; - if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false; - if (typeof Browser.vrDevice === 'undefined') Browser.vrDevice = null; - - var canvas = Module['canvas']; - function fullscreenChange() { - Browser.isFullscreen = false; - var canvasContainer = canvas.parentNode; - if ((document['fullscreenElement'] || document['mozFullScreenElement'] || - document['msFullscreenElement'] || document['webkitFullscreenElement'] || - document['webkitCurrentFullScreenElement']) === canvasContainer) { - canvas.exitFullscreen = document['exitFullscreen'] || - document['cancelFullScreen'] || - document['mozCancelFullScreen'] || - document['msExitFullscreen'] || - document['webkitCancelFullScreen'] || - function() {}; - canvas.exitFullscreen = canvas.exitFullscreen.bind(document); - if (Browser.lockPointer) canvas.requestPointerLock(); - Browser.isFullscreen = true; - if (Browser.resizeCanvas) Browser.setFullscreenCanvasSize(); - } else { - - // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen - canvasContainer.parentNode.insertBefore(canvas, canvasContainer); - canvasContainer.parentNode.removeChild(canvasContainer); - - if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); - } - if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullscreen); - if (Module['onFullscreen']) Module['onFullscreen'](Browser.isFullscreen); - Browser.updateCanvasDimensions(canvas); - } - - if (!Browser.fullscreenHandlersInstalled) { - Browser.fullscreenHandlersInstalled = true; - document.addEventListener('fullscreenchange', fullscreenChange, false); - document.addEventListener('mozfullscreenchange', fullscreenChange, false); - document.addEventListener('webkitfullscreenchange', fullscreenChange, false); - document.addEventListener('MSFullscreenChange', fullscreenChange, false); - } - - // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root - var canvasContainer = document.createElement("div"); - canvas.parentNode.insertBefore(canvasContainer, canvas); - canvasContainer.appendChild(canvas); - - // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) - canvasContainer.requestFullscreen = canvasContainer['requestFullscreen'] || - canvasContainer['mozRequestFullScreen'] || - canvasContainer['msRequestFullscreen'] || - (canvasContainer['webkitRequestFullscreen'] ? function() { canvasContainer['webkitRequestFullscreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null) || - (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null); - - if (vrDevice) { - canvasContainer.requestFullscreen({ vrDisplay: vrDevice }); - } else { - canvasContainer.requestFullscreen(); - } - },requestFullScreen:function (lockPointer, resizeCanvas, vrDevice) { - Module.printErr('Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.'); - Browser.requestFullScreen = function(lockPointer, resizeCanvas, vrDevice) { - return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); - } - return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); - },nextRAF:0,fakeRequestAnimationFrame:function (func) { - // try to keep 60fps between calls to here - var now = Date.now(); - if (Browser.nextRAF === 0) { - Browser.nextRAF = now + 1000/60; - } else { - while (now + 2 >= Browser.nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0 - Browser.nextRAF += 1000/60; - } - } - var delay = Math.max(Browser.nextRAF - now, 0); - setTimeout(func, delay); - },requestAnimationFrame:function requestAnimationFrame(func) { - if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js) - Browser.fakeRequestAnimationFrame(func); - } else { - if (!window.requestAnimationFrame) { - window.requestAnimationFrame = window['requestAnimationFrame'] || - window['mozRequestAnimationFrame'] || - window['webkitRequestAnimationFrame'] || - window['msRequestAnimationFrame'] || - window['oRequestAnimationFrame'] || - Browser.fakeRequestAnimationFrame; - } - window.requestAnimationFrame(func); - } - },safeCallback:function (func) { - return function() { - if (!ABORT) return func.apply(null, arguments); - }; - },allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function () { - Browser.allowAsyncCallbacks = false; - },resumeAsyncCallbacks:function () { // marks future callbacks as ok to execute, and synchronously runs any remaining ones right now - Browser.allowAsyncCallbacks = true; - if (Browser.queuedAsyncCallbacks.length > 0) { - var callbacks = Browser.queuedAsyncCallbacks; - Browser.queuedAsyncCallbacks = []; - callbacks.forEach(function(func) { - func(); - }); - } - },safeRequestAnimationFrame:function (func) { - return Browser.requestAnimationFrame(function() { - if (ABORT) return; - if (Browser.allowAsyncCallbacks) { - func(); - } else { - Browser.queuedAsyncCallbacks.push(func); - } - }); - },safeSetTimeout:function (func, timeout) { - Module['noExitRuntime'] = true; - return setTimeout(function() { - if (ABORT) return; - if (Browser.allowAsyncCallbacks) { - func(); - } else { - Browser.queuedAsyncCallbacks.push(func); - } - }, timeout); - },safeSetInterval:function (func, timeout) { - Module['noExitRuntime'] = true; - return setInterval(function() { - if (ABORT) return; - if (Browser.allowAsyncCallbacks) { - func(); - } // drop it on the floor otherwise, next interval will kick in - }, timeout); - },getMimetype:function (name) { - return { - 'jpg': 'image/jpeg', - 'jpeg': 'image/jpeg', - 'png': 'image/png', - 'bmp': 'image/bmp', - 'ogg': 'audio/ogg', - 'wav': 'audio/wav', - 'mp3': 'audio/mpeg' - }[name.substr(name.lastIndexOf('.')+1)]; - },getUserMedia:function (func) { - if(!window.getUserMedia) { - window.getUserMedia = navigator['getUserMedia'] || - navigator['mozGetUserMedia']; - } - window.getUserMedia(func); - },getMovementX:function (event) { - return event['movementX'] || - event['mozMovementX'] || - event['webkitMovementX'] || - 0; - },getMovementY:function (event) { - return event['movementY'] || - event['mozMovementY'] || - event['webkitMovementY'] || - 0; - },getMouseWheelDelta:function (event) { - var delta = 0; - switch (event.type) { - case 'DOMMouseScroll': - delta = event.detail; - break; - case 'mousewheel': - delta = event.wheelDelta; - break; - case 'wheel': - delta = event['deltaY']; - break; - default: - throw 'unrecognized mouse wheel event: ' + event.type; - } - return delta; - },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup - if (Browser.pointerLock) { - // When the pointer is locked, calculate the coordinates - // based on the movement of the mouse. - // Workaround for Firefox bug 764498 - if (event.type != 'mousemove' && - ('mozMovementX' in event)) { - Browser.mouseMovementX = Browser.mouseMovementY = 0; - } else { - Browser.mouseMovementX = Browser.getMovementX(event); - Browser.mouseMovementY = Browser.getMovementY(event); - } - - // check if SDL is available - if (typeof SDL != "undefined") { - Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; - Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; - } else { - // just add the mouse delta to the current absolut mouse position - // FIXME: ideally this should be clamped against the canvas size and zero - Browser.mouseX += Browser.mouseMovementX; - Browser.mouseY += Browser.mouseMovementY; - } - } else { - // Otherwise, calculate the movement based on the changes - // in the coordinates. - var rect = Module["canvas"].getBoundingClientRect(); - var cw = Module["canvas"].width; - var ch = Module["canvas"].height; - - // Neither .scrollX or .pageXOffset are defined in a spec, but - // we prefer .scrollX because it is currently in a spec draft. - // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) - var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset); - var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset); - // If this assert lands, it's likely because the browser doesn't support scrollX or pageXOffset - // and we have no viable fallback. - assert((typeof scrollX !== 'undefined') && (typeof scrollY !== 'undefined'), 'Unable to retrieve scroll position, mouse positions likely broken.'); - - if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') { - var touch = event.touch; - if (touch === undefined) { - return; // the "touch" property is only defined in SDL - - } - var adjustedX = touch.pageX - (scrollX + rect.left); - var adjustedY = touch.pageY - (scrollY + rect.top); - - adjustedX = adjustedX * (cw / rect.width); - adjustedY = adjustedY * (ch / rect.height); - - var coords = { x: adjustedX, y: adjustedY }; - - if (event.type === 'touchstart') { - Browser.lastTouches[touch.identifier] = coords; - Browser.touches[touch.identifier] = coords; - } else if (event.type === 'touchend' || event.type === 'touchmove') { - var last = Browser.touches[touch.identifier]; - if (!last) last = coords; - Browser.lastTouches[touch.identifier] = last; - Browser.touches[touch.identifier] = coords; - } - return; - } - - var x = event.pageX - (scrollX + rect.left); - var y = event.pageY - (scrollY + rect.top); - - // the canvas might be CSS-scaled compared to its backbuffer; - // SDL-using content will want mouse coordinates in terms - // of backbuffer units. - x = x * (cw / rect.width); - y = y * (ch / rect.height); - - Browser.mouseMovementX = x - Browser.mouseX; - Browser.mouseMovementY = y - Browser.mouseY; - Browser.mouseX = x; - Browser.mouseY = y; - } - },asyncLoad:function (url, onload, onerror, noRunDep) { - var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; - Module['readAsync'](url, function(arrayBuffer) { - assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); - onload(new Uint8Array(arrayBuffer)); - if (dep) removeRunDependency(dep); - }, function(event) { - if (onerror) { - onerror(); - } else { - throw 'Loading data file "' + url + '" failed.'; - } - }); - if (dep) addRunDependency(dep); - },resizeListeners:[],updateResizeListeners:function () { - var canvas = Module['canvas']; - Browser.resizeListeners.forEach(function(listener) { - listener(canvas.width, canvas.height); - }); - },setCanvasSize:function (width, height, noUpdates) { - var canvas = Module['canvas']; - Browser.updateCanvasDimensions(canvas, width, height); - if (!noUpdates) Browser.updateResizeListeners(); - },windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function () { - // check if SDL is available - if (typeof SDL != "undefined") { - var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; - flags = flags | 0x00800000; // set SDL_FULLSCREEN flag - HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags - } - Browser.updateResizeListeners(); - },setWindowedCanvasSize:function () { - // check if SDL is available - if (typeof SDL != "undefined") { - var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; - flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag - HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags - } - Browser.updateResizeListeners(); - },updateCanvasDimensions:function (canvas, wNative, hNative) { - if (wNative && hNative) { - canvas.widthNative = wNative; - canvas.heightNative = hNative; - } else { - wNative = canvas.widthNative; - hNative = canvas.heightNative; - } - var w = wNative; - var h = hNative; - if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) { - if (w/h < Module['forcedAspectRatio']) { - w = Math.round(h * Module['forcedAspectRatio']); - } else { - h = Math.round(w / Module['forcedAspectRatio']); - } - } - if (((document['fullscreenElement'] || document['mozFullScreenElement'] || - document['msFullscreenElement'] || document['webkitFullscreenElement'] || - document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) { - var factor = Math.min(screen.width / w, screen.height / h); - w = Math.round(w * factor); - h = Math.round(h * factor); - } - if (Browser.resizeCanvas) { - if (canvas.width != w) canvas.width = w; - if (canvas.height != h) canvas.height = h; - if (typeof canvas.style != 'undefined') { - canvas.style.removeProperty( "width"); - canvas.style.removeProperty("height"); - } - } else { - if (canvas.width != wNative) canvas.width = wNative; - if (canvas.height != hNative) canvas.height = hNative; - if (typeof canvas.style != 'undefined') { - if (w != wNative || h != hNative) { - canvas.style.setProperty( "width", w + "px", "important"); - canvas.style.setProperty("height", h + "px", "important"); - } else { - canvas.style.removeProperty( "width"); - canvas.style.removeProperty("height"); - } - } - } - },wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function () { - var handle = Browser.nextWgetRequestHandle; - Browser.nextWgetRequestHandle++; - return handle; - }};var GLFW={Window:function (id, width, height, title, monitor, share) { - this.id = id; - this.x = 0; - this.y = 0; - this.fullscreen = false; // Used to determine if app in fullscreen mode - this.storedX = 0; // Used to store X before fullscreen - this.storedY = 0; // Used to store Y before fullscreen - this.width = width; - this.height = height; - this.storedWidth = width; // Used to store width before fullscreen - this.storedHeight = height; // Used to store height before fullscreen - this.title = title; - this.monitor = monitor; - this.share = share; - this.attributes = GLFW.hints; - this.inputModes = { - 0x00033001:0x00034001, // GLFW_CURSOR (GLFW_CURSOR_NORMAL) - 0x00033002:0, // GLFW_STICKY_KEYS - 0x00033003:0, // GLFW_STICKY_MOUSE_BUTTONS - }; - this.buttons = 0; - this.keys = new Array(); - this.domKeys = new Array(); - this.shouldClose = 0; - this.title = null; - this.windowPosFunc = null; // GLFWwindowposfun - this.windowSizeFunc = null; // GLFWwindowsizefun - this.windowCloseFunc = null; // GLFWwindowclosefun - this.windowRefreshFunc = null; // GLFWwindowrefreshfun - this.windowFocusFunc = null; // GLFWwindowfocusfun - this.windowIconifyFunc = null; // GLFWwindowiconifyfun - this.framebufferSizeFunc = null; // GLFWframebuffersizefun - this.mouseButtonFunc = null; // GLFWmousebuttonfun - this.cursorPosFunc = null; // GLFWcursorposfun - this.cursorEnterFunc = null; // GLFWcursorenterfun - this.scrollFunc = null; // GLFWscrollfun - this.dropFunc = null; // GLFWdropfun - this.keyFunc = null; // GLFWkeyfun - this.charFunc = null; // GLFWcharfun - this.userptr = null; - },WindowFromId:function (id) { - if (id <= 0 || !GLFW.windows) return null; - return GLFW.windows[id - 1]; - },joystickFunc:null,errorFunc:null,monitorFunc:null,active:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0},DOMToGLFWKeyCode:function (keycode) { - switch (keycode) { - // these keycodes are only defined for GLFW3, assume they are the same for GLFW2 - case 0x20:return 32; // DOM_VK_SPACE -> GLFW_KEY_SPACE - case 0xDE:return 39; // DOM_VK_QUOTE -> GLFW_KEY_APOSTROPHE - case 0xBC:return 44; // DOM_VK_COMMA -> GLFW_KEY_COMMA - case 0xAD:return 45; // DOM_VK_HYPHEN_MINUS -> GLFW_KEY_MINUS - case 0xBD:return 45; // DOM_VK_MINUS -> GLFW_KEY_MINUS - case 0xBE:return 46; // DOM_VK_PERIOD -> GLFW_KEY_PERIOD - case 0xBF:return 47; // DOM_VK_SLASH -> GLFW_KEY_SLASH - case 0x30:return 48; // DOM_VK_0 -> GLFW_KEY_0 - case 0x31:return 49; // DOM_VK_1 -> GLFW_KEY_1 - case 0x32:return 50; // DOM_VK_2 -> GLFW_KEY_2 - case 0x33:return 51; // DOM_VK_3 -> GLFW_KEY_3 - case 0x34:return 52; // DOM_VK_4 -> GLFW_KEY_4 - case 0x35:return 53; // DOM_VK_5 -> GLFW_KEY_5 - case 0x36:return 54; // DOM_VK_6 -> GLFW_KEY_6 - case 0x37:return 55; // DOM_VK_7 -> GLFW_KEY_7 - case 0x38:return 56; // DOM_VK_8 -> GLFW_KEY_8 - case 0x39:return 57; // DOM_VK_9 -> GLFW_KEY_9 - case 0x3B:return 59; // DOM_VK_SEMICOLON -> GLFW_KEY_SEMICOLON - case 0x3D:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL - case 0xBB:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL - case 0x41:return 65; // DOM_VK_A -> GLFW_KEY_A - case 0x42:return 66; // DOM_VK_B -> GLFW_KEY_B - case 0x43:return 67; // DOM_VK_C -> GLFW_KEY_C - case 0x44:return 68; // DOM_VK_D -> GLFW_KEY_D - case 0x45:return 69; // DOM_VK_E -> GLFW_KEY_E - case 0x46:return 70; // DOM_VK_F -> GLFW_KEY_F - case 0x47:return 71; // DOM_VK_G -> GLFW_KEY_G - case 0x48:return 72; // DOM_VK_H -> GLFW_KEY_H - case 0x49:return 73; // DOM_VK_I -> GLFW_KEY_I - case 0x4A:return 74; // DOM_VK_J -> GLFW_KEY_J - case 0x4B:return 75; // DOM_VK_K -> GLFW_KEY_K - case 0x4C:return 76; // DOM_VK_L -> GLFW_KEY_L - case 0x4D:return 77; // DOM_VK_M -> GLFW_KEY_M - case 0x4E:return 78; // DOM_VK_N -> GLFW_KEY_N - case 0x4F:return 79; // DOM_VK_O -> GLFW_KEY_O - case 0x50:return 80; // DOM_VK_P -> GLFW_KEY_P - case 0x51:return 81; // DOM_VK_Q -> GLFW_KEY_Q - case 0x52:return 82; // DOM_VK_R -> GLFW_KEY_R - case 0x53:return 83; // DOM_VK_S -> GLFW_KEY_S - case 0x54:return 84; // DOM_VK_T -> GLFW_KEY_T - case 0x55:return 85; // DOM_VK_U -> GLFW_KEY_U - case 0x56:return 86; // DOM_VK_V -> GLFW_KEY_V - case 0x57:return 87; // DOM_VK_W -> GLFW_KEY_W - case 0x58:return 88; // DOM_VK_X -> GLFW_KEY_X - case 0x59:return 89; // DOM_VK_Y -> GLFW_KEY_Y - case 0x5a:return 90; // DOM_VK_Z -> GLFW_KEY_Z - case 0xDB:return 91; // DOM_VK_OPEN_BRACKET -> GLFW_KEY_LEFT_BRACKET - case 0xDC:return 92; // DOM_VK_BACKSLASH -> GLFW_KEY_BACKSLASH - case 0xDD:return 93; // DOM_VK_CLOSE_BRACKET -> GLFW_KEY_RIGHT_BRACKET - case 0xC0:return 94; // DOM_VK_BACK_QUOTE -> GLFW_KEY_GRAVE_ACCENT - - - case 0x1B:return 256; // DOM_VK_ESCAPE -> GLFW_KEY_ESCAPE - case 0x0D:return 257; // DOM_VK_RETURN -> GLFW_KEY_ENTER - case 0x09:return 258; // DOM_VK_TAB -> GLFW_KEY_TAB - case 0x08:return 259; // DOM_VK_BACK -> GLFW_KEY_BACKSPACE - case 0x2D:return 260; // DOM_VK_INSERT -> GLFW_KEY_INSERT - case 0x2E:return 261; // DOM_VK_DELETE -> GLFW_KEY_DELETE - case 0x27:return 262; // DOM_VK_RIGHT -> GLFW_KEY_RIGHT - case 0x25:return 263; // DOM_VK_LEFT -> GLFW_KEY_LEFT - case 0x28:return 264; // DOM_VK_DOWN -> GLFW_KEY_DOWN - case 0x26:return 265; // DOM_VK_UP -> GLFW_KEY_UP - case 0x21:return 266; // DOM_VK_PAGE_UP -> GLFW_KEY_PAGE_UP - case 0x22:return 267; // DOM_VK_PAGE_DOWN -> GLFW_KEY_PAGE_DOWN - case 0x24:return 268; // DOM_VK_HOME -> GLFW_KEY_HOME - case 0x23:return 269; // DOM_VK_END -> GLFW_KEY_END - case 0x14:return 280; // DOM_VK_CAPS_LOCK -> GLFW_KEY_CAPS_LOCK - case 0x91:return 281; // DOM_VK_SCROLL_LOCK -> GLFW_KEY_SCROLL_LOCK - case 0x90:return 282; // DOM_VK_NUM_LOCK -> GLFW_KEY_NUM_LOCK - case 0x2C:return 283; // DOM_VK_SNAPSHOT -> GLFW_KEY_PRINT_SCREEN - case 0x13:return 284; // DOM_VK_PAUSE -> GLFW_KEY_PAUSE - case 0x70:return 290; // DOM_VK_F1 -> GLFW_KEY_F1 - case 0x71:return 291; // DOM_VK_F2 -> GLFW_KEY_F2 - case 0x72:return 292; // DOM_VK_F3 -> GLFW_KEY_F3 - case 0x73:return 293; // DOM_VK_F4 -> GLFW_KEY_F4 - case 0x74:return 294; // DOM_VK_F5 -> GLFW_KEY_F5 - case 0x75:return 295; // DOM_VK_F6 -> GLFW_KEY_F6 - case 0x76:return 296; // DOM_VK_F7 -> GLFW_KEY_F7 - case 0x77:return 297; // DOM_VK_F8 -> GLFW_KEY_F8 - case 0x78:return 298; // DOM_VK_F9 -> GLFW_KEY_F9 - case 0x79:return 299; // DOM_VK_F10 -> GLFW_KEY_F10 - case 0x7A:return 300; // DOM_VK_F11 -> GLFW_KEY_F11 - case 0x7B:return 301; // DOM_VK_F12 -> GLFW_KEY_F12 - case 0x7C:return 302; // DOM_VK_F13 -> GLFW_KEY_F13 - case 0x7D:return 303; // DOM_VK_F14 -> GLFW_KEY_F14 - case 0x7E:return 304; // DOM_VK_F15 -> GLFW_KEY_F15 - case 0x7F:return 305; // DOM_VK_F16 -> GLFW_KEY_F16 - case 0x80:return 306; // DOM_VK_F17 -> GLFW_KEY_F17 - case 0x81:return 307; // DOM_VK_F18 -> GLFW_KEY_F18 - case 0x82:return 308; // DOM_VK_F19 -> GLFW_KEY_F19 - case 0x83:return 309; // DOM_VK_F20 -> GLFW_KEY_F20 - case 0x84:return 310; // DOM_VK_F21 -> GLFW_KEY_F21 - case 0x85:return 311; // DOM_VK_F22 -> GLFW_KEY_F22 - case 0x86:return 312; // DOM_VK_F23 -> GLFW_KEY_F23 - case 0x87:return 313; // DOM_VK_F24 -> GLFW_KEY_F24 - case 0x88:return 314; // 0x88 (not used?) -> GLFW_KEY_F25 - case 0x60:return 320; // DOM_VK_NUMPAD0 -> GLFW_KEY_KP_0 - case 0x61:return 321; // DOM_VK_NUMPAD1 -> GLFW_KEY_KP_1 - case 0x62:return 322; // DOM_VK_NUMPAD2 -> GLFW_KEY_KP_2 - case 0x63:return 323; // DOM_VK_NUMPAD3 -> GLFW_KEY_KP_3 - case 0x64:return 324; // DOM_VK_NUMPAD4 -> GLFW_KEY_KP_4 - case 0x65:return 325; // DOM_VK_NUMPAD5 -> GLFW_KEY_KP_5 - case 0x66:return 326; // DOM_VK_NUMPAD6 -> GLFW_KEY_KP_6 - case 0x67:return 327; // DOM_VK_NUMPAD7 -> GLFW_KEY_KP_7 - case 0x68:return 328; // DOM_VK_NUMPAD8 -> GLFW_KEY_KP_8 - case 0x69:return 329; // DOM_VK_NUMPAD9 -> GLFW_KEY_KP_9 - case 0x6E:return 330; // DOM_VK_DECIMAL -> GLFW_KEY_KP_DECIMAL - case 0x6F:return 331; // DOM_VK_DIVIDE -> GLFW_KEY_KP_DIVIDE - case 0x6A:return 332; // DOM_VK_MULTIPLY -> GLFW_KEY_KP_MULTIPLY - case 0x6D:return 333; // DOM_VK_SUBTRACT -> GLFW_KEY_KP_SUBTRACT - case 0x6B:return 334; // DOM_VK_ADD -> GLFW_KEY_KP_ADD - // case 0x0D:return 335; // DOM_VK_RETURN -> GLFW_KEY_KP_ENTER (DOM_KEY_LOCATION_RIGHT) - // case 0x61:return 336; // DOM_VK_EQUALS -> GLFW_KEY_KP_EQUAL (DOM_KEY_LOCATION_RIGHT) - case 0x10:return 340; // DOM_VK_SHIFT -> GLFW_KEY_LEFT_SHIFT - case 0x11:return 341; // DOM_VK_CONTROL -> GLFW_KEY_LEFT_CONTROL - case 0x12:return 342; // DOM_VK_ALT -> GLFW_KEY_LEFT_ALT - case 0x5B:return 343; // DOM_VK_WIN -> GLFW_KEY_LEFT_SUPER - // case 0x10:return 344; // DOM_VK_SHIFT -> GLFW_KEY_RIGHT_SHIFT (DOM_KEY_LOCATION_RIGHT) - // case 0x11:return 345; // DOM_VK_CONTROL -> GLFW_KEY_RIGHT_CONTROL (DOM_KEY_LOCATION_RIGHT) - // case 0x12:return 346; // DOM_VK_ALT -> GLFW_KEY_RIGHT_ALT (DOM_KEY_LOCATION_RIGHT) - // case 0x5B:return 347; // DOM_VK_WIN -> GLFW_KEY_RIGHT_SUPER (DOM_KEY_LOCATION_RIGHT) - case 0x5D:return 348; // DOM_VK_CONTEXT_MENU -> GLFW_KEY_MENU - // XXX: GLFW_KEY_WORLD_1, GLFW_KEY_WORLD_2 what are these? - default:return -1; // GLFW_KEY_UNKNOWN - }; - },getModBits:function (win) { - var mod = 0; - if (win.keys[340]) mod |= 0x0001; // GLFW_MOD_SHIFT - if (win.keys[341]) mod |= 0x0002; // GLFW_MOD_CONTROL - if (win.keys[342]) mod |= 0x0004; // GLFW_MOD_ALT - if (win.keys[343]) mod |= 0x0008; // GLFW_MOD_SUPER - return mod; - },onKeyPress:function (event) { - if (!GLFW.active || !GLFW.active.charFunc) return; - if (event.ctrlKey || event.metaKey) return; - - // correct unicode charCode is only available with onKeyPress event - var charCode = event.charCode; - if (charCode == 0 || (charCode >= 0x00 && charCode <= 0x1F)) return; - - - Module['dynCall_vii'](GLFW.active.charFunc, GLFW.active.id, charCode); - },onKeyChanged:function (keyCode, status) { - if (!GLFW.active) return; - - var key = GLFW.DOMToGLFWKeyCode(keyCode); - if (key == -1) return; - - var repeat = status && GLFW.active.keys[key]; - GLFW.active.keys[key] = status; - GLFW.active.domKeys[keyCode] = status; - if (!GLFW.active.keyFunc) return; - - - if (repeat) status = 2; // GLFW_REPEAT - Module['dynCall_viiiii'](GLFW.active.keyFunc, GLFW.active.id, key, keyCode, status, GLFW.getModBits(GLFW.active)); - },onGamepadConnected:function (event) { - GLFW.refreshJoysticks(); - },onGamepadDisconnected:function (event) { - GLFW.refreshJoysticks(); - },onKeydown:function (event) { - GLFW.onKeyChanged(event.keyCode, 1); // GLFW_PRESS or GLFW_REPEAT - - // This logic comes directly from the sdl implementation. We cannot - // call preventDefault on all keydown events otherwise onKeyPress will - // not get called - if (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */) { - event.preventDefault(); - } - },onKeyup:function (event) { - GLFW.onKeyChanged(event.keyCode, 0); // GLFW_RELEASE - },onBlur:function (event) { - if (!GLFW.active) return; - - for (var i = 0; i < GLFW.active.domKeys.length; ++i) { - if (GLFW.active.domKeys[i]) { - GLFW.onKeyChanged(i, 0); // GLFW_RELEASE - } - } - },onMousemove:function (event) { - if (!GLFW.active) return; - - Browser.calculateMouseEvent(event); - - if (event.target != Module["canvas"] || !GLFW.active.cursorPosFunc) return; - - - Module['dynCall_vidd'](GLFW.active.cursorPosFunc, GLFW.active.id, Browser.mouseX, Browser.mouseY); - },DOMToGLFWMouseButton:function (event) { - // DOM and glfw have different button codes. - // See http://www.w3schools.com/jsref/event_button.asp. - var eventButton = event['button']; - if (eventButton > 0) { - if (eventButton == 1) { - eventButton = 2; - } else { - eventButton = 1; - } - } - return eventButton; - },onMouseenter:function (event) { - if (!GLFW.active) return; - - if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; - - Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 1); - },onMouseleave:function (event) { - if (!GLFW.active) return; - - if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; - - Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 0); - },onMouseButtonChanged:function (event, status) { - if (!GLFW.active) return; - - Browser.calculateMouseEvent(event); - - if (event.target != Module["canvas"]) return; - - eventButton = GLFW.DOMToGLFWMouseButton(event); - - if (status == 1) { // GLFW_PRESS - GLFW.active.buttons |= (1 << eventButton); - try { - event.target.setCapture(); - } catch (e) {} - } else { // GLFW_RELEASE - GLFW.active.buttons &= ~(1 << eventButton); - } - - if (!GLFW.active.mouseButtonFunc) return; - - - Module['dynCall_viiii'](GLFW.active.mouseButtonFunc, GLFW.active.id, eventButton, status, GLFW.getModBits(GLFW.active)); - },onMouseButtonDown:function (event) { - if (!GLFW.active) return; - GLFW.onMouseButtonChanged(event, 1); // GLFW_PRESS - },onMouseButtonUp:function (event) { - if (!GLFW.active) return; - GLFW.onMouseButtonChanged(event, 0); // GLFW_RELEASE - },onMouseWheel:function (event) { - // Note the minus sign that flips browser wheel direction (positive direction scrolls page down) to native wheel direction (positive direction is mouse wheel up) - var delta = -Browser.getMouseWheelDelta(event); - delta = (delta == 0) ? 0 : (delta > 0 ? Math.max(delta, 1) : Math.min(delta, -1)); // Quantize to integer so that minimum scroll is at least +/- 1. - GLFW.wheelPos += delta; - - if (!GLFW.active || !GLFW.active.scrollFunc || event.target != Module['canvas']) return; - - - var sx = 0; - var sy = 0; - if (event.type == 'mousewheel') { - sx = event.wheelDeltaX; - sy = event.wheelDeltaY; - } else { - sx = event.deltaX; - sy = event.deltaY; - } - - Module['dynCall_vidd'](GLFW.active.scrollFunc, GLFW.active.id, sx, sy); - - event.preventDefault(); - },onCanvasResize:function (width, height) { - if (!GLFW.active) return; - - var resizeNeeded = true; - - // If the client is requestiong fullscreen mode - if (document["fullscreen"] || document["fullScreen"] || document["mozFullScreen"] || document["webkitIsFullScreen"]) { - GLFW.active.storedX = GLFW.active.x; - GLFW.active.storedY = GLFW.active.y; - GLFW.active.storedWidth = GLFW.active.width; - GLFW.active.storedHeight = GLFW.active.height; - GLFW.active.x = GLFW.active.y = 0; - GLFW.active.width = screen.width; - GLFW.active.height = screen.height; - GLFW.active.fullscreen = true; - - // If the client is reverting from fullscreen mode - } else if (GLFW.active.fullscreen == true) { - GLFW.active.x = GLFW.active.storedX; - GLFW.active.y = GLFW.active.storedY; - GLFW.active.width = GLFW.active.storedWidth; - GLFW.active.height = GLFW.active.storedHeight; - GLFW.active.fullscreen = false; - - // If the width/height values do not match current active window sizes - } else if (GLFW.active.width != width || GLFW.active.height != height) { - GLFW.active.width = width; - GLFW.active.height = height; - } else { - resizeNeeded = false; - } - - // If any of the above conditions were true, we need to resize the canvas - if (resizeNeeded) { - // resets the canvas size to counter the aspect preservation of Browser.updateCanvasDimensions - Browser.setCanvasSize(GLFW.active.width, GLFW.active.height, true); - // TODO: Client dimensions (clientWidth/clientHeight) vs pixel dimensions (width/height) of - // the canvas should drive window and framebuffer size respectfully. - GLFW.onWindowSizeChanged(); - GLFW.onFramebufferSizeChanged(); - } - },onWindowSizeChanged:function () { - if (!GLFW.active) return; - - if (!GLFW.active.windowSizeFunc) return; - - - Module['dynCall_viii'](GLFW.active.windowSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); - },onFramebufferSizeChanged:function () { - if (!GLFW.active) return; - - if (!GLFW.active.framebufferSizeFunc) return; - - Module['dynCall_viii'](GLFW.active.framebufferSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); - },requestFullscreen:function () { - var RFS = Module["canvas"]['requestFullscreen'] || - Module["canvas"]['mozRequestFullScreen'] || - Module["canvas"]['webkitRequestFullScreen'] || - (function() {}); - RFS.apply(Module["canvas"], []); - },requestFullScreen:function () { - Module.printErr('GLFW.requestFullScreen() is deprecated. Please call GLFW.requestFullscreen instead.'); - GLFW.requestFullScreen = function() { - return GLFW.requestFullscreen(); - } - return GLFW.requestFullscreen(); - },exitFullscreen:function () { - var CFS = document['exitFullscreen'] || - document['cancelFullScreen'] || - document['mozCancelFullScreen'] || - document['webkitCancelFullScreen'] || - (function() {}); - CFS.apply(document, []); - },cancelFullScreen:function () { - Module.printErr('GLFW.cancelFullScreen() is deprecated. Please call GLFW.exitFullscreen instead.'); - GLFW.cancelFullScreen = function() { - return GLFW.exitFullscreen(); - } - return GLFW.exitFullscreen(); - },getTime:function () { - return _emscripten_get_now() / 1000; - },setWindowTitle:function (winid, title) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - win.title = Pointer_stringify(title); - if (GLFW.active.id == win.id) { - document.title = win.title; - } - },setJoystickCallback:function (cbfun) { - GLFW.joystickFunc = cbfun; - GLFW.refreshJoysticks(); - },joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function () { - // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation. - if (Browser.mainLoop.currentFrameNumber !== GLFW.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) { - GLFW.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null); - GLFW.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber; - - for (var joy = 0; joy < GLFW.lastGamepadState.length; ++joy) { - var gamepad = GLFW.lastGamepadState[joy]; - - if (gamepad) { - if (!GLFW.joys[joy]) { - console.log('glfw joystick connected:',joy); - GLFW.joys[joy] = { - id: allocate(intArrayFromString(gamepad.id), 'i8', ALLOC_NORMAL), - buttonsCount: gamepad.buttons.length, - axesCount: gamepad.axes.length, - buttons: allocate(new Array(gamepad.buttons.length), 'i8', ALLOC_NORMAL), - axes: allocate(new Array(gamepad.axes.length*4), 'float', ALLOC_NORMAL) - }; - - if (GLFW.joystickFunc) { - Module['dynCall_vii'](GLFW.joystickFunc, joy, 0x00040001); // GLFW_CONNECTED - } - } - - var data = GLFW.joys[joy]; - - for (var i = 0; i < gamepad.buttons.length; ++i) { - setValue(data.buttons + i, gamepad.buttons[i].pressed, 'i8'); - } - - for (var i = 0; i < gamepad.axes.length; ++i) { - setValue(data.axes + i*4, gamepad.axes[i], 'float'); - } - } else { - if (GLFW.joys[joy]) { - console.log('glfw joystick disconnected',joy); - - if (GLFW.joystickFunc) { - Module['dynCall_vii'](GLFW.joystickFunc, joy, 0x00040002); // GLFW_DISCONNECTED - } - - _free(GLFW.joys[joy].id); - _free(GLFW.joys[joy].buttons); - _free(GLFW.joys[joy].axes); - - delete GLFW.joys[joy]; - } - } - } - } - },setKeyCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.keyFunc = cbfun; - },setCharCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.charFunc = cbfun; - },setMouseButtonCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.mouseButtonFunc = cbfun; - },setCursorPosCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.cursorPosFunc = cbfun; - },setScrollCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.scrollFunc = cbfun; - },setDropCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.dropFunc = cbfun; - },onDrop:function (event) { - if (!GLFW.active || !GLFW.active.dropFunc) return; - if (!event.dataTransfer || !event.dataTransfer.files || event.dataTransfer.files.length == 0) return; - - event.preventDefault(); - - var filenames = allocate(new Array(event.dataTransfer.files.length*4), 'i8*', ALLOC_NORMAL); - var filenamesArray = []; - var count = event.dataTransfer.files.length; - - // Read and save the files to emscripten's FS - var written = 0; - var drop_dir = '.glfw_dropped_files'; - FS.createPath('/', drop_dir); - - function save(file) { - var path = '/' + drop_dir + '/' + file.name.replace(/\//g, '_'); - var reader = new FileReader(); - reader.onloadend = function(e) { - if (reader.readyState != 2) { // not DONE - ++written; - console.log('failed to read dropped file: '+file.name+': '+reader.error); - return; - } - - var data = e.target.result; - FS.writeFile(path, new Uint8Array(data), { encoding: 'binary' }); - if (++written === count) { - Module['dynCall_viii'](GLFW.active.dropFunc, GLFW.active.id, count, filenames); - - for (var i = 0; i < filenamesArray.length; ++i) { - _free(filenamesArray[i]); - } - _free(filenames); - } - }; - reader.readAsArrayBuffer(file); - - var filename = allocate(intArrayFromString(path), 'i8', ALLOC_NORMAL); - filenamesArray.push(filename); - setValue(filenames + i*4, filename, 'i8*'); - } - - for (var i = 0; i < count; ++i) { - save(event.dataTransfer.files[i]); - } - - return false; - },onDragover:function (event) { - if (!GLFW.active || !GLFW.active.dropFunc) return; - - event.preventDefault(); - return false; - },setWindowSizeCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowSizeFunc = cbfun; - - },setWindowCloseCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowCloseFunc = cbfun; - },setWindowRefreshCallback:function (winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowRefreshFunc = cbfun; - },onClickRequestPointerLock:function (e) { - if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { - Module['canvas'].requestPointerLock(); - e.preventDefault(); - } - },setInputMode:function (winid, mode, value) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - switch(mode) { - case 0x00033001: { // GLFW_CURSOR - switch(value) { - case 0x00034001: { // GLFW_CURSOR_NORMAL - win.inputModes[mode] = value; - Module['canvas'].removeEventListener('click', GLFW.onClickRequestPointerLock, true); - Module['canvas'].exitPointerLock(); - break; - } - case 0x00034002: { // GLFW_CURSOR_HIDDEN - console.log("glfwSetInputMode called with GLFW_CURSOR_HIDDEN value not implemented."); - break; - } - case 0x00034003: { // GLFW_CURSOR_DISABLED - win.inputModes[mode] = value; - Module['canvas'].addEventListener('click', GLFW.onClickRequestPointerLock, true); - Module['canvas'].requestPointerLock(); - break; - } - default: { - console.log("glfwSetInputMode called with unknown value parameter value: " + value + "."); - break; - } - } - break; - } - case 0x00033002: { // GLFW_STICKY_KEYS - console.log("glfwSetInputMode called with GLFW_STICKY_KEYS mode not implemented."); - break; - } - case 0x00033003: { // GLFW_STICKY_MOUSE_BUTTONS - console.log("glfwSetInputMode called with GLFW_STICKY_MOUSE_BUTTONS mode not implemented."); - break; - } - default: { - console.log("glfwSetInputMode called with unknown mode parameter value: " + mode + "."); - break; - } - } - },getKey:function (winid, key) { - var win = GLFW.WindowFromId(winid); - if (!win) return 0; - return win.keys[key]; - },getMouseButton:function (winid, button) { - var win = GLFW.WindowFromId(winid); - if (!win) return 0; - return (win.buttons & (1 << button)) > 0; - },getCursorPos:function (winid, x, y) { - setValue(x, Browser.mouseX, 'double'); - setValue(y, Browser.mouseY, 'double'); - },getMousePos:function (winid, x, y) { - setValue(x, Browser.mouseX, 'i32'); - setValue(y, Browser.mouseY, 'i32'); - },setCursorPos:function (winid, x, y) { - },getWindowPos:function (winid, x, y) { - var wx = 0; - var wy = 0; - - var win = GLFW.WindowFromId(winid); - if (win) { - wx = win.x; - wy = win.y; - } - - setValue(x, wx, 'i32'); - setValue(y, wy, 'i32'); - },setWindowPos:function (winid, x, y) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.x = x; - win.y = y; - },getWindowSize:function (winid, width, height) { - var ww = 0; - var wh = 0; - - var win = GLFW.WindowFromId(winid); - if (win) { - ww = win.width; - wh = win.height; - } - - setValue(width, ww, 'i32'); - setValue(height, wh, 'i32'); - },setWindowSize:function (winid, width, height) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - if (GLFW.active.id == win.id) { - if (width == screen.width && height == screen.height) { - GLFW.requestFullscreen(); - } else { - GLFW.exitFullscreen(); - Browser.setCanvasSize(width, height); - win.width = width; - win.height = height; - } - } - - if (!win.windowSizeFunc) return; - - - Module['dynCall_viii'](win.windowSizeFunc, win.id, width, height); - },createWindow:function (width, height, title, monitor, share) { - var i, id; - for (i = 0; i < GLFW.windows.length && GLFW.windows[i] !== null; i++); - if (i > 0) throw "glfwCreateWindow only supports one window at time currently"; - - // id for window - id = i + 1; - - // not valid - if (width <= 0 || height <= 0) return 0; - - if (monitor) { - GLFW.requestFullscreen(); - } else { - Browser.setCanvasSize(width, height); - } - - // Create context when there are no existing alive windows - for (i = 0; i < GLFW.windows.length && GLFW.windows[i] == null; i++); - if (i == GLFW.windows.length) { - var contextAttributes = { - antialias: (GLFW.hints[0x0002100D] > 1), // GLFW_SAMPLES - depth: (GLFW.hints[0x00021005] > 0), // GLFW_DEPTH_BITS - stencil: (GLFW.hints[0x00021006] > 0), // GLFW_STENCIL_BITS - alpha: (GLFW.hints[0x00021004] > 0) // GLFW_ALPHA_BITS - } - Module.ctx = Browser.createContext(Module['canvas'], true, true, contextAttributes); - } - - // If context creation failed, do not return a valid window - if (!Module.ctx) return 0; - - // Get non alive id - var win = new GLFW.Window(id, width, height, title, monitor, share); - - // Set window to array - if (id - 1 == GLFW.windows.length) { - GLFW.windows.push(win); - } else { - GLFW.windows[id - 1] = win; - } - - GLFW.active = win; - return win.id; - },destroyWindow:function (winid) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - - if (win.windowCloseFunc) - Module['dynCall_vi'](win.windowCloseFunc, win.id); - - GLFW.windows[win.id - 1] = null; - if (GLFW.active.id == win.id) - GLFW.active = null; - - // Destroy context when no alive windows - for (var i = 0; i < GLFW.windows.length; i++) - if (GLFW.windows[i] !== null) return; - - Module.ctx = Browser.destroyContext(Module['canvas'], true, true); - },swapBuffers:function (winid) { - },GLFW2ParamToGLFW3Param:function (param) { - table = { - 0x00030001:0, // GLFW_MOUSE_CURSOR - 0x00030002:0, // GLFW_STICKY_KEYS - 0x00030003:0, // GLFW_STICKY_MOUSE_BUTTONS - 0x00030004:0, // GLFW_SYSTEM_KEYS - 0x00030005:0, // GLFW_KEY_REPEAT - 0x00030006:0, // GLFW_AUTO_POLL_EVENTS - 0x00020001:0, // GLFW_OPENED - 0x00020002:0, // GLFW_ACTIVE - 0x00020003:0, // GLFW_ICONIFIED - 0x00020004:0, // GLFW_ACCELERATED - 0x00020005:0x00021001, // GLFW_RED_BITS - 0x00020006:0x00021002, // GLFW_GREEN_BITS - 0x00020007:0x00021003, // GLFW_BLUE_BITS - 0x00020008:0x00021004, // GLFW_ALPHA_BITS - 0x00020009:0x00021005, // GLFW_DEPTH_BITS - 0x0002000A:0x00021006, // GLFW_STENCIL_BITS - 0x0002000B:0x0002100F, // GLFW_REFRESH_RATE - 0x0002000C:0x00021007, // GLFW_ACCUM_RED_BITS - 0x0002000D:0x00021008, // GLFW_ACCUM_GREEN_BITS - 0x0002000E:0x00021009, // GLFW_ACCUM_BLUE_BITS - 0x0002000F:0x0002100A, // GLFW_ACCUM_ALPHA_BITS - 0x00020010:0x0002100B, // GLFW_AUX_BUFFERS - 0x00020011:0x0002100C, // GLFW_STEREO - 0x00020012:0, // GLFW_WINDOW_NO_RESIZE - 0x00020013:0x0002100D, // GLFW_FSAA_SAMPLES - 0x00020014:0x00022002, // GLFW_OPENGL_VERSION_MAJOR - 0x00020015:0x00022003, // GLFW_OPENGL_VERSION_MINOR - 0x00020016:0x00022006, // GLFW_OPENGL_FORWARD_COMPAT - 0x00020017:0x00022007, // GLFW_OPENGL_DEBUG_CONTEXT - 0x00020018:0x00022008, // GLFW_OPENGL_PROFILE - }; - return table[param]; - }};function _glfwGetVideoModes(monitor, count) { - setValue(count, 0, 'i32'); - return 0; - } - - function _glLinkProgram(program) { - GLctx.linkProgram(GL.programs[program]); - GL.programInfos[program] = null; // uniforms no longer keep the same names after linking - GL.populateUniformTable(program); - } - - function _glBindTexture(target, texture) { - GLctx.bindTexture(target, texture ? GL.textures[texture] : null); - } - - function _emscripten_glStencilFunc(x0, x1, x2) { GLctx['stencilFunc'](x0, x1, x2) } - - function _glGetString(name_) { - if (GL.stringCache[name_]) return GL.stringCache[name_]; - var ret; - switch(name_) { - case 0x1F00 /* GL_VENDOR */: - case 0x1F01 /* GL_RENDERER */: - case 0x9245 /* UNMASKED_VENDOR_WEBGL */: - case 0x9246 /* UNMASKED_RENDERER_WEBGL */: - ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); - break; - case 0x1F02 /* GL_VERSION */: - var glVersion = GLctx.getParameter(GLctx.VERSION); - // return GLES version string corresponding to the version of the WebGL context - { - glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; - } - ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); - break; - case 0x1F03 /* GL_EXTENSIONS */: - var exts = GLctx.getSupportedExtensions(); - var gl_exts = []; - for (var i = 0; i < exts.length; ++i) { - gl_exts.push(exts[i]); - gl_exts.push("GL_" + exts[i]); - } - ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); - break; - case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: - var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); - // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' - var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; - var ver_num = glslVersion.match(ver_re); - if (ver_num !== null) { - if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits - glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; - } - ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); - break; - default: - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - return 0; - } - GL.stringCache[name_] = ret; - return ret; - } - - function _emscripten_glUniform3iv(location, count, value) { - - - GLctx.uniform3iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*12)>>2)); - } - - function _emscripten_glShaderSource(shader, count, string, length) { - var source = GL.getSource(shader, count, string, length); - - - GLctx.shaderSource(GL.shaders[shader], source); - } - - function _emscripten_glReleaseShaderCompiler() { - // NOP (as allowed by GLES 2.0 spec) - } - - function _glfwSetScrollCallback(winid, cbfun) { - GLFW.setScrollCallback(winid, cbfun); - } - - function _emscripten_glTexParameterf(x0, x1, x2) { GLctx['texParameterf'](x0, x1, x2) } - - function _emscripten_glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } - - function _glCompileShader(shader) { - GLctx.compileShader(GL.shaders[shader]); - } - - - - - var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86}; - - var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"}; - - function ___setErrNo(value) { - if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; - else Module.printErr('failed to set errno from JS'); - return value; - } - - var PATH={splitPath:function (filename) { - var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - return splitPathRe.exec(filename).slice(1); - },normalizeArray:function (parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up; up--) { - parts.unshift('..'); - } - } - return parts; - },normalize:function (path) { - var isAbsolute = path.charAt(0) === '/', - trailingSlash = path.substr(-1) === '/'; - // Normalize the path - path = PATH.normalizeArray(path.split('/').filter(function(p) { - return !!p; - }), !isAbsolute).join('/'); - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - return (isAbsolute ? '/' : '') + path; - },dirname:function (path) { - var result = PATH.splitPath(path), - root = result[0], - dir = result[1]; - if (!root && !dir) { - // No dirname whatsoever - return '.'; - } - if (dir) { - // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); - } - return root + dir; - },basename:function (path) { - // EMSCRIPTEN return '/'' for '/', not an empty string - if (path === '/') return '/'; - var lastSlash = path.lastIndexOf('/'); - if (lastSlash === -1) return path; - return path.substr(lastSlash+1); - },extname:function (path) { - return PATH.splitPath(path)[3]; - },join:function () { - var paths = Array.prototype.slice.call(arguments, 0); - return PATH.normalize(paths.join('/')); - },join2:function (l, r) { - return PATH.normalize(l + '/' + r); - },resolve:function () { - var resolvedPath = '', - resolvedAbsolute = false; - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? arguments[i] : FS.cwd(); - // Skip empty and invalid entries - if (typeof path !== 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - return ''; // an invalid portion invalidates the whole thing - } - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = path.charAt(0) === '/'; - } - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; - },relative:function (from, to) { - from = PATH.resolve(from).substr(1); - to = PATH.resolve(to).substr(1); - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - return outputParts.join('/'); - }}; - - var TTY={ttys:[],init:function () { - // https://github.com/kripken/emscripten/pull/1555 - // if (ENVIRONMENT_IS_NODE) { - // // currently, FS.init does not distinguish if process.stdin is a file or TTY - // // device, it always assumes it's a TTY device. because of this, we're forcing - // // process.stdin to UTF8 encoding to at least make stdin reading compatible - // // with text files until FS.init can be refactored. - // process['stdin']['setEncoding']('utf8'); - // } - },shutdown:function () { - // https://github.com/kripken/emscripten/pull/1555 - // if (ENVIRONMENT_IS_NODE) { - // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? - // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation - // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? - // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle - // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call - // process['stdin']['pause'](); - // } - },register:function (dev, ops) { - TTY.ttys[dev] = { input: [], output: [], ops: ops }; - FS.registerDevice(dev, TTY.stream_ops); - },stream_ops:{open:function (stream) { - var tty = TTY.ttys[stream.node.rdev]; - if (!tty) { - throw new FS.ErrnoError(ERRNO_CODES.ENODEV); - } - stream.tty = tty; - stream.seekable = false; - },close:function (stream) { - // flush any pending line data - stream.tty.ops.flush(stream.tty); - },flush:function (stream) { - stream.tty.ops.flush(stream.tty); - },read:function (stream, buffer, offset, length, pos /* ignored */) { - if (!stream.tty || !stream.tty.ops.get_char) { - throw new FS.ErrnoError(ERRNO_CODES.ENXIO); - } - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = stream.tty.ops.get_char(stream.tty); - } catch (e) { - throw new FS.ErrnoError(ERRNO_CODES.EIO); - } - if (result === undefined && bytesRead === 0) { - throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); - } - if (result === null || result === undefined) break; - bytesRead++; - buffer[offset+i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - },write:function (stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.put_char) { - throw new FS.ErrnoError(ERRNO_CODES.ENXIO); - } - for (var i = 0; i < length; i++) { - try { - stream.tty.ops.put_char(stream.tty, buffer[offset+i]); - } catch (e) { - throw new FS.ErrnoError(ERRNO_CODES.EIO); - } - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - }},default_tty_ops:{get_char:function (tty) { - if (!tty.input.length) { - var result = null; - if (ENVIRONMENT_IS_NODE) { - // we will read data by chunks of BUFSIZE - var BUFSIZE = 256; - var buf = new Buffer(BUFSIZE); - var bytesRead = 0; - - var isPosixPlatform = (process.platform != 'win32'); // Node doesn't offer a direct check, so test by exclusion - - var fd = process.stdin.fd; - if (isPosixPlatform) { - // Linux and Mac cannot use process.stdin.fd (which isn't set up as sync) - var usingDevice = false; - try { - fd = fs.openSync('/dev/stdin', 'r'); - usingDevice = true; - } catch (e) {} - } - - try { - bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null); - } catch(e) { - // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, - // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. - if (e.toString().indexOf('EOF') != -1) bytesRead = 0; - else throw e; - } - - if (usingDevice) { fs.closeSync(fd); } - if (bytesRead > 0) { - result = buf.slice(0, bytesRead).toString('utf-8'); - } else { - result = null; - } - - } else if (typeof window != 'undefined' && - typeof window.prompt == 'function') { - // Browser. - result = window.prompt('Input: '); // returns null on cancel - if (result !== null) { - result += '\n'; - } - } else if (typeof readline == 'function') { - // Command line. - result = readline(); - if (result !== null) { - result += '\n'; - } - } - if (!result) { - return null; - } - tty.input = intArrayFromString(result, true); - } - return tty.input.shift(); - },put_char:function (tty, val) { - if (val === null || val === 10) { - Module['print'](UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. - } - },flush:function (tty) { - if (tty.output && tty.output.length > 0) { - Module['print'](UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - }},default_tty1_ops:{put_char:function (tty, val) { - if (val === null || val === 10) { - Module['printErr'](UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) tty.output.push(val); - } - },flush:function (tty) { - if (tty.output && tty.output.length > 0) { - Module['printErr'](UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - }}}; - - var MEMFS={ops_table:null,mount:function (mount) { - return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); - },createNode:function (parent, name, mode, dev) { - if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { - // no supported - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - } - if (!MEMFS.ops_table) { - MEMFS.ops_table = { - dir: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - lookup: MEMFS.node_ops.lookup, - mknod: MEMFS.node_ops.mknod, - rename: MEMFS.node_ops.rename, - unlink: MEMFS.node_ops.unlink, - rmdir: MEMFS.node_ops.rmdir, - readdir: MEMFS.node_ops.readdir, - symlink: MEMFS.node_ops.symlink - }, - stream: { - llseek: MEMFS.stream_ops.llseek - } - }, - file: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr - }, - stream: { - llseek: MEMFS.stream_ops.llseek, - read: MEMFS.stream_ops.read, - write: MEMFS.stream_ops.write, - allocate: MEMFS.stream_ops.allocate, - mmap: MEMFS.stream_ops.mmap, - msync: MEMFS.stream_ops.msync - } - }, - link: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - readlink: MEMFS.node_ops.readlink - }, - stream: {} - }, - chrdev: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr - }, - stream: FS.chrdev_stream_ops - } - }; - } - var node = FS.createNode(parent, name, mode, dev); - if (FS.isDir(node.mode)) { - node.node_ops = MEMFS.ops_table.dir.node; - node.stream_ops = MEMFS.ops_table.dir.stream; - node.contents = {}; - } else if (FS.isFile(node.mode)) { - node.node_ops = MEMFS.ops_table.file.node; - node.stream_ops = MEMFS.ops_table.file.stream; - node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. - // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred - // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size - // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. - node.contents = null; - } else if (FS.isLink(node.mode)) { - node.node_ops = MEMFS.ops_table.link.node; - node.stream_ops = MEMFS.ops_table.link.stream; - } else if (FS.isChrdev(node.mode)) { - node.node_ops = MEMFS.ops_table.chrdev.node; - node.stream_ops = MEMFS.ops_table.chrdev.stream; - } - node.timestamp = Date.now(); - // add the new node to the parent - if (parent) { - parent.contents[name] = node; - } - return node; - },getFileDataAsRegularArray:function (node) { - if (node.contents && node.contents.subarray) { - var arr = []; - for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]); - return arr; // Returns a copy of the original data. - } - return node.contents; // No-op, the file contents are already in a JS array. Return as-is. - },getFileDataAsTypedArray:function (node) { - if (!node.contents) return new Uint8Array; - if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. - return new Uint8Array(node.contents); - },expandFileStorage:function (node, newCapacity) { - // If we are asked to expand the size of a file that already exists, revert to using a standard JS array to store the file - // instead of a typed array. This makes resizing the array more flexible because we can just .push() elements at the back to - // increase the size. - if (node.contents && node.contents.subarray && newCapacity > node.contents.length) { - node.contents = MEMFS.getFileDataAsRegularArray(node); - node.usedBytes = node.contents.length; // We might be writing to a lazy-loaded file which had overridden this property, so force-reset it. - } - - if (!node.contents || node.contents.subarray) { // Keep using a typed array if creating a new storage, or if old one was a typed array as well. - var prevCapacity = node.contents ? node.contents.length : 0; - if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. - // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. - // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to - // avoid overshooting the allocation cap by a very large margin. - var CAPACITY_DOUBLING_MAX = 1024 * 1024; - newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) | 0); - if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. - var oldContents = node.contents; - node.contents = new Uint8Array(newCapacity); // Allocate new storage. - if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. - return; - } - // Not using a typed array to back the file storage. Use a standard JS array instead. - if (!node.contents && newCapacity > 0) node.contents = []; - while (node.contents.length < newCapacity) node.contents.push(0); - },resizeFileStorage:function (node, newSize) { - if (node.usedBytes == newSize) return; - if (newSize == 0) { - node.contents = null; // Fully decommit when requesting a resize to zero. - node.usedBytes = 0; - return; - } - if (!node.contents || node.contents.subarray) { // Resize a typed array if that is being used as the backing store. - var oldContents = node.contents; - node.contents = new Uint8Array(new ArrayBuffer(newSize)); // Allocate new storage. - if (oldContents) { - node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. - } - node.usedBytes = newSize; - return; - } - // Backing with a JS array. - if (!node.contents) node.contents = []; - if (node.contents.length > newSize) node.contents.length = newSize; - else while (node.contents.length < newSize) node.contents.push(0); - node.usedBytes = newSize; - },node_ops:{getattr:function (node) { - var attr = {}; - // device numbers reuse inode numbers. - attr.dev = FS.isChrdev(node.mode) ? node.id : 1; - attr.ino = node.id; - attr.mode = node.mode; - attr.nlink = 1; - attr.uid = 0; - attr.gid = 0; - attr.rdev = node.rdev; - if (FS.isDir(node.mode)) { - attr.size = 4096; - } else if (FS.isFile(node.mode)) { - attr.size = node.usedBytes; - } else if (FS.isLink(node.mode)) { - attr.size = node.link.length; - } else { - attr.size = 0; - } - attr.atime = new Date(node.timestamp); - attr.mtime = new Date(node.timestamp); - attr.ctime = new Date(node.timestamp); - // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), - // but this is not required by the standard. - attr.blksize = 4096; - attr.blocks = Math.ceil(attr.size / attr.blksize); - return attr; - },setattr:function (node, attr) { - if (attr.mode !== undefined) { - node.mode = attr.mode; - } - if (attr.timestamp !== undefined) { - node.timestamp = attr.timestamp; - } - if (attr.size !== undefined) { - MEMFS.resizeFileStorage(node, attr.size); - } - },lookup:function (parent, name) { - throw FS.genericErrors[ERRNO_CODES.ENOENT]; - },mknod:function (parent, name, mode, dev) { - return MEMFS.createNode(parent, name, mode, dev); - },rename:function (old_node, new_dir, new_name) { - // if we're overwriting a directory at new_name, make sure it's empty. - if (FS.isDir(old_node.mode)) { - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - } - if (new_node) { - for (var i in new_node.contents) { - throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); - } - } - } - // do the internal rewiring - delete old_node.parent.contents[old_node.name]; - old_node.name = new_name; - new_dir.contents[new_name] = old_node; - old_node.parent = new_dir; - },unlink:function (parent, name) { - delete parent.contents[name]; - },rmdir:function (parent, name) { - var node = FS.lookupNode(parent, name); - for (var i in node.contents) { - throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); - } - delete parent.contents[name]; - },readdir:function (node) { - var entries = ['.', '..'] - for (var key in node.contents) { - if (!node.contents.hasOwnProperty(key)) { - continue; - } - entries.push(key); - } - return entries; - },symlink:function (parent, newname, oldpath) { - var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); - node.link = oldpath; - return node; - },readlink:function (node) { - if (!FS.isLink(node.mode)) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - return node.link; - }},stream_ops:{read:function (stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= stream.node.usedBytes) return 0; - var size = Math.min(stream.node.usedBytes - position, length); - assert(size >= 0); - if (size > 8 && contents.subarray) { // non-trivial, and typed array - buffer.set(contents.subarray(position, position + size), offset); - } else { - for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; - } - return size; - },write:function (stream, buffer, offset, length, position, canOwn) { - if (!length) return 0; - var node = stream.node; - node.timestamp = Date.now(); - - if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? - if (canOwn) { - assert(position === 0, 'canOwn must imply no weird position inside the file'); - node.contents = buffer.subarray(offset, offset + length); - node.usedBytes = length; - return length; - } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. - node.contents = new Uint8Array(buffer.subarray(offset, offset + length)); - node.usedBytes = length; - return length; - } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? - node.contents.set(buffer.subarray(offset, offset + length), position); - return length; - } - } - - // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. - MEMFS.expandFileStorage(node, position+length); - if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); // Use typed array write if available. - else { - for (var i = 0; i < length; i++) { - node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. - } - } - node.usedBytes = Math.max(node.usedBytes, position+length); - return length; - },llseek:function (stream, offset, whence) { - var position = offset; - if (whence === 1) { // SEEK_CUR. - position += stream.position; - } else if (whence === 2) { // SEEK_END. - if (FS.isFile(stream.node.mode)) { - position += stream.node.usedBytes; - } - } - if (position < 0) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - return position; - },allocate:function (stream, offset, length) { - MEMFS.expandFileStorage(stream.node, offset + length); - stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); - },mmap:function (stream, buffer, offset, length, position, prot, flags) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(ERRNO_CODES.ENODEV); - } - var ptr; - var allocated; - var contents = stream.node.contents; - // Only make a new copy when MAP_PRIVATE is specified. - if ( !(flags & 2) && - (contents.buffer === buffer || contents.buffer === buffer.buffer) ) { - // We can't emulate MAP_SHARED when the file is not backed by the buffer - // we're mapping to (e.g. the HEAP buffer). - allocated = false; - ptr = contents.byteOffset; - } else { - // Try to avoid unnecessary slices. - if (position > 0 || position + length < stream.node.usedBytes) { - if (contents.subarray) { - contents = contents.subarray(position, position + length); - } else { - contents = Array.prototype.slice.call(contents, position, position + length); - } - } - allocated = true; - ptr = _malloc(length); - if (!ptr) { - throw new FS.ErrnoError(ERRNO_CODES.ENOMEM); - } - buffer.set(contents, ptr); - } - return { ptr: ptr, allocated: allocated }; - },msync:function (stream, buffer, offset, length, mmapFlags) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(ERRNO_CODES.ENODEV); - } - if (mmapFlags & 2) { - // MAP_PRIVATE calls need not to be synced back to underlying fs - return 0; - } - - var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); - // should we check if bytesWritten and length are the same? - return 0; - }}}; - - var IDBFS={dbs:{},indexedDB:function () { - if (typeof indexedDB !== 'undefined') return indexedDB; - var ret = null; - if (typeof window === 'object') ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; - assert(ret, 'IDBFS used, but indexedDB not supported'); - return ret; - },DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) { - // reuse all of the core MEMFS functionality - return MEMFS.mount.apply(null, arguments); - },syncfs:function (mount, populate, callback) { - IDBFS.getLocalSet(mount, function(err, local) { - if (err) return callback(err); - - IDBFS.getRemoteSet(mount, function(err, remote) { - if (err) return callback(err); - - var src = populate ? remote : local; - var dst = populate ? local : remote; - - IDBFS.reconcile(src, dst, callback); - }); - }); - },getDB:function (name, callback) { - // check the cache first - var db = IDBFS.dbs[name]; - if (db) { - return callback(null, db); - } - - var req; - try { - req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION); - } catch (e) { - return callback(e); - } - if (!req) { - return callback("Unable to connect to IndexedDB"); - } - req.onupgradeneeded = function(e) { - var db = e.target.result; - var transaction = e.target.transaction; - - var fileStore; - - if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) { - fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME); - } else { - fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME); - } - - if (!fileStore.indexNames.contains('timestamp')) { - fileStore.createIndex('timestamp', 'timestamp', { unique: false }); - } - }; - req.onsuccess = function() { - db = req.result; - - // add to the cache - IDBFS.dbs[name] = db; - callback(null, db); - }; - req.onerror = function(e) { - callback(this.error); - e.preventDefault(); - }; - },getLocalSet:function (mount, callback) { - var entries = {}; - - function isRealDir(p) { - return p !== '.' && p !== '..'; - }; - function toAbsolute(root) { - return function(p) { - return PATH.join2(root, p); - } - }; - - var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint)); - - while (check.length) { - var path = check.pop(); - var stat; - - try { - stat = FS.stat(path); - } catch (e) { - return callback(e); - } - - if (FS.isDir(stat.mode)) { - check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path))); - } - - entries[path] = { timestamp: stat.mtime }; - } - - return callback(null, { type: 'local', entries: entries }); - },getRemoteSet:function (mount, callback) { - var entries = {}; - - IDBFS.getDB(mount.mountpoint, function(err, db) { - if (err) return callback(err); - - var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly'); - transaction.onerror = function(e) { - callback(this.error); - e.preventDefault(); - }; - - var store = transaction.objectStore(IDBFS.DB_STORE_NAME); - var index = store.index('timestamp'); - - index.openKeyCursor().onsuccess = function(event) { - var cursor = event.target.result; - - if (!cursor) { - return callback(null, { type: 'remote', db: db, entries: entries }); - } - - entries[cursor.primaryKey] = { timestamp: cursor.key }; - - cursor.continue(); - }; - }); - },loadLocalEntry:function (path, callback) { - var stat, node; - - try { - var lookup = FS.lookupPath(path); - node = lookup.node; - stat = FS.stat(path); - } catch (e) { - return callback(e); - } - - if (FS.isDir(stat.mode)) { - return callback(null, { timestamp: stat.mtime, mode: stat.mode }); - } else if (FS.isFile(stat.mode)) { - // Performance consideration: storing a normal JavaScript array to a IndexedDB is much slower than storing a typed array. - // Therefore always convert the file contents to a typed array first before writing the data to IndexedDB. - node.contents = MEMFS.getFileDataAsTypedArray(node); - return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents }); - } else { - return callback(new Error('node type not supported')); - } - },storeLocalEntry:function (path, entry, callback) { - try { - if (FS.isDir(entry.mode)) { - FS.mkdir(path, entry.mode); - } else if (FS.isFile(entry.mode)) { - FS.writeFile(path, entry.contents, { encoding: 'binary', canOwn: true }); - } else { - return callback(new Error('node type not supported')); - } - - FS.chmod(path, entry.mode); - FS.utime(path, entry.timestamp, entry.timestamp); - } catch (e) { - return callback(e); - } - - callback(null); - },removeLocalEntry:function (path, callback) { - try { - var lookup = FS.lookupPath(path); - var stat = FS.stat(path); - - if (FS.isDir(stat.mode)) { - FS.rmdir(path); - } else if (FS.isFile(stat.mode)) { - FS.unlink(path); - } - } catch (e) { - return callback(e); - } - - callback(null); - },loadRemoteEntry:function (store, path, callback) { - var req = store.get(path); - req.onsuccess = function(event) { callback(null, event.target.result); }; - req.onerror = function(e) { - callback(this.error); - e.preventDefault(); - }; - },storeRemoteEntry:function (store, path, entry, callback) { - var req = store.put(entry, path); - req.onsuccess = function() { callback(null); }; - req.onerror = function(e) { - callback(this.error); - e.preventDefault(); - }; - },removeRemoteEntry:function (store, path, callback) { - var req = store.delete(path); - req.onsuccess = function() { callback(null); }; - req.onerror = function(e) { - callback(this.error); - e.preventDefault(); - }; - },reconcile:function (src, dst, callback) { - var total = 0; - - var create = []; - Object.keys(src.entries).forEach(function (key) { - var e = src.entries[key]; - var e2 = dst.entries[key]; - if (!e2 || e.timestamp > e2.timestamp) { - create.push(key); - total++; - } - }); - - var remove = []; - Object.keys(dst.entries).forEach(function (key) { - var e = dst.entries[key]; - var e2 = src.entries[key]; - if (!e2) { - remove.push(key); - total++; - } - }); - - if (!total) { - return callback(null); - } - - var errored = false; - var completed = 0; - var db = src.type === 'remote' ? src.db : dst.db; - var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite'); - var store = transaction.objectStore(IDBFS.DB_STORE_NAME); - - function done(err) { - if (err) { - if (!done.errored) { - done.errored = true; - return callback(err); - } - return; - } - if (++completed >= total) { - return callback(null); - } - }; - - transaction.onerror = function(e) { - done(this.error); - e.preventDefault(); - }; - - // sort paths in ascending order so directory entries are created - // before the files inside them - create.sort().forEach(function (path) { - if (dst.type === 'local') { - IDBFS.loadRemoteEntry(store, path, function (err, entry) { - if (err) return done(err); - IDBFS.storeLocalEntry(path, entry, done); - }); - } else { - IDBFS.loadLocalEntry(path, function (err, entry) { - if (err) return done(err); - IDBFS.storeRemoteEntry(store, path, entry, done); - }); - } - }); - - // sort paths in descending order so files are deleted before their - // parent directories - remove.sort().reverse().forEach(function(path) { - if (dst.type === 'local') { - IDBFS.removeLocalEntry(path, done); - } else { - IDBFS.removeRemoteEntry(store, path, done); - } - }); - }}; - - var NODEFS={isWindows:false,staticInit:function () { - NODEFS.isWindows = !!process.platform.match(/^win/); - },mount:function (mount) { - assert(ENVIRONMENT_IS_NODE); - return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0); - },createNode:function (parent, name, mode, dev) { - if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - var node = FS.createNode(parent, name, mode); - node.node_ops = NODEFS.node_ops; - node.stream_ops = NODEFS.stream_ops; - return node; - },getMode:function (path) { - var stat; - try { - stat = fs.lstatSync(path); - if (NODEFS.isWindows) { - // On Windows, directories return permission bits 'rw-rw-rw-', even though they have 'rwxrwxrwx', so - // propagate write bits to execute bits. - stat.mode = stat.mode | ((stat.mode & 146) >> 1); - } - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(ERRNO_CODES[e.code]); - } - return stat.mode; - },realPath:function (node) { - var parts = []; - while (node.parent !== node) { - parts.push(node.name); - node = node.parent; - } - parts.push(node.mount.opts.root); - parts.reverse(); - return PATH.join.apply(null, parts); - },flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function (flags) { - flags &= ~0x200000 /*O_PATH*/; // Ignore this flag from musl, otherwise node.js fails to open the file. - flags &= ~0x800 /*O_NONBLOCK*/; // Ignore this flag from musl, otherwise node.js fails to open the file. - flags &= ~0x8000 /*O_LARGEFILE*/; // Ignore this flag from musl, otherwise node.js fails to open the file. - flags &= ~0x80000 /*O_CLOEXEC*/; // Some applications may pass it; it makes no sense for a single process. - if (flags in NODEFS.flagsToPermissionStringMap) { - return NODEFS.flagsToPermissionStringMap[flags]; - } else { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - },node_ops:{getattr:function (node) { - var path = NODEFS.realPath(node); - var stat; - try { - stat = fs.lstatSync(path); - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(ERRNO_CODES[e.code]); - } - // node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096. - // See http://support.microsoft.com/kb/140365 - if (NODEFS.isWindows && !stat.blksize) { - stat.blksize = 4096; - } - if (NODEFS.isWindows && !stat.blocks) { - stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0; - } - return { - dev: stat.dev, - ino: stat.ino, - mode: stat.mode, - nlink: stat.nlink, - uid: stat.uid, - gid: stat.gid, - rdev: stat.rdev, - size: stat.size, - atime: stat.atime, - mtime: stat.mtime, - ctime: stat.ctime, - blksize: stat.blksize, - blocks: stat.blocks - }; - },setattr:function (node, attr) { - var path = NODEFS.realPath(node); - try { - if (attr.mode !== undefined) { - fs.chmodSync(path, attr.mode); - // update the common node structure mode as well - node.mode = attr.mode; - } - if (attr.timestamp !== undefined) { - var date = new Date(attr.timestamp); - fs.utimesSync(path, date, date); - } - if (attr.size !== undefined) { - fs.truncateSync(path, attr.size); - } - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(ERRNO_CODES[e.code]); - } - },lookup:function (parent, name) { - var path = PATH.join2(NODEFS.realPath(parent), name); - var mode = NODEFS.getMode(path); - return NODEFS.createNode(parent, name, mode); - },mknod:function (parent, name, mode, dev) { - var node = NODEFS.createNode(parent, name, mode, dev); - // create the backing node for this in the fs root as well - var path = NODEFS.realPath(node); - try { - if (FS.isDir(node.mode)) { - fs.mkdirSync(path, node.mode); - } else { - fs.writeFileSync(path, '', { mode: node.mode }); - } - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(ERRNO_CODES[e.code]); - } - return node; - },rename:function (oldNode, newDir, newName) { - var oldPath = NODEFS.realPath(oldNode); - var newPath = PATH.join2(NODEFS.realPath(newDir), newName); - try { - fs.renameSync(oldPath, newPath); - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(ERRNO_CODES[e.code]); - } - },unlink:function (parent, name) { - var path = PATH.join2(NODEFS.realPath(parent), name); - try { - fs.unlinkSync(path); - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(ERRNO_CODES[e.code]); - } - },rmdir:function (parent, name) { - var path = PATH.join2(NODEFS.realPath(parent), name); - try { - fs.rmdirSync(path); - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(ERRNO_CODES[e.code]); - } - },readdir:function (node) { - var path = NODEFS.realPath(node); - try { - return fs.readdirSync(path); - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(ERRNO_CODES[e.code]); - } - },symlink:function (parent, newName, oldPath) { - var newPath = PATH.join2(NODEFS.realPath(parent), newName); - try { - fs.symlinkSync(oldPath, newPath); - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(ERRNO_CODES[e.code]); - } - },readlink:function (node) { - var path = NODEFS.realPath(node); - try { - path = fs.readlinkSync(path); - path = NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root), path); - return path; - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(ERRNO_CODES[e.code]); - } - }},stream_ops:{open:function (stream) { - var path = NODEFS.realPath(stream.node); - try { - if (FS.isFile(stream.node.mode)) { - stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags)); - } - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(ERRNO_CODES[e.code]); - } - },close:function (stream) { - try { - if (FS.isFile(stream.node.mode) && stream.nfd) { - fs.closeSync(stream.nfd); - } - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(ERRNO_CODES[e.code]); - } - },read:function (stream, buffer, offset, length, position) { - if (length === 0) return 0; // node errors on 0 length reads - // FIXME this is terrible. - var nbuffer = new Buffer(length); - var res; - try { - res = fs.readSync(stream.nfd, nbuffer, 0, length, position); - } catch (e) { - throw new FS.ErrnoError(ERRNO_CODES[e.code]); - } - if (res > 0) { - for (var i = 0; i < res; i++) { - buffer[offset + i] = nbuffer[i]; - } - } - return res; - },write:function (stream, buffer, offset, length, position) { - // FIXME this is terrible. - var nbuffer = new Buffer(buffer.subarray(offset, offset + length)); - var res; - try { - res = fs.writeSync(stream.nfd, nbuffer, 0, length, position); - } catch (e) { - throw new FS.ErrnoError(ERRNO_CODES[e.code]); - } - return res; - },llseek:function (stream, offset, whence) { - var position = offset; - if (whence === 1) { // SEEK_CUR. - position += stream.position; - } else if (whence === 2) { // SEEK_END. - if (FS.isFile(stream.node.mode)) { - try { - var stat = fs.fstatSync(stream.nfd); - position += stat.size; - } catch (e) { - throw new FS.ErrnoError(ERRNO_CODES[e.code]); - } - } - } - - if (position < 0) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - - return position; - }}}; - - var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function (mount) { - assert(ENVIRONMENT_IS_WORKER); - if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync(); - var root = WORKERFS.createNode(null, '/', WORKERFS.DIR_MODE, 0); - var createdParents = {}; - function ensureParent(path) { - // return the parent node, creating subdirs as necessary - var parts = path.split('/'); - var parent = root; - for (var i = 0; i < parts.length-1; i++) { - var curr = parts.slice(0, i+1).join('/'); - // Issue 4254: Using curr as a node name will prevent the node - // from being found in FS.nameTable when FS.open is called on - // a path which holds a child of this node, - // given that all FS functions assume node names - // are just their corresponding parts within their given path, - // rather than incremental aggregates which include their parent's - // directories. - if (!createdParents[curr]) { - createdParents[curr] = WORKERFS.createNode(parent, parts[i], WORKERFS.DIR_MODE, 0); - } - parent = createdParents[curr]; - } - return parent; - } - function base(path) { - var parts = path.split('/'); - return parts[parts.length-1]; - } - // We also accept FileList here, by using Array.prototype - Array.prototype.forEach.call(mount.opts["files"] || [], function(file) { - WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate); - }); - (mount.opts["blobs"] || []).forEach(function(obj) { - WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]); - }); - (mount.opts["packages"] || []).forEach(function(pack) { - pack['metadata'].files.forEach(function(file) { - var name = file.filename.substr(1); // remove initial slash - WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack['blob'].slice(file.start, file.end)); - }); - }); - return root; - },createNode:function (parent, name, mode, dev, contents, mtime) { - var node = FS.createNode(parent, name, mode); - node.mode = mode; - node.node_ops = WORKERFS.node_ops; - node.stream_ops = WORKERFS.stream_ops; - node.timestamp = (mtime || new Date).getTime(); - assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE); - if (mode === WORKERFS.FILE_MODE) { - node.size = contents.size; - node.contents = contents; - } else { - node.size = 4096; - node.contents = {}; - } - if (parent) { - parent.contents[name] = node; - } - return node; - },node_ops:{getattr:function (node) { - return { - dev: 1, - ino: undefined, - mode: node.mode, - nlink: 1, - uid: 0, - gid: 0, - rdev: undefined, - size: node.size, - atime: new Date(node.timestamp), - mtime: new Date(node.timestamp), - ctime: new Date(node.timestamp), - blksize: 4096, - blocks: Math.ceil(node.size / 4096), - }; - },setattr:function (node, attr) { - if (attr.mode !== undefined) { - node.mode = attr.mode; - } - if (attr.timestamp !== undefined) { - node.timestamp = attr.timestamp; - } - },lookup:function (parent, name) { - throw new FS.ErrnoError(ERRNO_CODES.ENOENT); - },mknod:function (parent, name, mode, dev) { - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - },rename:function (oldNode, newDir, newName) { - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - },unlink:function (parent, name) { - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - },rmdir:function (parent, name) { - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - },readdir:function (node) { - var entries = ['.', '..']; - for (var key in node.contents) { - if (!node.contents.hasOwnProperty(key)) { - continue; - } - entries.push(key); - } - return entries; - },symlink:function (parent, newName, oldPath) { - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - },readlink:function (node) { - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - }},stream_ops:{read:function (stream, buffer, offset, length, position) { - if (position >= stream.node.size) return 0; - var chunk = stream.node.contents.slice(position, position + length); - var ab = WORKERFS.reader.readAsArrayBuffer(chunk); - buffer.set(new Uint8Array(ab), offset); - return chunk.size; - },write:function (stream, buffer, offset, length, position) { - throw new FS.ErrnoError(ERRNO_CODES.EIO); - },llseek:function (stream, offset, whence) { - var position = offset; - if (whence === 1) { // SEEK_CUR. - position += stream.position; - } else if (whence === 2) { // SEEK_END. - if (FS.isFile(stream.node.mode)) { - position += stream.node.size; - } - } - if (position < 0) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - return position; - }}}; - - var _stdin=STATICTOP; STATICTOP += 16;; - - var _stdout=STATICTOP; STATICTOP += 16;; - - var _stderr=STATICTOP; STATICTOP += 16;;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function (e) { - if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace(); - return ___setErrNo(e.errno); - },lookupPath:function (path, opts) { - path = PATH.resolve(FS.cwd(), path); - opts = opts || {}; - - if (!path) return { path: '', node: null }; - - var defaults = { - follow_mount: true, - recurse_count: 0 - }; - for (var key in defaults) { - if (opts[key] === undefined) { - opts[key] = defaults[key]; - } - } - - if (opts.recurse_count > 8) { // max recursive lookup of 8 - throw new FS.ErrnoError(ERRNO_CODES.ELOOP); - } - - // split the path - var parts = PATH.normalizeArray(path.split('/').filter(function(p) { - return !!p; - }), false); - - // start at the root - var current = FS.root; - var current_path = '/'; - - for (var i = 0; i < parts.length; i++) { - var islast = (i === parts.length-1); - if (islast && opts.parent) { - // stop resolving - break; - } - - current = FS.lookupNode(current, parts[i]); - current_path = PATH.join2(current_path, parts[i]); - - // jump to the mount's root node if this is a mountpoint - if (FS.isMountpoint(current)) { - if (!islast || (islast && opts.follow_mount)) { - current = current.mounted.root; - } - } - - // by default, lookupPath will not follow a symlink if it is the final path component. - // setting opts.follow = true will override this behavior. - if (!islast || opts.follow) { - var count = 0; - while (FS.isLink(current.mode)) { - var link = FS.readlink(current_path); - current_path = PATH.resolve(PATH.dirname(current_path), link); - - var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count }); - current = lookup.node; - - if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). - throw new FS.ErrnoError(ERRNO_CODES.ELOOP); - } - } - } - } - - return { path: current_path, node: current }; - },getPath:function (node) { - var path; - while (true) { - if (FS.isRoot(node)) { - var mount = node.mount.mountpoint; - if (!path) return mount; - return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; - } - path = path ? node.name + '/' + path : node.name; - node = node.parent; - } - },hashName:function (parentid, name) { - var hash = 0; - - - for (var i = 0; i < name.length; i++) { - hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; - } - return ((parentid + hash) >>> 0) % FS.nameTable.length; - },hashAddNode:function (node) { - var hash = FS.hashName(node.parent.id, node.name); - node.name_next = FS.nameTable[hash]; - FS.nameTable[hash] = node; - },hashRemoveNode:function (node) { - var hash = FS.hashName(node.parent.id, node.name); - if (FS.nameTable[hash] === node) { - FS.nameTable[hash] = node.name_next; - } else { - var current = FS.nameTable[hash]; - while (current) { - if (current.name_next === node) { - current.name_next = node.name_next; - break; - } - current = current.name_next; - } - } - },lookupNode:function (parent, name) { - var err = FS.mayLookup(parent); - if (err) { - throw new FS.ErrnoError(err, parent); - } - var hash = FS.hashName(parent.id, name); - for (var node = FS.nameTable[hash]; node; node = node.name_next) { - var nodeName = node.name; - if (node.parent.id === parent.id && nodeName === name) { - return node; - } - } - // if we failed to find it in the cache, call into the VFS - return FS.lookup(parent, name); - },createNode:function (parent, name, mode, rdev) { - if (!FS.FSNode) { - FS.FSNode = function(parent, name, mode, rdev) { - if (!parent) { - parent = this; // root node sets parent to itself - } - this.parent = parent; - this.mount = parent.mount; - this.mounted = null; - this.id = FS.nextInode++; - this.name = name; - this.mode = mode; - this.node_ops = {}; - this.stream_ops = {}; - this.rdev = rdev; - }; - - FS.FSNode.prototype = {}; - - // compatibility - var readMode = 292 | 73; - var writeMode = 146; - - // NOTE we must use Object.defineProperties instead of individual calls to - // Object.defineProperty in order to make closure compiler happy - Object.defineProperties(FS.FSNode.prototype, { - read: { - get: function() { return (this.mode & readMode) === readMode; }, - set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; } - }, - write: { - get: function() { return (this.mode & writeMode) === writeMode; }, - set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; } - }, - isFolder: { - get: function() { return FS.isDir(this.mode); } - }, - isDevice: { - get: function() { return FS.isChrdev(this.mode); } - } - }); - } - - var node = new FS.FSNode(parent, name, mode, rdev); - - FS.hashAddNode(node); - - return node; - },destroyNode:function (node) { - FS.hashRemoveNode(node); - },isRoot:function (node) { - return node === node.parent; - },isMountpoint:function (node) { - return !!node.mounted; - },isFile:function (mode) { - return (mode & 61440) === 32768; - },isDir:function (mode) { - return (mode & 61440) === 16384; - },isLink:function (mode) { - return (mode & 61440) === 40960; - },isChrdev:function (mode) { - return (mode & 61440) === 8192; - },isBlkdev:function (mode) { - return (mode & 61440) === 24576; - },isFIFO:function (mode) { - return (mode & 61440) === 4096; - },isSocket:function (mode) { - return (mode & 49152) === 49152; - },flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function (str) { - var flags = FS.flagModes[str]; - if (typeof flags === 'undefined') { - throw new Error('Unknown file open mode: ' + str); - } - return flags; - },flagsToPermissionString:function (flag) { - var perms = ['r', 'w', 'rw'][flag & 3]; - if ((flag & 512)) { - perms += 'w'; - } - return perms; - },nodePermissions:function (node, perms) { - if (FS.ignorePermissions) { - return 0; - } - // return 0 if any user, group or owner bits are set. - if (perms.indexOf('r') !== -1 && !(node.mode & 292)) { - return ERRNO_CODES.EACCES; - } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) { - return ERRNO_CODES.EACCES; - } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) { - return ERRNO_CODES.EACCES; - } - return 0; - },mayLookup:function (dir) { - var err = FS.nodePermissions(dir, 'x'); - if (err) return err; - if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES; - return 0; - },mayCreate:function (dir, name) { - try { - var node = FS.lookupNode(dir, name); - return ERRNO_CODES.EEXIST; - } catch (e) { - } - return FS.nodePermissions(dir, 'wx'); - },mayDelete:function (dir, name, isdir) { - var node; - try { - node = FS.lookupNode(dir, name); - } catch (e) { - return e.errno; - } - var err = FS.nodePermissions(dir, 'wx'); - if (err) { - return err; - } - if (isdir) { - if (!FS.isDir(node.mode)) { - return ERRNO_CODES.ENOTDIR; - } - if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { - return ERRNO_CODES.EBUSY; - } - } else { - if (FS.isDir(node.mode)) { - return ERRNO_CODES.EISDIR; - } - } - return 0; - },mayOpen:function (node, flags) { - if (!node) { - return ERRNO_CODES.ENOENT; - } - if (FS.isLink(node.mode)) { - return ERRNO_CODES.ELOOP; - } else if (FS.isDir(node.mode)) { - if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write - (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only) - return ERRNO_CODES.EISDIR; - } - } - return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); - },MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) { - fd_start = fd_start || 0; - fd_end = fd_end || FS.MAX_OPEN_FDS; - for (var fd = fd_start; fd <= fd_end; fd++) { - if (!FS.streams[fd]) { - return fd; - } - } - throw new FS.ErrnoError(ERRNO_CODES.EMFILE); - },getStream:function (fd) { - return FS.streams[fd]; - },createStream:function (stream, fd_start, fd_end) { - if (!FS.FSStream) { - FS.FSStream = function(){}; - FS.FSStream.prototype = {}; - // compatibility - Object.defineProperties(FS.FSStream.prototype, { - object: { - get: function() { return this.node; }, - set: function(val) { this.node = val; } - }, - isRead: { - get: function() { return (this.flags & 2097155) !== 1; } - }, - isWrite: { - get: function() { return (this.flags & 2097155) !== 0; } - }, - isAppend: { - get: function() { return (this.flags & 1024); } - } - }); - } - // clone it, so we can return an instance of FSStream - var newStream = new FS.FSStream(); - for (var p in stream) { - newStream[p] = stream[p]; - } - stream = newStream; - var fd = FS.nextfd(fd_start, fd_end); - stream.fd = fd; - FS.streams[fd] = stream; - return stream; - },closeStream:function (fd) { - FS.streams[fd] = null; - },chrdev_stream_ops:{open:function (stream) { - var device = FS.getDevice(stream.node.rdev); - // override node's stream ops with the device's - stream.stream_ops = device.stream_ops; - // forward the open call - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - },llseek:function () { - throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); - }},major:function (dev) { - return ((dev) >> 8); - },minor:function (dev) { - return ((dev) & 0xff); - },makedev:function (ma, mi) { - return ((ma) << 8 | (mi)); - },registerDevice:function (dev, ops) { - FS.devices[dev] = { stream_ops: ops }; - },getDevice:function (dev) { - return FS.devices[dev]; - },getMounts:function (mount) { - var mounts = []; - var check = [mount]; - - while (check.length) { - var m = check.pop(); - - mounts.push(m); - - check.push.apply(check, m.mounts); - } - - return mounts; - },syncfs:function (populate, callback) { - if (typeof(populate) === 'function') { - callback = populate; - populate = false; - } - - FS.syncFSRequests++; - - if (FS.syncFSRequests > 1) { - console.log('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work'); - } - - var mounts = FS.getMounts(FS.root.mount); - var completed = 0; - - function doCallback(err) { - assert(FS.syncFSRequests > 0); - FS.syncFSRequests--; - return callback(err); - } - - function done(err) { - if (err) { - if (!done.errored) { - done.errored = true; - return doCallback(err); - } - return; - } - if (++completed >= mounts.length) { - doCallback(null); - } - }; - - // sync all mounts - mounts.forEach(function (mount) { - if (!mount.type.syncfs) { - return done(null); - } - mount.type.syncfs(mount, populate, done); - }); - },mount:function (type, opts, mountpoint) { - var root = mountpoint === '/'; - var pseudo = !mountpoint; - var node; - - if (root && FS.root) { - throw new FS.ErrnoError(ERRNO_CODES.EBUSY); - } else if (!root && !pseudo) { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - - mountpoint = lookup.path; // use the absolute path - node = lookup.node; - - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(ERRNO_CODES.EBUSY); - } - - if (!FS.isDir(node.mode)) { - throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); - } - } - - var mount = { - type: type, - opts: opts, - mountpoint: mountpoint, - mounts: [] - }; - - // create a root node for the fs - var mountRoot = type.mount(mount); - mountRoot.mount = mount; - mount.root = mountRoot; - - if (root) { - FS.root = mountRoot; - } else if (node) { - // set as a mountpoint - node.mounted = mount; - - // add the new mount to the current mount's children - if (node.mount) { - node.mount.mounts.push(mount); - } - } - - return mountRoot; - },unmount:function (mountpoint) { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - - if (!FS.isMountpoint(lookup.node)) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - - // destroy the nodes for this mount, and all its child mounts - var node = lookup.node; - var mount = node.mounted; - var mounts = FS.getMounts(mount); - - Object.keys(FS.nameTable).forEach(function (hash) { - var current = FS.nameTable[hash]; - - while (current) { - var next = current.name_next; - - if (mounts.indexOf(current.mount) !== -1) { - FS.destroyNode(current); - } - - current = next; - } - }); - - // no longer a mountpoint - node.mounted = null; - - // remove this mount from the child mounts - var idx = node.mount.mounts.indexOf(mount); - assert(idx !== -1); - node.mount.mounts.splice(idx, 1); - },lookup:function (parent, name) { - return parent.node_ops.lookup(parent, name); - },mknod:function (path, mode, dev) { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - if (!name || name === '.' || name === '..') { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - var err = FS.mayCreate(parent, name); - if (err) { - throw new FS.ErrnoError(err); - } - if (!parent.node_ops.mknod) { - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - } - return parent.node_ops.mknod(parent, name, mode, dev); - },create:function (path, mode) { - mode = mode !== undefined ? mode : 438 /* 0666 */; - mode &= 4095; - mode |= 32768; - return FS.mknod(path, mode, 0); - },mkdir:function (path, mode) { - mode = mode !== undefined ? mode : 511 /* 0777 */; - mode &= 511 | 512; - mode |= 16384; - return FS.mknod(path, mode, 0); - },mkdirTree:function (path, mode) { - var dirs = path.split('/'); - var d = ''; - for (var i = 0; i < dirs.length; ++i) { - if (!dirs[i]) continue; - d += '/' + dirs[i]; - try { - FS.mkdir(d, mode); - } catch(e) { - if (e.errno != ERRNO_CODES.EEXIST) throw e; - } - } - },mkdev:function (path, mode, dev) { - if (typeof(dev) === 'undefined') { - dev = mode; - mode = 438 /* 0666 */; - } - mode |= 8192; - return FS.mknod(path, mode, dev); - },symlink:function (oldpath, newpath) { - if (!PATH.resolve(oldpath)) { - throw new FS.ErrnoError(ERRNO_CODES.ENOENT); - } - var lookup = FS.lookupPath(newpath, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(ERRNO_CODES.ENOENT); - } - var newname = PATH.basename(newpath); - var err = FS.mayCreate(parent, newname); - if (err) { - throw new FS.ErrnoError(err); - } - if (!parent.node_ops.symlink) { - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - } - return parent.node_ops.symlink(parent, newname, oldpath); - },rename:function (old_path, new_path) { - var old_dirname = PATH.dirname(old_path); - var new_dirname = PATH.dirname(new_path); - var old_name = PATH.basename(old_path); - var new_name = PATH.basename(new_path); - // parents must exist - var lookup, old_dir, new_dir; - try { - lookup = FS.lookupPath(old_path, { parent: true }); - old_dir = lookup.node; - lookup = FS.lookupPath(new_path, { parent: true }); - new_dir = lookup.node; - } catch (e) { - throw new FS.ErrnoError(ERRNO_CODES.EBUSY); - } - if (!old_dir || !new_dir) throw new FS.ErrnoError(ERRNO_CODES.ENOENT); - // need to be part of the same mount - if (old_dir.mount !== new_dir.mount) { - throw new FS.ErrnoError(ERRNO_CODES.EXDEV); - } - // source must exist - var old_node = FS.lookupNode(old_dir, old_name); - // old path should not be an ancestor of the new path - var relative = PATH.relative(old_path, new_dirname); - if (relative.charAt(0) !== '.') { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - // new path should not be an ancestor of the old path - relative = PATH.relative(new_path, old_dirname); - if (relative.charAt(0) !== '.') { - throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); - } - // see if the new path already exists - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - // not fatal - } - // early out if nothing needs to change - if (old_node === new_node) { - return; - } - // we'll need to delete the old entry - var isdir = FS.isDir(old_node.mode); - var err = FS.mayDelete(old_dir, old_name, isdir); - if (err) { - throw new FS.ErrnoError(err); - } - // need delete permissions if we'll be overwriting. - // need create permissions if new doesn't already exist. - err = new_node ? - FS.mayDelete(new_dir, new_name, isdir) : - FS.mayCreate(new_dir, new_name); - if (err) { - throw new FS.ErrnoError(err); - } - if (!old_dir.node_ops.rename) { - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - } - if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { - throw new FS.ErrnoError(ERRNO_CODES.EBUSY); - } - // if we are going to change the parent, check write permissions - if (new_dir !== old_dir) { - err = FS.nodePermissions(old_dir, 'w'); - if (err) { - throw new FS.ErrnoError(err); - } - } - try { - if (FS.trackingDelegate['willMovePath']) { - FS.trackingDelegate['willMovePath'](old_path, new_path); - } - } catch(e) { - console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); - } - // remove the node from the lookup hash - FS.hashRemoveNode(old_node); - // do the underlying fs rename - try { - old_dir.node_ops.rename(old_node, new_dir, new_name); - } catch (e) { - throw e; - } finally { - // add the node back to the hash (in case node_ops.rename - // changed its name) - FS.hashAddNode(old_node); - } - try { - if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path); - } catch(e) { - console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); - } - },rmdir:function (path) { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var err = FS.mayDelete(parent, name, true); - if (err) { - throw new FS.ErrnoError(err); - } - if (!parent.node_ops.rmdir) { - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(ERRNO_CODES.EBUSY); - } - try { - if (FS.trackingDelegate['willDeletePath']) { - FS.trackingDelegate['willDeletePath'](path); - } - } catch(e) { - console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); - } - parent.node_ops.rmdir(parent, name); - FS.destroyNode(node); - try { - if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); - } catch(e) { - console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); - } - },readdir:function (path) { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - if (!node.node_ops.readdir) { - throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); - } - return node.node_ops.readdir(node); - },unlink:function (path) { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var err = FS.mayDelete(parent, name, false); - if (err) { - // According to POSIX, we should map EISDIR to EPERM, but - // we instead do what Linux does (and we must, as we use - // the musl linux libc). - throw new FS.ErrnoError(err); - } - if (!parent.node_ops.unlink) { - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(ERRNO_CODES.EBUSY); - } - try { - if (FS.trackingDelegate['willDeletePath']) { - FS.trackingDelegate['willDeletePath'](path); - } - } catch(e) { - console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); - } - parent.node_ops.unlink(parent, name); - FS.destroyNode(node); - try { - if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); - } catch(e) { - console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); - } - },readlink:function (path) { - var lookup = FS.lookupPath(path); - var link = lookup.node; - if (!link) { - throw new FS.ErrnoError(ERRNO_CODES.ENOENT); - } - if (!link.node_ops.readlink) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - return PATH.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); - },stat:function (path, dontFollow) { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - var node = lookup.node; - if (!node) { - throw new FS.ErrnoError(ERRNO_CODES.ENOENT); - } - if (!node.node_ops.getattr) { - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - } - return node.node_ops.getattr(node); - },lstat:function (path) { - return FS.stat(path, true); - },chmod:function (path, mode, dontFollow) { - var node; - if (typeof path === 'string') { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - } - node.node_ops.setattr(node, { - mode: (mode & 4095) | (node.mode & ~4095), - timestamp: Date.now() - }); - },lchmod:function (path, mode) { - FS.chmod(path, mode, true); - },fchmod:function (fd, mode) { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(ERRNO_CODES.EBADF); - } - FS.chmod(stream.node, mode); - },chown:function (path, uid, gid, dontFollow) { - var node; - if (typeof path === 'string') { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - } - node.node_ops.setattr(node, { - timestamp: Date.now() - // we ignore the uid / gid for now - }); - },lchown:function (path, uid, gid) { - FS.chown(path, uid, gid, true); - },fchown:function (fd, uid, gid) { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(ERRNO_CODES.EBADF); - } - FS.chown(stream.node, uid, gid); - },truncate:function (path, len) { - if (len < 0) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - var node; - if (typeof path === 'string') { - var lookup = FS.lookupPath(path, { follow: true }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(ERRNO_CODES.EPERM); - } - if (FS.isDir(node.mode)) { - throw new FS.ErrnoError(ERRNO_CODES.EISDIR); - } - if (!FS.isFile(node.mode)) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - var err = FS.nodePermissions(node, 'w'); - if (err) { - throw new FS.ErrnoError(err); - } - node.node_ops.setattr(node, { - size: len, - timestamp: Date.now() - }); - },ftruncate:function (fd, len) { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(ERRNO_CODES.EBADF); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - FS.truncate(stream.node, len); - },utime:function (path, atime, mtime) { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - node.node_ops.setattr(node, { - timestamp: Math.max(atime, mtime) - }); - },open:function (path, flags, mode, fd_start, fd_end) { - if (path === "") { - throw new FS.ErrnoError(ERRNO_CODES.ENOENT); - } - flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags; - mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode; - if ((flags & 64)) { - mode = (mode & 4095) | 32768; - } else { - mode = 0; - } - var node; - if (typeof path === 'object') { - node = path; - } else { - path = PATH.normalize(path); - try { - var lookup = FS.lookupPath(path, { - follow: !(flags & 131072) - }); - node = lookup.node; - } catch (e) { - // ignore - } - } - // perhaps we need to create the node - var created = false; - if ((flags & 64)) { - if (node) { - // if O_CREAT and O_EXCL are set, error out if the node already exists - if ((flags & 128)) { - throw new FS.ErrnoError(ERRNO_CODES.EEXIST); - } - } else { - // node doesn't exist, try to create it - node = FS.mknod(path, mode, 0); - created = true; - } - } - if (!node) { - throw new FS.ErrnoError(ERRNO_CODES.ENOENT); - } - // can't truncate a device - if (FS.isChrdev(node.mode)) { - flags &= ~512; - } - // if asked only for a directory, then this must be one - if ((flags & 65536) && !FS.isDir(node.mode)) { - throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); - } - // check permissions, if this is not a file we just created now (it is ok to - // create and write to a file with read-only permissions; it is read-only - // for later use) - if (!created) { - var err = FS.mayOpen(node, flags); - if (err) { - throw new FS.ErrnoError(err); - } - } - // do truncation if necessary - if ((flags & 512)) { - FS.truncate(node, 0); - } - // we've already handled these, don't pass down to the underlying vfs - flags &= ~(128 | 512); - - // register the stream with the filesystem - var stream = FS.createStream({ - node: node, - path: FS.getPath(node), // we want the absolute path to the node - flags: flags, - seekable: true, - position: 0, - stream_ops: node.stream_ops, - // used by the file family libc calls (fopen, fwrite, ferror, etc.) - ungotten: [], - error: false - }, fd_start, fd_end); - // call the new stream's open function - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - if (Module['logReadFiles'] && !(flags & 1)) { - if (!FS.readFiles) FS.readFiles = {}; - if (!(path in FS.readFiles)) { - FS.readFiles[path] = 1; - Module['printErr']('read file: ' + path); - } - } - try { - if (FS.trackingDelegate['onOpenFile']) { - var trackingFlags = 0; - if ((flags & 2097155) !== 1) { - trackingFlags |= FS.tracking.openFlags.READ; - } - if ((flags & 2097155) !== 0) { - trackingFlags |= FS.tracking.openFlags.WRITE; - } - FS.trackingDelegate['onOpenFile'](path, trackingFlags); - } - } catch(e) { - console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: " + e.message); - } - return stream; - },close:function (stream) { - if (stream.getdents) stream.getdents = null; // free readdir state - try { - if (stream.stream_ops.close) { - stream.stream_ops.close(stream); - } - } catch (e) { - throw e; - } finally { - FS.closeStream(stream.fd); - } - },llseek:function (stream, offset, whence) { - if (!stream.seekable || !stream.stream_ops.llseek) { - throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); - } - stream.position = stream.stream_ops.llseek(stream, offset, whence); - stream.ungotten = []; - return stream.position; - },read:function (stream, buffer, offset, length, position) { - if (length < 0 || position < 0) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(ERRNO_CODES.EBADF); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(ERRNO_CODES.EISDIR); - } - if (!stream.stream_ops.read) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - var seeking = true; - if (typeof position === 'undefined') { - position = stream.position; - seeking = false; - } else if (!stream.seekable) { - throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); - } - var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); - if (!seeking) stream.position += bytesRead; - return bytesRead; - },write:function (stream, buffer, offset, length, position, canOwn) { - if (length < 0 || position < 0) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(ERRNO_CODES.EBADF); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(ERRNO_CODES.EISDIR); - } - if (!stream.stream_ops.write) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - if (stream.flags & 1024) { - // seek to the end before writing in append mode - FS.llseek(stream, 0, 2); - } - var seeking = true; - if (typeof position === 'undefined') { - position = stream.position; - seeking = false; - } else if (!stream.seekable) { - throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); - } - var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); - if (!seeking) stream.position += bytesWritten; - try { - if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path); - } catch(e) { - console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: " + e.message); - } - return bytesWritten; - },allocate:function (stream, offset, length) { - if (offset < 0 || length <= 0) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(ERRNO_CODES.EBADF); - } - if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(ERRNO_CODES.ENODEV); - } - if (!stream.stream_ops.allocate) { - throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); - } - stream.stream_ops.allocate(stream, offset, length); - },mmap:function (stream, buffer, offset, length, position, prot, flags) { - // TODO if PROT is PROT_WRITE, make sure we have write access - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(ERRNO_CODES.EACCES); - } - if (!stream.stream_ops.mmap) { - throw new FS.ErrnoError(ERRNO_CODES.ENODEV); - } - return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags); - },msync:function (stream, buffer, offset, length, mmapFlags) { - if (!stream || !stream.stream_ops.msync) { - return 0; - } - return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); - },munmap:function (stream) { - return 0; - },ioctl:function (stream, cmd, arg) { - if (!stream.stream_ops.ioctl) { - throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); - } - return stream.stream_ops.ioctl(stream, cmd, arg); - },readFile:function (path, opts) { - opts = opts || {}; - opts.flags = opts.flags || 'r'; - opts.encoding = opts.encoding || 'binary'; - if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { - throw new Error('Invalid encoding type "' + opts.encoding + '"'); - } - var ret; - var stream = FS.open(path, opts.flags); - var stat = FS.stat(path); - var length = stat.size; - var buf = new Uint8Array(length); - FS.read(stream, buf, 0, length, 0); - if (opts.encoding === 'utf8') { - ret = UTF8ArrayToString(buf, 0); - } else if (opts.encoding === 'binary') { - ret = buf; - } - FS.close(stream); - return ret; - },writeFile:function (path, data, opts) { - opts = opts || {}; - opts.flags = opts.flags || 'w'; - opts.encoding = opts.encoding || 'utf8'; - if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { - throw new Error('Invalid encoding type "' + opts.encoding + '"'); - } - var stream = FS.open(path, opts.flags, opts.mode); - if (opts.encoding === 'utf8') { - var buf = new Uint8Array(lengthBytesUTF8(data)+1); - var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); - FS.write(stream, buf, 0, actualNumBytes, 0, opts.canOwn); - } else if (opts.encoding === 'binary') { - FS.write(stream, data, 0, data.length, 0, opts.canOwn); - } - FS.close(stream); - },cwd:function () { - return FS.currentPath; - },chdir:function (path) { - var lookup = FS.lookupPath(path, { follow: true }); - if (lookup.node === null) { - throw new FS.ErrnoError(ERRNO_CODES.ENOENT); - } - if (!FS.isDir(lookup.node.mode)) { - throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); - } - var err = FS.nodePermissions(lookup.node, 'x'); - if (err) { - throw new FS.ErrnoError(err); - } - FS.currentPath = lookup.path; - },createDefaultDirectories:function () { - FS.mkdir('/tmp'); - FS.mkdir('/home'); - FS.mkdir('/home/web_user'); - },createDefaultDevices:function () { - // create /dev - FS.mkdir('/dev'); - // setup /dev/null - FS.registerDevice(FS.makedev(1, 3), { - read: function() { return 0; }, - write: function(stream, buffer, offset, length, pos) { return length; } - }); - FS.mkdev('/dev/null', FS.makedev(1, 3)); - // setup /dev/tty and /dev/tty1 - // stderr needs to print output using Module['printErr'] - // so we register a second tty just for it. - TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); - TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); - FS.mkdev('/dev/tty', FS.makedev(5, 0)); - FS.mkdev('/dev/tty1', FS.makedev(6, 0)); - // setup /dev/[u]random - var random_device; - if (typeof crypto !== 'undefined') { - // for modern web browsers - var randomBuffer = new Uint8Array(1); - random_device = function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; - } else if (ENVIRONMENT_IS_NODE) { - // for nodejs - random_device = function() { return require('crypto').randomBytes(1)[0]; }; - } else { - // default for ES5 platforms - random_device = function() { return (Math.random()*256)|0; }; - } - FS.createDevice('/dev', 'random', random_device); - FS.createDevice('/dev', 'urandom', random_device); - // we're not going to emulate the actual shm device, - // just create the tmp dirs that reside in it commonly - FS.mkdir('/dev/shm'); - FS.mkdir('/dev/shm/tmp'); - },createSpecialDirectories:function () { - // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the name of the stream for fd 6 (see test_unistd_ttyname) - FS.mkdir('/proc'); - FS.mkdir('/proc/self'); - FS.mkdir('/proc/self/fd'); - FS.mount({ - mount: function() { - var node = FS.createNode('/proc/self', 'fd', 16384 | 511 /* 0777 */, 73); - node.node_ops = { - lookup: function(parent, name) { - var fd = +name; - var stream = FS.getStream(fd); - if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); - var ret = { - parent: null, - mount: { mountpoint: 'fake' }, - node_ops: { readlink: function() { return stream.path } } - }; - ret.parent = ret; // make it look like a simple root node - return ret; - } - }; - return node; - } - }, {}, '/proc/self/fd'); - },createStandardStreams:function () { - // TODO deprecate the old functionality of a single - // input / output callback and that utilizes FS.createDevice - // and instead require a unique set of stream ops - - // by default, we symlink the standard streams to the - // default tty devices. however, if the standard streams - // have been overwritten we create a unique device for - // them instead. - if (Module['stdin']) { - FS.createDevice('/dev', 'stdin', Module['stdin']); - } else { - FS.symlink('/dev/tty', '/dev/stdin'); - } - if (Module['stdout']) { - FS.createDevice('/dev', 'stdout', null, Module['stdout']); - } else { - FS.symlink('/dev/tty', '/dev/stdout'); - } - if (Module['stderr']) { - FS.createDevice('/dev', 'stderr', null, Module['stderr']); - } else { - FS.symlink('/dev/tty1', '/dev/stderr'); - } - - // open default streams for the stdin, stdout and stderr devices - var stdin = FS.open('/dev/stdin', 'r'); - assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')'); - - var stdout = FS.open('/dev/stdout', 'w'); - assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')'); - - var stderr = FS.open('/dev/stderr', 'w'); - assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')'); - },ensureErrnoError:function () { - if (FS.ErrnoError) return; - FS.ErrnoError = function ErrnoError(errno, node) { - //Module.printErr(stackTrace()); // useful for debugging - this.node = node; - this.setErrno = function(errno) { - this.errno = errno; - for (var key in ERRNO_CODES) { - if (ERRNO_CODES[key] === errno) { - this.code = key; - break; - } - } - }; - this.setErrno(errno); - this.message = ERRNO_MESSAGES[errno]; - if (this.stack) this.stack = demangleAll(this.stack); - }; - FS.ErrnoError.prototype = new Error(); - FS.ErrnoError.prototype.constructor = FS.ErrnoError; - // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) - [ERRNO_CODES.ENOENT].forEach(function(code) { - FS.genericErrors[code] = new FS.ErrnoError(code); - FS.genericErrors[code].stack = ''; - }); - },staticInit:function () { - FS.ensureErrnoError(); - - FS.nameTable = new Array(4096); - - FS.mount(MEMFS, {}, '/'); - - FS.createDefaultDirectories(); - FS.createDefaultDevices(); - FS.createSpecialDirectories(); - - FS.filesystems = { - 'MEMFS': MEMFS, - 'IDBFS': IDBFS, - 'NODEFS': NODEFS, - 'WORKERFS': WORKERFS, - }; - },init:function (input, output, error) { - assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)'); - FS.init.initialized = true; - - FS.ensureErrnoError(); - - // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here - Module['stdin'] = input || Module['stdin']; - Module['stdout'] = output || Module['stdout']; - Module['stderr'] = error || Module['stderr']; - - FS.createStandardStreams(); - },quit:function () { - FS.init.initialized = false; - // force-flush all streams, so we get musl std streams printed out - var fflush = Module['_fflush']; - if (fflush) fflush(0); - // close all of our streams - for (var i = 0; i < FS.streams.length; i++) { - var stream = FS.streams[i]; - if (!stream) { - continue; - } - FS.close(stream); - } - },getMode:function (canRead, canWrite) { - var mode = 0; - if (canRead) mode |= 292 | 73; - if (canWrite) mode |= 146; - return mode; - },joinPath:function (parts, forceRelative) { - var path = PATH.join.apply(null, parts); - if (forceRelative && path[0] == '/') path = path.substr(1); - return path; - },absolutePath:function (relative, base) { - return PATH.resolve(base, relative); - },standardizePath:function (path) { - return PATH.normalize(path); - },findObject:function (path, dontResolveLastLink) { - var ret = FS.analyzePath(path, dontResolveLastLink); - if (ret.exists) { - return ret.object; - } else { - ___setErrNo(ret.error); - return null; - } - },analyzePath:function (path, dontResolveLastLink) { - // operate from within the context of the symlink's target - try { - var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - path = lookup.path; - } catch (e) { - } - var ret = { - isRoot: false, exists: false, error: 0, name: null, path: null, object: null, - parentExists: false, parentPath: null, parentObject: null - }; - try { - var lookup = FS.lookupPath(path, { parent: true }); - ret.parentExists = true; - ret.parentPath = lookup.path; - ret.parentObject = lookup.node; - ret.name = PATH.basename(path); - lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - ret.exists = true; - ret.path = lookup.path; - ret.object = lookup.node; - ret.name = lookup.node.name; - ret.isRoot = lookup.path === '/'; - } catch (e) { - ret.error = e.errno; - }; - return ret; - },createFolder:function (parent, name, canRead, canWrite) { - var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); - var mode = FS.getMode(canRead, canWrite); - return FS.mkdir(path, mode); - },createPath:function (parent, path, canRead, canWrite) { - parent = typeof parent === 'string' ? parent : FS.getPath(parent); - var parts = path.split('/').reverse(); - while (parts.length) { - var part = parts.pop(); - if (!part) continue; - var current = PATH.join2(parent, part); - try { - FS.mkdir(current); - } catch (e) { - // ignore EEXIST - } - parent = current; - } - return current; - },createFile:function (parent, name, properties, canRead, canWrite) { - var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); - var mode = FS.getMode(canRead, canWrite); - return FS.create(path, mode); - },createDataFile:function (parent, name, data, canRead, canWrite, canOwn) { - var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent; - var mode = FS.getMode(canRead, canWrite); - var node = FS.create(path, mode); - if (data) { - if (typeof data === 'string') { - var arr = new Array(data.length); - for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); - data = arr; - } - // make sure we can write to the file - FS.chmod(node, mode | 146); - var stream = FS.open(node, 'w'); - FS.write(stream, data, 0, data.length, 0, canOwn); - FS.close(stream); - FS.chmod(node, mode); - } - return node; - },createDevice:function (parent, name, input, output) { - var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); - var mode = FS.getMode(!!input, !!output); - if (!FS.createDevice.major) FS.createDevice.major = 64; - var dev = FS.makedev(FS.createDevice.major++, 0); - // Create a fake device that a set of stream ops to emulate - // the old behavior. - FS.registerDevice(dev, { - open: function(stream) { - stream.seekable = false; - }, - close: function(stream) { - // flush any pending line data - if (output && output.buffer && output.buffer.length) { - output(10); - } - }, - read: function(stream, buffer, offset, length, pos /* ignored */) { - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = input(); - } catch (e) { - throw new FS.ErrnoError(ERRNO_CODES.EIO); - } - if (result === undefined && bytesRead === 0) { - throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); - } - if (result === null || result === undefined) break; - bytesRead++; - buffer[offset+i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - }, - write: function(stream, buffer, offset, length, pos) { - for (var i = 0; i < length; i++) { - try { - output(buffer[offset+i]); - } catch (e) { - throw new FS.ErrnoError(ERRNO_CODES.EIO); - } - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - } - }); - return FS.mkdev(path, mode, dev); - },createLink:function (parent, name, target, canRead, canWrite) { - var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); - return FS.symlink(target, path); - },forceLoadFile:function (obj) { - if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; - var success = true; - if (typeof XMLHttpRequest !== 'undefined') { - throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); - } else if (Module['read']) { - // Command-line. - try { - // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as - // read() will try to parse UTF8. - obj.contents = intArrayFromString(Module['read'](obj.url), true); - obj.usedBytes = obj.contents.length; - } catch (e) { - success = false; - } - } else { - throw new Error('Cannot load without read() or XMLHttpRequest.'); - } - if (!success) ___setErrNo(ERRNO_CODES.EIO); - return success; - },createLazyFile:function (parent, name, url, canRead, canWrite) { - // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. - function LazyUint8Array() { - this.lengthKnown = false; - this.chunks = []; // Loaded chunks. Index is the chunk number - } - LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { - if (idx > this.length-1 || idx < 0) { - return undefined; - } - var chunkOffset = idx % this.chunkSize; - var chunkNum = (idx / this.chunkSize)|0; - return this.getter(chunkNum)[chunkOffset]; - } - LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { - this.getter = getter; - } - LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { - // Find length - var xhr = new XMLHttpRequest(); - xhr.open('HEAD', url, false); - xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - var datalength = Number(xhr.getResponseHeader("Content-length")); - var header; - var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; - var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; - - var chunkSize = 1024*1024; // Chunk size in bytes - - if (!hasByteServing) chunkSize = datalength; - - // Function to get a range from the remote URL. - var doXHR = (function(from, to) { - if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); - if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); - - // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); - - // Some hints to the browser that we want binary data. - if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer'; - if (xhr.overrideMimeType) { - xhr.overrideMimeType('text/plain; charset=x-user-defined'); - } - - xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - if (xhr.response !== undefined) { - return new Uint8Array(xhr.response || []); - } else { - return intArrayFromString(xhr.responseText || '', true); - } - }); - var lazyArray = this; - lazyArray.setDataGetter(function(chunkNum) { - var start = chunkNum * chunkSize; - var end = (chunkNum+1) * chunkSize - 1; // including this byte - end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block - if (typeof(lazyArray.chunks[chunkNum]) === "undefined") { - lazyArray.chunks[chunkNum] = doXHR(start, end); - } - if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!"); - return lazyArray.chunks[chunkNum]; - }); - - if (usesGzip || !datalength) { - // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length - chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file - datalength = this.getter(0).length; - chunkSize = datalength; - console.log("LazyFiles on gzip forces download of the whole file when length is accessed"); - } - - this._length = datalength; - this._chunkSize = chunkSize; - this.lengthKnown = true; - } - if (typeof XMLHttpRequest !== 'undefined') { - if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; - var lazyArray = new LazyUint8Array(); - Object.defineProperties(lazyArray, { - length: { - get: function() { - if(!this.lengthKnown) { - this.cacheLength(); - } - return this._length; - } - }, - chunkSize: { - get: function() { - if(!this.lengthKnown) { - this.cacheLength(); - } - return this._chunkSize; - } - } - }); - - var properties = { isDevice: false, contents: lazyArray }; - } else { - var properties = { isDevice: false, url: url }; - } - - var node = FS.createFile(parent, name, properties, canRead, canWrite); - // This is a total hack, but I want to get this lazy file code out of the - // core of MEMFS. If we want to keep this lazy file concept I feel it should - // be its own thin LAZYFS proxying calls to MEMFS. - if (properties.contents) { - node.contents = properties.contents; - } else if (properties.url) { - node.contents = null; - node.url = properties.url; - } - // Add a function that defers querying the file size until it is asked the first time. - Object.defineProperties(node, { - usedBytes: { - get: function() { return this.contents.length; } - } - }); - // override each stream op with one that tries to force load the lazy file first - var stream_ops = {}; - var keys = Object.keys(node.stream_ops); - keys.forEach(function(key) { - var fn = node.stream_ops[key]; - stream_ops[key] = function forceLoadLazyFile() { - if (!FS.forceLoadFile(node)) { - throw new FS.ErrnoError(ERRNO_CODES.EIO); - } - return fn.apply(null, arguments); - }; - }); - // use a custom read function - stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) { - if (!FS.forceLoadFile(node)) { - throw new FS.ErrnoError(ERRNO_CODES.EIO); - } - var contents = stream.node.contents; - if (position >= contents.length) - return 0; - var size = Math.min(contents.length - position, length); - assert(size >= 0); - if (contents.slice) { // normal array - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents[position + i]; - } - } else { - for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR - buffer[offset + i] = contents.get(position + i); - } - } - return size; - }; - node.stream_ops = stream_ops; - return node; - },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { - Browser.init(); // XXX perhaps this method should move onto Browser? - // TODO we should allow people to just pass in a complete filename instead - // of parent and name being that we just join them anyways - var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent; - var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname - function processData(byteArray) { - function finish(byteArray) { - if (preFinish) preFinish(); - if (!dontCreateFile) { - FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); - } - if (onload) onload(); - removeRunDependency(dep); - } - var handled = false; - Module['preloadPlugins'].forEach(function(plugin) { - if (handled) return; - if (plugin['canHandle'](fullname)) { - plugin['handle'](byteArray, fullname, finish, function() { - if (onerror) onerror(); - removeRunDependency(dep); - }); - handled = true; - } - }); - if (!handled) finish(byteArray); - } - addRunDependency(dep); - if (typeof url == 'string') { - Browser.asyncLoad(url, function(byteArray) { - processData(byteArray); - }, onerror); - } else { - processData(url); - } - },indexedDB:function () { - return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; - },DB_NAME:function () { - return 'EM_FS_' + window.location.pathname; - },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) { - onload = onload || function(){}; - onerror = onerror || function(){}; - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { - console.log('creating db'); - var db = openRequest.result; - db.createObjectStore(FS.DB_STORE_NAME); - }; - openRequest.onsuccess = function openRequest_onsuccess() { - var db = openRequest.result; - var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) onload(); else onerror(); - } - paths.forEach(function(path) { - var putRequest = files.put(FS.analyzePath(path).object.contents, path); - putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() }; - putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - },loadFilesFromDB:function (paths, onload, onerror) { - onload = onload || function(){}; - onerror = onerror || function(){}; - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = onerror; // no database to load from - openRequest.onsuccess = function openRequest_onsuccess() { - var db = openRequest.result; - try { - var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); - } catch(e) { - onerror(e); - return; - } - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) onload(); else onerror(); - } - paths.forEach(function(path) { - var getRequest = files.get(path); - getRequest.onsuccess = function getRequest_onsuccess() { - if (FS.analyzePath(path).exists) { - FS.unlink(path); - } - FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); - ok++; - if (ok + fail == total) finish(); - }; - getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - }};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function (dirfd, path) { - if (path[0] !== '/') { - // relative path - var dir; - if (dirfd === -100) { - dir = FS.cwd(); - } else { - var dirstream = FS.getStream(dirfd); - if (!dirstream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); - dir = dirstream.path; - } - path = PATH.join2(dir, path); - } - return path; - },doStat:function (func, path, buf) { - try { - var stat = func(path); - } catch (e) { - if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { - // an error occurred while trying to look up the path; we should just report ENOTDIR - return -ERRNO_CODES.ENOTDIR; - } - throw e; - } - HEAP32[((buf)>>2)]=stat.dev; - HEAP32[(((buf)+(4))>>2)]=0; - HEAP32[(((buf)+(8))>>2)]=stat.ino; - HEAP32[(((buf)+(12))>>2)]=stat.mode; - HEAP32[(((buf)+(16))>>2)]=stat.nlink; - HEAP32[(((buf)+(20))>>2)]=stat.uid; - HEAP32[(((buf)+(24))>>2)]=stat.gid; - HEAP32[(((buf)+(28))>>2)]=stat.rdev; - HEAP32[(((buf)+(32))>>2)]=0; - HEAP32[(((buf)+(36))>>2)]=stat.size; - HEAP32[(((buf)+(40))>>2)]=4096; - HEAP32[(((buf)+(44))>>2)]=stat.blocks; - HEAP32[(((buf)+(48))>>2)]=(stat.atime.getTime() / 1000)|0; - HEAP32[(((buf)+(52))>>2)]=0; - HEAP32[(((buf)+(56))>>2)]=(stat.mtime.getTime() / 1000)|0; - HEAP32[(((buf)+(60))>>2)]=0; - HEAP32[(((buf)+(64))>>2)]=(stat.ctime.getTime() / 1000)|0; - HEAP32[(((buf)+(68))>>2)]=0; - HEAP32[(((buf)+(72))>>2)]=stat.ino; - return 0; - },doMsync:function (addr, stream, len, flags) { - var buffer = new Uint8Array(HEAPU8.subarray(addr, addr + len)); - FS.msync(stream, buffer, 0, len, flags); - },doMkdir:function (path, mode) { - // remove a trailing slash, if one - /a/b/ has basename of '', but - // we want to create b in the context of this function - path = PATH.normalize(path); - if (path[path.length-1] === '/') path = path.substr(0, path.length-1); - FS.mkdir(path, mode, 0); - return 0; - },doMknod:function (path, mode, dev) { - // we don't want this in the JS API as it uses mknod to create all nodes. - switch (mode & 61440) { - case 32768: - case 8192: - case 24576: - case 4096: - case 49152: - break; - default: return -ERRNO_CODES.EINVAL; - } - FS.mknod(path, mode, dev); - return 0; - },doReadlink:function (path, buf, bufsize) { - if (bufsize <= 0) return -ERRNO_CODES.EINVAL; - var ret = FS.readlink(path); - - var len = Math.min(bufsize, lengthBytesUTF8(ret)); - var endChar = HEAP8[buf+len]; - stringToUTF8(ret, buf, bufsize+1); - // readlink is one of the rare functions that write out a C string, but does never append a null to the output buffer(!) - // stringToUTF8() always appends a null byte, so restore the character under the null byte after the write. - HEAP8[buf+len] = endChar; - - return len; - },doAccess:function (path, amode) { - if (amode & ~7) { - // need a valid mode - return -ERRNO_CODES.EINVAL; - } - var node; - var lookup = FS.lookupPath(path, { follow: true }); - node = lookup.node; - var perms = ''; - if (amode & 4) perms += 'r'; - if (amode & 2) perms += 'w'; - if (amode & 1) perms += 'x'; - if (perms /* otherwise, they've just passed F_OK */ && FS.nodePermissions(node, perms)) { - return -ERRNO_CODES.EACCES; - } - return 0; - },doDup:function (path, flags, suggestFD) { - var suggest = FS.getStream(suggestFD); - if (suggest) FS.close(suggest); - return FS.open(path, flags, 0, suggestFD, suggestFD).fd; - },doReadv:function (stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAP32[(((iov)+(i*8))>>2)]; - var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; - var curr = FS.read(stream, HEAP8,ptr, len, offset); - if (curr < 0) return -1; - ret += curr; - if (curr < len) break; // nothing more to read - } - return ret; - },doWritev:function (stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAP32[(((iov)+(i*8))>>2)]; - var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; - var curr = FS.write(stream, HEAP8,ptr, len, offset); - if (curr < 0) return -1; - ret += curr; - } - return ret; - },varargs:0,get:function (varargs) { - SYSCALLS.varargs += 4; - var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; - return ret; - },getStr:function () { - var ret = Pointer_stringify(SYSCALLS.get()); - return ret; - },getStreamFromFD:function () { - var stream = FS.getStream(SYSCALLS.get()); - if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); - return stream; - },getSocketFromFD:function () { - var socket = SOCKFS.getSocket(SYSCALLS.get()); - if (!socket) throw new FS.ErrnoError(ERRNO_CODES.EBADF); - return socket; - },getSocketAddress:function (allowNull) { - var addrp = SYSCALLS.get(), addrlen = SYSCALLS.get(); - if (allowNull && addrp === 0) return null; - var info = __read_sockaddr(addrp, addrlen); - if (info.errno) throw new FS.ErrnoError(info.errno); - info.addr = DNS.lookup_addr(info.addr) || info.addr; - return info; - },get64:function () { - var low = SYSCALLS.get(), high = SYSCALLS.get(); - if (low >= 0) assert(high === 0); - else assert(high === -1); - return low; - },getZero:function () { - assert(SYSCALLS.get() === 0); - }};function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; - try { - // ioctl - var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get(); - switch (op) { - case 21505: { - if (!stream.tty) return -ERRNO_CODES.ENOTTY; - return 0; - } - case 21506: { - if (!stream.tty) return -ERRNO_CODES.ENOTTY; - return 0; // no-op, not actually adjusting terminal settings - } - case 21519: { - if (!stream.tty) return -ERRNO_CODES.ENOTTY; - var argp = SYSCALLS.get(); - HEAP32[((argp)>>2)]=0; - return 0; - } - case 21520: { - if (!stream.tty) return -ERRNO_CODES.ENOTTY; - return -ERRNO_CODES.EINVAL; // not supported - } - case 21531: { - var argp = SYSCALLS.get(); - return FS.ioctl(stream, op, argp); - } - case 21523: { - // TODO: in theory we should write to the winsize struct that gets - // passed in, but for now musl doesn't read anything on it - if (!stream.tty) return -ERRNO_CODES.ENOTTY; - return 0; - } - default: abort('bad ioctl syscall ' + op); - } - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function _emscripten_glSampleCoverage(value, invert) { - GLctx.sampleCoverage(value, !!invert); - } - - function _glDeleteTextures(n, textures) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((textures)+(i*4))>>2)]; - var texture = GL.textures[id]; - if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". - GLctx.deleteTexture(texture); - texture.name = 0; - GL.textures[id] = null; - } - } - - function _emscripten_glFrustum() { - Module['printErr']('missing function: emscripten_glFrustum'); abort(-1); - } - - function _glfwSetWindowSizeCallback(winid, cbfun) { - GLFW.setWindowSizeCallback(winid, cbfun); - } - - function _emscripten_glGetTexParameterfv(target, pname, params) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAPF32[((params)>>2)]=GLctx.getTexParameter(target, pname); - } - - function _emscripten_glUniform4i(location, v0, v1, v2, v3) { - GLctx.uniform4i(GL.uniforms[location], v0, v1, v2, v3); - } - - function _emscripten_glBindRenderbuffer(target, renderbuffer) { - GLctx.bindRenderbuffer(target, renderbuffer ? GL.renderbuffers[renderbuffer] : null); - } - - function _emscripten_glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } - - - - var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,lastGamepadState:null,lastGamepadStateFrame:null,numGamepadsConnected:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,staticInit:function () { - if (typeof window !== 'undefined') { - window.addEventListener("gamepadconnected", function() { ++JSEvents.numGamepadsConnected; }); - window.addEventListener("gamepaddisconnected", function() { --JSEvents.numGamepadsConnected; }); - - // Chromium does not fire the gamepadconnected event on reload, so we need to get the number of gamepads here as a workaround. - // See https://bugs.chromium.org/p/chromium/issues/detail?id=502824 - var firstState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : null); - if (firstState) { - JSEvents.numGamepadsConnected = firstState.length; - } - } - },registerRemoveEventListeners:function () { - if (!JSEvents.removeEventListenersRegistered) { - __ATEXIT__.push(function() { - for(var i = JSEvents.eventHandlers.length-1; i >= 0; --i) { - JSEvents._removeHandler(i); - } - }); - JSEvents.removeEventListenersRegistered = true; - } - },findEventTarget:function (target) { - if (target) { - if (typeof target == "number") { - target = Pointer_stringify(target); - } - if (target == '#window') return window; - else if (target == '#document') return document; - else if (target == '#screen') return window.screen; - else if (target == '#canvas') return Module['canvas']; - - if (typeof target == 'string') return document.getElementById(target); - else return target; - } else { - // The sensible target varies between events, but use window as the default - // since DOM events mostly can default to that. Specific callback registrations - // override their own defaults. - return window; - } - },deferredCalls:[],deferCall:function (targetFunction, precedence, argsList) { - function arraysHaveEqualContent(arrA, arrB) { - if (arrA.length != arrB.length) return false; - - for(var i in arrA) { - if (arrA[i] != arrB[i]) return false; - } - return true; - } - // Test if the given call was already queued, and if so, don't add it again. - for(var i in JSEvents.deferredCalls) { - var call = JSEvents.deferredCalls[i]; - if (call.targetFunction == targetFunction && arraysHaveEqualContent(call.argsList, argsList)) { - return; - } - } - JSEvents.deferredCalls.push({ - targetFunction: targetFunction, - precedence: precedence, - argsList: argsList - }); - - JSEvents.deferredCalls.sort(function(x,y) { return x.precedence < y.precedence; }); - },removeDeferredCalls:function (targetFunction) { - for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { - if (JSEvents.deferredCalls[i].targetFunction == targetFunction) { - JSEvents.deferredCalls.splice(i, 1); - --i; - } - } - },canPerformEventHandlerRequests:function () { - return JSEvents.inEventHandler && JSEvents.currentEventHandler.allowsDeferredCalls; - },runDeferredCalls:function () { - if (!JSEvents.canPerformEventHandlerRequests()) { - return; - } - for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { - var call = JSEvents.deferredCalls[i]; - JSEvents.deferredCalls.splice(i, 1); - --i; - call.targetFunction.apply(this, call.argsList); - } - },inEventHandler:0,currentEventHandler:null,eventHandlers:[],isInternetExplorer:function () { return navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0; },removeAllHandlersOnTarget:function (target, eventTypeString) { - for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { - if (JSEvents.eventHandlers[i].target == target && - (!eventTypeString || eventTypeString == JSEvents.eventHandlers[i].eventTypeString)) { - JSEvents._removeHandler(i--); - } - } - },_removeHandler:function (i) { - var h = JSEvents.eventHandlers[i]; - h.target.removeEventListener(h.eventTypeString, h.eventListenerFunc, h.useCapture); - JSEvents.eventHandlers.splice(i, 1); - },registerOrRemoveHandler:function (eventHandler) { - var jsEventHandler = function jsEventHandler(event) { - // Increment nesting count for the event handler. - ++JSEvents.inEventHandler; - JSEvents.currentEventHandler = eventHandler; - // Process any old deferred calls the user has placed. - JSEvents.runDeferredCalls(); - // Process the actual event, calls back to user C code handler. - eventHandler.handlerFunc(event); - // Process any new deferred calls that were placed right now from this event handler. - JSEvents.runDeferredCalls(); - // Out of event handler - restore nesting count. - --JSEvents.inEventHandler; - } - - if (eventHandler.callbackfunc) { - eventHandler.eventListenerFunc = jsEventHandler; - eventHandler.target.addEventListener(eventHandler.eventTypeString, jsEventHandler, eventHandler.useCapture); - JSEvents.eventHandlers.push(eventHandler); - JSEvents.registerRemoveEventListeners(); - } else { - for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { - if (JSEvents.eventHandlers[i].target == eventHandler.target - && JSEvents.eventHandlers[i].eventTypeString == eventHandler.eventTypeString) { - JSEvents._removeHandler(i--); - } - } - } - },registerKeyEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.keyEvent) { - JSEvents.keyEvent = _malloc( 164 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - stringToUTF8(e.key ? e.key : "", JSEvents.keyEvent + 0, 32); - stringToUTF8(e.code ? e.code : "", JSEvents.keyEvent + 32, 32); - HEAP32[(((JSEvents.keyEvent)+(64))>>2)]=e.location; - HEAP32[(((JSEvents.keyEvent)+(68))>>2)]=e.ctrlKey; - HEAP32[(((JSEvents.keyEvent)+(72))>>2)]=e.shiftKey; - HEAP32[(((JSEvents.keyEvent)+(76))>>2)]=e.altKey; - HEAP32[(((JSEvents.keyEvent)+(80))>>2)]=e.metaKey; - HEAP32[(((JSEvents.keyEvent)+(84))>>2)]=e.repeat; - stringToUTF8(e.locale ? e.locale : "", JSEvents.keyEvent + 88, 32); - stringToUTF8(e.char ? e.char : "", JSEvents.keyEvent + 120, 32); - HEAP32[(((JSEvents.keyEvent)+(152))>>2)]=e.charCode; - HEAP32[(((JSEvents.keyEvent)+(156))>>2)]=e.keyCode; - HEAP32[(((JSEvents.keyEvent)+(160))>>2)]=e.which; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.keyEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: JSEvents.isInternetExplorer() ? false : true, // MSIE doesn't allow fullscreen and pointerlock requests from key handlers, others do. - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },getBoundingClientRectOrZeros:function (target) { - return target.getBoundingClientRect ? target.getBoundingClientRect() : { left: 0, top: 0 }; - },fillMouseEventData:function (eventStruct, e, target) { - HEAPF64[((eventStruct)>>3)]=JSEvents.tick(); - HEAP32[(((eventStruct)+(8))>>2)]=e.screenX; - HEAP32[(((eventStruct)+(12))>>2)]=e.screenY; - HEAP32[(((eventStruct)+(16))>>2)]=e.clientX; - HEAP32[(((eventStruct)+(20))>>2)]=e.clientY; - HEAP32[(((eventStruct)+(24))>>2)]=e.ctrlKey; - HEAP32[(((eventStruct)+(28))>>2)]=e.shiftKey; - HEAP32[(((eventStruct)+(32))>>2)]=e.altKey; - HEAP32[(((eventStruct)+(36))>>2)]=e.metaKey; - HEAP16[(((eventStruct)+(40))>>1)]=e.button; - HEAP16[(((eventStruct)+(42))>>1)]=e.buttons; - HEAP32[(((eventStruct)+(44))>>2)]=e["movementX"] || e["mozMovementX"] || e["webkitMovementX"] || (e.screenX-JSEvents.previousScreenX); - HEAP32[(((eventStruct)+(48))>>2)]=e["movementY"] || e["mozMovementY"] || e["webkitMovementY"] || (e.screenY-JSEvents.previousScreenY); - - if (Module['canvas']) { - var rect = Module['canvas'].getBoundingClientRect(); - HEAP32[(((eventStruct)+(60))>>2)]=e.clientX - rect.left; - HEAP32[(((eventStruct)+(64))>>2)]=e.clientY - rect.top; - } else { // Canvas is not initialized, return 0. - HEAP32[(((eventStruct)+(60))>>2)]=0; - HEAP32[(((eventStruct)+(64))>>2)]=0; - } - if (target) { - var rect = JSEvents.getBoundingClientRectOrZeros(target); - HEAP32[(((eventStruct)+(52))>>2)]=e.clientX - rect.left; - HEAP32[(((eventStruct)+(56))>>2)]=e.clientY - rect.top; - } else { // No specific target passed, return 0. - HEAP32[(((eventStruct)+(52))>>2)]=0; - HEAP32[(((eventStruct)+(56))>>2)]=0; - } - // wheel and mousewheel events contain wrong screenX/screenY on chrome/opera - // https://github.com/kripken/emscripten/pull/4997 - // https://bugs.chromium.org/p/chromium/issues/detail?id=699956 - if (e.type !== 'wheel' && e.type !== 'mousewheel') { - JSEvents.previousScreenX = e.screenX; - JSEvents.previousScreenY = e.screenY; - } - },registerMouseEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.mouseEvent) { - JSEvents.mouseEvent = _malloc( 72 ); - } - target = JSEvents.findEventTarget(target); - var handlerFunc = function(event) { - var e = event || window.event; - JSEvents.fillMouseEventData(JSEvents.mouseEvent, e, target); - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.mouseEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: eventTypeString != 'mousemove' && eventTypeString != 'mouseenter' && eventTypeString != 'mouseleave', // Mouse move events do not allow fullscreen/pointer lock requests to be handled in them! - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - // In IE, mousedown events don't either allow deferred calls to be run! - if (JSEvents.isInternetExplorer() && eventTypeString == 'mousedown') eventHandler.allowsDeferredCalls = false; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerWheelEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.wheelEvent) { - JSEvents.wheelEvent = _malloc( 104 ); - } - target = JSEvents.findEventTarget(target); - // The DOM Level 3 events spec event 'wheel' - var wheelHandlerFunc = function(event) { - var e = event || window.event; - JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); - HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["deltaX"]; - HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=e["deltaY"]; - HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=e["deltaZ"]; - HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=e["deltaMode"]; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - // The 'mousewheel' event as implemented in Safari 6.0.5 - var mouseWheelHandlerFunc = function(event) { - var e = event || window.event; - JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); - HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["wheelDeltaX"] || 0; - HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=-(e["wheelDeltaY"] ? e["wheelDeltaY"] : e["wheelDelta"]) /* 1. Invert to unify direction with the DOM Level 3 wheel event. 2. MSIE does not provide wheelDeltaY, so wheelDelta is used as a fallback. */; - HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=0 /* Not available */; - HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=0 /* DOM_DELTA_PIXEL */; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: true, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: (eventTypeString == 'wheel') ? wheelHandlerFunc : mouseWheelHandlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },pageScrollPos:function () { - if (window.pageXOffset > 0 || window.pageYOffset > 0) { - return [window.pageXOffset, window.pageYOffset]; - } - if (typeof document.documentElement.scrollLeft !== 'undefined' || typeof document.documentElement.scrollTop !== 'undefined') { - return [document.documentElement.scrollLeft, document.documentElement.scrollTop]; - } - return [document.body.scrollLeft|0, document.body.scrollTop|0]; - },registerUiEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.uiEvent) { - JSEvents.uiEvent = _malloc( 36 ); - } - - if (eventTypeString == "scroll" && !target) { - target = document; // By default read scroll events on document rather than window. - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - if (e.target != target) { - // Never take ui events such as scroll via a 'bubbled' route, but always from the direct element that - // was targeted. Otherwise e.g. if app logs a message in response to a page scroll, the Emscripten log - // message box could cause to scroll, generating a new (bubbled) scroll message, causing a new log print, - // causing a new scroll, etc.. - return; - } - var scrollPos = JSEvents.pageScrollPos(); - HEAP32[((JSEvents.uiEvent)>>2)]=e.detail; - HEAP32[(((JSEvents.uiEvent)+(4))>>2)]=document.body.clientWidth; - HEAP32[(((JSEvents.uiEvent)+(8))>>2)]=document.body.clientHeight; - HEAP32[(((JSEvents.uiEvent)+(12))>>2)]=window.innerWidth; - HEAP32[(((JSEvents.uiEvent)+(16))>>2)]=window.innerHeight; - HEAP32[(((JSEvents.uiEvent)+(20))>>2)]=window.outerWidth; - HEAP32[(((JSEvents.uiEvent)+(24))>>2)]=window.outerHeight; - HEAP32[(((JSEvents.uiEvent)+(28))>>2)]=scrollPos[0]; - HEAP32[(((JSEvents.uiEvent)+(32))>>2)]=scrollPos[1]; - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.uiEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, // Neither scroll or resize events allow running requests inside them. - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },getNodeNameForTarget:function (target) { - if (!target) return ''; - if (target == window) return '#window'; - if (target == window.screen) return '#screen'; - return (target && target.nodeName) ? target.nodeName : ''; - },registerFocusEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.focusEvent) { - JSEvents.focusEvent = _malloc( 256 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - - var nodeName = JSEvents.getNodeNameForTarget(e.target); - var id = e.target.id ? e.target.id : ''; - stringToUTF8(nodeName, JSEvents.focusEvent + 0, 128); - stringToUTF8(id, JSEvents.focusEvent + 128, 128); - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.focusEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },tick:function () { - if (window['performance'] && window['performance']['now']) return window['performance']['now'](); - else return Date.now(); - },registerDeviceOrientationEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.deviceOrientationEvent) { - JSEvents.deviceOrientationEvent = _malloc( 40 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - - HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); - HEAPF64[(((JSEvents.deviceOrientationEvent)+(8))>>3)]=e.alpha; - HEAPF64[(((JSEvents.deviceOrientationEvent)+(16))>>3)]=e.beta; - HEAPF64[(((JSEvents.deviceOrientationEvent)+(24))>>3)]=e.gamma; - HEAP32[(((JSEvents.deviceOrientationEvent)+(32))>>2)]=e.absolute; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceOrientationEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerDeviceMotionEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.deviceMotionEvent) { - JSEvents.deviceMotionEvent = _malloc( 80 ); - } - var handlerFunc = function(event) { - var e = event || window.event; - - HEAPF64[((JSEvents.deviceMotionEvent)>>3)]=JSEvents.tick(); - HEAPF64[(((JSEvents.deviceMotionEvent)+(8))>>3)]=e.acceleration.x; - HEAPF64[(((JSEvents.deviceMotionEvent)+(16))>>3)]=e.acceleration.y; - HEAPF64[(((JSEvents.deviceMotionEvent)+(24))>>3)]=e.acceleration.z; - HEAPF64[(((JSEvents.deviceMotionEvent)+(32))>>3)]=e.accelerationIncludingGravity.x; - HEAPF64[(((JSEvents.deviceMotionEvent)+(40))>>3)]=e.accelerationIncludingGravity.y; - HEAPF64[(((JSEvents.deviceMotionEvent)+(48))>>3)]=e.accelerationIncludingGravity.z; - HEAPF64[(((JSEvents.deviceMotionEvent)+(56))>>3)]=e.rotationRate.alpha; - HEAPF64[(((JSEvents.deviceMotionEvent)+(64))>>3)]=e.rotationRate.beta; - HEAPF64[(((JSEvents.deviceMotionEvent)+(72))>>3)]=e.rotationRate.gamma; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceMotionEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },screenOrientation:function () { - if (!window.screen) return undefined; - return window.screen.orientation || window.screen.mozOrientation || window.screen.webkitOrientation || window.screen.msOrientation; - },fillOrientationChangeEventData:function (eventStruct, e) { - var orientations = ["portrait-primary", "portrait-secondary", "landscape-primary", "landscape-secondary"]; - var orientations2 = ["portrait", "portrait", "landscape", "landscape"]; - - var orientationString = JSEvents.screenOrientation(); - var orientation = orientations.indexOf(orientationString); - if (orientation == -1) { - orientation = orientations2.indexOf(orientationString); - } - - HEAP32[((eventStruct)>>2)]=1 << orientation; - HEAP32[(((eventStruct)+(4))>>2)]=window.orientation; - },registerOrientationChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.orientationChangeEvent) { - JSEvents.orientationChangeEvent = _malloc( 8 ); - } - - if (!target) { - target = window.screen; // Orientation events need to be captured from 'window.screen' instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillOrientationChangeEventData(JSEvents.orientationChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.orientationChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - if (eventTypeString == "orientationchange" && window.screen.mozOrientation !== undefined) { - eventTypeString = "mozorientationchange"; - } - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },fullscreenEnabled:function () { - return document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled; - },fillFullscreenChangeEventData:function (eventStruct, e) { - var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; - var isFullscreen = !!fullscreenElement; - HEAP32[((eventStruct)>>2)]=isFullscreen; - HEAP32[(((eventStruct)+(4))>>2)]=JSEvents.fullscreenEnabled(); - // If transitioning to fullscreen, report info about the element that is now fullscreen. - // If transitioning to windowed mode, report info about the element that just was fullscreen. - var reportedElement = isFullscreen ? fullscreenElement : JSEvents.previousFullscreenElement; - var nodeName = JSEvents.getNodeNameForTarget(reportedElement); - var id = (reportedElement && reportedElement.id) ? reportedElement.id : ''; - stringToUTF8(nodeName, eventStruct + 8, 128); - stringToUTF8(id, eventStruct + 136, 128); - HEAP32[(((eventStruct)+(264))>>2)]=reportedElement ? reportedElement.clientWidth : 0; - HEAP32[(((eventStruct)+(268))>>2)]=reportedElement ? reportedElement.clientHeight : 0; - HEAP32[(((eventStruct)+(272))>>2)]=screen.width; - HEAP32[(((eventStruct)+(276))>>2)]=screen.height; - if (isFullscreen) { - JSEvents.previousFullscreenElement = fullscreenElement; - } - },registerFullscreenChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.fullscreenChangeEvent) { - JSEvents.fullscreenChangeEvent = _malloc( 280 ); - } - - if (!target) { - target = document; // Fullscreen change events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillFullscreenChangeEventData(JSEvents.fullscreenChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.fullscreenChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },resizeCanvasForFullscreen:function (target, strategy) { - var restoreOldStyle = __registerRestoreOldStyle(target); - var cssWidth = strategy.softFullscreen ? window.innerWidth : screen.width; - var cssHeight = strategy.softFullscreen ? window.innerHeight : screen.height; - var rect = target.getBoundingClientRect(); - var windowedCssWidth = rect.right - rect.left; - var windowedCssHeight = rect.bottom - rect.top; - var windowedRttWidth = target.width; - var windowedRttHeight = target.height; - - if (strategy.scaleMode == 3) { - __setLetterbox(target, (cssHeight - windowedCssHeight) / 2, (cssWidth - windowedCssWidth) / 2); - cssWidth = windowedCssWidth; - cssHeight = windowedCssHeight; - } else if (strategy.scaleMode == 2) { - if (cssWidth*windowedRttHeight < windowedRttWidth*cssHeight) { - var desiredCssHeight = windowedRttHeight * cssWidth / windowedRttWidth; - __setLetterbox(target, (cssHeight - desiredCssHeight) / 2, 0); - cssHeight = desiredCssHeight; - } else { - var desiredCssWidth = windowedRttWidth * cssHeight / windowedRttHeight; - __setLetterbox(target, 0, (cssWidth - desiredCssWidth) / 2); - cssWidth = desiredCssWidth; - } - } - - // If we are adding padding, must choose a background color or otherwise Chrome will give the - // padding a default white color. Do it only if user has not customized their own background color. - if (!target.style.backgroundColor) target.style.backgroundColor = 'black'; - // IE11 does the same, but requires the color to be set in the document body. - if (!document.body.style.backgroundColor) document.body.style.backgroundColor = 'black'; // IE11 - // Firefox always shows black letterboxes independent of style color. - - target.style.width = cssWidth + 'px'; - target.style.height = cssHeight + 'px'; - - if (strategy.filteringMode == 1) { - target.style.imageRendering = 'optimizeSpeed'; - target.style.imageRendering = '-moz-crisp-edges'; - target.style.imageRendering = '-o-crisp-edges'; - target.style.imageRendering = '-webkit-optimize-contrast'; - target.style.imageRendering = 'optimize-contrast'; - target.style.imageRendering = 'crisp-edges'; - target.style.imageRendering = 'pixelated'; - } - - var dpiScale = (strategy.canvasResolutionScaleMode == 2) ? window.devicePixelRatio : 1; - if (strategy.canvasResolutionScaleMode != 0) { - target.width = cssWidth * dpiScale; - target.height = cssHeight * dpiScale; - if (target.GLctxObject) target.GLctxObject.GLctx.viewport(0, 0, target.width, target.height); - } - return restoreOldStyle; - },requestFullscreen:function (target, strategy) { - // EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT + EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE is a mode where no extra logic is performed to the DOM elements. - if (strategy.scaleMode != 0 || strategy.canvasResolutionScaleMode != 0) { - JSEvents.resizeCanvasForFullscreen(target, strategy); - } - - if (target.requestFullscreen) { - target.requestFullscreen(); - } else if (target.msRequestFullscreen) { - target.msRequestFullscreen(); - } else if (target.mozRequestFullScreen) { - target.mozRequestFullScreen(); - } else if (target.mozRequestFullscreen) { - target.mozRequestFullscreen(); - } else if (target.webkitRequestFullscreen) { - target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); - } else { - if (typeof JSEvents.fullscreenEnabled() === 'undefined') { - return -1; - } else { - return -3; - } - } - - if (strategy.canvasResizedCallback) { - Module['dynCall_iiii'](strategy.canvasResizedCallback, 37, 0, strategy.canvasResizedCallbackUserData); - } - - return 0; - },fillPointerlockChangeEventData:function (eventStruct, e) { - var pointerLockElement = document.pointerLockElement || document.mozPointerLockElement || document.webkitPointerLockElement || document.msPointerLockElement; - var isPointerlocked = !!pointerLockElement; - HEAP32[((eventStruct)>>2)]=isPointerlocked; - var nodeName = JSEvents.getNodeNameForTarget(pointerLockElement); - var id = (pointerLockElement && pointerLockElement.id) ? pointerLockElement.id : ''; - stringToUTF8(nodeName, eventStruct + 4, 128); - stringToUTF8(id, eventStruct + 132, 128); - },registerPointerlockChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.pointerlockChangeEvent) { - JSEvents.pointerlockChangeEvent = _malloc( 260 ); - } - - if (!target) { - target = document; // Pointer lock change events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillPointerlockChangeEventData(JSEvents.pointerlockChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.pointerlockChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerPointerlockErrorEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!target) { - target = document; // Pointer lock events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },requestPointerLock:function (target) { - if (target.requestPointerLock) { - target.requestPointerLock(); - } else if (target.mozRequestPointerLock) { - target.mozRequestPointerLock(); - } else if (target.webkitRequestPointerLock) { - target.webkitRequestPointerLock(); - } else if (target.msRequestPointerLock) { - target.msRequestPointerLock(); - } else { - // document.body is known to accept pointer lock, so use that to differentiate if the user passed a bad element, - // or if the whole browser just doesn't support the feature. - if (document.body.requestPointerLock || document.body.mozRequestPointerLock || document.body.webkitRequestPointerLock || document.body.msRequestPointerLock) { - return -3; - } else { - return -1; - } - } - return 0; - },fillVisibilityChangeEventData:function (eventStruct, e) { - var visibilityStates = [ "hidden", "visible", "prerender", "unloaded" ]; - var visibilityState = visibilityStates.indexOf(document.visibilityState); - - HEAP32[((eventStruct)>>2)]=document.hidden; - HEAP32[(((eventStruct)+(4))>>2)]=visibilityState; - },registerVisibilityChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.visibilityChangeEvent) { - JSEvents.visibilityChangeEvent = _malloc( 8 ); - } - - if (!target) { - target = document; // Visibility change events need to be captured from 'document' by default instead of 'window' - } else { - target = JSEvents.findEventTarget(target); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillVisibilityChangeEventData(JSEvents.visibilityChangeEvent, e); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.visibilityChangeEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerTouchEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.touchEvent) { - JSEvents.touchEvent = _malloc( 1684 ); - } - - target = JSEvents.findEventTarget(target); - - var handlerFunc = function(event) { - var e = event || window.event; - - var touches = {}; - for(var i = 0; i < e.touches.length; ++i) { - var touch = e.touches[i]; - touches[touch.identifier] = touch; - } - for(var i = 0; i < e.changedTouches.length; ++i) { - var touch = e.changedTouches[i]; - touches[touch.identifier] = touch; - touch.changed = true; - } - for(var i = 0; i < e.targetTouches.length; ++i) { - var touch = e.targetTouches[i]; - touches[touch.identifier].onTarget = true; - } - - var ptr = JSEvents.touchEvent; - HEAP32[(((ptr)+(4))>>2)]=e.ctrlKey; - HEAP32[(((ptr)+(8))>>2)]=e.shiftKey; - HEAP32[(((ptr)+(12))>>2)]=e.altKey; - HEAP32[(((ptr)+(16))>>2)]=e.metaKey; - ptr += 20; // Advance to the start of the touch array. - var canvasRect = Module['canvas'] ? Module['canvas'].getBoundingClientRect() : undefined; - var targetRect = JSEvents.getBoundingClientRectOrZeros(target); - var numTouches = 0; - for(var i in touches) { - var t = touches[i]; - HEAP32[((ptr)>>2)]=t.identifier; - HEAP32[(((ptr)+(4))>>2)]=t.screenX; - HEAP32[(((ptr)+(8))>>2)]=t.screenY; - HEAP32[(((ptr)+(12))>>2)]=t.clientX; - HEAP32[(((ptr)+(16))>>2)]=t.clientY; - HEAP32[(((ptr)+(20))>>2)]=t.pageX; - HEAP32[(((ptr)+(24))>>2)]=t.pageY; - HEAP32[(((ptr)+(28))>>2)]=t.changed; - HEAP32[(((ptr)+(32))>>2)]=t.onTarget; - if (canvasRect) { - HEAP32[(((ptr)+(44))>>2)]=t.clientX - canvasRect.left; - HEAP32[(((ptr)+(48))>>2)]=t.clientY - canvasRect.top; - } else { - HEAP32[(((ptr)+(44))>>2)]=0; - HEAP32[(((ptr)+(48))>>2)]=0; - } - HEAP32[(((ptr)+(36))>>2)]=t.clientX - targetRect.left; - HEAP32[(((ptr)+(40))>>2)]=t.clientY - targetRect.top; - - ptr += 52; - - if (++numTouches >= 32) { - break; - } - } - HEAP32[((JSEvents.touchEvent)>>2)]=numTouches; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.touchEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: target, - allowsDeferredCalls: eventTypeString == 'touchstart' || eventTypeString == 'touchend', - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },fillGamepadEventData:function (eventStruct, e) { - HEAPF64[((eventStruct)>>3)]=e.timestamp; - for(var i = 0; i < e.axes.length; ++i) { - HEAPF64[(((eventStruct+i*8)+(16))>>3)]=e.axes[i]; - } - for(var i = 0; i < e.buttons.length; ++i) { - if (typeof(e.buttons[i]) === 'object') { - HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i].value; - } else { - HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i]; - } - } - for(var i = 0; i < e.buttons.length; ++i) { - if (typeof(e.buttons[i]) === 'object') { - HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i].pressed; - } else { - HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i] == 1.0; - } - } - HEAP32[(((eventStruct)+(1296))>>2)]=e.connected; - HEAP32[(((eventStruct)+(1300))>>2)]=e.index; - HEAP32[(((eventStruct)+(8))>>2)]=e.axes.length; - HEAP32[(((eventStruct)+(12))>>2)]=e.buttons.length; - stringToUTF8(e.id, eventStruct + 1304, 64); - stringToUTF8(e.mapping, eventStruct + 1368, 64); - },registerGamepadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.gamepadEvent) { - JSEvents.gamepadEvent = _malloc( 1432 ); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillGamepadEventData(JSEvents.gamepadEvent, e.gamepad); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.gamepadEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: true, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerBeforeUnloadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - var handlerFunc = function(event) { - var e = event || window.event; - - var confirmationMessage = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); - - if (confirmationMessage) { - confirmationMessage = Pointer_stringify(confirmationMessage); - } - if (confirmationMessage) { - e.preventDefault(); - e.returnValue = confirmationMessage; - return confirmationMessage; - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },battery:function () { return navigator.battery || navigator.mozBattery || navigator.webkitBattery; },fillBatteryEventData:function (eventStruct, e) { - HEAPF64[((eventStruct)>>3)]=e.chargingTime; - HEAPF64[(((eventStruct)+(8))>>3)]=e.dischargingTime; - HEAPF64[(((eventStruct)+(16))>>3)]=e.level; - HEAP32[(((eventStruct)+(24))>>2)]=e.charging; - },registerBatteryEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!JSEvents.batteryEvent) { - JSEvents.batteryEvent = _malloc( 32 ); - } - - var handlerFunc = function(event) { - var e = event || window.event; - - JSEvents.fillBatteryEventData(JSEvents.batteryEvent, JSEvents.battery()); - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.batteryEvent, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - },registerWebGlEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { - if (!target) { - target = Module['canvas']; - } - var handlerFunc = function(event) { - var e = event || window.event; - - var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); - if (shouldCancel) { - e.preventDefault(); - } - }; - - var eventHandler = { - target: JSEvents.findEventTarget(target), - allowsDeferredCalls: false, - eventTypeString: eventTypeString, - callbackfunc: callbackfunc, - handlerFunc: handlerFunc, - useCapture: useCapture - }; - JSEvents.registerOrRemoveHandler(eventHandler); - }};function __emscripten_sample_gamepad_data() { - // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. - if (!JSEvents.numGamepadsConnected) return; - - // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation. - if (Browser.mainLoop.currentFrameNumber !== JSEvents.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) { - JSEvents.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null); - JSEvents.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber; - } - }function _emscripten_get_gamepad_status(index, gamepadState) { - __emscripten_sample_gamepad_data(); - if (!JSEvents.lastGamepadState) return -1; - - // INVALID_PARAM is returned on a Gamepad index that never was there. - if (index < 0 || index >= JSEvents.lastGamepadState.length) return -5; - - // NO_DATA is returned on a Gamepad index that was removed. - // For previously disconnected gamepads there should be an empty slot (null/undefined/false) at the index. - // This is because gamepads must keep their original position in the array. - // For example, removing the first of two gamepads produces [null/undefined/false, gamepad]. - if (!JSEvents.lastGamepadState[index]) return -7; - - JSEvents.fillGamepadEventData(gamepadState, JSEvents.lastGamepadState[index]); - return 0; - } - - var _llvm_pow_f64=Math_pow; - - function _emscripten_glCopyTexImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } - - function _emscripten_glTexParameterfv(target, pname, params) { - var param = HEAPF32[((params)>>2)]; - GLctx.texParameterf(target, pname, param); - } - - function _emscripten_glLinkProgram(program) { - GLctx.linkProgram(GL.programs[program]); - GL.programInfos[program] = null; // uniforms no longer keep the same names after linking - GL.populateUniformTable(program); - } - - function _emscripten_glUniform3f(location, v0, v1, v2) { - GLctx.uniform3f(GL.uniforms[location], v0, v1, v2); - } - - function _emscripten_glGetObjectParameterivARB() { - Module['printErr']('missing function: emscripten_glGetObjectParameterivARB'); abort(-1); - } - - function _emscripten_glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } - - function _emscripten_glUniform3i(location, v0, v1, v2) { - GLctx.uniform3i(GL.uniforms[location], v0, v1, v2); - } - - function _emscripten_glStencilOp(x0, x1, x2) { GLctx['stencilOp'](x0, x1, x2) } - - function _glCreateShader(shaderType) { - var id = GL.getNewId(GL.shaders); - GL.shaders[id] = GLctx.createShader(shaderType); - return id; - } - - function _glUniform1i(location, v0) { - GLctx.uniform1i(GL.uniforms[location], v0); - } - - function _emscripten_glBindAttribLocation(program, index, name) { - name = Pointer_stringify(name); - GLctx.bindAttribLocation(GL.programs[program], index, name); - } - - function _glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { - GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); - } - - function _glDisable(x0) { GLctx['disable'](x0) } - - function _emscripten_glEnableVertexAttribArray(index) { - GLctx.enableVertexAttribArray(index); - } - - - - function _glfwMakeContextCurrent(winid) {} - - function _emscripten_set_touchcancel_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 25, "touchcancel"); - return 0; - } - - function ___lock() {} - - function _emscripten_glBlendFuncSeparate(x0, x1, x2, x3) { GLctx['blendFuncSeparate'](x0, x1, x2, x3) } - - function _glCullFace(x0) { GLctx['cullFace'](x0) } - - function _emscripten_glGetVertexAttribPointerv(index, pname, pointer) { - if (!pointer) { - // GLES2 specification does not specify how to behave if pointer is a null pointer. Since calling this function does not make sense - // if pointer == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((pointer)>>2)]=GLctx.getVertexAttribOffset(index, pname); - } - - function _emscripten_glVertexAttrib3f(x0, x1, x2, x3) { GLctx['vertexAttrib3f'](x0, x1, x2, x3) } - - function _emscripten_glEnable(x0) { GLctx['enable'](x0) } - - function _emscripten_glNormalPointer() { - Module['printErr']('missing function: emscripten_glNormalPointer'); abort(-1); - } - - - var EGL={errorCode:12288,defaultDisplayInitialized:false,currentContext:0,currentReadSurface:0,currentDrawSurface:0,stringCache:{},setErrorCode:function (code) { - EGL.errorCode = code; - },chooseConfig:function (display, attribList, config, config_size, numConfigs) { - if (display != 62000 /* Magic ID for Emscripten 'default display' */) { - EGL.setErrorCode(0x3008 /* EGL_BAD_DISPLAY */); - return 0; - } - // TODO: read attribList. - if ((!config || !config_size) && !numConfigs) { - EGL.setErrorCode(0x300C /* EGL_BAD_PARAMETER */); - return 0; - } - if (numConfigs) { - HEAP32[((numConfigs)>>2)]=1; // Total number of supported configs: 1. - } - if (config && config_size > 0) { - HEAP32[((config)>>2)]=62002; - } - - EGL.setErrorCode(0x3000 /* EGL_SUCCESS */); - return 1; - }};function _eglGetProcAddress(name_) { - return _emscripten_GetProcAddress(name_); - } - - function _glDeleteProgram(id) { - if (!id) return; - var program = GL.programs[id]; - if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteProgram(program); - program.name = 0; - GL.programs[id] = null; - GL.programInfos[id] = null; - } - - function _emscripten_get_pointerlock_status(pointerlockStatus) { - if (pointerlockStatus) JSEvents.fillPointerlockChangeEventData(pointerlockStatus); - if (!document.body || (!document.body.requestPointerLock && !document.body.mozRequestPointerLock && !document.body.webkitRequestPointerLock && !document.body.msRequestPointerLock)) { - return -1; - } - return 0; - } - - function _glAttachShader(program, shader) { - GLctx.attachShader(GL.programs[program], - GL.shaders[shader]); - } - - function _glfwGetPrimaryMonitor() { - return 1; - } - - - function emscriptenWebGLGetVertexAttrib(index, pname, params, type) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if params == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - var data = GLctx.getVertexAttrib(index, pname); - if (pname == 0x889F/*VERTEX_ATTRIB_ARRAY_BUFFER_BINDING*/) { - HEAP32[((params)>>2)]=data["name"]; - } else if (typeof data == 'number' || typeof data == 'boolean') { - switch (type) { - case 'Integer': HEAP32[((params)>>2)]=data; break; - case 'Float': HEAPF32[((params)>>2)]=data; break; - case 'FloatToInteger': HEAP32[((params)>>2)]=Math.fround(data); break; - default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; - } - } else { - for (var i = 0; i < data.length; i++) { - switch (type) { - case 'Integer': HEAP32[(((params)+(i*4))>>2)]=data[i]; break; - case 'Float': HEAPF32[(((params)+(i*4))>>2)]=data[i]; break; - case 'FloatToInteger': HEAP32[(((params)+(i*4))>>2)]=Math.fround(data[i]); break; - default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; - } - } - } - }function _emscripten_glGetVertexAttribfv(index, pname, params) { - // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), - // otherwise the results are undefined. (GLES3 spec 6.1.12) - emscriptenWebGLGetVertexAttrib(index, pname, params, 'Float'); - } - - function _emscripten_set_touchstart_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 22, "touchstart"); - return 0; - } - - function _emscripten_glDeleteShader(id) { - if (!id) return; - var shader = GL.shaders[id]; - if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteShader(shader); - GL.shaders[id] = null; - } - - function _emscripten_glVertexPointer(){ throw 'Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } - - function _emscripten_glDeleteBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((buffers)+(i*4))>>2)]; - var buffer = GL.buffers[id]; - - // From spec: "glDeleteBuffers silently ignores 0's and names that do not - // correspond to existing buffer objects." - if (!buffer) continue; - - GLctx.deleteBuffer(buffer); - buffer.name = 0; - GL.buffers[id] = null; - - if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; - if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; - } - } - - function _emscripten_glTexParameteriv(target, pname, params) { - var param = HEAP32[((params)>>2)]; - GLctx.texParameteri(target, pname, param); - } - - function _glDrawElements(mode, count, type, indices) { - - GLctx.drawElements(mode, count, type, indices); - - } - - function _glfwTerminate() { - window.removeEventListener("gamepadconnected", GLFW.onGamepadConnected, true); - window.removeEventListener("gamepaddisconnected", GLFW.onGamepadDisconnected, true); - window.removeEventListener("keydown", GLFW.onKeydown, true); - window.removeEventListener("keypress", GLFW.onKeyPress, true); - window.removeEventListener("keyup", GLFW.onKeyup, true); - window.removeEventListener("blur", GLFW.onBlur, true); - Module["canvas"].removeEventListener("mousemove", GLFW.onMousemove, true); - Module["canvas"].removeEventListener("mousedown", GLFW.onMouseButtonDown, true); - Module["canvas"].removeEventListener("mouseup", GLFW.onMouseButtonUp, true); - Module["canvas"].removeEventListener('wheel', GLFW.onMouseWheel, true); - Module["canvas"].removeEventListener('mousewheel', GLFW.onMouseWheel, true); - Module["canvas"].removeEventListener('mouseenter', GLFW.onMouseenter, true); - Module["canvas"].removeEventListener('mouseleave', GLFW.onMouseleave, true); - Module["canvas"].removeEventListener('drop', GLFW.onDrop, true); - Module["canvas"].removeEventListener('dragover', GLFW.onDragover, true); - - - Module["canvas"].width = Module["canvas"].height = 1; - GLFW.windows = null; - GLFW.active = null; - } - - function _emscripten_glUniformMatrix2fv(location, count, transpose, value) { - - - var view; - if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[4*count-1]; - for (var i = 0; i < 4*count; i += 4) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); - } - GLctx.uniformMatrix2fv(GL.uniforms[location], !!transpose, view); - } - - function ___syscall5(which, varargs) {SYSCALLS.varargs = varargs; - try { - // open - var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get() // optional TODO - var stream = FS.open(pathname, flags, mode); - return stream.fd; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; - try { - // close - var stream = SYSCALLS.getStreamFromFD(); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function _llvm_stacksave() { - var self = _llvm_stacksave; - if (!self.LLVM_SAVEDSTACKS) { - self.LLVM_SAVEDSTACKS = []; - } - self.LLVM_SAVEDSTACKS.push(Runtime.stackSave()); - return self.LLVM_SAVEDSTACKS.length-1; - } - - function _emscripten_glGetVertexAttribiv(index, pname, params) { - // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), - // otherwise the results are undefined. (GLES3 spec 6.1.12) - emscriptenWebGLGetVertexAttrib(index, pname, params, 'FloatToInteger'); - } - - function _emscripten_glUniformMatrix4fv(location, count, transpose, value) { - - - var view; - if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[16*count-1]; - for (var i = 0; i < 16*count; i += 16) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; - view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; - view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; - view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; - view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; - view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; - view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; - view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; - view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; - view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; - view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; - view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); - } - GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); - } - - function _emscripten_glDrawArraysInstanced(mode, first, count, primcount) { - GLctx['drawArraysInstanced'](mode, first, count, primcount); - } - - function _emscripten_glEnableClientState() { - Module['printErr']('missing function: emscripten_glEnableClientState'); abort(-1); - } - - function _emscripten_glGetPointerv() { - Module['printErr']('missing function: emscripten_glGetPointerv'); abort(-1); - } - - function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; - try { - // llseek - var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); - // NOTE: offset_high is unused - Emscripten's off_t is 32-bit - var offset = offset_low; - FS.llseek(stream, offset, whence); - HEAP32[((result)>>2)]=stream.position; - if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; - try { - // writev - var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); - return SYSCALLS.doWritev(stream, iov, iovcnt); - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function _emscripten_glUniform1i(location, v0) { - GLctx.uniform1i(GL.uniforms[location], v0); - } - - function ___syscall145(which, varargs) {SYSCALLS.varargs = varargs; - try { - // readv - var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); - return SYSCALLS.doReadv(stream, iov, iovcnt); - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function _emscripten_glStencilMask(x0) { GLctx['stencilMask'](x0) } - - function _emscripten_glStencilFuncSeparate(x0, x1, x2, x3) { GLctx['stencilFuncSeparate'](x0, x1, x2, x3) } - - - - - - function _emscripten_set_touchend_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 23, "touchend"); - return 0; - } - - function _glUseProgram(program) { - GLctx.useProgram(program ? GL.programs[program] : null); - } - - function _emscripten_glDisableVertexAttribArray(index) { - GLctx.disableVertexAttribArray(index); - } - - function _emscripten_glVertexAttrib1f(x0, x1) { GLctx['vertexAttrib1f'](x0, x1) } - - function _emscripten_glFinish() { GLctx['finish']() } - - function _glDrawArrays(mode, first, count) { - - GLctx.drawArrays(mode, first, count); - - } - - function _emscripten_glDepthFunc(x0) { GLctx['depthFunc'](x0) } - - function _emscripten_get_num_gamepads() { - // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. - if (!JSEvents.numGamepadsConnected) return 0; - - __emscripten_sample_gamepad_data(); - if (!JSEvents.lastGamepadState) return -1; - return JSEvents.lastGamepadState.length; - } - - function ___assert_fail(condition, filename, line, func) { - ABORT = true; - throw 'Assertion failed: ' + Pointer_stringify(condition) + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function'] + ' at ' + stackTrace(); - } - - function _emscripten_glUniform4iv(location, count, value) { - - - GLctx.uniform4iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*16)>>2)); - } - - function _glClear(x0) { GLctx['clear'](x0) } - - function _emscripten_glLoadIdentity(){ throw 'Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } - - function _emscripten_glUniform3fv(location, count, value) { - - - var view; - if (3*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[3*count-1]; - for (var i = 0; i < 3*count; i += 3) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*12)>>2); - } - GLctx.uniform3fv(GL.uniforms[location], view); - } - - function _emscripten_glIsTexture(texture) { - var texture = GL.textures[texture]; - if (!texture) return 0; - return GLctx.isTexture(texture); - } - - function _glEnableVertexAttribArray(index) { - GLctx.enableVertexAttribArray(index); - } - - function _emscripten_glAttachShader(program, shader) { - GLctx.attachShader(GL.programs[program], - GL.shaders[shader]); - } - - function _glUniform4f(location, v0, v1, v2, v3) { - GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); - } - - function _emscripten_request_pointerlock(target, deferUntilInEventHandler) { - if (!target) target = '#canvas'; - target = JSEvents.findEventTarget(target); - if (!target) return -4; - if (!target.requestPointerLock && !target.mozRequestPointerLock && !target.webkitRequestPointerLock && !target.msRequestPointerLock) { - return -1; - } - - var canPerformRequests = JSEvents.canPerformEventHandlerRequests(); - - // Queue this function call if we're not currently in an event handler and the user saw it appropriate to do so. - if (!canPerformRequests) { - if (deferUntilInEventHandler) { - JSEvents.deferCall(JSEvents.requestPointerLock, 2 /* priority below fullscreen */, [target]); - return 1; - } else { - return -2; - } - } - - return JSEvents.requestPointerLock(target); - } - - - - var cttz_i8 = allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0], "i8", ALLOC_STATIC); - - function _glfwCreateWindow(width, height, title, monitor, share) { - return GLFW.createWindow(width, height, title, monitor, share); - } - - function _glfwDefaultWindowHints() { - GLFW.hints = GLFW.defaultHints; - } - - function _emscripten_glClearStencil(x0) { GLctx['clearStencil'](x0) } - - function _emscripten_glDetachShader(program, shader) { - GLctx.detachShader(GL.programs[program], - GL.shaders[shader]); - } - - function _emscripten_glDeleteVertexArrays(n, vaos) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((vaos)+(i*4))>>2)]; - GLctx['deleteVertexArray'](GL.vaos[id]); - GL.vaos[id] = null; - } - } - - function _glfwInit() { - if (GLFW.windows) return 1; // GL_TRUE - - GLFW.initialTime = GLFW.getTime(); - GLFW.hints = GLFW.defaultHints; - GLFW.windows = new Array() - GLFW.active = null; - - window.addEventListener("gamepadconnected", GLFW.onGamepadConnected, true); - window.addEventListener("gamepaddisconnected", GLFW.onGamepadDisconnected, true); - window.addEventListener("keydown", GLFW.onKeydown, true); - window.addEventListener("keypress", GLFW.onKeyPress, true); - window.addEventListener("keyup", GLFW.onKeyup, true); - window.addEventListener("blur", GLFW.onBlur, true); - Module["canvas"].addEventListener("mousemove", GLFW.onMousemove, true); - Module["canvas"].addEventListener("mousedown", GLFW.onMouseButtonDown, true); - Module["canvas"].addEventListener("mouseup", GLFW.onMouseButtonUp, true); - Module["canvas"].addEventListener('wheel', GLFW.onMouseWheel, true); - Module["canvas"].addEventListener('mousewheel', GLFW.onMouseWheel, true); - Module["canvas"].addEventListener('mouseenter', GLFW.onMouseenter, true); - Module["canvas"].addEventListener('mouseleave', GLFW.onMouseleave, true); - Module["canvas"].addEventListener('drop', GLFW.onDrop, true); - Module["canvas"].addEventListener('dragover', GLFW.onDragover, true); - - Browser.resizeListeners.push(function(width, height) { - GLFW.onCanvasResize(width, height); - }); - return 1; // GL_TRUE - } - - function _emscripten_glGetTexParameteriv(target, pname, params) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((params)>>2)]=GLctx.getTexParameter(target, pname); - } - - function _glfwSwapBuffers(winid) { - GLFW.swapBuffers(winid); - } - - function _emscripten_glGenerateMipmap(x0) { GLctx['generateMipmap'](x0) } - - function _emscripten_glCullFace(x0) { GLctx['cullFace'](x0) } - - function _emscripten_glUniform4f(location, v0, v1, v2, v3) { - GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); - } - - function _glDisableVertexAttribArray(index) { - GLctx.disableVertexAttribArray(index); - } - - function _emscripten_glUseProgram(program) { - GLctx.useProgram(program ? GL.programs[program] : null); - } - - function _emscripten_glHint(x0, x1) { GLctx['hint'](x0, x1) } - - function _emscripten_glUniform2fv(location, count, value) { - - - var view; - if (2*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[2*count-1]; - for (var i = 0; i < 2*count; i += 2) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*8)>>2); - } - GLctx.uniform2fv(GL.uniforms[location], view); - } - - function _glfwSwapInterval(interval) { - interval = Math.abs(interval); // GLFW uses negative values to enable GLX_EXT_swap_control_tear, which we don't have, so just treat negative and positive the same. - if (interval == 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 0); - else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, interval); - } - - function _glGetShaderInfoLog(shader, maxLength, length, infoLog) { - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _emscripten_glMatrixMode(){ throw 'Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } - - function _abort() { - Module['abort'](); - } - - function _emscripten_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) { - GLctx.framebufferRenderbuffer(target, attachment, renderbuffertarget, - GL.renderbuffers[renderbuffer]); - } - - function _emscripten_glDeleteFramebuffers(n, framebuffers) { - for (var i = 0; i < n; ++i) { - var id = HEAP32[(((framebuffers)+(i*4))>>2)]; - var framebuffer = GL.framebuffers[id]; - if (!framebuffer) continue; // GL spec: "glDeleteFramebuffers silently ignores 0s and names that do not correspond to existing framebuffer objects". - GLctx.deleteFramebuffer(framebuffer); - framebuffer.name = 0; - GL.framebuffers[id] = null; - } - } - - function _emscripten_glIsBuffer(buffer) { - var b = GL.buffers[buffer]; - if (!b) return 0; - return GLctx.isBuffer(b); - } - - function _emscripten_glUniform2iv(location, count, value) { - - - GLctx.uniform2iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*8)>>2)); - } - - function _emscripten_glVertexAttrib1fv(index, v) { - - GLctx.vertexAttrib1f(index, HEAPF32[v>>2]); - } - - function _glEnable(x0) { GLctx['enable'](x0) } - - function _emscripten_glGenFramebuffers(n, ids) { - for (var i = 0; i < n; ++i) { - var framebuffer = GLctx.createFramebuffer(); - if (!framebuffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((ids)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.framebuffers); - framebuffer.name = id; - GL.framebuffers[id] = framebuffer; - HEAP32[(((ids)+(i*4))>>2)]=id; - } - } - - - - function emscriptenWebGLComputeImageSize(width, height, sizePerPixel, alignment) { - function roundedToNextMultipleOf(x, y) { - return Math.floor((x + y - 1) / y) * y - } - var plainRowSize = width * sizePerPixel; - var alignedRowSize = roundedToNextMultipleOf(plainRowSize, alignment); - return (height <= 0) ? 0 : - ((height - 1) * alignedRowSize + plainRowSize); - }function emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) { - var sizePerPixel; - var numChannels; - switch(format) { - case 0x1906 /* GL_ALPHA */: - case 0x1909 /* GL_LUMINANCE */: - case 0x1902 /* GL_DEPTH_COMPONENT */: - numChannels = 1; - break; - case 0x190A /* GL_LUMINANCE_ALPHA */: - numChannels = 2; - break; - case 0x1907 /* GL_RGB */: - case 0x8C40 /* GL_SRGB_EXT */: - numChannels = 3; - break; - case 0x1908 /* GL_RGBA */: - case 0x8C42 /* GL_SRGB_ALPHA_EXT */: - numChannels = 4; - break; - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return null; - } - switch (type) { - case 0x1401 /* GL_UNSIGNED_BYTE */: - sizePerPixel = numChannels*1; - break; - case 0x1403 /* GL_UNSIGNED_SHORT */: - case 0x8D61 /* GL_HALF_FLOAT_OES */: - sizePerPixel = numChannels*2; - break; - case 0x1405 /* GL_UNSIGNED_INT */: - case 0x1406 /* GL_FLOAT */: - sizePerPixel = numChannels*4; - break; - case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: - sizePerPixel = 4; - break; - case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: - case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: - case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: - sizePerPixel = 2; - break; - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return null; - } - var bytes = emscriptenWebGLComputeImageSize(width, height, sizePerPixel, GL.unpackAlignment); - switch(type) { - case 0x1401 /* GL_UNSIGNED_BYTE */: - return HEAPU8.subarray((pixels),(pixels+bytes)); - case 0x1406 /* GL_FLOAT */: - return HEAPF32.subarray((pixels)>>2,(pixels+bytes)>>2); - case 0x1405 /* GL_UNSIGNED_INT */: - case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: - return HEAPU32.subarray((pixels)>>2,(pixels+bytes)>>2); - case 0x1403 /* GL_UNSIGNED_SHORT */: - case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: - case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: - case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: - case 0x8D61 /* GL_HALF_FLOAT_OES */: - return HEAPU16.subarray((pixels)>>1,(pixels+bytes)>>1); - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return null; - } - }function _emscripten_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) { - var pixelData = null; - if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, 0); - GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData); - } - - function _emscripten_glPolygonOffset(x0, x1) { GLctx['polygonOffset'](x0, x1) } - - var _emscripten_asm_const_int=true; - - function _emscripten_glUniform2f(location, v0, v1) { - GLctx.uniform2f(GL.uniforms[location], v0, v1); - } - - function _glGetAttribLocation(program, name) { - program = GL.programs[program]; - name = Pointer_stringify(name); - return GLctx.getAttribLocation(program, name); - } - - function _glfwWindowHint(target, hint) { - GLFW.hints[target] = hint; - } - - function _emscripten_glUniform2i(location, v0, v1) { - GLctx.uniform2i(GL.uniforms[location], v0, v1); - } - - function _glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } - - function _glCreateProgram() { - var id = GL.getNewId(GL.programs); - var program = GLctx.createProgram(); - program.name = id; - GL.programs[id] = program; - return id; - } - - function _emscripten_glDeleteRenderbuffers(n, renderbuffers) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((renderbuffers)+(i*4))>>2)]; - var renderbuffer = GL.renderbuffers[id]; - if (!renderbuffer) continue; // GL spec: "glDeleteRenderbuffers silently ignores 0s and names that do not correspond to existing renderbuffer objects". - GLctx.deleteRenderbuffer(renderbuffer); - renderbuffer.name = 0; - GL.renderbuffers[id] = null; - } - } - - function _emscripten_glGetBufferParameteriv(target, value, data) { - if (!data) { - // GLES2 specification does not specify how to behave if data is a null pointer. Since calling this function does not make sense - // if data == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((data)>>2)]=GLctx.getBufferParameter(target, value); - } - - - function emscriptenWebGLGetUniform(program, location, params, type) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if params == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - var data = GLctx.getUniform(GL.programs[program], GL.uniforms[location]); - if (typeof data == 'number' || typeof data == 'boolean') { - switch (type) { - case 'Integer': HEAP32[((params)>>2)]=data; break; - case 'Float': HEAPF32[((params)>>2)]=data; break; - default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; - } - } else { - for (var i = 0; i < data.length; i++) { - switch (type) { - case 'Integer': HEAP32[(((params)+(i*4))>>2)]=data[i]; break; - case 'Float': HEAPF32[(((params)+(i*4))>>2)]=data[i]; break; - default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; - } - } - } - }function _emscripten_glGetUniformiv(program, location, params) { - emscriptenWebGLGetUniform(program, location, params, 'Integer'); - } - - function _emscripten_glDepthMask(flag) { - GLctx.depthMask(!!flag); - } - - - function _emscripten_glDepthRangef(x0, x1) { GLctx['depthRange'](x0, x1) } - - function _emscripten_glDepthRange(x0, x1) { GLctx['depthRange'](x0, x1) } - - function _emscripten_set_fullscreenchange_callback(target, userData, useCapture, callbackfunc) { - if (typeof JSEvents.fullscreenEnabled() === 'undefined') return -1; - if (!target) target = document; - else { - target = JSEvents.findEventTarget(target); - if (!target) return -4; - } - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "fullscreenchange"); - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "mozfullscreenchange"); - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "webkitfullscreenchange"); - JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "msfullscreenchange"); - return 0; - } - - - - - function _emscripten_glGetShaderPrecisionFormat(shaderType, precisionType, range, precision) { - var result = GLctx.getShaderPrecisionFormat(shaderType, precisionType); - HEAP32[((range)>>2)]=result.rangeMin; - HEAP32[(((range)+(4))>>2)]=result.rangeMax; - HEAP32[((precision)>>2)]=result.precision; - } - - function _emscripten_glUniform1fv(location, count, value) { - - - var view; - if (count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[count-1]; - for (var i = 0; i < count; ++i) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*4)>>2); - } - GLctx.uniform1fv(GL.uniforms[location], view); - } - - function _glfwSetMouseButtonCallback(winid, cbfun) { - GLFW.setMouseButtonCallback(winid, cbfun); - } - - function _emscripten_set_gamepaddisconnected_callback(userData, useCapture, callbackfunc) { - if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; - JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 27, "gamepaddisconnected"); - return 0; - } - - function _emscripten_glBindProgramARB() { - Module['printErr']('missing function: emscripten_glBindProgramARB'); abort(-1); - } - - function _emscripten_glBindTexture(target, texture) { - GLctx.bindTexture(target, texture ? GL.textures[texture] : null); - } - - function _emscripten_glCheckFramebufferStatus(x0) { return GLctx['checkFramebufferStatus'](x0) } - - function _emscripten_glDeleteProgram(id) { - if (!id) return; - var program = GL.programs[id]; - if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteProgram(program); - program.name = 0; - GL.programs[id] = null; - GL.programInfos[id] = null; - } - - function _emscripten_glDisable(x0) { GLctx['disable'](x0) } - - function _emscripten_glVertexAttrib3fv(index, v) { - - GLctx.vertexAttrib3f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2]); - } - - function _glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } - - function _emscripten_glGetActiveAttrib(program, index, bufSize, length, size, type, name) { - program = GL.programs[program]; - var info = GLctx.getActiveAttrib(program, index); - if (!info) return; // If an error occurs, nothing will be written to length, size and type and name. - - if (bufSize > 0 && name) { - var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - - if (size) HEAP32[((size)>>2)]=info.size; - if (type) HEAP32[((type)>>2)]=info.type; - } - - function _emscripten_glIsFramebuffer(framebuffer) { - var fb = GL.framebuffers[framebuffer]; - if (!fb) return 0; - return GLctx.isFramebuffer(fb); - } - - function _emscripten_glLineWidth(x0) { GLctx['lineWidth'](x0) } - - function _glfwGetCursorPos(winid, x, y) { - GLFW.getCursorPos(winid, x, y); - } - - function _emscripten_glGetString(name_) { - if (GL.stringCache[name_]) return GL.stringCache[name_]; - var ret; - switch(name_) { - case 0x1F00 /* GL_VENDOR */: - case 0x1F01 /* GL_RENDERER */: - case 0x9245 /* UNMASKED_VENDOR_WEBGL */: - case 0x9246 /* UNMASKED_RENDERER_WEBGL */: - ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); - break; - case 0x1F02 /* GL_VERSION */: - var glVersion = GLctx.getParameter(GLctx.VERSION); - // return GLES version string corresponding to the version of the WebGL context - { - glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; - } - ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); - break; - case 0x1F03 /* GL_EXTENSIONS */: - var exts = GLctx.getSupportedExtensions(); - var gl_exts = []; - for (var i = 0; i < exts.length; ++i) { - gl_exts.push(exts[i]); - gl_exts.push("GL_" + exts[i]); - } - ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); - break; - case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: - var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); - // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' - var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; - var ver_num = glslVersion.match(ver_re); - if (ver_num !== null) { - if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits - glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; - } - ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); - break; - default: - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - return 0; - } - GL.stringCache[name_] = ret; - return ret; - } - - function _emscripten_glGetAttribLocation(program, name) { - program = GL.programs[program]; - name = Pointer_stringify(name); - return GLctx.getAttribLocation(program, name); - } - - function _emscripten_glRotatef() { - Module['printErr']('missing function: emscripten_glRotatef'); abort(-1); - } - - - function emscriptenWebGLGet(name_, p, type) { - // Guard against user passing a null pointer. - // Note that GLES2 spec does not say anything about how passing a null pointer should be treated. - // Testing on desktop core GL 3, the application crashes on glGetIntegerv to a null pointer, but - // better to report an error instead of doing anything random. - if (!p) { - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - var ret = undefined; - switch(name_) { // Handle a few trivial GLES values - case 0x8DFA: // GL_SHADER_COMPILER - ret = 1; - break; - case 0x8DF8: // GL_SHADER_BINARY_FORMATS - if (type !== 'Integer' && type !== 'Integer64') { - GL.recordError(0x0500); // GL_INVALID_ENUM - } - return; // Do not write anything to the out pointer, since no binary formats are supported. - case 0x8DF9: // GL_NUM_SHADER_BINARY_FORMATS - ret = 0; - break; - case 0x86A2: // GL_NUM_COMPRESSED_TEXTURE_FORMATS - // WebGL doesn't have GL_NUM_COMPRESSED_TEXTURE_FORMATS (it's obsolete since GL_COMPRESSED_TEXTURE_FORMATS returns a JS array that can be queried for length), - // so implement it ourselves to allow C++ GLES2 code get the length. - var formats = GLctx.getParameter(0x86A3 /*GL_COMPRESSED_TEXTURE_FORMATS*/); - ret = formats.length; - break; - } - - if (ret === undefined) { - var result = GLctx.getParameter(name_); - switch (typeof(result)) { - case "number": - ret = result; - break; - case "boolean": - ret = result ? 1 : 0; - break; - case "string": - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - case "object": - if (result === null) { - // null is a valid result for some (e.g., which buffer is bound - perhaps nothing is bound), but otherwise - // can mean an invalid name_, which we need to report as an error - switch(name_) { - case 0x8894: // ARRAY_BUFFER_BINDING - case 0x8B8D: // CURRENT_PROGRAM - case 0x8895: // ELEMENT_ARRAY_BUFFER_BINDING - case 0x8CA6: // FRAMEBUFFER_BINDING - case 0x8CA7: // RENDERBUFFER_BINDING - case 0x8069: // TEXTURE_BINDING_2D - case 0x8514: { // TEXTURE_BINDING_CUBE_MAP - ret = 0; - break; - } - default: { - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - } - } - } else if (result instanceof Float32Array || - result instanceof Uint32Array || - result instanceof Int32Array || - result instanceof Array) { - for (var i = 0; i < result.length; ++i) { - switch (type) { - case 'Integer': HEAP32[(((p)+(i*4))>>2)]=result[i]; break; - case 'Float': HEAPF32[(((p)+(i*4))>>2)]=result[i]; break; - case 'Boolean': HEAP8[(((p)+(i))>>0)]=result[i] ? 1 : 0; break; - default: throw 'internal glGet error, bad type: ' + type; - } - } - return; - } else if (result instanceof WebGLBuffer || - result instanceof WebGLProgram || - result instanceof WebGLFramebuffer || - result instanceof WebGLRenderbuffer || - result instanceof WebGLTexture) { - ret = result.name | 0; - } else { - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - } - break; - default: - GL.recordError(0x0500); // GL_INVALID_ENUM - return; - } - } - - switch (type) { - case 'Integer64': (tempI64 = [ret>>>0,(tempDouble=ret,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((p)>>2)]=tempI64[0],HEAP32[(((p)+(4))>>2)]=tempI64[1]); break; - case 'Integer': HEAP32[((p)>>2)]=ret; break; - case 'Float': HEAPF32[((p)>>2)]=ret; break; - case 'Boolean': HEAP8[((p)>>0)]=ret ? 1 : 0; break; - default: throw 'internal glGet error, bad type: ' + type; - } - }function _emscripten_glGetIntegerv(name_, p) { - emscriptenWebGLGet(name_, p, 'Integer'); - } - - function _emscripten_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) { - var result = GLctx.getFramebufferAttachmentParameter(target, attachment, pname); - HEAP32[((params)>>2)]=result; - } - - function _llvm_stackrestore(p) { - var self = _llvm_stacksave; - var ret = self.LLVM_SAVEDSTACKS[p]; - self.LLVM_SAVEDSTACKS.splice(p, 1); - Runtime.stackRestore(ret); - } - - function _glfwSetWindowShouldClose(winid, value) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.shouldClose = value; - } - - function _emscripten_glClientActiveTexture() { - Module['printErr']('missing function: emscripten_glClientActiveTexture'); abort(-1); - } - - function _glGenBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var buffer = GLctx.createBuffer(); - if (!buffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.buffers); - buffer.name = id; - GL.buffers[id] = buffer; - HEAP32[(((buffers)+(i*4))>>2)]=id; - } - } - - - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.set(HEAPU8.subarray(src, src+num), dest); - return dest; - } - - function _emscripten_glGetShaderInfoLog(shader, maxLength, length, infoLog) { - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _glfwGetTime() { - return GLFW.getTime() - GLFW.initialTime; - } - - function _emscripten_glGetRenderbufferParameteriv(target, pname, params) { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if params == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((params)>>2)]=GLctx.getRenderbufferParameter(target, pname); - } - - function _emscripten_glStencilOpSeparate(x0, x1, x2, x3) { GLctx['stencilOpSeparate'](x0, x1, x2, x3) } - - function _emscripten_glReadPixels(x, y, width, height, format, type, pixels) { - var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, format); - if (!pixelData) { - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - return; - } - GLctx.readPixels(x, y, width, height, format, type, pixelData); - } - - function _emscripten_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) { - GLctx['compressedTexSubImage2D'](target, level, xoffset, yoffset, width, height, format, data ? HEAPU8.subarray((data),(data+imageSize)) : null); - } - - function _emscripten_glGetError() { - // First return any GL error generated by the emscripten library_gl.js interop layer. - if (GL.lastError) { - var error = GL.lastError; - GL.lastError = 0/*GL_NO_ERROR*/; - return error; - } else { // If there were none, return the GL error from the browser GL context. - return GLctx.getError(); - } - } - - function _emscripten_glFramebufferTexture2D(target, attachment, textarget, texture, level) { - GLctx.framebufferTexture2D(target, attachment, textarget, - GL.textures[texture], level); - } - - function _emscripten_glIsEnabled(x0) { return GLctx['isEnabled'](x0) } - - function _glClearDepthf(x0) { GLctx['clearDepth'](x0) } - - - - function _glGenTextures(n, textures) { - for (var i = 0; i < n; i++) { - var texture = GLctx.createTexture(); - if (!texture) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. - while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.textures); - texture.name = id; - GL.textures[id] = texture; - HEAP32[(((textures)+(i*4))>>2)]=id; - } - } - - function _emscripten_glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) } - - function _glDepthFunc(x0) { GLctx['depthFunc'](x0) } - - - - function _emscripten_glClearDepthf(x0) { GLctx['clearDepth'](x0) } - - function _emscripten_glClear(x0) { GLctx['clear'](x0) } - - function _emscripten_glBindBuffer(target, buffer) { - var bufferObj = buffer ? GL.buffers[buffer] : null; - - - GLctx.bindBuffer(target, bufferObj); - } - - function _emscripten_glGetUniformfv(program, location, params) { - emscriptenWebGLGetUniform(program, location, params, 'Float'); - } - - function _glGetProgramiv(program, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - if (program >= GL.counter) { - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - return; - } - - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { - HEAP32[((p)>>2)]=ptable.maxUniformLength; - } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { - if (ptable.maxAttributeLength == -1) { - var program = GL.programs[program]; - var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); - ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. - for (var i = 0; i < numAttribs; ++i) { - var activeAttrib = GLctx.getActiveAttrib(program, i); - ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxAttributeLength; - } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { - if (ptable.maxUniformBlockNameLength == -1) { - var program = GL.programs[program]; - var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); - ptable.maxUniformBlockNameLength = 0; - for (var i = 0; i < numBlocks; ++i) { - var activeBlockName = GLctx.getActiveUniformBlockName(program, i); - ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; - } else { - HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); - } - } - - function _glVertexAttribPointer(index, size, type, normalized, stride, ptr) { - GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); - } - - function _emscripten_exit_pointerlock() { - // Make sure no queued up calls will fire after this. - JSEvents.removeDeferredCalls(JSEvents.requestPointerLock); - - if (document.exitPointerLock) { - document.exitPointerLock(); - } else if (document.msExitPointerLock) { - document.msExitPointerLock(); - } else if (document.mozExitPointerLock) { - document.mozExitPointerLock(); - } else if (document.webkitExitPointerLock) { - document.webkitExitPointerLock(); - } else { - return -1; - } - return 0; - } - - function _glGetUniformLocation(program, name) { - name = Pointer_stringify(name); - - var arrayOffset = 0; - // If user passed an array accessor "[index]", parse the array index off the accessor. - if (name.indexOf(']', name.length-1) !== -1) { - var ls = name.lastIndexOf('['); - var arrayIndex = name.slice(ls+1, -1); - if (arrayIndex.length > 0) { - arrayOffset = parseInt(arrayIndex); - if (arrayOffset < 0) { - return -1; - } - } - name = name.slice(0, ls); - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - return -1; - } - var utable = ptable.uniforms; - var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] - if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. - return uniformInfo[1]+arrayOffset; - } else { - return -1; - } - } - - function _emscripten_glGetAttachedShaders(program, maxCount, count, shaders) { - var result = GLctx.getAttachedShaders(GL.programs[program]); - var len = result.length; - if (len > maxCount) { - len = maxCount; - } - HEAP32[((count)>>2)]=len; - for (var i = 0; i < len; ++i) { - var id = GL.shaders.indexOf(result[i]); - assert(id !== -1, 'shader not bound to local id'); - HEAP32[(((shaders)+(i*4))>>2)]=id; - } - } - - function _emscripten_glGenRenderbuffers(n, renderbuffers) { - for (var i = 0; i < n; i++) { - var renderbuffer = GLctx.createRenderbuffer(); - if (!renderbuffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((renderbuffers)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.renderbuffers); - renderbuffer.name = id; - GL.renderbuffers[id] = renderbuffer; - HEAP32[(((renderbuffers)+(i*4))>>2)]=id; - } - } - - function _emscripten_glFrontFace(x0) { GLctx['frontFace'](x0) } - - function _emscripten_glActiveTexture(x0) { GLctx['activeTexture'](x0) } - - function _emscripten_glUniform1iv(location, count, value) { - - - GLctx.uniform1iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*4)>>2)); - } - - function _emscripten_glTexCoordPointer() { - Module['printErr']('missing function: emscripten_glTexCoordPointer'); abort(-1); - } - - function _emscripten_glGetInfoLogARB() { - Module['printErr']('missing function: emscripten_glGetInfoLogARB'); abort(-1); - } - - - function __exit(status) { - // void _exit(int status); - // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html - Module['exit'](status); - }function _exit(status) { - __exit(status); - } - - function _emscripten_glRenderbufferStorage(x0, x1, x2, x3) { GLctx['renderbufferStorage'](x0, x1, x2, x3) } - - function _emscripten_glCopyTexSubImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexSubImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } - - function _glfwSetCursorPosCallback(winid, cbfun) { - GLFW.setCursorPosCallback(winid, cbfun); - } - - function _glBindAttribLocation(program, index, name) { - name = Pointer_stringify(name); - GLctx.bindAttribLocation(GL.programs[program], index, name); - } - - function _emscripten_glShaderBinary() { - GL.recordError(0x0500/*GL_INVALID_ENUM*/); - } - - function _emscripten_glIsProgram(program) { - var program = GL.programs[program]; - if (!program) return 0; - return GLctx.isProgram(program); - } - - function _emscripten_glBlendColor(x0, x1, x2, x3) { GLctx['blendColor'](x0, x1, x2, x3) } - - function _emscripten_glGetShaderiv(shader, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B88) { // GL_SHADER_SOURCE_LENGTH - var source = GLctx.getShaderSource(GL.shaders[shader]); - var sourceLength = (source === null || source.length == 0) ? 0 : source.length + 1; - HEAP32[((p)>>2)]=sourceLength; - } else { - HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); - } - } - - function _emscripten_glUniformMatrix3fv(location, count, transpose, value) { - - - var view; - if (9*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[9*count-1]; - for (var i = 0; i < 9*count; i += 9) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; - view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; - view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; - view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; - view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*36)>>2); - } - GLctx.uniformMatrix3fv(GL.uniforms[location], !!transpose, view); - } - - function _emscripten_glVertexAttrib2f(x0, x1, x2) { GLctx['vertexAttrib2f'](x0, x1, x2) } - - function _emscripten_glUniform4fv(location, count, value) { - - - var view; - if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[4*count-1]; - for (var i = 0; i < 4*count; i += 4) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); - } - GLctx.uniform4fv(GL.uniforms[location], view); - } - - function _glBufferSubData(target, offset, size, data) { - GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); - } - - function _llvm_exp2_f32(x) { - return Math.pow(2, x); - } - - function _glGetShaderiv(shader, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getShaderInfoLog(GL.shaders[shader]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B88) { // GL_SHADER_SOURCE_LENGTH - var source = GLctx.getShaderSource(GL.shaders[shader]); - var sourceLength = (source === null || source.length == 0) ? 0 : source.length + 1; - HEAP32[((p)>>2)]=sourceLength; - } else { - HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); - } - } - - function _emscripten_glBlendEquationSeparate(x0, x1) { GLctx['blendEquationSeparate'](x0, x1) } - - function _glfwSetWindowIconifyCallback(winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.windowIconifyFunc = cbfun; - } - - function _emscripten_glDrawRangeElements() { - Module['printErr']('missing function: emscripten_glDrawRangeElements'); abort(-1); - } - - function _emscripten_glGenTextures(n, textures) { - for (var i = 0; i < n; i++) { - var texture = GLctx.createTexture(); - if (!texture) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. - while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.textures); - texture.name = id; - GL.textures[id] = texture; - HEAP32[(((textures)+(i*4))>>2)]=id; - } - } - - function _emscripten_glVertexAttrib2fv(index, v) { - - GLctx.vertexAttrib2f(index, HEAPF32[v>>2], HEAPF32[v+4>>2]); - } - - function _emscripten_glGetActiveUniform(program, index, bufSize, length, size, type, name) { - program = GL.programs[program]; - var info = GLctx.getActiveUniform(program, index); - if (!info) return; // If an error occurs, nothing will be written to length, size, type and name. - - if (bufSize > 0 && name) { - var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - - if (size) HEAP32[((size)>>2)]=info.size; - if (type) HEAP32[((type)>>2)]=info.type; - } - - - - function _emscripten_glDeleteObjectARB() { - Module['printErr']('missing function: emscripten_glDeleteObjectARB'); abort(-1); - } - - function _emscripten_set_touchmove_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 24, "touchmove"); - return 0; - } - - function _emscripten_glUniform1f(location, v0) { - GLctx.uniform1f(GL.uniforms[location], v0); - } - - function _emscripten_glVertexAttribPointer(index, size, type, normalized, stride, ptr) { - GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); - } - - function _glShaderSource(shader, count, string, length) { - var source = GL.getSource(shader, count, string, length); - - - GLctx.shaderSource(GL.shaders[shader], source); - } - - function _emscripten_glDrawArrays(mode, first, count) { - - GLctx.drawArrays(mode, first, count); - - } - - function _emscripten_glGenBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var buffer = GLctx.createBuffer(); - if (!buffer) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.buffers); - buffer.name = id; - GL.buffers[id] = buffer; - HEAP32[(((buffers)+(i*4))>>2)]=id; - } - } - - function _emscripten_glClearDepth(x0) { GLctx['clearDepth'](x0) } - - function _emscripten_set_keypress_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerKeyEventCallback(target, userData, useCapture, callbackfunc, 1, "keypress"); - return 0; - } - - function _glfwSetCharCallback(winid, cbfun) { - GLFW.setCharCallback(winid, cbfun); - } - - function _emscripten_glGetUniformLocation(program, name) { - name = Pointer_stringify(name); - - var arrayOffset = 0; - // If user passed an array accessor "[index]", parse the array index off the accessor. - if (name.indexOf(']', name.length-1) !== -1) { - var ls = name.lastIndexOf('['); - var arrayIndex = name.slice(ls+1, -1); - if (arrayIndex.length > 0) { - arrayOffset = parseInt(arrayIndex); - if (arrayOffset < 0) { - return -1; - } - } - name = name.slice(0, ls); - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - return -1; - } - var utable = ptable.uniforms; - var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] - if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. - return uniformInfo[1]+arrayOffset; - } else { - return -1; - } - } - - function _glActiveTexture(x0) { GLctx['activeTexture'](x0) } - - function _glBindBuffer(target, buffer) { - var bufferObj = buffer ? GL.buffers[buffer] : null; - - - GLctx.bindBuffer(target, bufferObj); - } - - function _emscripten_glVertexAttrib4fv(index, v) { - - GLctx.vertexAttrib4f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2], HEAPF32[v+12>>2]); - } - - function _emscripten_glScissor(x0, x1, x2, x3) { GLctx['scissor'](x0, x1, x2, x3) } - - function _glfwSetCursorEnterCallback(winid, cbfun) { - var win = GLFW.WindowFromId(winid); - if (!win) return; - win.cursorEnterFunc = cbfun; - } - - - - function _glBufferData(target, size, data, usage) { - if (!data) { - GLctx.bufferData(target, size, usage); - } else { - GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); - } - } - - function _emscripten_glIsShader(shader) { - var s = GL.shaders[shader]; - if (!s) return 0; - return GLctx.isShader(s); - } - - function _emscripten_glDrawBuffers(n, bufs) { - - var bufArray = GL.tempFixedLengthArray[n]; - for (var i = 0; i < n; i++) { - bufArray[i] = HEAP32[(((bufs)+(i*4))>>2)]; - } - - GLctx['drawBuffers'](bufArray); - } - - function _glGetFloatv(name_, p) { - emscriptenWebGLGet(name_, p, 'Float'); - } - - function _emscripten_glBindFramebuffer(target, framebuffer) { - GLctx.bindFramebuffer(target, framebuffer ? GL.framebuffers[framebuffer] : null); - } - - function _emscripten_glBlendEquation(x0) { GLctx['blendEquation'](x0) } - - function _emscripten_glBufferSubData(target, offset, size, data) { - GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); - } - - function _emscripten_glBufferData(target, size, data, usage) { - if (!data) { - GLctx.bufferData(target, size, usage); - } else { - GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); - } - } - - - - - - function _emscripten_glGetShaderSource(shader, bufSize, length, source) { - var result = GLctx.getShaderSource(GL.shaders[shader]); - if (!result) return; // If an error occurs, nothing will be written to length or source. - if (bufSize > 0 && source) { - var numBytesWrittenExclNull = stringToUTF8(result, source, bufSize); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - - - function _glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } - - function _glfwSetKeyCallback(winid, cbfun) { - GLFW.setKeyCallback(winid, cbfun); - } - - function _emscripten_set_gamepadconnected_callback(userData, useCapture, callbackfunc) { - if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; - JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 26, "gamepadconnected"); - return 0; - } - - function _emscripten_glGetFloatv(name_, p) { - emscriptenWebGLGet(name_, p, 'Float'); - } - - function _glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { - - var pixelData = null; - if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); - GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); - } - - function _glGetProgramInfoLog(program, maxLength, length, infoLog) { - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _emscripten_glVertexAttribDivisor(index, divisor) { - GLctx['vertexAttribDivisor'](index, divisor); - } - - function _emscripten_glDrawElementsInstanced(mode, count, type, indices, primcount) { - GLctx['drawElementsInstanced'](mode, count, type, indices, primcount); - } - - function _emscripten_glDrawElements(mode, count, type, indices) { - - GLctx.drawElements(mode, count, type, indices); - - } - - function _glDeleteBuffers(n, buffers) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((buffers)+(i*4))>>2)]; - var buffer = GL.buffers[id]; - - // From spec: "glDeleteBuffers silently ignores 0's and names that do not - // correspond to existing buffer objects." - if (!buffer) continue; - - GLctx.deleteBuffer(buffer); - buffer.name = 0; - GL.buffers[id] = null; - - if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; - if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; - } - } - - function _emscripten_glCreateProgram() { - var id = GL.getNewId(GL.programs); - var program = GLctx.createProgram(); - program.name = id; - GL.programs[id] = program; - return id; - } - - function _emscripten_glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { - GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); - } - - function _emscripten_glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } - - function _emscripten_glBindVertexArray(vao) { - GLctx['bindVertexArray'](GL.vaos[vao]); - } - - function _emscripten_glLoadMatrixf() { - Module['printErr']('missing function: emscripten_glLoadMatrixf'); abort(-1); - } - - function _glDeleteShader(id) { - if (!id) return; - var shader = GL.shaders[id]; - if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteShader(shader); - GL.shaders[id] = null; - } - - function _emscripten_glGetProgramiv(program, pname, p) { - if (!p) { - // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - if (program >= GL.counter) { - GL.recordError(0x0501 /* GL_INVALID_VALUE */); - return; - } - - var ptable = GL.programInfos[program]; - if (!ptable) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - return; - } - - if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - HEAP32[((p)>>2)]=log.length + 1; - } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { - HEAP32[((p)>>2)]=ptable.maxUniformLength; - } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { - if (ptable.maxAttributeLength == -1) { - var program = GL.programs[program]; - var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); - ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. - for (var i = 0; i < numAttribs; ++i) { - var activeAttrib = GLctx.getActiveAttrib(program, i); - ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxAttributeLength; - } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { - if (ptable.maxUniformBlockNameLength == -1) { - var program = GL.programs[program]; - var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); - ptable.maxUniformBlockNameLength = 0; - for (var i = 0; i < numBlocks; ++i) { - var activeBlockName = GLctx.getActiveUniformBlockName(program, i); - ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); - } - } - HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; - } else { - HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); - } - } - - function _emscripten_glGetProgramInfoLog(program, maxLength, length, infoLog) { - var log = GLctx.getProgramInfoLog(GL.programs[program]); - if (log === null) log = '(unknown error)'; - - if (maxLength > 0 && infoLog) { - var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); - if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)]=0; - } - } - - function _emscripten_glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { - - var pixelData = null; - if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); - GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); - } - - function _glPixelStorei(pname, param) { - if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { - GL.packAlignment = param; - } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { - GL.unpackAlignment = param; - } - GLctx.pixelStorei(pname, param); - } - - function ___unlock() {} - - function _emscripten_glColorPointer() { - Module['printErr']('missing function: emscripten_glColorPointer'); abort(-1); - } - - function _glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } - - function _glfwDestroyWindow(winid) { - return GLFW.destroyWindow(winid); - } - - function _emscripten_glFlush() { GLctx['flush']() } - - function _glfwSetErrorCallback(cbfun) { - GLFW.errorFunc = cbfun; - } - - function _emscripten_glCreateShader(shaderType) { - var id = GL.getNewId(GL.shaders); - GL.shaders[id] = GLctx.createShader(shaderType); - return id; - } - - function _glUniformMatrix4fv(location, count, transpose, value) { - - - var view; - if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { - // avoid allocation when uploading few enough uniforms - view = GL.miniTempBufferViews[16*count-1]; - for (var i = 0; i < 16*count; i += 16) { - view[i] = HEAPF32[(((value)+(4*i))>>2)]; - view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; - view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; - view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; - view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; - view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; - view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; - view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; - view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; - view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; - view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; - view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; - view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; - view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; - view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; - view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; - } - } else { - view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); - } - GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); - } - - function _emscripten_glValidateProgram(program) { - GLctx.validateProgram(GL.programs[program]); - } - - function _glTexParameterf(x0, x1, x2) { GLctx['texParameterf'](x0, x1, x2) } - - function _emscripten_set_click_callback(target, userData, useCapture, callbackfunc) { - JSEvents.registerMouseEventCallback(target, userData, useCapture, callbackfunc, 4, "click"); - return 0; - } - - function _glFrontFace(x0) { GLctx['frontFace'](x0) } - - function _emscripten_glColorMask(red, green, blue, alpha) { - GLctx.colorMask(!!red, !!green, !!blue, !!alpha); - } - - function _emscripten_glPixelStorei(pname, param) { - if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { - GL.packAlignment = param; - } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { - GL.unpackAlignment = param; - } - GLctx.pixelStorei(pname, param); - } - - function _emscripten_glDeleteTextures(n, textures) { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((textures)+(i*4))>>2)]; - var texture = GL.textures[id]; - if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". - GLctx.deleteTexture(texture); - texture.name = 0; - GL.textures[id] = null; - } - } - - function _emscripten_glCompileShader(shader) { - GLctx.compileShader(GL.shaders[shader]); - } - - function _emscripten_glGenVertexArrays(n, arrays) { - - for (var i = 0; i < n; i++) { - var vao = GLctx['createVertexArray'](); - if (!vao) { - GL.recordError(0x0502 /* GL_INVALID_OPERATION */); - while(i < n) HEAP32[(((arrays)+(i++*4))>>2)]=0; - return; - } - var id = GL.getNewId(GL.vaos); - vao.name = id; - GL.vaos[id] = vao; - HEAP32[(((arrays)+(i*4))>>2)]=id; - } - } - - function _time(ptr) { - var ret = (Date.now()/1000)|0; - if (ptr) { - HEAP32[((ptr)>>2)]=ret; - } - return ret; - } - - function _emscripten_glGetBooleanv(name_, p) { - emscriptenWebGLGet(name_, p, 'Boolean'); - } - - function ___syscall221(which, varargs) {SYSCALLS.varargs = varargs; - try { - // fcntl64 - var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get(); - switch (cmd) { - case 0: { - var arg = SYSCALLS.get(); - if (arg < 0) { - return -ERRNO_CODES.EINVAL; - } - var newStream; - newStream = FS.open(stream.path, stream.flags, 0, arg); - return newStream.fd; - } - case 1: - case 2: - return 0; // FD_CLOEXEC makes no sense for a single process. - case 3: - return stream.flags; - case 4: { - var arg = SYSCALLS.get(); - stream.flags |= arg; - return 0; - } - case 12: - case 12: { - var arg = SYSCALLS.get(); - var offset = 0; - // We're always unlocked. - HEAP16[(((arg)+(offset))>>1)]=2; - return 0; - } - case 13: - case 14: - case 13: - case 14: - return 0; // Pretend that the locking is successful. - case 16: - case 8: - return -ERRNO_CODES.EINVAL; // These are for sockets. We don't have them fully implemented yet. - case 9: - // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves. - ___setErrNo(ERRNO_CODES.EINVAL); - return -1; - default: { - return -ERRNO_CODES.EINVAL; - } - } - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } -var GLctx; GL.init(); -if (ENVIRONMENT_IS_NODE) { - _emscripten_get_now = function _emscripten_get_now_actual() { - var t = process['hrtime'](); - return t[0] * 1e3 + t[1] / 1e6; - }; - } else if (typeof dateNow !== 'undefined') { - _emscripten_get_now = dateNow; - } else if (typeof self === 'object' && self['performance'] && typeof self['performance']['now'] === 'function') { - _emscripten_get_now = function() { return self['performance']['now'](); }; - } else if (typeof performance === 'object' && typeof performance['now'] === 'function') { - _emscripten_get_now = function() { return performance['now'](); }; - } else { - _emscripten_get_now = Date.now; - }; -Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."); Module["requestFullScreen"] = Module["requestFullscreen"]; Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice) }; - Module["requestFullscreen"] = function Module_requestFullscreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice) }; - Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) }; - Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) }; - Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() }; - Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() }; - Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() } - Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) }; -FS.staticInit();__ATINIT__.unshift(function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() });__ATMAIN__.push(function() { FS.ignorePermissions = false });__ATEXIT__.push(function() { FS.quit() });Module["FS_createFolder"] = FS.createFolder;Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createLink"] = FS.createLink;Module["FS_createDevice"] = FS.createDevice;Module["FS_unlink"] = FS.unlink;; -__ATINIT__.unshift(function() { TTY.init() });__ATEXIT__.push(function() { TTY.shutdown() });; -if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); }; -JSEvents.staticInit();; -DYNAMICTOP_PTR = allocate(1, "i32", ALLOC_STATIC); - -STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); - -STACK_MAX = STACK_BASE + TOTAL_STACK; - -DYNAMIC_BASE = Runtime.alignMemory(STACK_MAX); - -HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; - -staticSealed = true; // seal the static portion of memory - -assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); - - -function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vd(x) { Module["printErr"]("Invalid function pointer called with signature 'vd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vid(x) { Module["printErr"]("Invalid function pointer called with signature 'vid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viddd(x) { Module["printErr"]("Invalid function pointer called with signature 'viddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vidd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vidddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdi(x) { Module["printErr"]("Invalid function pointer called with signature 'vdi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdddddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vdd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viid(x) { Module["printErr"]("Invalid function pointer called with signature 'viid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function invoke_viiiii(index,a1,a2,a3,a4,a5) { - try { - Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vd(index,a1) { - try { - Module["dynCall_vd"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vid(index,a1,a2) { - try { - Module["dynCall_vid"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vi(index,a1) { - try { - Module["dynCall_vi"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vii(index,a1,a2) { - try { - Module["dynCall_vii"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_ii(index,a1) { - try { - return Module["dynCall_ii"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viddd(index,a1,a2,a3,a4) { - try { - Module["dynCall_viddd"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vidd(index,a1,a2,a3) { - try { - Module["dynCall_vidd"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_iiii(index,a1,a2,a3) { - try { - return Module["dynCall_iiii"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { - try { - Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { - try { - Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viii(index,a1,a2,a3) { - try { - Module["dynCall_viii"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vidddd(index,a1,a2,a3,a4,a5) { - try { - Module["dynCall_vidddd"](index,a1,a2,a3,a4,a5); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdi(index,a1,a2) { - try { - Module["dynCall_vdi"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { - try { - Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { - try { - Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_iii(index,a1,a2) { - try { - return Module["dynCall_iii"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_i(index) { - try { - return Module["dynCall_i"](index); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdddddd(index,a1,a2,a3,a4,a5,a6) { - try { - Module["dynCall_vdddddd"](index,a1,a2,a3,a4,a5,a6); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdddd(index,a1,a2,a3,a4) { - try { - Module["dynCall_vdddd"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vdd(index,a1,a2) { - try { - Module["dynCall_vdd"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_v(index) { - try { - Module["dynCall_v"](index); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viid(index,a1,a2,a3) { - try { - Module["dynCall_viid"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiii(index,a1,a2,a3,a4) { - try { - Module["dynCall_viiii"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; - -Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vd": nullFunc_vd, "nullFunc_vid": nullFunc_vid, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viddd": nullFunc_viddd, "nullFunc_vidd": nullFunc_vidd, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiiiiii": nullFunc_viiiiiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_viii": nullFunc_viii, "nullFunc_vidddd": nullFunc_vidddd, "nullFunc_vdi": nullFunc_vdi, "nullFunc_viiiiiii": nullFunc_viiiiiii, "nullFunc_viiiiiiiii": nullFunc_viiiiiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_i": nullFunc_i, "nullFunc_vdddddd": nullFunc_vdddddd, "nullFunc_vdddd": nullFunc_vdddd, "nullFunc_vdd": nullFunc_vdd, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_viiii": nullFunc_viiii, "invoke_viiiii": invoke_viiiii, "invoke_vd": invoke_vd, "invoke_vid": invoke_vid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viddd": invoke_viddd, "invoke_vidd": invoke_vidd, "invoke_iiii": invoke_iiii, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viii": invoke_viii, "invoke_vidddd": invoke_vidddd, "invoke_vdi": invoke_vdi, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiii": invoke_viiiiiiiii, "invoke_iii": invoke_iii, "invoke_i": invoke_i, "invoke_vdddddd": invoke_vdddddd, "invoke_vdddd": invoke_vdddd, "invoke_vdd": invoke_vdd, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_viiii": invoke_viiii, "_emscripten_glGetTexParameterfv": _emscripten_glGetTexParameterfv, "_glUseProgram": _glUseProgram, "_emscripten_glShaderSource": _emscripten_glShaderSource, "_glfwCreateWindow": _glfwCreateWindow, "_emscripten_glReleaseShaderCompiler": _emscripten_glReleaseShaderCompiler, "_emscripten_glBlendFuncSeparate": _emscripten_glBlendFuncSeparate, "_emscripten_glVertexAttribPointer": _emscripten_glVertexAttribPointer, "_emscripten_glGetIntegerv": _emscripten_glGetIntegerv, "_emscripten_glCullFace": _emscripten_glCullFace, "_emscripten_glIsProgram": _emscripten_glIsProgram, "_emscripten_glStencilMaskSeparate": _emscripten_glStencilMaskSeparate, "_emscripten_glViewport": _emscripten_glViewport, "_emscripten_glFrontFace": _emscripten_glFrontFace, "___assert_fail": ___assert_fail, "_glDeleteProgram": _glDeleteProgram, "_emscripten_glUniform3fv": _emscripten_glUniform3fv, "_emscripten_glPolygonOffset": _emscripten_glPolygonOffset, "_emscripten_glUseProgram": _emscripten_glUseProgram, "_emscripten_glBlendColor": _emscripten_glBlendColor, "_glBindBuffer": _glBindBuffer, "_emscripten_glDepthFunc": _emscripten_glDepthFunc, "_glGetShaderInfoLog": _glGetShaderInfoLog, "_emscripten_set_fullscreenchange_callback": _emscripten_set_fullscreenchange_callback, "_emscripten_set_touchmove_callback": _emscripten_set_touchmove_callback, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_glDisable": _glDisable, "_glBlendFunc": _glBlendFunc, "_emscripten_glDisableVertexAttribArray": _emscripten_glDisableVertexAttribArray, "_glGetAttribLocation": _glGetAttribLocation, "_glDisableVertexAttribArray": _glDisableVertexAttribArray, "_glCreateShader": _glCreateShader, "_emscripten_glReadPixels": _emscripten_glReadPixels, "_emscripten_glSampleCoverage": _emscripten_glSampleCoverage, "_emscripten_glVertexPointer": _emscripten_glVertexPointer, "_emscripten_set_touchstart_callback": _emscripten_set_touchstart_callback, "emscriptenWebGLComputeImageSize": emscriptenWebGLComputeImageSize, "_emscripten_glGetBooleanv": _emscripten_glGetBooleanv, "_emscripten_glGetShaderSource": _emscripten_glGetShaderSource, "_glUniform4f": _glUniform4f, "_llvm_stacksave": _llvm_stacksave, "_emscripten_glUniform1i": _emscripten_glUniform1i, "_emscripten_glStencilFuncSeparate": _emscripten_glStencilFuncSeparate, "_emscripten_glLoadMatrixf": _emscripten_glLoadMatrixf, "_emscripten_glGenBuffers": _emscripten_glGenBuffers, "_emscripten_glDeleteObjectARB": _emscripten_glDeleteObjectARB, "_glfwSetWindowSizeCallback": _glfwSetWindowSizeCallback, "_emscripten_glGetShaderPrecisionFormat": _emscripten_glGetShaderPrecisionFormat, "_glfwInit": _glfwInit, "_emscripten_glGetPointerv": _emscripten_glGetPointerv, "_glGenBuffers": _glGenBuffers, "_glShaderSource": _glShaderSource, "_emscripten_glGetString": _emscripten_glGetString, "_emscripten_glIsFramebuffer": _emscripten_glIsFramebuffer, "_emscripten_glIsEnabled": _emscripten_glIsEnabled, "_emscripten_glScissor": _emscripten_glScissor, "_emscripten_glVertexAttrib4fv": _emscripten_glVertexAttrib4fv, "_emscripten_glFramebufferTexture2D": _emscripten_glFramebufferTexture2D, "_emscripten_glTexParameteriv": _emscripten_glTexParameteriv, "___syscall145": ___syscall145, "_emscripten_glBindProgramARB": _emscripten_glBindProgramARB, "_emscripten_glStencilOpSeparate": _emscripten_glStencilOpSeparate, "_emscripten_glFramebufferRenderbuffer": _emscripten_glFramebufferRenderbuffer, "___syscall140": ___syscall140, "_glfwSetErrorCallback": _glfwSetErrorCallback, "_glfwDefaultWindowHints": _glfwDefaultWindowHints, "_glfwDestroyWindow": _glfwDestroyWindow, "___syscall146": ___syscall146, "_emscripten_glGetActiveAttrib": _emscripten_glGetActiveAttrib, "_emscripten_glAttachShader": _emscripten_glAttachShader, "_glVertexAttribPointer": _glVertexAttribPointer, "_emscripten_glUniform2i": _emscripten_glUniform2i, "_emscripten_glUniform2f": _emscripten_glUniform2f, "_emscripten_glTexParameterfv": _emscripten_glTexParameterfv, "_emscripten_glUniformMatrix2fv": _emscripten_glUniformMatrix2fv, "_glGetProgramInfoLog": _glGetProgramInfoLog, "_glfwSetScrollCallback": _glfwSetScrollCallback, "_emscripten_glTexParameterf": _emscripten_glTexParameterf, "_emscripten_glGetAttachedShaders": _emscripten_glGetAttachedShaders, "_emscripten_glGenTextures": _emscripten_glGenTextures, "_emscripten_glTexParameteri": _emscripten_glTexParameteri, "_llvm_stackrestore": _llvm_stackrestore, "_glfwMakeContextCurrent": _glfwMakeContextCurrent, "_emscripten_glClear": _emscripten_glClear, "_glDrawElements": _glDrawElements, "_glBufferSubData": _glBufferSubData, "_emscripten_glValidateProgram": _emscripten_glValidateProgram, "_emscripten_glVertexAttrib2fv": _emscripten_glVertexAttrib2fv, "_glViewport": _glViewport, "_emscripten_glUniform4iv": _emscripten_glUniform4iv, "_emscripten_glGetTexParameteriv": _emscripten_glGetTexParameteriv, "___setErrNo": ___setErrNo, "_eglGetProcAddress": _eglGetProcAddress, "_emscripten_glBindAttribLocation": _emscripten_glBindAttribLocation, "_glDeleteTextures": _glDeleteTextures, "_glDepthFunc": _glDepthFunc, "_emscripten_glClientActiveTexture": _emscripten_glClientActiveTexture, "_emscripten_glVertexAttrib2f": _emscripten_glVertexAttrib2f, "_emscripten_glFlush": _emscripten_glFlush, "_emscripten_glCheckFramebufferStatus": _emscripten_glCheckFramebufferStatus, "_emscripten_glGenerateMipmap": _emscripten_glGenerateMipmap, "_emscripten_glGetError": _emscripten_glGetError, "_emscripten_glClearDepthf": _emscripten_glClearDepthf, "_emscripten_glBufferData": _emscripten_glBufferData, "_emscripten_glUniform3i": _emscripten_glUniform3i, "_emscripten_glRotatef": _emscripten_glRotatef, "_emscripten_glDeleteShader": _emscripten_glDeleteShader, "_glEnable": _glEnable, "_glGenTextures": _glGenTextures, "_emscripten_glMatrixMode": _emscripten_glMatrixMode, "_glGetString": _glGetString, "_emscripten_glClearStencil": _emscripten_glClearStencil, "_emscripten_glGetUniformLocation": _emscripten_glGetUniformLocation, "emscriptenWebGLGet": emscriptenWebGLGet, "_emscripten_glEnableVertexAttribArray": _emscripten_glEnableVertexAttribArray, "_emscripten_glGetAttribLocation": _emscripten_glGetAttribLocation, "_emscripten_get_now": _emscripten_get_now, "_emscripten_glNormalPointer": _emscripten_glNormalPointer, "_glAttachShader": _glAttachShader, "_emscripten_glTexCoordPointer": _emscripten_glTexCoordPointer, "_emscripten_glEnable": _emscripten_glEnable, "_glCreateProgram": _glCreateProgram, "_glUniformMatrix4fv": _glUniformMatrix4fv, "_emscripten_glClearDepth": _emscripten_glClearDepth, "___lock": ___lock, "_llvm_exp2_f32": _llvm_exp2_f32, "___syscall6": ___syscall6, "___syscall5": ___syscall5, "_emscripten_glIsBuffer": _emscripten_glIsBuffer, "_emscripten_glVertexAttrib3f": _emscripten_glVertexAttrib3f, "_time": _time, "_emscripten_glVertexAttrib1f": _emscripten_glVertexAttrib1f, "_glfwSetMouseButtonCallback": _glfwSetMouseButtonCallback, "_emscripten_glBlendEquationSeparate": _emscripten_glBlendEquationSeparate, "_exit": _exit, "_emscripten_glEnableClientState": _emscripten_glEnableClientState, "_emscripten_glUniform4i": _emscripten_glUniform4i, "_emscripten_glDrawRangeElements": _emscripten_glDrawRangeElements, "_glCullFace": _glCullFace, "_llvm_pow_f64": _llvm_pow_f64, "_emscripten_set_keypress_callback": _emscripten_set_keypress_callback, "__emscripten_sample_gamepad_data": __emscripten_sample_gamepad_data, "_emscripten_get_gamepad_status": _emscripten_get_gamepad_status, "_emscripten_glUniform4f": _emscripten_glUniform4f, "_emscripten_glUniform2fv": _emscripten_glUniform2fv, "_glfwGetVideoModes": _glfwGetVideoModes, "_emscripten_set_click_callback": _emscripten_set_click_callback, "_emscripten_glFinish": _emscripten_glFinish, "_emscripten_glShaderBinary": _emscripten_glShaderBinary, "_emscripten_glDrawElements": _emscripten_glDrawElements, "_emscripten_glBlendFunc": _emscripten_glBlendFunc, "_emscripten_get_num_gamepads": _emscripten_get_num_gamepads, "___syscall221": ___syscall221, "_glCompressedTexImage2D": _glCompressedTexImage2D, "_emscripten_glUniform1iv": _emscripten_glUniform1iv, "_emscripten_glGetVertexAttribPointerv": _emscripten_glGetVertexAttribPointerv, "_glClearDepthf": _glClearDepthf, "_emscripten_glCompressedTexSubImage2D": _emscripten_glCompressedTexSubImage2D, "emscriptenWebGLGetUniform": emscriptenWebGLGetUniform, "_emscripten_glGenRenderbuffers": _emscripten_glGenRenderbuffers, "_emscripten_glDeleteVertexArrays": _emscripten_glDeleteVertexArrays, "_glfwSetWindowShouldClose": _glfwSetWindowShouldClose, "_emscripten_glUniform1fv": _emscripten_glUniform1fv, "_emscripten_glGetActiveUniform": _emscripten_glGetActiveUniform, "_glBindTexture": _glBindTexture, "_emscripten_glUniform3iv": _emscripten_glUniform3iv, "_emscripten_glUniform2iv": _emscripten_glUniform2iv, "_emscripten_glHint": _emscripten_glHint, "_glfwSetCharCallback": _glfwSetCharCallback, "emscriptenWebGLGetVertexAttrib": emscriptenWebGLGetVertexAttrib, "_glGetFloatv": _glGetFloatv, "_emscripten_glDeleteProgram": _emscripten_glDeleteProgram, "_emscripten_glDeleteRenderbuffers": _emscripten_glDeleteRenderbuffers, "_emscripten_glDrawElementsInstanced": _emscripten_glDrawElementsInstanced, "_emscripten_glVertexAttrib4f": _emscripten_glVertexAttrib4f, "_glDrawArrays": _glDrawArrays, "_emscripten_glTexSubImage2D": _emscripten_glTexSubImage2D, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_glPixelStorei": _emscripten_glPixelStorei, "_glCompileShader": _glCompileShader, "_emscripten_get_pointerlock_status": _emscripten_get_pointerlock_status, "_emscripten_glUniformMatrix3fv": _emscripten_glUniformMatrix3fv, "_emscripten_glColorPointer": _emscripten_glColorPointer, "emscriptenWebGLGetTexPixelData": emscriptenWebGLGetTexPixelData, "_emscripten_glGetBufferParameteriv": _emscripten_glGetBufferParameteriv, "_glActiveTexture": _glActiveTexture, "_emscripten_request_pointerlock": _emscripten_request_pointerlock, "_emscripten_set_gamepaddisconnected_callback": _emscripten_set_gamepaddisconnected_callback, "_emscripten_asm_const_iii": _emscripten_asm_const_iii, "_emscripten_glDepthMask": _emscripten_glDepthMask, "_glfwSetWindowIconifyCallback": _glfwSetWindowIconifyCallback, "_emscripten_glDrawBuffers": _emscripten_glDrawBuffers, "_glfwTerminate": _glfwTerminate, "_glFrontFace": _glFrontFace, "_emscripten_glGetObjectParameterivARB": _emscripten_glGetObjectParameterivARB, "_emscripten_exit_pointerlock": _emscripten_exit_pointerlock, "_glfwSwapInterval": _glfwSwapInterval, "_glUniform1i": _glUniform1i, "_glEnableVertexAttribArray": _glEnableVertexAttribArray, "_emscripten_glStencilFunc": _emscripten_glStencilFunc, "_abort": _abort, "_emscripten_glGetUniformiv": _emscripten_glGetUniformiv, "_glDeleteBuffers": _glDeleteBuffers, "_glBufferData": _glBufferData, "_glTexImage2D": _glTexImage2D, "_emscripten_glGetShaderiv": _emscripten_glGetShaderiv, "_glfwSetKeyCallback": _glfwSetKeyCallback, "_emscripten_glGenFramebuffers": _emscripten_glGenFramebuffers, "_emscripten_glUniformMatrix4fv": _emscripten_glUniformMatrix4fv, "_emscripten_glLoadIdentity": _emscripten_glLoadIdentity, "_glDeleteShader": _glDeleteShader, "_emscripten_glUniform1f": _emscripten_glUniform1f, "_glGetProgramiv": _glGetProgramiv, "_emscripten_glBindFramebuffer": _emscripten_glBindFramebuffer, "_emscripten_glIsRenderbuffer": _emscripten_glIsRenderbuffer, "_glfwGetTime": _glfwGetTime, "_emscripten_glRenderbufferStorage": _emscripten_glRenderbufferStorage, "_emscripten_set_gamepadconnected_callback": _emscripten_set_gamepadconnected_callback, "_emscripten_glGetVertexAttribiv": _emscripten_glGetVertexAttribiv, "_emscripten_glBindVertexArray": _emscripten_glBindVertexArray, "_emscripten_glDrawArraysInstanced": _emscripten_glDrawArraysInstanced, "_emscripten_set_touchcancel_callback": _emscripten_set_touchcancel_callback, "_emscripten_glCreateShader": _emscripten_glCreateShader, "_emscripten_glStencilMask": _emscripten_glStencilMask, "_emscripten_glDeleteTextures": _emscripten_glDeleteTextures, "_emscripten_glBindRenderbuffer": _emscripten_glBindRenderbuffer, "_glfwGetPrimaryMonitor": _glfwGetPrimaryMonitor, "_glLinkProgram": _glLinkProgram, "_emscripten_glVertexAttribDivisor": _emscripten_glVertexAttribDivisor, "_emscripten_set_touchend_callback": _emscripten_set_touchend_callback, "_emscripten_glGetUniformfv": _emscripten_glGetUniformfv, "_emscripten_glGetVertexAttribfv": _emscripten_glGetVertexAttribfv, "_emscripten_glGetRenderbufferParameteriv": _emscripten_glGetRenderbufferParameteriv, "_emscripten_glDeleteFramebuffers": _emscripten_glDeleteFramebuffers, "_glGetShaderiv": _glGetShaderiv, "_emscripten_glVertexAttrib3fv": _emscripten_glVertexAttrib3fv, "_glGetUniformLocation": _glGetUniformLocation, "_emscripten_glGetInfoLogARB": _emscripten_glGetInfoLogARB, "_emscripten_glCompileShader": _emscripten_glCompileShader, "_glClear": _glClear, "_emscripten_glFrustum": _emscripten_glFrustum, "_emscripten_glDisable": _emscripten_glDisable, "_emscripten_glDepthRangef": _emscripten_glDepthRangef, "__exit": __exit, "_emscripten_glLineWidth": _emscripten_glLineWidth, "_emscripten_glUniform3f": _emscripten_glUniform3f, "_emscripten_glGetShaderInfoLog": _emscripten_glGetShaderInfoLog, "_emscripten_glStencilOp": _emscripten_glStencilOp, "_glBindAttribLocation": _glBindAttribLocation, "_glPixelStorei": _glPixelStorei, "_emscripten_glColorMask": _emscripten_glColorMask, "_emscripten_glLinkProgram": _emscripten_glLinkProgram, "_emscripten_glBlendEquation": _emscripten_glBlendEquation, "_emscripten_glIsTexture": _emscripten_glIsTexture, "_emscripten_glGetProgramiv": _emscripten_glGetProgramiv, "_emscripten_glVertexAttrib1fv": _emscripten_glVertexAttrib1fv, "_emscripten_glBindTexture": _emscripten_glBindTexture, "_emscripten_glGetFramebufferAttachmentParameteriv": _emscripten_glGetFramebufferAttachmentParameteriv, "_glfwGetCursorPos": _glfwGetCursorPos, "_emscripten_glActiveTexture": _emscripten_glActiveTexture, "_emscripten_glDeleteBuffers": _emscripten_glDeleteBuffers, "___syscall54": ___syscall54, "___unlock": ___unlock, "_emscripten_glBufferSubData": _emscripten_glBufferSubData, "_glfwSwapBuffers": _glfwSwapBuffers, "_emscripten_glDepthRange": _emscripten_glDepthRange, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_emscripten_glGetProgramInfoLog": _emscripten_glGetProgramInfoLog, "_glfwWindowHint": _glfwWindowHint, "_emscripten_glIsShader": _emscripten_glIsShader, "_emscripten_glUniform4fv": _emscripten_glUniform4fv, "_emscripten_glGenVertexArrays": _emscripten_glGenVertexArrays, "_emscripten_glDrawArrays": _emscripten_glDrawArrays, "_emscripten_glCompressedTexImage2D": _emscripten_glCompressedTexImage2D, "_emscripten_glClearColor": _emscripten_glClearColor, "_emscripten_glCreateProgram": _emscripten_glCreateProgram, "_emscripten_glCopyTexSubImage2D": _emscripten_glCopyTexSubImage2D, "_glTexParameteri": _glTexParameteri, "_emscripten_glBindBuffer": _emscripten_glBindBuffer, "_emscripten_glGetFloatv": _emscripten_glGetFloatv, "_emscripten_glDetachShader": _emscripten_glDetachShader, "_glClearColor": _glClearColor, "_glfwSetCursorPosCallback": _glfwSetCursorPosCallback, "_glTexParameterf": _glTexParameterf, "_glfwSetCursorEnterCallback": _glfwSetCursorEnterCallback, "_emscripten_glCopyTexImage2D": _emscripten_glCopyTexImage2D, "_emscripten_glTexImage2D": _emscripten_glTexImage2D, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "cttz_i8": cttz_i8 }; -// EMSCRIPTEN_START_ASM -var asm = (function(global, env, buffer) { -'use asm'; - - - var HEAP8 = new global.Int8Array(buffer); - var HEAP16 = new global.Int16Array(buffer); - var HEAP32 = new global.Int32Array(buffer); - var HEAPU8 = new global.Uint8Array(buffer); - var HEAPU16 = new global.Uint16Array(buffer); - var HEAPU32 = new global.Uint32Array(buffer); - var HEAPF32 = new global.Float32Array(buffer); - var HEAPF64 = new global.Float64Array(buffer); - - var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0; - var tempDoublePtr=env.tempDoublePtr|0; - var ABORT=env.ABORT|0; - var STACKTOP=env.STACKTOP|0; - var STACK_MAX=env.STACK_MAX|0; - var cttz_i8=env.cttz_i8|0; - - var __THREW__ = 0; - var threwValue = 0; - var setjmpId = 0; - var undef = 0; - var nan = global.NaN, inf = global.Infinity; - var tempInt = 0, tempBigInt = 0, tempBigIntS = 0, tempValue = 0, tempDouble = 0.0; - var tempRet0 = 0; - - var Math_floor=global.Math.floor; - var Math_abs=global.Math.abs; - var Math_sqrt=global.Math.sqrt; - var Math_pow=global.Math.pow; - var Math_cos=global.Math.cos; - var Math_sin=global.Math.sin; - var Math_tan=global.Math.tan; - var Math_acos=global.Math.acos; - var Math_asin=global.Math.asin; - var Math_atan=global.Math.atan; - var Math_atan2=global.Math.atan2; - var Math_exp=global.Math.exp; - var Math_log=global.Math.log; - var Math_ceil=global.Math.ceil; - var Math_imul=global.Math.imul; - var Math_min=global.Math.min; - var Math_max=global.Math.max; - var Math_clz32=global.Math.clz32; - var abort=env.abort; - var assert=env.assert; - var enlargeMemory=env.enlargeMemory; - var getTotalMemory=env.getTotalMemory; - var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory; - var abortStackOverflow=env.abortStackOverflow; - var nullFunc_viiiii=env.nullFunc_viiiii; - var nullFunc_vd=env.nullFunc_vd; - var nullFunc_vid=env.nullFunc_vid; - var nullFunc_vi=env.nullFunc_vi; - var nullFunc_vii=env.nullFunc_vii; - var nullFunc_ii=env.nullFunc_ii; - var nullFunc_viddd=env.nullFunc_viddd; - var nullFunc_vidd=env.nullFunc_vidd; - var nullFunc_iiii=env.nullFunc_iiii; - var nullFunc_viiiiiiii=env.nullFunc_viiiiiiii; - var nullFunc_viiiiii=env.nullFunc_viiiiii; - var nullFunc_viii=env.nullFunc_viii; - var nullFunc_vidddd=env.nullFunc_vidddd; - var nullFunc_vdi=env.nullFunc_vdi; - var nullFunc_viiiiiii=env.nullFunc_viiiiiii; - var nullFunc_viiiiiiiii=env.nullFunc_viiiiiiiii; - var nullFunc_iii=env.nullFunc_iii; - var nullFunc_i=env.nullFunc_i; - var nullFunc_vdddddd=env.nullFunc_vdddddd; - var nullFunc_vdddd=env.nullFunc_vdddd; - var nullFunc_vdd=env.nullFunc_vdd; - var nullFunc_v=env.nullFunc_v; - var nullFunc_viid=env.nullFunc_viid; - var nullFunc_viiii=env.nullFunc_viiii; - var invoke_viiiii=env.invoke_viiiii; - var invoke_vd=env.invoke_vd; - var invoke_vid=env.invoke_vid; - var invoke_vi=env.invoke_vi; - var invoke_vii=env.invoke_vii; - var invoke_ii=env.invoke_ii; - var invoke_viddd=env.invoke_viddd; - var invoke_vidd=env.invoke_vidd; - var invoke_iiii=env.invoke_iiii; - var invoke_viiiiiiii=env.invoke_viiiiiiii; - var invoke_viiiiii=env.invoke_viiiiii; - var invoke_viii=env.invoke_viii; - var invoke_vidddd=env.invoke_vidddd; - var invoke_vdi=env.invoke_vdi; - var invoke_viiiiiii=env.invoke_viiiiiii; - var invoke_viiiiiiiii=env.invoke_viiiiiiiii; - var invoke_iii=env.invoke_iii; - var invoke_i=env.invoke_i; - var invoke_vdddddd=env.invoke_vdddddd; - var invoke_vdddd=env.invoke_vdddd; - var invoke_vdd=env.invoke_vdd; - var invoke_v=env.invoke_v; - var invoke_viid=env.invoke_viid; - var invoke_viiii=env.invoke_viiii; - var _emscripten_glGetTexParameterfv=env._emscripten_glGetTexParameterfv; - var _glUseProgram=env._glUseProgram; - var _emscripten_glShaderSource=env._emscripten_glShaderSource; - var _glfwCreateWindow=env._glfwCreateWindow; - var _emscripten_glReleaseShaderCompiler=env._emscripten_glReleaseShaderCompiler; - var _emscripten_glBlendFuncSeparate=env._emscripten_glBlendFuncSeparate; - var _emscripten_glVertexAttribPointer=env._emscripten_glVertexAttribPointer; - var _emscripten_glGetIntegerv=env._emscripten_glGetIntegerv; - var _emscripten_glCullFace=env._emscripten_glCullFace; - var _emscripten_glIsProgram=env._emscripten_glIsProgram; - var _emscripten_glStencilMaskSeparate=env._emscripten_glStencilMaskSeparate; - var _emscripten_glViewport=env._emscripten_glViewport; - var _emscripten_glFrontFace=env._emscripten_glFrontFace; - var ___assert_fail=env.___assert_fail; - var _glDeleteProgram=env._glDeleteProgram; - var _emscripten_glUniform3fv=env._emscripten_glUniform3fv; - var _emscripten_glPolygonOffset=env._emscripten_glPolygonOffset; - var _emscripten_glUseProgram=env._emscripten_glUseProgram; - var _emscripten_glBlendColor=env._emscripten_glBlendColor; - var _glBindBuffer=env._glBindBuffer; - var _emscripten_glDepthFunc=env._emscripten_glDepthFunc; - var _glGetShaderInfoLog=env._glGetShaderInfoLog; - var _emscripten_set_fullscreenchange_callback=env._emscripten_set_fullscreenchange_callback; - var _emscripten_set_touchmove_callback=env._emscripten_set_touchmove_callback; - var _emscripten_set_main_loop_timing=env._emscripten_set_main_loop_timing; - var _glDisable=env._glDisable; - var _glBlendFunc=env._glBlendFunc; - var _emscripten_glDisableVertexAttribArray=env._emscripten_glDisableVertexAttribArray; - var _glGetAttribLocation=env._glGetAttribLocation; - var _glDisableVertexAttribArray=env._glDisableVertexAttribArray; - var _glCreateShader=env._glCreateShader; - var _emscripten_glReadPixels=env._emscripten_glReadPixels; - var _emscripten_glSampleCoverage=env._emscripten_glSampleCoverage; - var _emscripten_glVertexPointer=env._emscripten_glVertexPointer; - var _emscripten_set_touchstart_callback=env._emscripten_set_touchstart_callback; - var emscriptenWebGLComputeImageSize=env.emscriptenWebGLComputeImageSize; - var _emscripten_glGetBooleanv=env._emscripten_glGetBooleanv; - var _emscripten_glGetShaderSource=env._emscripten_glGetShaderSource; - var _glUniform4f=env._glUniform4f; - var _llvm_stacksave=env._llvm_stacksave; - var _emscripten_glUniform1i=env._emscripten_glUniform1i; - var _emscripten_glStencilFuncSeparate=env._emscripten_glStencilFuncSeparate; - var _emscripten_glLoadMatrixf=env._emscripten_glLoadMatrixf; - var _emscripten_glGenBuffers=env._emscripten_glGenBuffers; - var _emscripten_glDeleteObjectARB=env._emscripten_glDeleteObjectARB; - var _glfwSetWindowSizeCallback=env._glfwSetWindowSizeCallback; - var _emscripten_glGetShaderPrecisionFormat=env._emscripten_glGetShaderPrecisionFormat; - var _glfwInit=env._glfwInit; - var _emscripten_glGetPointerv=env._emscripten_glGetPointerv; - var _glGenBuffers=env._glGenBuffers; - var _glShaderSource=env._glShaderSource; - var _emscripten_glGetString=env._emscripten_glGetString; - var _emscripten_glIsFramebuffer=env._emscripten_glIsFramebuffer; - var _emscripten_glIsEnabled=env._emscripten_glIsEnabled; - var _emscripten_glScissor=env._emscripten_glScissor; - var _emscripten_glVertexAttrib4fv=env._emscripten_glVertexAttrib4fv; - var _emscripten_glFramebufferTexture2D=env._emscripten_glFramebufferTexture2D; - var _emscripten_glTexParameteriv=env._emscripten_glTexParameteriv; - var ___syscall145=env.___syscall145; - var _emscripten_glBindProgramARB=env._emscripten_glBindProgramARB; - var _emscripten_glStencilOpSeparate=env._emscripten_glStencilOpSeparate; - var _emscripten_glFramebufferRenderbuffer=env._emscripten_glFramebufferRenderbuffer; - var ___syscall140=env.___syscall140; - var _glfwSetErrorCallback=env._glfwSetErrorCallback; - var _glfwDefaultWindowHints=env._glfwDefaultWindowHints; - var _glfwDestroyWindow=env._glfwDestroyWindow; - var ___syscall146=env.___syscall146; - var _emscripten_glGetActiveAttrib=env._emscripten_glGetActiveAttrib; - var _emscripten_glAttachShader=env._emscripten_glAttachShader; - var _glVertexAttribPointer=env._glVertexAttribPointer; - var _emscripten_glUniform2i=env._emscripten_glUniform2i; - var _emscripten_glUniform2f=env._emscripten_glUniform2f; - var _emscripten_glTexParameterfv=env._emscripten_glTexParameterfv; - var _emscripten_glUniformMatrix2fv=env._emscripten_glUniformMatrix2fv; - var _glGetProgramInfoLog=env._glGetProgramInfoLog; - var _glfwSetScrollCallback=env._glfwSetScrollCallback; - var _emscripten_glTexParameterf=env._emscripten_glTexParameterf; - var _emscripten_glGetAttachedShaders=env._emscripten_glGetAttachedShaders; - var _emscripten_glGenTextures=env._emscripten_glGenTextures; - var _emscripten_glTexParameteri=env._emscripten_glTexParameteri; - var _llvm_stackrestore=env._llvm_stackrestore; - var _glfwMakeContextCurrent=env._glfwMakeContextCurrent; - var _emscripten_glClear=env._emscripten_glClear; - var _glDrawElements=env._glDrawElements; - var _glBufferSubData=env._glBufferSubData; - var _emscripten_glValidateProgram=env._emscripten_glValidateProgram; - var _emscripten_glVertexAttrib2fv=env._emscripten_glVertexAttrib2fv; - var _glViewport=env._glViewport; - var _emscripten_glUniform4iv=env._emscripten_glUniform4iv; - var _emscripten_glGetTexParameteriv=env._emscripten_glGetTexParameteriv; - var ___setErrNo=env.___setErrNo; - var _eglGetProcAddress=env._eglGetProcAddress; - var _emscripten_glBindAttribLocation=env._emscripten_glBindAttribLocation; - var _glDeleteTextures=env._glDeleteTextures; - var _glDepthFunc=env._glDepthFunc; - var _emscripten_glClientActiveTexture=env._emscripten_glClientActiveTexture; - var _emscripten_glVertexAttrib2f=env._emscripten_glVertexAttrib2f; - var _emscripten_glFlush=env._emscripten_glFlush; - var _emscripten_glCheckFramebufferStatus=env._emscripten_glCheckFramebufferStatus; - var _emscripten_glGenerateMipmap=env._emscripten_glGenerateMipmap; - var _emscripten_glGetError=env._emscripten_glGetError; - var _emscripten_glClearDepthf=env._emscripten_glClearDepthf; - var _emscripten_glBufferData=env._emscripten_glBufferData; - var _emscripten_glUniform3i=env._emscripten_glUniform3i; - var _emscripten_glRotatef=env._emscripten_glRotatef; - var _emscripten_glDeleteShader=env._emscripten_glDeleteShader; - var _glEnable=env._glEnable; - var _glGenTextures=env._glGenTextures; - var _emscripten_glMatrixMode=env._emscripten_glMatrixMode; - var _glGetString=env._glGetString; - var _emscripten_glClearStencil=env._emscripten_glClearStencil; - var _emscripten_glGetUniformLocation=env._emscripten_glGetUniformLocation; - var emscriptenWebGLGet=env.emscriptenWebGLGet; - var _emscripten_glEnableVertexAttribArray=env._emscripten_glEnableVertexAttribArray; - var _emscripten_glGetAttribLocation=env._emscripten_glGetAttribLocation; - var _emscripten_get_now=env._emscripten_get_now; - var _emscripten_glNormalPointer=env._emscripten_glNormalPointer; - var _glAttachShader=env._glAttachShader; - var _emscripten_glTexCoordPointer=env._emscripten_glTexCoordPointer; - var _emscripten_glEnable=env._emscripten_glEnable; - var _glCreateProgram=env._glCreateProgram; - var _glUniformMatrix4fv=env._glUniformMatrix4fv; - var _emscripten_glClearDepth=env._emscripten_glClearDepth; - var ___lock=env.___lock; - var _llvm_exp2_f32=env._llvm_exp2_f32; - var ___syscall6=env.___syscall6; - var ___syscall5=env.___syscall5; - var _emscripten_glIsBuffer=env._emscripten_glIsBuffer; - var _emscripten_glVertexAttrib3f=env._emscripten_glVertexAttrib3f; - var _time=env._time; - var _emscripten_glVertexAttrib1f=env._emscripten_glVertexAttrib1f; - var _glfwSetMouseButtonCallback=env._glfwSetMouseButtonCallback; - var _emscripten_glBlendEquationSeparate=env._emscripten_glBlendEquationSeparate; - var _exit=env._exit; - var _emscripten_glEnableClientState=env._emscripten_glEnableClientState; - var _emscripten_glUniform4i=env._emscripten_glUniform4i; - var _emscripten_glDrawRangeElements=env._emscripten_glDrawRangeElements; - var _glCullFace=env._glCullFace; - var _llvm_pow_f64=env._llvm_pow_f64; - var _emscripten_set_keypress_callback=env._emscripten_set_keypress_callback; - var __emscripten_sample_gamepad_data=env.__emscripten_sample_gamepad_data; - var _emscripten_get_gamepad_status=env._emscripten_get_gamepad_status; - var _emscripten_glUniform4f=env._emscripten_glUniform4f; - var _emscripten_glUniform2fv=env._emscripten_glUniform2fv; - var _glfwGetVideoModes=env._glfwGetVideoModes; - var _emscripten_set_click_callback=env._emscripten_set_click_callback; - var _emscripten_glFinish=env._emscripten_glFinish; - var _emscripten_glShaderBinary=env._emscripten_glShaderBinary; - var _emscripten_glDrawElements=env._emscripten_glDrawElements; - var _emscripten_glBlendFunc=env._emscripten_glBlendFunc; - var _emscripten_get_num_gamepads=env._emscripten_get_num_gamepads; - var ___syscall221=env.___syscall221; - var _glCompressedTexImage2D=env._glCompressedTexImage2D; - var _emscripten_glUniform1iv=env._emscripten_glUniform1iv; - var _emscripten_glGetVertexAttribPointerv=env._emscripten_glGetVertexAttribPointerv; - var _glClearDepthf=env._glClearDepthf; - var _emscripten_glCompressedTexSubImage2D=env._emscripten_glCompressedTexSubImage2D; - var emscriptenWebGLGetUniform=env.emscriptenWebGLGetUniform; - var _emscripten_glGenRenderbuffers=env._emscripten_glGenRenderbuffers; - var _emscripten_glDeleteVertexArrays=env._emscripten_glDeleteVertexArrays; - var _glfwSetWindowShouldClose=env._glfwSetWindowShouldClose; - var _emscripten_glUniform1fv=env._emscripten_glUniform1fv; - var _emscripten_glGetActiveUniform=env._emscripten_glGetActiveUniform; - var _glBindTexture=env._glBindTexture; - var _emscripten_glUniform3iv=env._emscripten_glUniform3iv; - var _emscripten_glUniform2iv=env._emscripten_glUniform2iv; - var _emscripten_glHint=env._emscripten_glHint; - var _glfwSetCharCallback=env._glfwSetCharCallback; - var emscriptenWebGLGetVertexAttrib=env.emscriptenWebGLGetVertexAttrib; - var _glGetFloatv=env._glGetFloatv; - var _emscripten_glDeleteProgram=env._emscripten_glDeleteProgram; - var _emscripten_glDeleteRenderbuffers=env._emscripten_glDeleteRenderbuffers; - var _emscripten_glDrawElementsInstanced=env._emscripten_glDrawElementsInstanced; - var _emscripten_glVertexAttrib4f=env._emscripten_glVertexAttrib4f; - var _glDrawArrays=env._glDrawArrays; - var _emscripten_glTexSubImage2D=env._emscripten_glTexSubImage2D; - var _emscripten_memcpy_big=env._emscripten_memcpy_big; - var _emscripten_glPixelStorei=env._emscripten_glPixelStorei; - var _glCompileShader=env._glCompileShader; - var _emscripten_get_pointerlock_status=env._emscripten_get_pointerlock_status; - var _emscripten_glUniformMatrix3fv=env._emscripten_glUniformMatrix3fv; - var _emscripten_glColorPointer=env._emscripten_glColorPointer; - var emscriptenWebGLGetTexPixelData=env.emscriptenWebGLGetTexPixelData; - var _emscripten_glGetBufferParameteriv=env._emscripten_glGetBufferParameteriv; - var _glActiveTexture=env._glActiveTexture; - var _emscripten_request_pointerlock=env._emscripten_request_pointerlock; - var _emscripten_set_gamepaddisconnected_callback=env._emscripten_set_gamepaddisconnected_callback; - var _emscripten_asm_const_iii=env._emscripten_asm_const_iii; - var _emscripten_glDepthMask=env._emscripten_glDepthMask; - var _glfwSetWindowIconifyCallback=env._glfwSetWindowIconifyCallback; - var _emscripten_glDrawBuffers=env._emscripten_glDrawBuffers; - var _glfwTerminate=env._glfwTerminate; - var _glFrontFace=env._glFrontFace; - var _emscripten_glGetObjectParameterivARB=env._emscripten_glGetObjectParameterivARB; - var _emscripten_exit_pointerlock=env._emscripten_exit_pointerlock; - var _glfwSwapInterval=env._glfwSwapInterval; - var _glUniform1i=env._glUniform1i; - var _glEnableVertexAttribArray=env._glEnableVertexAttribArray; - var _emscripten_glStencilFunc=env._emscripten_glStencilFunc; - var _abort=env._abort; - var _emscripten_glGetUniformiv=env._emscripten_glGetUniformiv; - var _glDeleteBuffers=env._glDeleteBuffers; - var _glBufferData=env._glBufferData; - var _glTexImage2D=env._glTexImage2D; - var _emscripten_glGetShaderiv=env._emscripten_glGetShaderiv; - var _glfwSetKeyCallback=env._glfwSetKeyCallback; - var _emscripten_glGenFramebuffers=env._emscripten_glGenFramebuffers; - var _emscripten_glUniformMatrix4fv=env._emscripten_glUniformMatrix4fv; - var _emscripten_glLoadIdentity=env._emscripten_glLoadIdentity; - var _glDeleteShader=env._glDeleteShader; - var _emscripten_glUniform1f=env._emscripten_glUniform1f; - var _glGetProgramiv=env._glGetProgramiv; - var _emscripten_glBindFramebuffer=env._emscripten_glBindFramebuffer; - var _emscripten_glIsRenderbuffer=env._emscripten_glIsRenderbuffer; - var _glfwGetTime=env._glfwGetTime; - var _emscripten_glRenderbufferStorage=env._emscripten_glRenderbufferStorage; - var _emscripten_set_gamepadconnected_callback=env._emscripten_set_gamepadconnected_callback; - var _emscripten_glGetVertexAttribiv=env._emscripten_glGetVertexAttribiv; - var _emscripten_glBindVertexArray=env._emscripten_glBindVertexArray; - var _emscripten_glDrawArraysInstanced=env._emscripten_glDrawArraysInstanced; - var _emscripten_set_touchcancel_callback=env._emscripten_set_touchcancel_callback; - var _emscripten_glCreateShader=env._emscripten_glCreateShader; - var _emscripten_glStencilMask=env._emscripten_glStencilMask; - var _emscripten_glDeleteTextures=env._emscripten_glDeleteTextures; - var _emscripten_glBindRenderbuffer=env._emscripten_glBindRenderbuffer; - var _glfwGetPrimaryMonitor=env._glfwGetPrimaryMonitor; - var _glLinkProgram=env._glLinkProgram; - var _emscripten_glVertexAttribDivisor=env._emscripten_glVertexAttribDivisor; - var _emscripten_set_touchend_callback=env._emscripten_set_touchend_callback; - var _emscripten_glGetUniformfv=env._emscripten_glGetUniformfv; - var _emscripten_glGetVertexAttribfv=env._emscripten_glGetVertexAttribfv; - var _emscripten_glGetRenderbufferParameteriv=env._emscripten_glGetRenderbufferParameteriv; - var _emscripten_glDeleteFramebuffers=env._emscripten_glDeleteFramebuffers; - var _glGetShaderiv=env._glGetShaderiv; - var _emscripten_glVertexAttrib3fv=env._emscripten_glVertexAttrib3fv; - var _glGetUniformLocation=env._glGetUniformLocation; - var _emscripten_glGetInfoLogARB=env._emscripten_glGetInfoLogARB; - var _emscripten_glCompileShader=env._emscripten_glCompileShader; - var _glClear=env._glClear; - var _emscripten_glFrustum=env._emscripten_glFrustum; - var _emscripten_glDisable=env._emscripten_glDisable; - var _emscripten_glDepthRangef=env._emscripten_glDepthRangef; - var __exit=env.__exit; - var _emscripten_glLineWidth=env._emscripten_glLineWidth; - var _emscripten_glUniform3f=env._emscripten_glUniform3f; - var _emscripten_glGetShaderInfoLog=env._emscripten_glGetShaderInfoLog; - var _emscripten_glStencilOp=env._emscripten_glStencilOp; - var _glBindAttribLocation=env._glBindAttribLocation; - var _glPixelStorei=env._glPixelStorei; - var _emscripten_glColorMask=env._emscripten_glColorMask; - var _emscripten_glLinkProgram=env._emscripten_glLinkProgram; - var _emscripten_glBlendEquation=env._emscripten_glBlendEquation; - var _emscripten_glIsTexture=env._emscripten_glIsTexture; - var _emscripten_glGetProgramiv=env._emscripten_glGetProgramiv; - var _emscripten_glVertexAttrib1fv=env._emscripten_glVertexAttrib1fv; - var _emscripten_glBindTexture=env._emscripten_glBindTexture; - var _emscripten_glGetFramebufferAttachmentParameteriv=env._emscripten_glGetFramebufferAttachmentParameteriv; - var _glfwGetCursorPos=env._glfwGetCursorPos; - var _emscripten_glActiveTexture=env._emscripten_glActiveTexture; - var _emscripten_glDeleteBuffers=env._emscripten_glDeleteBuffers; - var ___syscall54=env.___syscall54; - var ___unlock=env.___unlock; - var _emscripten_glBufferSubData=env._emscripten_glBufferSubData; - var _glfwSwapBuffers=env._glfwSwapBuffers; - var _emscripten_glDepthRange=env._emscripten_glDepthRange; - var _emscripten_set_main_loop=env._emscripten_set_main_loop; - var _emscripten_glGetProgramInfoLog=env._emscripten_glGetProgramInfoLog; - var _glfwWindowHint=env._glfwWindowHint; - var _emscripten_glIsShader=env._emscripten_glIsShader; - var _emscripten_glUniform4fv=env._emscripten_glUniform4fv; - var _emscripten_glGenVertexArrays=env._emscripten_glGenVertexArrays; - var _emscripten_glDrawArrays=env._emscripten_glDrawArrays; - var _emscripten_glCompressedTexImage2D=env._emscripten_glCompressedTexImage2D; - var _emscripten_glClearColor=env._emscripten_glClearColor; - var _emscripten_glCreateProgram=env._emscripten_glCreateProgram; - var _emscripten_glCopyTexSubImage2D=env._emscripten_glCopyTexSubImage2D; - var _glTexParameteri=env._glTexParameteri; - var _emscripten_glBindBuffer=env._emscripten_glBindBuffer; - var _emscripten_glGetFloatv=env._emscripten_glGetFloatv; - var _emscripten_glDetachShader=env._emscripten_glDetachShader; - var _glClearColor=env._glClearColor; - var _glfwSetCursorPosCallback=env._glfwSetCursorPosCallback; - var _glTexParameterf=env._glTexParameterf; - var _glfwSetCursorEnterCallback=env._glfwSetCursorEnterCallback; - var _emscripten_glCopyTexImage2D=env._emscripten_glCopyTexImage2D; - var _emscripten_glTexImage2D=env._emscripten_glTexImage2D; - var tempFloat = 0.0; - -// EMSCRIPTEN_START_FUNCS - -function stackAlloc(size) { - size = size|0; - var ret = 0; - ret = STACKTOP; - STACKTOP = (STACKTOP + size)|0; - STACKTOP = (STACKTOP + 15)&-16; - if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0); - - return ret|0; -} -function stackSave() { - return STACKTOP|0; -} -function stackRestore(top) { - top = top|0; - STACKTOP = top; -} -function establishStackSpace(stackBase, stackMax) { - stackBase = stackBase|0; - stackMax = stackMax|0; - STACKTOP = stackBase; - STACK_MAX = stackMax; -} - -function setThrew(threw, value) { - threw = threw|0; - value = value|0; - if ((__THREW__|0) == 0) { - __THREW__ = threw; - threwValue = value; - } -} - -function setTempRet0(value) { - value = value|0; - tempRet0 = value; -} -function getTempRet0() { - return tempRet0|0; -} - -function _main() { - var $0 = 0, $font$byval_copy = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $font$byval_copy = sp + 32|0; - $0 = sp; - _InitWindow(800,450,4628); - _LoadSpriteFont($0,4689); - ;HEAP32[20272>>2]=HEAP32[$0>>2]|0;HEAP32[20272+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[20272+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[20272+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[20272+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[20272+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[20272+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[20272+28>>2]=HEAP32[$0+28>>2]|0; - _emscripten_set_main_loop((1|0),0,1); - ;HEAP32[$font$byval_copy>>2]=HEAP32[20272>>2]|0;HEAP32[$font$byval_copy+4>>2]=HEAP32[20272+4>>2]|0;HEAP32[$font$byval_copy+8>>2]=HEAP32[20272+8>>2]|0;HEAP32[$font$byval_copy+12>>2]=HEAP32[20272+12>>2]|0;HEAP32[$font$byval_copy+16>>2]=HEAP32[20272+16>>2]|0;HEAP32[$font$byval_copy+20>>2]=HEAP32[20272+20>>2]|0;HEAP32[$font$byval_copy+24>>2]=HEAP32[20272+24>>2]|0;HEAP32[$font$byval_copy+28>>2]=HEAP32[20272+28>>2]|0; - _UnloadSpriteFont($font$byval_copy); - _CloseWindow(); - STACKTOP = sp;return 0; -} -function _UpdateDrawFrame() { - var $$byval_copy7 = 0, $$byval_copy8 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0.0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $font$byval_copy = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $$byval_copy8 = sp + 68|0; - $$byval_copy7 = sp + 32|0; - $font$byval_copy = sp; - $0 = sp + 64|0; - $1 = sp + 60|0; - $2 = sp + 56|0; - $3 = sp + 52|0; - $4 = sp + 40|0; - $5 = sp + 48|0; - _BeginDrawing(); - HEAP8[$0>>0] = -11; - $6 = ((($0)) + 1|0); - HEAP8[$6>>0] = -11; - $7 = ((($0)) + 2|0); - HEAP8[$7>>0] = -11; - $8 = ((($0)) + 3|0); - HEAP8[$8>>0] = -1; - ;HEAP8[$$byval_copy8>>0]=HEAP8[$0>>0]|0;HEAP8[$$byval_copy8+1>>0]=HEAP8[$0+1>>0]|0;HEAP8[$$byval_copy8+2>>0]=HEAP8[$0+2>>0]|0;HEAP8[$$byval_copy8+3>>0]=HEAP8[$0+3>>0]|0; - _ClearBackground($$byval_copy8); - HEAP8[$1>>0] = -126; - $9 = ((($1)) + 1|0); - HEAP8[$9>>0] = -126; - $10 = ((($1)) + 2|0); - HEAP8[$10>>0] = -126; - $11 = ((($1)) + 3|0); - HEAP8[$11>>0] = -1; - ;HEAP8[$$byval_copy8>>0]=HEAP8[$1>>0]|0;HEAP8[$$byval_copy8+1>>0]=HEAP8[$1+1>>0]|0;HEAP8[$$byval_copy8+2>>0]=HEAP8[$1+2>>0]|0;HEAP8[$$byval_copy8+3>>0]=HEAP8[$1+3>>0]|0; - _DrawText(4714,40,50,20,$$byval_copy8); - $12 = HEAP32[(20292)>>2]|0; - HEAP32[$font$byval_copy>>2] = $12; - $13 = (_FormatText(4742,$font$byval_copy)|0); - HEAP8[$2>>0] = -126; - $14 = ((($2)) + 1|0); - HEAP8[$14>>0] = -126; - $15 = ((($2)) + 2|0); - HEAP8[$15>>0] = -126; - $16 = ((($2)) + 3|0); - HEAP8[$16>>0] = -1; - ;HEAP8[$$byval_copy8>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy8+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy8+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy8+3>>0]=HEAP8[$2+3>>0]|0; - _DrawText($13,40,80,20,$$byval_copy8); - $17 = HEAP32[(20296)>>2]|0; - HEAP32[$$byval_copy7>>2] = $17; - $18 = (_FormatText(4771,$$byval_copy7)|0); - HEAP8[$3>>0] = -126; - $19 = ((($3)) + 1|0); - HEAP8[$19>>0] = -126; - $20 = ((($3)) + 2|0); - HEAP8[$20>>0] = -126; - $21 = ((($3)) + 3|0); - HEAP8[$21>>0] = -1; - ;HEAP8[$$byval_copy8>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy8+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy8+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy8+3>>0]=HEAP8[$3+3>>0]|0; - _DrawText($18,40,110,20,$$byval_copy8); - HEAPF32[$4>>2] = 40.0; - $22 = ((($4)) + 4|0); - HEAPF32[$22>>2] = 180.0; - $23 = HEAP32[(20292)>>2]|0; - $24 = (+($23|0)); - HEAP8[$5>>0] = -66; - $25 = ((($5)) + 1|0); - HEAP8[$25>>0] = 33; - $26 = ((($5)) + 2|0); - HEAP8[$26>>0] = 55; - $27 = ((($5)) + 3|0); - HEAP8[$27>>0] = -1; - ;HEAP32[$font$byval_copy>>2]=HEAP32[20272>>2]|0;HEAP32[$font$byval_copy+4>>2]=HEAP32[20272+4>>2]|0;HEAP32[$font$byval_copy+8>>2]=HEAP32[20272+8>>2]|0;HEAP32[$font$byval_copy+12>>2]=HEAP32[20272+12>>2]|0;HEAP32[$font$byval_copy+16>>2]=HEAP32[20272+16>>2]|0;HEAP32[$font$byval_copy+20>>2]=HEAP32[20272+20>>2]|0;HEAP32[$font$byval_copy+24>>2]=HEAP32[20272+24>>2]|0;HEAP32[$font$byval_copy+28>>2]=HEAP32[20272+28>>2]|0; - ;HEAP32[$$byval_copy7>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy7+4>>2]=HEAP32[$4+4>>2]|0; - ;HEAP8[$$byval_copy8>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy8+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy8+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy8+3>>0]=HEAP8[$5+3>>0]|0; - _DrawTextEx($font$byval_copy,4372,$$byval_copy7,$24,0,$$byval_copy8); - _EndDrawing(); - STACKTOP = sp;return; -} -function _tinfl_decompress($0,$1,$2,$3,$4,$5,$6) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - $6 = $6|0; - var $$ = 0, $$$301127 = 0, $$010861840 = 0, $$010871839 = 0, $$010881838 = 0, $$010911856 = 0, $$010941846 = 0, $$010951864 = 0, $$01097 = 0, $$01194 = 0, $$011971855 = 0, $$01202 = 0, $$01202$shrunk = 0, $$01203 = 0, $$01300 = 0, $$01300$shrunk = 0, $$01309 = 0, $$01410 = 0, $$01410$shrunk = 0, $$01411 = 0; - var $$01411$shrunk = 0, $$01412 = 0, $$01413 = 0, $$01413$shrunk = 0, $$01416 = 0, $$01507 = 0, $$01607 = 0, $$01834 = 0, $$0937$lcssa = 0, $$09371833 = 0, $$0938$lcssa = 0, $$09381832 = 0, $$0941$lcssa = 0, $$09411816 = 0, $$09431831 = 0, $$09441830 = 0, $$0947 = 0, $$0947$shrunk = 0, $$0948 = 0, $$0949 = 0; - var $$0950 = 0, $$0950$shrunk = 0, $$0951 = 0, $$0952 = 0, $$0952$shrunk = 0, $$0953 = 0, $$0956 = 0, $$0959 = 0, $$0959$shrunk = 0, $$0960 = 0, $$0963 = 0, $$0967 = 0, $$0971 = 0, $$0971$shrunk = 0, $$0972 = 0, $$0975 = 0, $$0978 = 0, $$0979 = 0, $$0979$shrunk = 0, $$0980 = 0; - var $$0980$shrunk = 0, $$0981 = 0, $$0984 = 0, $$0987 = 0, $$0991 = 0, $$1$lcssa = 0, $$100 = 0, $$1001409 = 0, $$101426 = 0, $$101617 = 0, $$110891852 = 0, $$11098 = 0, $$11098$ph = 0, $$111427 = 0, $$111518 = 0, $$111618 = 0, $$11198 = 0, $$11204 = 0, $$11204$ph = 0, $$11310 = 0; - var $$11310$ph = 0, $$11417 = 0, $$11508 = 0, $$11608 = 0, $$11818 = 0, $$121428 = 0, $$121428$ph = 0, $$121519 = 0, $$121619 = 0, $$121619$ph = 0, $$13 = 0, $$131004 = 0, $$131110 = 0, $$131216 = 0, $$131322 = 0, $$131429 = 0, $$131520 = 0, $$131620 = 0, $$14 = 0, $$141005 = 0; - var $$141111 = 0, $$141217 = 0, $$141323 = 0, $$141430 = 0, $$141521 = 0, $$141621 = 0, $$15 = 0, $$151006 = 0, $$151112 = 0, $$151218 = 0, $$151324 = 0, $$151431 = 0, $$151522 = 0, $$151622 = 0, $$16 = 0, $$161007 = 0, $$161113 = 0, $$161113$ph = 0, $$161219 = 0, $$161325 = 0; - var $$161432 = 0, $$161523 = 0, $$161623 = 0, $$17 = 0, $$17$ph = 0, $$171008 = 0, $$171008$ph = 0, $$171114 = 0, $$171220 = 0, $$171220$ph = 0, $$171326 = 0, $$171326$ph = 0, $$171433 = 0, $$171524 = 0, $$171624 = 0, $$1753 = 0, $$1754 = 0, $$18 = 0, $$181009 = 0, $$181115 = 0; - var $$181221 = 0, $$181327 = 0, $$181434 = 0, $$181525 = 0, $$181625 = 0, $$19 = 0, $$191010 = 0, $$191116 = 0, $$191222 = 0, $$191328 = 0, $$191435 = 0, $$191526 = 0, $$191626 = 0, $$1939$lcssa = 0, $$19391817 = 0, $$19421823 = 0, $$1945$lcssa = 0, $$19451815 = 0, $$1954 = 0, $$1957 = 0; - var $$1961 = 0, $$1961$ = 0, $$1964 = 0, $$1968 = 0, $$1973 = 0, $$1976 = 0, $$1982 = 0, $$1985 = 0, $$1988 = 0, $$1988$ph = 0, $$1992 = 0, $$1992$ph = 0, $$2$lcssa = 0, $$20 = 0, $$201011 = 0, $$201117 = 0, $$201223 = 0, $$201329 = 0, $$201436 = 0, $$201527 = 0; - var $$201627 = 0, $$21 = 0, $$21099 = 0, $$211012 = 0, $$211118 = 0, $$211224 = 0, $$211330 = 0, $$211437 = 0, $$211437$ph = 0, $$211528 = 0, $$211628 = 0, $$211628$ph = 0, $$21196 = 0, $$21199$lcssa = 0, $$211991845 = 0, $$21205 = 0, $$21311 = 0, $$21418 = 0, $$21509 = 0, $$21609 = 0; - var $$21825 = 0, $$22 = 0, $$221013 = 0, $$221119 = 0, $$221225 = 0, $$221331 = 0, $$221438 = 0, $$221529 = 0, $$221629 = 0, $$23 = 0, $$231014 = 0, $$231120 = 0, $$231226 = 0, $$231332 = 0, $$231439 = 0, $$231530 = 0, $$231630 = 0, $$24 = 0, $$241015 = 0, $$241121 = 0; - var $$241227 = 0, $$241333 = 0, $$241440 = 0, $$241531 = 0, $$241631 = 0, $$25 = 0, $$251016 = 0, $$251122 = 0, $$251122$ph = 0, $$251228 = 0, $$251334 = 0, $$251441 = 0, $$251532 = 0, $$251632 = 0, $$26 = 0, $$26$ph = 0, $$261017 = 0, $$261017$ph = 0, $$261123 = 0, $$261229 = 0; - var $$261229$ph = 0, $$261335 = 0, $$261335$ph = 0, $$261442 = 0, $$261533 = 0, $$261633 = 0, $$27 = 0, $$271018 = 0, $$271124 = 0, $$271230 = 0, $$271336 = 0, $$271443 = 0, $$271534 = 0, $$271634 = 0, $$28 = 0, $$281019 = 0, $$281125 = 0, $$281231 = 0, $$281337 = 0, $$281444 = 0; - var $$281535 = 0, $$281635 = 0, $$29 = 0, $$291020 = 0, $$291126 = 0, $$291232 = 0, $$291338 = 0, $$291445 = 0, $$291536 = 0, $$291636 = 0, $$2940$lcssa = 0, $$29401824 = 0, $$2946$lcssa = 0, $$29461822 = 0, $$2955 = 0, $$2958 = 0, $$2965 = 0, $$2969 = 0, $$2974 = 0, $$2977 = 0; - var $$2983 = 0, $$2986 = 0, $$2989 = 0, $$2993 = 0, $$30 = 0, $$301021 = 0, $$301127 = 0, $$301233 = 0, $$301339 = 0, $$301446 = 0, $$301537 = 0, $$301637 = 0, $$31 = 0, $$31100$v = 0, $$311022 = 0, $$311128 = 0, $$311234 = 0, $$311340 = 0, $$311447 = 0, $$311538 = 0; - var $$311638 = 0, $$31200 = 0, $$31206 = 0, $$31206$ph = 0, $$31312 = 0, $$31312$ph = 0, $$31419 = 0, $$31419$ph = 0, $$31610 = 0, $$31610$ph = 0, $$32 = 0, $$321023 = 0, $$321129 = 0, $$321235 = 0, $$321341 = 0, $$321448 = 0, $$321448$ph = 0, $$321539 = 0, $$321639 = 0, $$321639$ph = 0; - var $$33 = 0, $$331024 = 0, $$331130 = 0, $$331236 = 0, $$331342 = 0, $$331449 = 0, $$331540 = 0, $$331640 = 0, $$34 = 0, $$341025 = 0, $$341131 = 0, $$341237 = 0, $$341343 = 0, $$341450 = 0, $$341541 = 0, $$341641 = 0, $$35 = 0, $$351026 = 0, $$351132 = 0, $$351238 = 0; - var $$351344 = 0, $$351451 = 0, $$351542 = 0, $$351642 = 0, $$36 = 0, $$361027 = 0, $$361027$ph = 0, $$361133 = 0, $$361133$ph = 0, $$361239 = 0, $$361345 = 0, $$361452 = 0, $$361543 = 0, $$361643 = 0, $$37 = 0, $$37$ph = 0, $$371028 = 0, $$371134 = 0, $$371240 = 0, $$371240$ph = 0; - var $$371346 = 0, $$371346$ph = 0, $$371453 = 0, $$371453$ph = 0, $$371544 = 0, $$371644 = 0, $$371644$ph = 0, $$38 = 0, $$381029 = 0, $$381135 = 0, $$381241 = 0, $$381347 = 0, $$381454 = 0, $$381545 = 0, $$381645 = 0, $$39 = 0, $$391030 = 0, $$391136 = 0, $$391242 = 0, $$391348 = 0; - var $$391455 = 0, $$391546 = 0, $$391646 = 0, $$3966 = 0, $$3970 = 0, $$3990 = 0, $$3990$ph = 0, $$3994 = 0, $$3994$ph = 0, $$40 = 0, $$401031 = 0, $$401137 = 0, $$401243 = 0, $$401349 = 0, $$401456 = 0, $$401547 = 0, $$401647 = 0, $$41 = 0, $$411032 = 0, $$411032$ph = 0; - var $$411138 = 0, $$411138$ph = 0, $$411244 = 0, $$411350 = 0, $$411457 = 0, $$411548 = 0, $$411648 = 0, $$41201 = 0, $$41420 = 0, $$41511 = 0, $$41611 = 0, $$42 = 0, $$42$ph = 0, $$421033 = 0, $$421139 = 0, $$421245 = 0, $$421245$ph = 0, $$421351 = 0, $$421351$ph = 0, $$421458 = 0; - var $$421549 = 0, $$421649 = 0, $$43 = 0, $$431034 = 0, $$431140 = 0, $$431246 = 0, $$431352 = 0, $$431459 = 0, $$431550 = 0, $$431650 = 0, $$44 = 0, $$441035 = 0, $$441141 = 0, $$441247 = 0, $$441353 = 0, $$441460 = 0, $$441460$ph = 0, $$441551 = 0, $$441651 = 0, $$441651$ph = 0; - var $$45 = 0, $$451036 = 0, $$451142 = 0, $$451248 = 0, $$451354 = 0, $$451461 = 0, $$451552 = 0, $$451652 = 0, $$46 = 0, $$461037 = 0, $$461143 = 0, $$461249 = 0, $$461355 = 0, $$461462 = 0, $$461553 = 0, $$461653 = 0, $$47 = 0, $$471038 = 0, $$471144 = 0, $$471250 = 0; - var $$471356 = 0, $$471463 = 0, $$471554 = 0, $$471654 = 0, $$48 = 0, $$481039 = 0, $$481039$ph = 0, $$481145 = 0, $$481145$ph = 0, $$481251 = 0, $$481357 = 0, $$481464 = 0, $$481555 = 0, $$481655 = 0, $$49 = 0, $$49$ph = 0, $$491040 = 0, $$491146 = 0, $$491252 = 0, $$491252$ph = 0; - var $$491358 = 0, $$491358$ph = 0, $$491465 = 0, $$491465$ph = 0, $$491556 = 0, $$491656 = 0, $$491656$ph = 0, $$5 = 0, $$50 = 0, $$501041 = 0, $$501147 = 0, $$501253 = 0, $$501359 = 0, $$501466 = 0, $$501557 = 0, $$501657 = 0, $$51 = 0, $$51102 = 0, $$511042 = 0, $$511148 = 0; - var $$511254 = 0, $$511360 = 0, $$511467 = 0, $$511558 = 0, $$511658 = 0, $$51208 = 0, $$51314 = 0, $$51512 = 0, $$52 = 0, $$521043 = 0, $$521043$ph = 0, $$521149 = 0, $$521255 = 0, $$521361 = 0, $$521468 = 0, $$521559 = 0, $$521659 = 0, $$53 = 0, $$531044 = 0, $$531150 = 0; - var $$531150$ph = 0, $$531256 = 0, $$531362 = 0, $$531469 = 0, $$531560 = 0, $$531660 = 0, $$54 = 0, $$54$ph = 0, $$541045 = 0, $$541151 = 0, $$541257 = 0, $$541257$ph = 0, $$541363 = 0, $$541363$ph = 0, $$541470$ph = 0, $$541561 = 0, $$541661$lcssa = 0, $$541661$ph = 0, $$5416611868 = 0, $$55 = 0; - var $$551046 = 0, $$551152 = 0, $$551258 = 0, $$551364 = 0, $$551471 = 0, $$551562 = 0, $$551662 = 0, $$56 = 0, $$561047 = 0, $$561153 = 0, $$561259 = 0, $$561365 = 0, $$561472 = 0, $$561563 = 0, $$561663 = 0, $$57 = 0, $$571048$ph = 0, $$571154 = 0, $$571260 = 0, $$571366 = 0; - var $$571473 = 0, $$571473$ph = 0, $$571564 = 0, $$571664 = 0, $$571664$ph = 0, $$58 = 0, $$581049 = 0, $$581155$lcssa = 0, $$581155$ph = 0, $$5811551871 = 0, $$581261 = 0, $$581367 = 0, $$581474 = 0, $$581565$lcssa = 0, $$581565$ph = 0, $$5815651869 = 0, $$581665 = 0, $$59$lcssa = 0, $$59$ph = 0, $$591050 = 0; - var $$591156 = 0, $$591262$ph = 0, $$591368$lcssa = 0, $$591368$ph = 0, $$5913681870 = 0, $$591475 = 0, $$591566 = 0, $$591666 = 0, $$591872 = 0, $$5996 = 0, $$6 = 0, $$60 = 0, $$601051 = 0, $$601051$ph = 0, $$601157 = 0, $$601263 = 0, $$601369 = 0, $$601476 = 0, $$601567 = 0, $$61 = 0; - var $$61103 = 0, $$611052 = 0, $$611158 = 0, $$611158$ph = 0, $$611264 = 0, $$611370 = 0, $$611477 = 0, $$611568 = 0, $$611668 = 0, $$61209 = 0, $$61315 = 0, $$61513 = 0, $$62 = 0, $$62$ph = 0, $$621053 = 0, $$621159 = 0, $$621265 = 0, $$621265$ph = 0, $$621371 = 0, $$621371$ph = 0; - var $$621478 = 0, $$621569 = 0, $$621669 = 0, $$63 = 0, $$631054 = 0, $$631266 = 0, $$631372 = 0, $$631479 = 0, $$631479$ph = 0, $$631570 = 0, $$631670 = 0, $$64 = 0, $$641055 = 0, $$641161 = 0, $$641267 = 0, $$641373 = 0, $$641480 = 0, $$641571 = 0, $$641671 = 0, $$641671$ph = 0; - var $$65 = 0, $$651056 = 0, $$651162 = 0, $$651268 = 0, $$651374 = 0, $$651481 = 0, $$651572 = 0, $$651672 = 0, $$66 = 0, $$661057 = 0, $$661057$ph = 0, $$661163 = 0, $$661269 = 0, $$661375 = 0, $$661482 = 0, $$661673 = 0, $$671058 = 0, $$671164 = 0, $$671164$ph = 0, $$671270 = 0; - var $$671483 = 0, $$671574 = 0, $$671674 = 0, $$68 = 0, $$681059 = 0, $$681165 = 0, $$681271 = 0, $$681271$ph = 0, $$681377 = 0, $$681484 = 0, $$681484$ph = 0, $$681575 = 0, $$681675 = 0, $$69 = 0, $$691060 = 0, $$691166 = 0, $$691272 = 0, $$691378 = 0, $$691485 = 0, $$691576 = 0; - var $$691676 = 0, $$691676$ph = 0, $$6997 = 0, $$7 = 0, $$70 = 0, $$701061 = 0, $$701167 = 0, $$701273 = 0, $$701379 = 0, $$701486 = 0, $$701577 = 0, $$701677 = 0, $$71 = 0, $$71$ph = 0, $$71104 = 0, $$711062 = 0, $$711062$ph = 0, $$711168 = 0, $$711274 = 0, $$711380 = 0; - var $$711380$ph = 0, $$711487 = 0, $$711578 = 0, $$711678 = 0, $$71210 = 0, $$71316 = 0, $$71514 = 0, $$72 = 0, $$721063 = 0, $$721169 = 0, $$721169$ph = 0, $$721275 = 0, $$721381 = 0, $$721488 = 0, $$721488$ph = 0, $$721579 = 0, $$721679 = 0, $$73 = 0, $$731064 = 0, $$731170 = 0; - var $$731276 = 0, $$731276$ph = 0, $$731382 = 0, $$731489 = 0, $$731580 = 0, $$731680 = 0, $$731680$ph = 0, $$74 = 0, $$741065 = 0, $$741065$ph = 0, $$741171 = 0, $$741277 = 0, $$741383 = 0, $$741490 = 0, $$741581 = 0, $$741681 = 0, $$75 = 0, $$751066 = 0, $$751172 = 0, $$751278 = 0; - var $$751384 = 0, $$751491 = 0, $$751582 = 0, $$751682 = 0, $$76 = 0, $$76$ph = 0, $$761067 = 0, $$761173 = 0, $$761173$ph = 0, $$761279 = 0, $$761279$ph = 0, $$761385 = 0, $$761385$ph = 0, $$761492 = 0, $$761583 = 0, $$761683 = 0, $$77 = 0, $$771068 = 0, $$771174 = 0, $$771280 = 0; - var $$771386 = 0, $$771584 = 0, $$771684 = 0, $$78 = 0, $$781069 = 0, $$781175 = 0, $$781281 = 0, $$781387 = 0, $$781585 = 0, $$781685 = 0, $$79 = 0, $$791070 = 0, $$791176 = 0, $$791282 = 0, $$791388 = 0, $$791586 = 0, $$791686 = 0, $$7998 = 0, $$8 = 0, $$8$ph = 0; - var $$80 = 0, $$80$ph = 0, $$801071 = 0, $$801177 = 0, $$801283 = 0, $$801389 = 0, $$801389$ph = 0, $$801496 = 0, $$801587 = 0, $$801687 = 0, $$81 = 0, $$81105 = 0, $$81105$ph = 0, $$811178 = 0, $$811284 = 0, $$811390 = 0, $$811497 = 0, $$811588 = 0, $$81211 = 0, $$81211$ph = 0; - var $$81317 = 0, $$81317$ph = 0, $$81424 = 0, $$81515 = 0, $$81615 = 0, $$82 = 0, $$821179 = 0, $$821285 = 0, $$821391 = 0, $$821498 = 0, $$821589 = 0, $$83 = 0, $$831180 = 0, $$831392 = 0, $$831499 = 0, $$831590 = 0, $$84 = 0, $$841075 = 0, $$841393 = 0, $$841500 = 0; - var $$841500$ph = 0, $$841591 = 0, $$841691 = 0, $$85 = 0, $$851076 = 0, $$851394 = 0, $$851501 = 0, $$851592 = 0, $$851692 = 0, $$86 = 0, $$861077 = 0, $$861289 = 0, $$861395 = 0, $$861502 = 0, $$861693 = 0, $$871078 = 0, $$871184 = 0, $$871290 = 0, $$871503 = 0, $$871694 = 0; - var $$881079 = 0, $$881079$ph = 0, $$881185 = 0, $$881291 = 0, $$881504 = 0, $$881595 = 0, $$881695 = 0, $$881695$ph = 0, $$891080 = 0, $$891186 = 0, $$891292 = 0, $$891505 = 0, $$891596 = 0, $$891696 = 0, $$8999 = 0, $$8999$ph = 0, $$9 = 0, $$90 = 0, $$901081 = 0, $$901187 = 0; - var $$901187$ph = 0, $$901293 = 0, $$901293$ph = 0, $$901399 = 0, $$901506 = 0, $$901597 = 0, $$901697 = 0, $$91 = 0, $$91000 = 0, $$91106 = 0, $$911082 = 0, $$911188 = 0, $$911294 = 0, $$911400 = 0, $$911598 = 0, $$911698 = 0, $$91212 = 0, $$91318 = 0, $$91425 = 0, $$91616 = 0; - var $$92 = 0, $$921083 = 0, $$921189 = 0, $$921295 = 0, $$921401 = 0, $$921599 = 0, $$921699 = 0, $$93 = 0, $$931084 = 0, $$931190 = 0, $$931296 = 0, $$931402 = 0, $$931600 = 0, $$931700 = 0, $$94 = 0, $$94$ph = 0, $$941085 = 0, $$941191 = 0, $$941297 = 0, $$941403 = 0; - var $$941403$ph = 0, $$941601 = 0, $$941701 = 0, $$95 = 0, $$951192 = 0, $$951298 = 0, $$951404 = 0, $$951602 = 0, $$96 = 0, $$961193 = 0, $$961299 = 0, $$961405 = 0, $$961603 = 0, $$97 = 0, $$971406 = 0, $$971604 = 0, $$98 = 0, $$981407 = 0, $$981605 = 0, $$99 = 0; - var $$991408 = 0, $$991606 = 0, $$lcssa1778 = 0, $$lcssa1779 = 0, $$lcssa1799 = 0, $$lcssa1802 = 0, $$not = 0, $$not1747 = 0, $$sink12 = 0, $$sink13 = 0, $$sink16 = 0, $$sink17 = 0, $$sink1705 = 0, $$sink1710 = 0, $$sink1713 = 0, $$sink1716 = 0, $$sink1719 = 0, $$sink1722 = 0, $$sink1729 = 0, $$sink1732 = 0; - var $$sink1736 = 0, $$sink1739 = 0, $$sink1743 = 0, $$sink1746 = 0, $$sink1750 = 0, $$sink3 = 0, $$sink3$shrunk = 0, $$sink30 = 0, $$sink9 = 0, $$sink9$shrunk = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0; - var $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0; - var $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0; - var $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0; - var $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0; - var $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0; - var $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0; - var $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0; - var $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0; - var $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0; - var $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0; - var $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0; - var $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0; - var $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0; - var $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0; - var $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0; - var $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0; - var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; - var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; - var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; - var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; - var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; - var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0; - var $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0; - var $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0; - var $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0; - var $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0; - var $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0; - var $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0; - var $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0; - var $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0; - var $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0; - var $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0; - var $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0; - var $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0; - var $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0; - var $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0; - var $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0; - var $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0; - var $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0; - var $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0; - var $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0; - var $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0; - var $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0; - var $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0; - var $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0; - var $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0; - var $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0; - var $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, $exitcond = 0, $not$ = 0, $not$1755 = 0, $or$cond = 0, $or$cond1702 = 0, $or$cond1752 = 0, $or$cond24 = 0, $or$cond29 = 0, $scevgep = 0; - var $scevgep1947 = 0, $scevgep1948 = 0, $scevgep1955 = 0, $scevgep1957 = 0, $scevgep1959 = 0, $scevgep19611962 = 0, $trunc = 0, $trunc$clear = 0, dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $7 = sp + 64|0; - $8 = sp; - $9 = HEAP32[$2>>2]|0; - $10 = (($1) + ($9)|0); - $11 = HEAP32[$5>>2]|0; - $12 = (($4) + ($11)|0); - $13 = $6 & 4; - $14 = ($13|0)!=(0); - $15 = $4; - $16 = $3; - $17 = $16 ^ -1; - $18 = (($15) + ($17))|0; - $19 = (($18) + ($11))|0; - $$1753 = $14 ? -1 : $19; - $20 = (($$1753) + 1)|0; - $21 = $20 & $$1753; - $22 = ($21|0)!=(0); - $23 = ($4>>>0)<($3>>>0); - $or$cond1702 = $23 | $22; - if ($or$cond1702) { - HEAP32[$5>>2] = 0; - HEAP32[$2>>2] = 0; - $$0951 = -3; - STACKTOP = sp;return ($$0951|0); - } - $24 = ((($0)) + 4|0); - $25 = HEAP32[$24>>2]|0; - $26 = ((($0)) + 56|0); - $27 = HEAP32[$26>>2]|0; - $28 = ((($0)) + 32|0); - $29 = HEAP32[$28>>2]|0; - $30 = ((($0)) + 36|0); - $31 = HEAP32[$30>>2]|0; - $32 = ((($0)) + 40|0); - $33 = HEAP32[$32>>2]|0; - $34 = ((($0)) + 60|0); - $35 = HEAP32[$34>>2]|0; - $36 = HEAP32[$0>>2]|0; - L5: do { - switch ($36|0) { - case 0: { - $37 = ((($0)) + 12|0); - HEAP32[$37>>2] = 0; - $38 = ((($0)) + 8|0); - HEAP32[$38>>2] = 0; - $39 = ((($0)) + 28|0); - HEAP32[$39>>2] = 1; - $40 = ((($0)) + 16|0); - HEAP32[$40>>2] = 1; - $41 = $6 & 1; - $42 = ($41|0)==(0); - if ($42) { - $$01416 = $35;$$01607 = $4;$$41511 = $1;$$5 = 0;$$51102 = 0;$$51208 = 0;$$51314 = 0;$$5996 = 0; - label = 14; - } else { - $43 = ($9|0)<(1); - if ($43) { - $$01097 = 0;$$01203 = 0;$$01309 = 0;$$0987 = 0;$$0991 = 0; - label = 6; - } else { - $$11098$ph = 0;$$11204$ph = 0;$$11310$ph = 0;$$1988$ph = 0;$$1992$ph = 0; - label = 8; - } - } - break; - } - case 1: { - $46 = ($9|0)>(0); - if ($46) { - $$11098$ph = $31;$$11204$ph = $33;$$11310$ph = $27;$$1988$ph = $25;$$1992$ph = $29; - label = 8; - } else { - $$01097 = $31;$$01203 = $33;$$01309 = $27;$$0987 = $25;$$0991 = $29; - label = 6; - } - break; - } - case 2: { - $53 = ($9|0)>(0); - if ($53) { - $$31206$ph = $33;$$31312$ph = $27;$$3990$ph = $25;$$3994$ph = $29;$$sink1705 = $1; - label = 12; - } else { - $$11508 = $1;$$21099 = $31;$$21205 = $33;$$21311 = $27;$$2989 = $25;$$2993 = $29; - label = 10; - } - break; - } - case 36: { - $$0960 = -1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 36; - label = 243; - break; - } - case 3: { - $75 = ($9|0)>(0); - if ($75) { - $$31419$ph = $35;$$31610$ph = $4;$$8$ph = $25;$$81105$ph = $31;$$81211$ph = $33;$$81317$ph = $27;$$8999$ph = $29;$$sink1710 = $1; - label = 18; - } else { - $$21418 = $35;$$21609 = $4;$$61513 = $1;$$7 = $25;$$71104 = $31;$$71210 = $33;$$71316 = $27;$$7998 = $29; - label = 16; - } - break; - } - case 5: { - $90 = ($9|0)>(0); - if ($90) { - $91 = ((($1)) + 1|0); - $92 = HEAP8[$1>>0]|0; - $93 = $92&255; - $$01412 = $93;$$111518 = $91; - } else { - $88 = $6 & 2; - $89 = ($88|0)==(0); - if ($89) { - $$01412 = 0;$$111518 = $1; - } else { - $$0960 = 1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 5; - label = 243; - break L5; - } - } - $94 = $$01412 << $25; - $95 = $94 | $27; - $96 = (($25) + 8)|0; - $$121519 = $$111518;$$13 = $96;$$131004 = $29;$$131216 = $33;$$131322 = $95;$$81424 = $35;$$81615 = $4; - label = 25; - break; - } - case 6: { - $106 = ($9|0)>(0); - if ($106) { - $$121428$ph = $35;$$121619$ph = $4;$$161113$ph = $31;$$17$ph = $25;$$171008$ph = $29;$$171220$ph = $33;$$171326$ph = $27;$$sink1713 = $1; - label = 32; - } else { - $$111427 = $35;$$111618 = $4;$$151112 = $31;$$151522 = $1;$$16 = $25;$$161007 = $29;$$161219 = $33;$$161325 = $27; - label = 30; - } - break; - } - case 7: { - $120 = ($9|0)>(0); - if ($120) { - $121 = ((($1)) + 1|0); - $122 = HEAP8[$1>>0]|0; - $$151431 = $35;$$151622 = $4;$$191116 = $31;$$191526 = $121;$$20 = $25;$$201011 = $29;$$201223 = $33;$$201329 = $27;$$sink12 = $122; - label = 39; - } else { - $$141430 = $35;$$141621 = $4;$$181115 = $31;$$181525 = $1;$$19 = $25;$$191010 = $29;$$191222 = $33;$$191328 = $27; - label = 36; - } - break; - } - case 39: { - $$171433 = $35;$$171624 = $4;$$211118 = $31;$$211528 = $1;$$22 = $25;$$221013 = $29;$$221225 = $33;$$221331 = $27; - label = 43; - break; - } - case 51: { - $152 = ($9|0)>(0); - if ($152) { - $$211437$ph = $35;$$211628$ph = $4;$$251122$ph = $31;$$26$ph = $25;$$261017$ph = $29;$$261229$ph = $33;$$261335$ph = $27;$$sink1716 = $1; - label = 49; - } else { - $$201436 = $35;$$201627 = $4;$$241121 = $31;$$241531 = $1;$$25 = $25;$$251016 = $29;$$251228 = $33;$$251334 = $27; - label = 47; - } - break; - } - case 52: { - $$231439 = $35;$$231630 = $4;$$271018 = $29;$$271124 = $31;$$271534 = $1;$$28 = $25;$$281231 = $33;$$281337 = $27; - label = 52; - break; - } - case 9: { - $$251441 = $35;$$251632 = $4;$$291020 = $29;$$291126 = $31;$$291536 = $1;$$30 = $25;$$301233 = $33;$$301339 = $27; - label = 55; - break; - } - case 38: { - $$261442 = $35;$$261633 = $4;$$301021 = $29;$$301127 = $31;$$301537 = $1;$$31 = $25;$$311234 = $33;$$311340 = $27; - label = 56; - break; - } - case 40: { - $$271443 = $35;$$271634 = $4;$$311022 = $29;$$311128 = $31;$$311538 = $1;$$32 = $25;$$321235 = $33;$$321341 = $27; - label = 58; - break; - } - case 10: { - $$281444 = $35;$$281635 = $4;$$321023 = $29;$$321129 = $31;$$321539 = $1;$$33 = $25;$$331236 = $33;$$331342 = $27; - label = 60; - break; - } - case 11: { - $193 = ($9|0)>(0); - if ($193) { - $$321448$ph = $35;$$321639$ph = $4;$$361027$ph = $29;$$361133$ph = $31;$$37$ph = $25;$$371240$ph = $33;$$371346$ph = $27;$$sink1719 = $1; - label = 66; - } else { - $$311447 = $35;$$311638 = $4;$$351026 = $29;$$351132 = $31;$$351542 = $1;$$36 = $25;$$361239 = $33;$$361345 = $27; - label = 64; - } - break; - } - case 14: { - $224 = ($9|0)>(0); - if ($224) { - $$371453$ph = $35;$$371644$ph = $4;$$411032$ph = $29;$$411138$ph = $31;$$42$ph = $25;$$421245$ph = $33;$$421351$ph = $27;$$sink1722 = $1; - label = 75; - } else { - $$361452 = $35;$$361643 = $4;$$401031 = $29;$$401137 = $31;$$401547 = $1;$$41 = $25;$$411244 = $33;$$411350 = $27; - label = 73; - } - break; - } - case 35: { - $$401456 = $35;$$401647 = $4;$$441035 = $29;$$441141 = $31;$$441551 = $1;$$45 = $25;$$451248 = $33;$$451354 = $27; - label = 86; - break; - } - case 16: { - $452 = ($9|0)>(0); - if ($452) { - $$441460$ph = $35;$$441651$ph = $4;$$481039$ph = $29;$$481145$ph = $31;$$49$ph = $25;$$491252$ph = $33;$$491358$ph = $27;$$sink1729 = $1; - label = 116; - } else { - $$431459 = $35;$$431650 = $4;$$471038 = $29;$$471144 = $31;$$471554 = $1;$$48 = $25;$$481251 = $33;$$481357 = $27; - label = 114; - } - break; - } - case 17: { - $$461462 = $35;$$461653 = $4;$$491040 = $29;$$501147 = $31;$$501557 = $1;$$51 = $25;$$511254 = $33;$$511360 = $27; - label = 125; - break; - } - case 18: { - $503 = ($9|0)>(0); - if ($503) { - $$491465$ph = $35;$$491656$ph = $4;$$521043$ph = $29;$$531150$ph = $31;$$54$ph = $25;$$541257$ph = $33;$$541363$ph = $27;$$sink1732 = $1; - label = 130; - } else { - $$481464 = $35;$$481655 = $4;$$511042 = $29;$$521149 = $31;$$521559 = $1;$$53 = $25;$$531256 = $33;$$531362 = $27; - label = 128; - } - break; - } - case 21: { - $$511467 = $35;$$511658 = $4;$$541045 = $29;$$551152 = $31;$$551562 = $1;$$56 = $25;$$561259 = $33;$$561365 = $27; - label = 136; - break; - } - case 23: { - $572 = ($9|0)>(0); - if ($572) { - $$571473$ph = $35;$$571664$ph = $4;$$601051$ph = $29;$$611158$ph = $31;$$62$ph = $25;$$621265$ph = $33;$$621371$ph = $27;$$sink1736 = $1; - label = 153; - } else { - $$561472 = $35;$$561663 = $4;$$591050 = $29;$$601157 = $31;$$601567 = $1;$$61 = $25;$$611264 = $33;$$611370 = $27; - label = 151; - } - break; - } - case 24: { - $$591475 = $35;$$591666 = $4;$$621053 = $29;$$621159 = $31;$$631570 = $1;$$64 = $25;$$641267 = $33;$$641373 = $27; - label = 160; - break; - } - case 25: { - $696 = ($9|0)>(0); - if ($696) { - $$631479$ph = $35;$$641671$ph = $4;$$661057$ph = $29;$$671164$ph = $31;$$681271$ph = $33;$$71$ph = $25;$$711380$ph = $27;$$sink1739 = $1; - label = 182; - } else { - $$621478 = $35;$$631670 = $4;$$651056 = $29;$$661163 = $31;$$671270 = $33;$$691576 = $1;$$70 = $25;$$701379 = $27; - label = 180; - } - break; - } - case 26: { - $737 = ($9|0)>(0); - if ($737) { - $$681484$ph = $35;$$691676$ph = $4;$$711062$ph = $29;$$721169$ph = $31;$$731276$ph = $33;$$76$ph = $25;$$761385$ph = $27;$$sink1743 = $1; - label = 195; - } else { - $$671483 = $35;$$681675 = $4;$$701061 = $29;$$711168 = $31;$$721275 = $33;$$741581 = $1;$$75 = $25;$$751384 = $27; - label = 193; - } - break; - } - case 27: { - $784 = ($9|0)>(0); - if ($784) { - $$721488$ph = $35;$$731680$ph = $4;$$741065$ph = $29;$$761173$ph = $31;$$761279$ph = $33;$$80$ph = $25;$$801389$ph = $27;$$sink1746 = $1; - label = 206; - } else { - $$711487 = $35;$$721679 = $4;$$731064 = $29;$$751172 = $31;$$751278 = $33;$$781585 = $1;$$79 = $25;$$791388 = $27; - label = 204; - } - break; - } - case 37: { - $$731489 = $35;$$761683 = $4;$$771068 = $29;$$791176 = $31;$$791282 = $33;$$821589 = $1;$$83 = $25;$$831392 = $27; - label = 210; - break; - } - case 53: { - $$751491 = $35;$$781685 = $4;$$791070 = $29;$$811178 = $31;$$811284 = $33;$$841591 = $1;$$85 = $25;$$851394 = $27; - label = 213; - break; - } - case 32: { - $842 = ($9|0)>(0); - if ($842) { - $843 = ((($1)) + 1|0); - $844 = HEAP8[$1>>0]|0; - $845 = $844&255; - $$0949 = $845;$$881595 = $843; - } else { - $840 = $6 & 2; - $841 = ($840|0)==(0); - if ($841) { - $$0949 = 0;$$881595 = $1; - } else { - $$0960 = 1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 32; - label = 243; - break L5; - } - } - $846 = $$0949 << $25; - $847 = $846 | $27; - $848 = (($25) + 8)|0; - $$801496 = $35;$$841075 = $29;$$841691 = $4;$$861289 = $33;$$891596 = $$881595;$$90 = $848;$$901399 = $847; - label = 226; - break; - } - case 41: { - $858 = ($9|0)>(0); - if ($858) { - $$841500$ph = $35;$$881079$ph = $29;$$881695$ph = $4;$$901187$ph = $31;$$901293$ph = $33;$$94$ph = $25;$$941403$ph = $27;$$sink1750 = $1; - label = 233; - } else { - $$831499 = $35;$$871078 = $29;$$871694 = $4;$$891186 = $31;$$891292 = $33;$$921599 = $1;$$93 = $25;$$931402 = $27; - label = 231; - } - break; - } - case 42: { - $871 = ($9|0)>(0); - if ($871) { - $872 = ((($1)) + 1|0); - $873 = HEAP8[$1>>0]|0; - $874 = $873&255; - $$0948 = $874;$$871503 = $35;$$911082 = $29;$$911698 = $4;$$931190 = $31;$$931296 = $33;$$961603 = $872;$$97 = $25;$$971406 = $27; - label = 241; - } else { - $$861502 = $35;$$901081 = $29;$$901697 = $4;$$921189 = $31;$$921295 = $33;$$951602 = $1;$$96 = $25;$$961405 = $27; - label = 237; - } - break; - } - case 34: { - $$881504 = $35;$$921083 = $29;$$921699 = $4;$$941191 = $31;$$941297 = $33;$$971604 = $1;$$98 = $25;$$981407 = $27; - label = 242; - break; - } - default: { - $$100 = $25;$$1001409 = $27;$$1961 = -1;$$901506 = $35;$$941085 = $29;$$941701 = $4;$$961193 = $31;$$961299 = $33;$$991606 = $1; - label = 244; - } - } - } while(0); - if ((label|0) == 6) { - $44 = $6 & 2; - $45 = ($44|0)==(0); - if ($45) { - $$01507 = $1;$$11098 = $$01097;$$11204 = $$01203;$$11310 = $$01309;$$1988 = $$0987;$$1992 = $$0991;$$sink3$shrunk = 0; - label = 9; - } else { - $$0960 = 1;$$891505 = $35;$$931084 = $$0991;$$931700 = $4;$$951192 = $$01097;$$951298 = $$01203;$$981605 = $1;$$99 = $$0987;$$991408 = $$01309;$$sink30 = 1; - label = 243; - } - } - else if ((label|0) == 8) { - $47 = ((($1)) + 1|0); - $48 = HEAP8[$1>>0]|0; - $$01507 = $47;$$11098 = $$11098$ph;$$11204 = $$11204$ph;$$11310 = $$11310$ph;$$1988 = $$1988$ph;$$1992 = $$1992$ph;$$sink3$shrunk = $48; - label = 9; - } - if ((label|0) == 9) { - $$sink3 = $$sink3$shrunk&255; - $49 = ((($0)) + 8|0); - HEAP32[$49>>2] = $$sink3; - $50 = ($$01507>>>0)<($10>>>0); - if ($50) { - $$31206$ph = $$11204;$$31312$ph = $$11310;$$3990$ph = $$1988;$$3994$ph = $$1992;$$sink1705 = $$01507; - label = 12; - } else { - $$11508 = $$01507;$$21099 = $$11098;$$21205 = $$11204;$$21311 = $$11310;$$2989 = $$1988;$$2993 = $$1992; - label = 10; - } - } - if ((label|0) == 10) { - $51 = $6 & 2; - $52 = ($51|0)==(0); - if ($52) { - $$21509 = $$11508;$$31206 = $$21205;$$31312 = $$21311;$$3990 = $$2989;$$3994 = $$2993;$$sink9$shrunk = 0; - label = 13; - } else { - $$0960 = 1;$$891505 = $35;$$931084 = $$2993;$$931700 = $4;$$951192 = $$21099;$$951298 = $$21205;$$981605 = $$11508;$$99 = $$2989;$$991408 = $$21311;$$sink30 = 2; - label = 243; - } - } - else if ((label|0) == 12) { - $54 = ((($$sink1705)) + 1|0); - $55 = HEAP8[$$sink1705>>0]|0; - $$21509 = $54;$$31206 = $$31206$ph;$$31312 = $$31312$ph;$$3990 = $$3990$ph;$$3994 = $$3994$ph;$$sink9$shrunk = $55; - label = 13; - } - if ((label|0) == 13) { - $$sink9 = $$sink9$shrunk&255; - $56 = ((($0)) + 12|0); - HEAP32[$56>>2] = $$sink9; - $57 = ((($0)) + 8|0); - $58 = HEAP32[$57>>2]|0; - $59 = $58 << 8; - $60 = $59 | $$sink9; - $61 = (($60>>>0) % 31)&-1; - $62 = $$sink9 & 32; - $63 = $61 | $62; - $64 = $58 & 15; - $65 = ($64|0)!=(8); - $not$ = ($63|0)!=(0); - $$1754 = $65 | $not$; - $66 = $58 >>> 4; - $67 = 256 << $66; - $68 = ($67>>>0)>(32768); - $69 = ($20>>>0)<($67>>>0); - $$ = $68 | $69; - $not$1755 = $14 ^ 1; - $70 = $$ & $not$1755; - $$31100$v = $70 | $$1754; - if ($$31100$v) { - $$0960 = -1;$$891505 = $35;$$931084 = $$3994;$$931700 = $4;$$951192 = 1;$$951298 = $$31206;$$981605 = $$21509;$$99 = $$3990;$$991408 = $$31312;$$sink30 = 36; - label = 243; - } else { - $$01416 = $35;$$01607 = $4;$$41511 = $$21509;$$5 = $$3990;$$51102 = 0;$$51208 = $$31206;$$51314 = $$31312;$$5996 = $$3994; - label = 14; - } - } - L46: while(1) { - switch (label|0) { - case 14: { - label = 0; - $71 = ($$5>>>0)<(3); - if ($71) { - $$11417 = $$01416;$$11608 = $$01607;$$51512 = $$41511;$$6 = $$5;$$61103 = $$51102;$$61209 = $$51208;$$61315 = $$51314;$$6997 = $$5996; - label = 15; - } else { - $$41420 = $$01416;$$41611 = $$01607;$$81515 = $$41511;$$9 = $$5;$$91000 = $$5996;$$91106 = $$51102;$$91212 = $$51208;$$91318 = $$51314; - label = 20; - } - break; - } - case 16: { - label = 0; - $73 = $6 & 2; - $74 = ($73|0)==(0); - if ($74) { - $$01413$shrunk = 0;$$31419 = $$21418;$$31610 = $$21609;$$71514 = $$61513;$$8 = $$7;$$81105 = $$71104;$$81211 = $$71210;$$81317 = $$71316;$$8999 = $$7998; - label = 19; - } else { - $$0960 = 1;$$891505 = $$21418;$$931084 = $$7998;$$931700 = $$21609;$$951192 = $$71104;$$951298 = $$71210;$$981605 = $$61513;$$99 = $$7;$$991408 = $$71316;$$sink30 = 3; - label = 243; - continue L46; - } - break; - } - case 18: { - label = 0; - $76 = ((($$sink1710)) + 1|0); - $77 = HEAP8[$$sink1710>>0]|0; - $$01413$shrunk = $77;$$31419 = $$31419$ph;$$31610 = $$31610$ph;$$71514 = $76;$$8 = $$8$ph;$$81105 = $$81105$ph;$$81211 = $$81211$ph;$$81317 = $$81317$ph;$$8999 = $$8999$ph; - label = 19; - break; - } - case 25: { - label = 0; - $97 = $$13 & 7; - $98 = $$131322 >>> $97; - $99 = (($$13) - ($97))|0; - $$131110 = 0;$$131520 = $$121519;$$14 = $99;$$141005 = $$131004;$$141217 = $$131216;$$141323 = $98;$$91425 = $$81424;$$91616 = $$81615; - label = 26; - break; - } - case 30: { - label = 0; - $104 = $6 & 2; - $105 = ($104|0)==(0); - if ($105) { - $$01411$shrunk = 0;$$121428 = $$111427;$$121619 = $$111618;$$161113 = $$151112;$$161523 = $$151522;$$17 = $$16;$$171008 = $$161007;$$171220 = $$161219;$$171326 = $$161325; - label = 33; - } else { - $$0960 = 1;$$891505 = $$111427;$$931084 = $$161007;$$931700 = $$111618;$$951192 = $$151112;$$951298 = $$161219;$$981605 = $$151522;$$99 = $$16;$$991408 = $$161325;$$sink30 = 6; - label = 243; - continue L46; - } - break; - } - case 32: { - label = 0; - $107 = ((($$sink1713)) + 1|0); - $108 = HEAP8[$$sink1713>>0]|0; - $$01411$shrunk = $108;$$121428 = $$121428$ph;$$121619 = $$121619$ph;$$161113 = $$161113$ph;$$161523 = $107;$$17 = $$17$ph;$$171008 = $$171008$ph;$$171220 = $$171220$ph;$$171326 = $$171326$ph; - label = 33; - break; - } - case 36: { - label = 0; - $118 = $6 & 2; - $119 = ($118|0)==(0); - if ($119) { - $$151431 = $$141430;$$151622 = $$141621;$$191116 = $$181115;$$191526 = $$181525;$$20 = $$19;$$201011 = $$191010;$$201223 = $$191222;$$201329 = $$191328;$$sink12 = 0; - label = 39; - continue L46; - } else { - $$0960 = 1;$$891505 = $$141430;$$931084 = $$191010;$$931700 = $$141621;$$951192 = $$181115;$$951298 = $$191222;$$981605 = $$181525;$$99 = $$19;$$991408 = $$191328;$$sink30 = 7; - label = 243; - continue L46; - } - break; - } - case 39: { - label = 0; - $$sink13 = (((($0)) + 10528|0) + ($$191116)|0); - HEAP8[$$sink13>>0] = $$sink12; - $$161432 = $$151431;$$161623 = $$151622;$$201117 = $$191116;$$201527 = $$191526;$$21 = $$20;$$211012 = $$201011;$$211224 = $$201223;$$211330 = $$201329; - label = 41; - break; - } - case 43: { - label = 0; - $$0960 = -1;$$891505 = $$171433;$$931084 = $$221013;$$931700 = $$171624;$$951192 = $$211118;$$951298 = $$221225;$$981605 = $$211528;$$99 = $$22;$$991408 = $$221331;$$sink30 = 39; - label = 243; - continue L46; - break; - } - case 47: { - label = 0; - $150 = $6 & 2; - $151 = ($150|0)==(0); - if ($151) { - $$01410$shrunk = 0;$$211437 = $$201436;$$211628 = $$201627;$$251122 = $$241121;$$251532 = $$241531;$$26 = $$25;$$261017 = $$251016;$$261229 = $$251228;$$261335 = $$251334; - label = 50; - } else { - $$0960 = 1;$$891505 = $$201436;$$931084 = $$251016;$$931700 = $$201627;$$951192 = $$241121;$$951298 = $$251228;$$981605 = $$241531;$$99 = $$25;$$991408 = $$251334;$$sink30 = 51; - label = 243; - continue L46; - } - break; - } - case 49: { - label = 0; - $153 = ((($$sink1716)) + 1|0); - $154 = HEAP8[$$sink1716>>0]|0; - $$01410$shrunk = $154;$$211437 = $$211437$ph;$$211628 = $$211628$ph;$$251122 = $$251122$ph;$$251532 = $153;$$26 = $$26$ph;$$261017 = $$261017$ph;$$261229 = $$261229$ph;$$261335 = $$261335$ph; - label = 50; - break; - } - case 52: { - label = 0; - $162 = ($$231630>>>0)<($12>>>0); - if (!($162)) { - $$0960 = 2;$$891505 = $$231439;$$931084 = $$271018;$$931700 = $$231630;$$951192 = $$271124;$$951298 = $$281231;$$981605 = $$271534;$$99 = $$28;$$991408 = $$281337;$$sink30 = 52; - label = 243; - continue L46; - } - $163 = $$271018&255; - $164 = ((($$231630)) + 1|0); - HEAP8[$$231630>>0] = $163; - $165 = (($$271124) + -1)|0; - $$181434 = $$231439;$$181625 = $164;$$221119 = $165;$$221529 = $$271534;$$23 = $$28;$$231014 = $$271018;$$231226 = $$281231;$$231332 = $$281337; - label = 44; - break; - } - case 55: { - label = 0; - $167 = ($$251632>>>0)<($12>>>0); - if ($167) { - $$261442 = $$251441;$$261633 = $$251632;$$301021 = $$291020;$$301127 = $$291126;$$301537 = $$291536;$$31 = $$30;$$311234 = $$301233;$$311340 = $$301339; - label = 56; - continue L46; - } else { - $$0960 = 2;$$891505 = $$251441;$$931084 = $$291020;$$931700 = $$251632;$$951192 = $$291126;$$951298 = $$301233;$$981605 = $$291536;$$99 = $$30;$$991408 = $$301339;$$sink30 = 9; - label = 243; - continue L46; - } - break; - } - case 56: { - label = 0; - $168 = ($$301537>>>0)<($10>>>0); - if ($168) { - $171 = $12; - $172 = $$261633; - $173 = (($171) - ($172))|0; - $174 = $10; - $175 = $$301537; - $176 = (($174) - ($175))|0; - $177 = ($173>>>0)<($176>>>0); - $$sink17 = $177 ? $12 : $10; - $$sink16 = $177 ? $$261633 : $$301537; - $178 = $$sink17; - $179 = $$sink16; - $180 = (($178) - ($179))|0; - $181 = ($180>>>0)<($$301127>>>0); - $$$301127 = $181 ? $180 : $$301127; - _memcpy(($$261633|0),($$301537|0),($$$301127|0))|0; - $182 = (($$301537) + ($$$301127)|0); - $183 = (($$261633) + ($$$301127)|0); - $184 = (($$301127) - ($$$301127))|0; - $$241440 = $$261442;$$241631 = $183;$$281019 = $$301021;$$281125 = $184;$$281535 = $182;$$29 = $$31;$$291232 = $$311234;$$291338 = $$311340; - label = 54; - break; - } else { - $169 = $6 & 2; - $170 = ($169|0)==(0); - if ($170) { - $$271443 = $$261442;$$271634 = $$261633;$$311022 = $$301021;$$311128 = $$301127;$$311538 = $$301537;$$32 = $$31;$$321235 = $$311234;$$321341 = $$311340; - label = 58; - continue L46; - } else { - $$0960 = 1;$$891505 = $$261442;$$931084 = $$301021;$$931700 = $$261633;$$951192 = $$301127;$$951298 = $$311234;$$981605 = $$301537;$$99 = $$31;$$991408 = $$311340;$$sink30 = 38; - label = 243; - continue L46; - } - } - break; - } - case 58: { - label = 0; - $$0960 = -1;$$891505 = $$271443;$$931084 = $$311022;$$931700 = $$271634;$$951192 = $$311128;$$951298 = $$321235;$$981605 = $$311538;$$99 = $$32;$$991408 = $$321341;$$sink30 = 40; - label = 243; - continue L46; - break; - } - case 60: { - label = 0; - $$0960 = -1;$$891505 = $$281444;$$931084 = $$321023;$$931700 = $$281635;$$951192 = $$321129;$$951298 = $$331236;$$981605 = $$321539;$$99 = $$33;$$991408 = $$331342;$$sink30 = 10; - label = 243; - continue L46; - break; - } - case 64: { - label = 0; - $191 = $6 & 2; - $192 = ($191|0)==(0); - if ($192) { - $$01300$shrunk = 0;$$321448 = $$311447;$$321639 = $$311638;$$361027 = $$351026;$$361133 = $$351132;$$361543 = $$351542;$$37 = $$36;$$371240 = $$361239;$$371346 = $$361345; - label = 67; - } else { - $$0960 = 1;$$891505 = $$311447;$$931084 = $$351026;$$931700 = $$311638;$$951192 = $$351132;$$951298 = $$361239;$$981605 = $$351542;$$99 = $$36;$$991408 = $$361345;$$sink30 = 11; - label = 243; - continue L46; - } - break; - } - case 66: { - label = 0; - $194 = ((($$sink1719)) + 1|0); - $195 = HEAP8[$$sink1719>>0]|0; - $$01300$shrunk = $195;$$321448 = $$321448$ph;$$321639 = $$321639$ph;$$361027 = $$361027$ph;$$361133 = $$361133$ph;$$361543 = $194;$$37 = $$37$ph;$$371240 = $$371240$ph;$$371346 = $$371346$ph; - label = 67; - break; - } - case 73: { - label = 0; - $222 = $6 & 2; - $223 = ($222|0)==(0); - if ($223) { - $$01202$shrunk = 0;$$371453 = $$361452;$$371644 = $$361643;$$411032 = $$401031;$$411138 = $$401137;$$411548 = $$401547;$$42 = $$41;$$421245 = $$411244;$$421351 = $$411350; - label = 76; - } else { - $$0960 = 1;$$891505 = $$361452;$$931084 = $$401031;$$931700 = $$361643;$$951192 = $$401137;$$951298 = $$411244;$$981605 = $$401547;$$99 = $$41;$$991408 = $$411350;$$sink30 = 14; - label = 243; - continue L46; - } - break; - } - case 75: { - label = 0; - $225 = ((($$sink1722)) + 1|0); - $226 = HEAP8[$$sink1722>>0]|0; - $$01202$shrunk = $226;$$371453 = $$371453$ph;$$371644 = $$371644$ph;$$411032 = $$411032$ph;$$411138 = $$411138$ph;$$411548 = $225;$$42 = $$42$ph;$$421245 = $$421245$ph;$$421351 = $$421351$ph; - label = 76; - break; - } - case 86: { - label = 0; - $$0960 = -1;$$891505 = $$401456;$$931084 = $$441035;$$931700 = $$401647;$$951192 = $$441141;$$951298 = $$451248;$$981605 = $$441551;$$99 = $$45;$$991408 = $$451354;$$sink30 = 35; - label = 243; - continue L46; - break; - } - case 114: { - label = 0; - $450 = $6 & 2; - $451 = ($450|0)==(0); - if ($451) { - $$0980$shrunk = 0;$$441460 = $$431459;$$441651 = $$431650;$$481039 = $$471038;$$481145 = $$471144;$$481555 = $$471554;$$49 = $$48;$$491252 = $$481251;$$491358 = $$481357; - label = 117; - } else { - $$0960 = 1;$$891505 = $$431459;$$931084 = $$471038;$$931700 = $$431650;$$951192 = $$471144;$$951298 = $$481251;$$981605 = $$471554;$$99 = $$48;$$991408 = $$481357;$$sink30 = 16; - label = 243; - continue L46; - } - break; - } - case 116: { - label = 0; - $453 = ((($$sink1729)) + 1|0); - $454 = HEAP8[$$sink1729>>0]|0; - $$0980$shrunk = $454;$$441460 = $$441460$ph;$$441651 = $$441651$ph;$$481039 = $$481039$ph;$$481145 = $$481145$ph;$$481555 = $453;$$49 = $$49$ph;$$491252 = $$491252$ph;$$491358 = $$491358$ph; - label = 117; - break; - } - case 125: { - label = 0; - $$0960 = -1;$$891505 = $$461462;$$931084 = $$491040;$$931700 = $$461653;$$951192 = $$501147;$$951298 = $$511254;$$981605 = $$501557;$$99 = $$51;$$991408 = $$511360;$$sink30 = 17; - label = 243; - continue L46; - break; - } - case 128: { - label = 0; - $501 = $6 & 2; - $502 = ($501|0)==(0); - if ($502) { - $$0979$shrunk = 0;$$491465 = $$481464;$$491656 = $$481655;$$521043 = $$511042;$$531150 = $$521149;$$531560 = $$521559;$$54 = $$53;$$541257 = $$531256;$$541363 = $$531362; - label = 131; - } else { - $$0960 = 1;$$891505 = $$481464;$$931084 = $$511042;$$931700 = $$481655;$$951192 = $$521149;$$951298 = $$531256;$$981605 = $$521559;$$99 = $$53;$$991408 = $$531362;$$sink30 = 18; - label = 243; - continue L46; - } - break; - } - case 130: { - label = 0; - $504 = ((($$sink1732)) + 1|0); - $505 = HEAP8[$$sink1732>>0]|0; - $$0979$shrunk = $505;$$491465 = $$491465$ph;$$491656 = $$491656$ph;$$521043 = $$521043$ph;$$531150 = $$531150$ph;$$531560 = $504;$$54 = $$54$ph;$$541257 = $$541257$ph;$$541363 = $$541363$ph; - label = 131; - break; - } - case 136: { - label = 0; - $$0960 = -1;$$891505 = $$511467;$$931084 = $$541045;$$931700 = $$511658;$$951192 = $$551152;$$951298 = $$561259;$$981605 = $$551562;$$99 = $$56;$$991408 = $$561365;$$sink30 = 21; - label = 243; - continue L46; - break; - } - case 151: { - label = 0; - $570 = $6 & 2; - $571 = ($570|0)==(0); - if ($571) { - $$0971$shrunk = 0;$$571473 = $$561472;$$571664 = $$561663;$$601051 = $$591050;$$611158 = $$601157;$$611568 = $$601567;$$62 = $$61;$$621265 = $$611264;$$621371 = $$611370; - label = 154; - } else { - $$0960 = 1;$$891505 = $$561472;$$931084 = $$591050;$$931700 = $$561663;$$951192 = $$601157;$$951298 = $$611264;$$981605 = $$601567;$$99 = $$61;$$991408 = $$611370;$$sink30 = 23; - label = 243; - continue L46; - } - break; - } - case 153: { - label = 0; - $573 = ((($$sink1736)) + 1|0); - $574 = HEAP8[$$sink1736>>0]|0; - $$0971$shrunk = $574;$$571473 = $$571473$ph;$$571664 = $$571664$ph;$$601051 = $$601051$ph;$$611158 = $$611158$ph;$$611568 = $573;$$62 = $$62$ph;$$621265 = $$621265$ph;$$621371 = $$621371$ph; - label = 154; - break; - } - case 160: { - label = 0; - $610 = ($$591666>>>0)<($12>>>0); - if (!($610)) { - $$0960 = 2;$$891505 = $$591475;$$931084 = $$621053;$$931700 = $$591666;$$951192 = $$621159;$$951298 = $$641267;$$981605 = $$631570;$$99 = $$64;$$991408 = $$641373;$$sink30 = 24; - label = 243; - continue L46; - } - $611 = $$621159&255; - $612 = ((($$591666)) + 1|0); - HEAP8[$$591666>>0] = $611; - $$541470$ph = $$591475;$$541661$ph = $612;$$571048$ph = $$621053;$$581155$ph = $$621159;$$581565$ph = $$631570;$$59$ph = $$64;$$591262$ph = $$641267;$$591368$ph = $$641373; - label = 140; - break; - } - case 180: { - label = 0; - $694 = $6 & 2; - $695 = ($694|0)==(0); - if ($695) { - $$0959$shrunk = 0;$$631479 = $$621478;$$641671 = $$631670;$$661057 = $$651056;$$671164 = $$661163;$$681271 = $$671270;$$701577 = $$691576;$$71 = $$70;$$711380 = $$701379; - label = 183; - } else { - $$0960 = 1;$$891505 = $$621478;$$931084 = $$651056;$$931700 = $$631670;$$951192 = $$661163;$$951298 = $$671270;$$981605 = $$691576;$$99 = $$70;$$991408 = $$701379;$$sink30 = 25; - label = 243; - continue L46; - } - break; - } - case 182: { - label = 0; - $697 = ((($$sink1739)) + 1|0); - $698 = HEAP8[$$sink1739>>0]|0; - $$0959$shrunk = $698;$$631479 = $$631479$ph;$$641671 = $$641671$ph;$$661057 = $$661057$ph;$$671164 = $$671164$ph;$$681271 = $$681271$ph;$$701577 = $697;$$71 = $$71$ph;$$711380 = $$711380$ph; - label = 183; - break; - } - case 193: { - label = 0; - $735 = $6 & 2; - $736 = ($735|0)==(0); - if ($736) { - $$0952$shrunk = 0;$$681484 = $$671483;$$691676 = $$681675;$$711062 = $$701061;$$721169 = $$711168;$$731276 = $$721275;$$751582 = $$741581;$$76 = $$75;$$761385 = $$751384; - label = 196; - } else { - $$0960 = 1;$$891505 = $$671483;$$931084 = $$701061;$$931700 = $$681675;$$951192 = $$711168;$$951298 = $$721275;$$981605 = $$741581;$$99 = $$75;$$991408 = $$751384;$$sink30 = 26; - label = 243; - continue L46; - } - break; - } - case 195: { - label = 0; - $738 = ((($$sink1743)) + 1|0); - $739 = HEAP8[$$sink1743>>0]|0; - $$0952$shrunk = $739;$$681484 = $$681484$ph;$$691676 = $$691676$ph;$$711062 = $$711062$ph;$$721169 = $$721169$ph;$$731276 = $$731276$ph;$$751582 = $738;$$76 = $$76$ph;$$761385 = $$761385$ph; - label = 196; - break; - } - case 204: { - label = 0; - $782 = $6 & 2; - $783 = ($782|0)==(0); - if ($783) { - $$0950$shrunk = 0;$$721488 = $$711487;$$731680 = $$721679;$$741065 = $$731064;$$761173 = $$751172;$$761279 = $$751278;$$791586 = $$781585;$$80 = $$79;$$801389 = $$791388; - label = 207; - } else { - $$0960 = 1;$$891505 = $$711487;$$931084 = $$731064;$$931700 = $$721679;$$951192 = $$751172;$$951298 = $$751278;$$981605 = $$781585;$$99 = $$79;$$991408 = $$791388;$$sink30 = 27; - label = 243; - continue L46; - } - break; - } - case 206: { - label = 0; - $785 = ((($$sink1746)) + 1|0); - $786 = HEAP8[$$sink1746>>0]|0; - $$0950$shrunk = $786;$$721488 = $$721488$ph;$$731680 = $$731680$ph;$$741065 = $$741065$ph;$$761173 = $$761173$ph;$$761279 = $$761279$ph;$$791586 = $785;$$80 = $$80$ph;$$801389 = $$801389$ph; - label = 207; - break; - } - case 210: { - label = 0; - $$0960 = -1;$$891505 = $$731489;$$931084 = $$771068;$$931700 = $$761683;$$951192 = $$791176;$$951298 = $$791282;$$981605 = $$821589;$$99 = $$83;$$991408 = $$831392;$$sink30 = 37; - label = 243; - continue L46; - break; - } - case 213: { - label = 0; - $809 = ($$781685>>>0)<($12>>>0); - if (!($809)) { - $$0960 = 2;$$891505 = $$751491;$$931084 = $$791070;$$931700 = $$781685;$$951192 = $$811178;$$951298 = $$811284;$$981605 = $$841591;$$99 = $$85;$$991408 = $$851394;$$sink30 = 53; - label = 243; - continue L46; - } - $810 = (($$751491) + 1)|0; - $811 = (($$751491) - ($$791070))|0; - $812 = $811 & $$1753; - $813 = (($3) + ($812)|0); - $814 = HEAP8[$813>>0]|0; - $815 = ((($$781685)) + 1|0); - HEAP8[$$781685>>0] = $814; - $$741490 = $810;$$771684 = $815;$$781069 = $$791070;$$801177 = $$811178;$$801283 = $$811284;$$831590 = $$841591;$$84 = $$85;$$841393 = $$851394; - label = 212; - break; - } - case 226: { - label = 0; - $849 = $$90 & 7; - $850 = $$901399 >>> $849; - $851 = (($$90) - ($849))|0; - $$811497 = $$801496;$$851076 = $$841075;$$851692 = $$841691;$$871184 = 0;$$871290 = $$861289;$$901597 = $$891596;$$91 = $851;$$911400 = $850; - label = 227; - break; - } - case 231: { - label = 0; - $856 = $6 & 2; - $857 = ($856|0)==(0); - if ($857) { - $$0947$shrunk = 0;$$841500 = $$831499;$$881079 = $$871078;$$881695 = $$871694;$$901187 = $$891186;$$901293 = $$891292;$$931600 = $$921599;$$94 = $$93;$$941403 = $$931402; - label = 234; - } else { - $$0960 = 1;$$891505 = $$831499;$$931084 = $$871078;$$931700 = $$871694;$$951192 = $$891186;$$951298 = $$891292;$$981605 = $$921599;$$99 = $$93;$$991408 = $$931402;$$sink30 = 41; - label = 243; - continue L46; - } - break; - } - case 233: { - label = 0; - $859 = ((($$sink1750)) + 1|0); - $860 = HEAP8[$$sink1750>>0]|0; - $$0947$shrunk = $860;$$841500 = $$841500$ph;$$881079 = $$881079$ph;$$881695 = $$881695$ph;$$901187 = $$901187$ph;$$901293 = $$901293$ph;$$931600 = $859;$$94 = $$94$ph;$$941403 = $$941403$ph; - label = 234; - break; - } - case 237: { - label = 0; - $869 = $6 & 2; - $870 = ($869|0)==(0); - if ($870) { - $$0948 = 0;$$871503 = $$861502;$$911082 = $$901081;$$911698 = $$901697;$$931190 = $$921189;$$931296 = $$921295;$$961603 = $$951602;$$97 = $$96;$$971406 = $$961405; - label = 241; - continue L46; - } else { - $$0960 = 1;$$891505 = $$861502;$$931084 = $$901081;$$931700 = $$901697;$$951192 = $$921189;$$951298 = $$921295;$$981605 = $$951602;$$99 = $$96;$$991408 = $$961405;$$sink30 = 42; - label = 243; - continue L46; - } - break; - } - case 241: { - label = 0; - $878 = ((($0)) + 16|0); - $879 = HEAP32[$878>>2]|0; - $880 = $879 << 8; - $881 = $880 | $$0948; - HEAP32[$878>>2] = $881; - $882 = (($$931190) + 1)|0; - $$811497 = $$871503;$$851076 = $$911082;$$851692 = $$911698;$$871184 = $882;$$871290 = $$931296;$$901597 = $$961603;$$91 = $$97;$$911400 = $$971406; - label = 227; - break; - } - case 242: { - label = 0; - $$0960 = 0;$$891505 = $$881504;$$931084 = $$921083;$$931700 = $$921699;$$951192 = $$941191;$$951298 = $$941297;$$981605 = $$971604;$$99 = $$98;$$991408 = $$981407;$$sink30 = 34; - label = 243; - continue L46; - break; - } - case 243: { - label = 0; - HEAP32[$0>>2] = $$sink30; - $$100 = $$99;$$1001409 = $$991408;$$1961 = $$0960;$$901506 = $$891505;$$941085 = $$931084;$$941701 = $$931700;$$961193 = $$951192;$$961299 = $$951298;$$991606 = $$981605; - label = 244; - continue L46; - break; - } - case 244: { - label = 0; - HEAP32[$24>>2] = $$100; - HEAP32[$26>>2] = $$1001409; - HEAP32[$28>>2] = $$941085; - HEAP32[$30>>2] = $$961193; - HEAP32[$32>>2] = $$961299; - HEAP32[$34>>2] = $$901506; - $883 = $$991606; - $884 = $1; - $885 = (($883) - ($884))|0; - HEAP32[$2>>2] = $885; - $886 = $$941701; - $887 = $4; - $888 = (($886) - ($887))|0; - HEAP32[$5>>2] = $888; - $889 = $6 & 9; - $890 = ($889|0)!=(0); - $891 = ($$1961|0)>(-1); - $or$cond29 = $890 & $891; - if ($or$cond29) { - break L46; - } else { - $$0951 = $$1961; - label = 258; - break L46; - } - break; - } - } - switch (label|0) { - case 19: { - label = 0; - $$01413 = $$01413$shrunk&255; - $78 = $$01413 << $$8; - $79 = $78 | $$81317; - $80 = (($$8) + 8)|0; - $81 = ($80>>>0)<(3); - if ($81) { - $$11417 = $$31419;$$11608 = $$31610;$$51512 = $$71514;$$6 = $80;$$61103 = $$81105;$$61209 = $$81211;$$61315 = $79;$$6997 = $$8999; - label = 15; - } else { - $$41420 = $$31419;$$41611 = $$31610;$$81515 = $$71514;$$9 = $80;$$91000 = $$8999;$$91106 = $$81105;$$91212 = $$81211;$$91318 = $79; - label = 20; - } - break; - } - case 33: { - label = 0; - $$01411 = $$01411$shrunk&255; - $109 = $$01411 << $$17; - $110 = $109 | $$171326; - $111 = (($$17) + 8)|0; - $112 = ($$17>>>0)>(4294967287); - if ($112) { - $$101426 = $$121428;$$101617 = $$121619;$$141111 = $$161113;$$141521 = $$161523;$$15 = $111;$$151006 = $$171008;$$151218 = $$171220;$$151324 = $110; - label = 29; - } else { - $$131429 = $$121428;$$131620 = $$121619;$$171114 = $$161113;$$171524 = $$161523;$$18 = $111;$$181009 = $$171008;$$181221 = $$171220;$$181327 = $110; - label = 34; - } - break; - } - case 50: { - label = 0; - $$01410 = $$01410$shrunk&255; - $155 = $$01410 << $$26; - $156 = $155 | $$261335; - $157 = (($$26) + 8)|0; - $158 = ($$26>>>0)>(4294967287); - if ($158) { - $$191435 = $$211437;$$191626 = $$211628;$$231120 = $$251122;$$231530 = $$251532;$$24 = $157;$$241015 = $$261017;$$241227 = $$261229;$$241333 = $156; - label = 46; - } else { - $$221438 = $$211437;$$221629 = $$211628;$$261123 = $$251122;$$261533 = $$251532;$$27 = $157;$$271230 = $$261229;$$271336 = $156; - label = 51; - } - break; - } - case 67: { - label = 0; - $$01300 = $$01300$shrunk&255; - $196 = $$01300 << $$37; - $197 = $196 | $$371346; - $198 = (($$37) + 8)|0; - $199 = (4797 + ($$361133)|0); - $200 = HEAP8[$199>>0]|0; - $201 = $200 << 24 >> 24; - $202 = ($198>>>0)<($201>>>0); - if ($202) { - $$301446 = $$321448;$$301637 = $$321639;$$341025 = $$361027;$$341131 = $$361133;$$341541 = $$361543;$$35 = $198;$$351238 = $$371240;$$351344 = $197; - label = 63; - } else { - $$331449 = $$321448;$$331640 = $$321639;$$371028 = $$361027;$$371134 = $$361133;$$371544 = $$361543;$$38 = $198;$$381241 = $$371240;$$381347 = $197; - label = 68; - } - break; - } - case 76: { - label = 0; - $$01202 = $$01202$shrunk&255; - $227 = $$01202 << $$42; - $228 = $227 | $$421351; - $229 = (($$42) + 8)|0; - $230 = ($229>>>0)<(3); - if ($230) { - $$351451 = $$371453;$$351642 = $$371644;$$391030 = $$411032;$$391136 = $$411138;$$391546 = $$411548;$$40 = $229;$$401243 = $$421245;$$401349 = $228; - label = 72; - } else { - $$381454 = $$371453;$$381645 = $$371644;$$421033 = $$411032;$$421139 = $$411138;$$421549 = $$411548;$$43 = $229;$$431246 = $$421245;$$431352 = $228; - label = 77; - } - break; - } - case 117: { - label = 0; - $$0980 = $$0980$shrunk&255; - $455 = $$0980 << $$49; - $456 = $455 | $$491358; - $457 = (($$49) + 8)|0; - $458 = ($457>>>0)<(15); - if ($458) { - $$421458 = $$441460;$$421649 = $$441651;$$461037 = $$481039;$$461143 = $$481145;$$461553 = $$481555;$$47 = $457;$$471250 = $$491252;$$471356 = $456; - label = 108; - } else { - $$451461 = $$441460;$$451652 = $$441651;$$491146 = $$481145;$$491556 = $$481555;$$50 = $457;$$501253 = $$491252;$$501359 = $456; - label = 119; - } - break; - } - case 131: { - label = 0; - $$0979 = $$0979$shrunk&255; - $506 = $$0979 << $$54; - $507 = $506 | $$541363; - $508 = (($$54) + 8)|0; - $509 = ($508>>>0)<($$541257>>>0); - if ($509) { - $$471463 = $$491465;$$471654 = $$491656;$$501041 = $$521043;$$511148 = $$531150;$$511558 = $$531560;$$52 = $508;$$521255 = $$541257;$$521361 = $507; - label = 127; - } else { - $$501466 = $$491465;$$501657 = $$491656;$$531044 = $$521043;$$541151 = $$531150;$$541561 = $$531560;$$55 = $508;$$551258 = $$541257;$$551364 = $507; - label = 132; - } - break; - } - case 154: { - label = 0; - $$0971 = $$0971$shrunk&255; - $575 = $$0971 << $$62; - $576 = $575 | $$621371; - $577 = (($$62) + 8)|0; - $578 = ($577>>>0)<(15); - if ($578) { - $$551471 = $$571473;$$551662 = $$571664;$$581049 = $$601051;$$591156 = $$611158;$$591566 = $$611568;$$60 = $577;$$601263 = $$621265;$$601369 = $576; - label = 145; - } else { - $$581474 = $$571473;$$581665 = $$571664;$$611052 = $$601051;$$621569 = $$611568;$$63 = $577;$$631266 = $$621265;$$631372 = $576; - label = 156; - } - break; - } - case 183: { - label = 0; - $$0959 = $$0959$shrunk&255; - $699 = $$0959 << $$71; - $700 = $699 | $$711380; - $701 = (($$71) + 8)|0; - $702 = ($701>>>0)<($$681271>>>0); - if ($702) { - $$611477 = $$631479;$$621669 = $$641671;$$641055 = $$661057;$$651162 = $$671164;$$661269 = $$681271;$$681575 = $$701577;$$69 = $701;$$691378 = $700; - label = 179; - } else { - $$641480 = $$631479;$$651672 = $$641671;$$671058 = $$661057;$$681165 = $$671164;$$691272 = $$681271;$$711578 = $$701577;$$72 = $701;$$721381 = $700; - label = 184; - } - break; - } - case 196: { - label = 0; - $$0952 = $$0952$shrunk&255; - $740 = $$0952 << $$76; - $741 = $740 | $$761385; - $742 = (($$76) + 8)|0; - $743 = ($742>>>0)<(15); - if ($743) { - $$661482 = $$681484;$$671674 = $$691676;$$691060 = $$711062;$$701167 = $$721169;$$711274 = $$731276;$$731580 = $$751582;$$74 = $742;$$741383 = $741; - label = 187; - } else { - $$691485 = $$681484;$$701677 = $$691676;$$731170 = $$721169;$$761583 = $$751582;$$77 = $742;$$771386 = $741; - label = 198; - } - break; - } - case 207: { - label = 0; - $$0950 = $$0950$shrunk&255; - $787 = $$0950 << $$80; - $788 = $787 | $$801389; - $789 = (($$80) + 8)|0; - $790 = ($789>>>0)<($$761279>>>0); - if ($790) { - $$701486 = $$721488;$$711678 = $$731680;$$721063 = $$741065;$$741171 = $$761173;$$741277 = $$761279;$$771584 = $$791586;$$78 = $789;$$781387 = $788; - label = 203; - } else { - $$741681 = $$731680;$$751066 = $$741065;$$771174 = $$761173;$$771280 = $$761279;$$801587 = $$791586;$$81 = $789;$$811390 = $788; - label = 208; - } - break; - } - case 227: { - label = 0; - $852 = ($$871184>>>0)<(4); - if (!($852)) { - $$881504 = $$811497;$$921083 = $$851076;$$921699 = $$851692;$$941191 = $$871184;$$941297 = $$871290;$$971604 = $$901597;$$98 = $$91;$$981407 = $$911400; - label = 242; - continue L46; - } - $853 = ($$91|0)==(0); - if (!($853)) { - $854 = ($$91>>>0)<(8); - if ($854) { - $$821498 = $$811497;$$861077 = $$851076;$$861693 = $$851692;$$881185 = $$871184;$$881291 = $$871290;$$911598 = $$901597;$$92 = $$91;$$921401 = $$911400; - label = 230; - break; - } else { - $$851501 = $$811497;$$891080 = $$851076;$$891696 = $$851692;$$911188 = $$871184;$$911294 = $$871290;$$941601 = $$901597;$$95 = $$91;$$951404 = $$911400; - label = 235; - break; - } - } - $868 = ($$901597>>>0)<($10>>>0); - if (!($868)) { - $$861502 = $$811497;$$901081 = $$851076;$$901697 = $$851692;$$921189 = $$871184;$$921295 = $$871290;$$951602 = $$901597;$$96 = 0;$$961405 = $$911400; - label = 237; - continue L46; - } - $875 = ((($$901597)) + 1|0); - $876 = HEAP8[$$901597>>0]|0; - $877 = $876&255; - $$0948 = $877;$$871503 = $$811497;$$911082 = $$851076;$$911698 = $$851692;$$931190 = $$871184;$$931296 = $$871290;$$961603 = $875;$$97 = 0;$$971406 = $$911400; - label = 241; - continue L46; - break; - } - case 234: { - label = 0; - $$0947 = $$0947$shrunk&255; - $861 = $$0947 << $$94; - $862 = $861 | $$941403; - $863 = (($$94) + 8)|0; - $864 = ($$94>>>0)>(4294967287); - if ($864) { - $$821498 = $$841500;$$861077 = $$881079;$$861693 = $$881695;$$881185 = $$901187;$$881291 = $$901293;$$911598 = $$931600;$$92 = $863;$$921401 = $862; - label = 230; - } else { - $$851501 = $$841500;$$891080 = $$881079;$$891696 = $$881695;$$911188 = $$901187;$$911294 = $$901293;$$941601 = $$931600;$$95 = $863;$$951404 = $862; - label = 235; - } - break; - } - } - L119: do { - if ((label|0) == 15) { - label = 0; - $72 = ($$51512>>>0)<($10>>>0); - if ($72) { - $$31419$ph = $$11417;$$31610$ph = $$11608;$$8$ph = $$6;$$81105$ph = $$61103;$$81211$ph = $$61209;$$81317$ph = $$61315;$$8999$ph = $$6997;$$sink1710 = $$51512; - label = 18; - continue L46; - } else { - $$21418 = $$11417;$$21609 = $$11608;$$61513 = $$51512;$$7 = $$6;$$71104 = $$61103;$$71210 = $$61209;$$71316 = $$61315;$$7998 = $$6997; - label = 16; - continue L46; - } - } - else if ((label|0) == 20) { - label = 0; - $82 = $$91318 & 7; - $83 = ((($0)) + 20|0); - HEAP32[$83>>2] = $82; - $84 = $$91318 >>> 3; - $85 = (($$9) + -3)|0; - $86 = $82 >>> 1; - $87 = ((($0)) + 24|0); - HEAP32[$87>>2] = $86; - $trunc = $86&255; - $trunc$clear = $trunc & 3; - switch ($trunc$clear<<24>>24) { - case 0: { - $$121519 = $$81515;$$13 = $85;$$131004 = $$91000;$$131216 = $$91212;$$131322 = $84;$$81424 = $$41420;$$81615 = $$41611; - label = 25; - continue L46; - break; - } - case 3: { - $$281444 = $$41420;$$281635 = $$41611;$$321023 = $$91000;$$321129 = $$91106;$$321539 = $$81515;$$33 = $85;$$331236 = $$91212;$$331342 = $84; - label = 60; - continue L46; - break; - } - case 1: { - break; - } - default: { - $$291445 = $$41420;$$291636 = $$41611;$$331024 = $$91000;$$331130 = 0;$$331540 = $$81515;$$34 = $85;$$341237 = $$91212;$$341343 = $84; - label = 61; - break L119; - } - } - $240 = ((($0)) + 44|0); - HEAP32[$240>>2] = 288; - $241 = ((($0)) + 48|0); - HEAP32[$241>>2] = 32; - $242 = ((($0)) + 3552|0); - ;HEAP32[$242>>2]=84215045|0;HEAP32[$242+4>>2]=84215045|0;HEAP32[$242+8>>2]=84215045|0;HEAP32[$242+12>>2]=84215045|0;HEAP32[$242+16>>2]=84215045|0;HEAP32[$242+20>>2]=84215045|0;HEAP32[$242+24>>2]=84215045|0;HEAP32[$242+28>>2]=84215045|0; - $scevgep19611962 = ((($0)) + 64|0); - _memset(($scevgep19611962|0),8,144)|0; - $scevgep1959 = ((($0)) + 208|0); - dest=$scevgep1959; stop=dest+112|0; do { HEAP8[dest>>0]=9|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); - $scevgep1957 = ((($0)) + 320|0); - dest=$scevgep1957; stop=dest+24|0; do { HEAP8[dest>>0]=7|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); - $scevgep1955 = ((($0)) + 344|0); - $243 = $scevgep1955; - $244 = $243; - HEAP8[$244>>0]=134744072&255;HEAP8[$244+1>>0]=(134744072>>8)&255;HEAP8[$244+2>>0]=(134744072>>16)&255;HEAP8[$244+3>>0]=134744072>>24; - $245 = (($243) + 4)|0; - $246 = $245; - HEAP8[$246>>0]=134744072&255;HEAP8[$246+1>>0]=(134744072>>8)&255;HEAP8[$246+2>>0]=(134744072>>16)&255;HEAP8[$246+3>>0]=134744072>>24; - $$391455 = $$41420;$$391646 = $$41611;$$431034 = $$91000;$$431140 = $$91106;$$431550 = $$81515;$$44 = $85;$$441247 = $$91212;$$441353 = $84; - label = 80; - } - else if ((label|0) == 230) { - label = 0; - $855 = ($$911598>>>0)<($10>>>0); - if ($855) { - $$841500$ph = $$821498;$$881079$ph = $$861077;$$881695$ph = $$861693;$$901187$ph = $$881185;$$901293$ph = $$881291;$$94$ph = $$92;$$941403$ph = $$921401;$$sink1750 = $$911598; - label = 233; - continue L46; - } else { - $$831499 = $$821498;$$871078 = $$861077;$$871694 = $$861693;$$891186 = $$881185;$$891292 = $$881291;$$921599 = $$911598;$$93 = $$92;$$931402 = $$921401; - label = 231; - continue L46; - } - } - else if ((label|0) == 235) { - label = 0; - $865 = $$951404 & 255; - $866 = $$951404 >>> 8; - $867 = (($$95) + -8)|0; - $$0948 = $865;$$871503 = $$851501;$$911082 = $$891080;$$911698 = $$891696;$$931190 = $$911188;$$931296 = $$911294;$$961603 = $$941601;$$97 = $867;$$971406 = $866; - label = 241; - continue L46; - } - } while(0); - L125: while(1) { - L126: switch (label|0) { - case 26: { - label = 0; - $100 = ($$131110>>>0)<(4); - if (!($100)) { - $127 = ((($0)) + 10528|0); - $128 = HEAP8[$127>>0]|0; - $129 = $128&255; - $130 = ((($0)) + 10529|0); - $131 = HEAP8[$130>>0]|0; - $132 = $131&255; - $133 = $132 << 8; - $134 = $133 | $129; - $135 = ((($0)) + 10530|0); - $136 = HEAP8[$135>>0]|0; - $137 = $136&255; - $138 = ((($0)) + 10531|0); - $139 = HEAP8[$138>>0]|0; - $140 = $139&255; - $141 = $140 << 8; - $142 = $141 | $137; - $143 = $142 ^ 65535; - $144 = ($134|0)==($143|0); - if ($144) { - $$181434 = $$91425;$$181625 = $$91616;$$221119 = $134;$$221529 = $$131520;$$23 = $$14;$$231014 = $$141005;$$231226 = $$141217;$$231332 = $$141323; - label = 44; - continue L125; - } else { - $$171433 = $$91425;$$171624 = $$91616;$$211118 = $134;$$211528 = $$131520;$$22 = $$14;$$221013 = $$141005;$$221225 = $$141217;$$221331 = $$141323; - label = 43; - continue L46; - } - } - $101 = ($$14|0)==(0); - if (!($101)) { - $102 = ($$14>>>0)<(8); - if ($102) { - $$101426 = $$91425;$$101617 = $$91616;$$141111 = $$131110;$$141521 = $$131520;$$15 = $$14;$$151006 = $$141005;$$151218 = $$141217;$$151324 = $$141323; - label = 29; - continue L125; - } else { - $$131429 = $$91425;$$131620 = $$91616;$$171114 = $$131110;$$171524 = $$131520;$$18 = $$14;$$181009 = $$141005;$$181221 = $$141217;$$181327 = $$141323; - label = 34; - continue L125; - } - } - $117 = ($$131520>>>0)<($10>>>0); - if (!($117)) { - $$141430 = $$91425;$$141621 = $$91616;$$181115 = $$131110;$$181525 = $$131520;$$19 = 0;$$191010 = $$141005;$$191222 = $$141217;$$191328 = $$141323; - label = 36; - continue L46; - } - $123 = ((($$131520)) + 1|0); - $124 = HEAP8[$$131520>>0]|0; - $125 = (((($0)) + 10528|0) + ($$131110)|0); - HEAP8[$125>>0] = $124; - $$161432 = $$91425;$$161623 = $$91616;$$201117 = $$131110;$$201527 = $123;$$21 = 0;$$211012 = $$141005;$$211224 = $$141217;$$211330 = $$141323; - label = 41; - continue L125; - break; - } - case 29: { - label = 0; - $103 = ($$141521>>>0)<($10>>>0); - if ($103) { - $$121428$ph = $$101426;$$121619$ph = $$101617;$$161113$ph = $$141111;$$17$ph = $$15;$$171008$ph = $$151006;$$171220$ph = $$151218;$$171326$ph = $$151324;$$sink1713 = $$141521; - label = 32; - continue L46; - } else { - $$111427 = $$101426;$$111618 = $$101617;$$151112 = $$141111;$$151522 = $$141521;$$16 = $$15;$$161007 = $$151006;$$161219 = $$151218;$$161325 = $$151324; - label = 30; - continue L46; - } - break; - } - case 34: { - label = 0; - $113 = $$181327&255; - $114 = (((($0)) + 10528|0) + ($$171114)|0); - HEAP8[$114>>0] = $113; - $115 = $$181327 >>> 8; - $116 = (($$18) + -8)|0; - $$161432 = $$131429;$$161623 = $$131620;$$201117 = $$171114;$$201527 = $$171524;$$21 = $116;$$211012 = $$181009;$$211224 = $$181221;$$211330 = $115; - label = 41; - continue L125; - break; - } - case 41: { - label = 0; - $126 = (($$201117) + 1)|0; - $$131110 = $126;$$131520 = $$201527;$$14 = $$21;$$141005 = $$211012;$$141217 = $$211224;$$141323 = $$211330;$$91425 = $$161432;$$91616 = $$161623; - label = 26; - continue L125; - break; - } - case 44: { - label = 0; - $145 = ($$221119|0)!=(0); - $146 = ($$23|0)!=(0); - $147 = $145 & $146; - if (!($147)) { - $$241440 = $$181434;$$241631 = $$181625;$$281019 = $$231014;$$281125 = $$221119;$$281535 = $$221529;$$29 = $$23;$$291232 = $$231226;$$291338 = $$231332; - label = 54; - continue L125; - } - $148 = ($$23>>>0)<(8); - if ($148) { - $$191435 = $$181434;$$191626 = $$181625;$$231120 = $$221119;$$231530 = $$221529;$$24 = $$23;$$241015 = $$231014;$$241227 = $$231226;$$241333 = $$231332; - label = 46; - continue L125; - } else { - $$221438 = $$181434;$$221629 = $$181625;$$261123 = $$221119;$$261533 = $$221529;$$27 = $$23;$$271230 = $$231226;$$271336 = $$231332; - label = 51; - continue L125; - } - break; - } - case 46: { - label = 0; - $149 = ($$231530>>>0)<($10>>>0); - if ($149) { - $$211437$ph = $$191435;$$211628$ph = $$191626;$$251122$ph = $$231120;$$26$ph = $$24;$$261017$ph = $$241015;$$261229$ph = $$241227;$$261335$ph = $$241333;$$sink1716 = $$231530; - label = 49; - continue L46; - } else { - $$201436 = $$191435;$$201627 = $$191626;$$241121 = $$231120;$$241531 = $$231530;$$25 = $$24;$$251016 = $$241015;$$251228 = $$241227;$$251334 = $$241333; - label = 47; - continue L46; - } - break; - } - case 51: { - label = 0; - $159 = $$271336 & 255; - $160 = $$271336 >>> 8; - $161 = (($$27) + -8)|0; - $$231439 = $$221438;$$231630 = $$221629;$$271018 = $159;$$271124 = $$261123;$$271534 = $$261533;$$28 = $161;$$281231 = $$271230;$$281337 = $160; - label = 52; - continue L46; - break; - } - case 54: { - label = 0; - $166 = ($$281125|0)==(0); - if ($166) { - $$761492 = $$241440;$$801071 = $$281019;$$801687 = $$241631;$$821285 = $$291232;$$831180 = 0;$$851592 = $$281535;$$86 = $$29;$$861395 = $$291338; - label = 220; - break L125; - } else { - $$251441 = $$241440;$$251632 = $$241631;$$291020 = $$281019;$$291126 = $$281125;$$291536 = $$281535;$$30 = $$29;$$301233 = $$291232;$$301339 = $$291338; - label = 55; - continue L46; - } - break; - } - case 61: { - label = 0; - $185 = ($$331130>>>0)<(3); - if ($185) { - $186 = (4797 + ($$331130)|0); - $187 = HEAP8[$186>>0]|0; - $188 = $187 << 24 >> 24; - $189 = ($$34>>>0)<($188>>>0); - if ($189) { - $$301446 = $$291445;$$301637 = $$291636;$$341025 = $$331024;$$341131 = $$331130;$$341541 = $$331540;$$35 = $$34;$$351238 = $$341237;$$351344 = $$341343; - label = 63; - continue L125; - } else { - $$331449 = $$291445;$$331640 = $$291636;$$371028 = $$331024;$$371134 = $$331130;$$371544 = $$331540;$$38 = $$34;$$381241 = $$341237;$$381347 = $$341343; - label = 68; - continue L125; - } - } else { - $216 = ((($0)) + 7040|0); - _memset(($216|0),0,288)|0; - $$341450 = $$291445;$$341641 = $$291636;$$381029 = $$331024;$$381135 = 0;$$381545 = $$331540;$$39 = $$34;$$391242 = $$341237;$$391348 = $$341343; - label = 70; - break; - } - break; - } - case 63: { - label = 0; - $190 = ($$341541>>>0)<($10>>>0); - if ($190) { - $$321448$ph = $$301446;$$321639$ph = $$301637;$$361027$ph = $$341025;$$361133$ph = $$341131;$$37$ph = $$35;$$371240$ph = $$351238;$$371346$ph = $$351344;$$sink1719 = $$341541; - label = 66; - continue L46; - } else { - $$311447 = $$301446;$$311638 = $$301637;$$351026 = $$341025;$$351132 = $$341131;$$351542 = $$341541;$$36 = $$35;$$361239 = $$351238;$$361345 = $$351344; - label = 64; - continue L46; - } - break; - } - case 68: { - label = 0; - $203 = (4797 + ($$371134)|0); - $204 = HEAP8[$203>>0]|0; - $205 = $204 << 24 >> 24; - $206 = 1 << $205; - $207 = (($206) + -1)|0; - $208 = $207 & $$381347; - $209 = (((($0)) + 44|0) + ($$371134<<2)|0); - $210 = $$381347 >>> $205; - $211 = (($$38) - ($205))|0; - $212 = (8 + ($$371134<<2)|0); - $213 = HEAP32[$212>>2]|0; - $214 = (($208) + ($213))|0; - HEAP32[$209>>2] = $214; - $215 = (($$371134) + 1)|0; - $$291445 = $$331449;$$291636 = $$331640;$$331024 = $$371028;$$331130 = $215;$$331540 = $$371544;$$34 = $211;$$341237 = $$381241;$$341343 = $210; - label = 61; - continue L125; - break; - } - case 72: { - label = 0; - $221 = ($$391546>>>0)<($10>>>0); - if ($221) { - $$371453$ph = $$351451;$$371644$ph = $$351642;$$411032$ph = $$391030;$$411138$ph = $$391136;$$42$ph = $$40;$$421245$ph = $$401243;$$421351$ph = $$401349;$$sink1722 = $$391546; - label = 75; - continue L46; - } else { - $$361452 = $$351451;$$361643 = $$351642;$$401031 = $$391030;$$401137 = $$391136;$$401547 = $$391546;$$41 = $$40;$$411244 = $$401243;$$411350 = $$401349; - label = 73; - continue L46; - } - break; - } - case 77: { - label = 0; - $231 = $$431352 & 7; - $232 = $$431352 >>> 3; - $233 = (($$43) + -3)|0; - $234 = $231&255; - $235 = (7970 + ($$421139)|0); - $236 = HEAP8[$235>>0]|0; - $237 = $236&255; - $238 = (((($0)) + 7040|0) + ($237)|0); - HEAP8[$238>>0] = $234; - $239 = (($$421139) + 1)|0; - $$341450 = $$381454;$$341641 = $$381645;$$381029 = $$421033;$$381135 = $239;$$381545 = $$421549;$$39 = $233;$$391242 = $$431246;$$391348 = $232; - label = 70; - break; - } - case 80: { - label = 0; - $247 = ((($0)) + 24|0); - $248 = HEAP32[$247>>2]|0; - $249 = ($248|0)>(-1); - if ($249) { - dest=$8; stop=dest+64|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - $250 = (((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0); - _memset(($250|0),0,3200)|0; - $251 = HEAP32[$247>>2]|0; - $252 = (((($0)) + 44|0) + ($251<<2)|0); - $253 = HEAP32[$252>>2]|0; - $254 = ($253|0)==(0); - if (!($254)) { - $255 = HEAP32[$247>>2]|0; - $256 = (((($0)) + 44|0) + ($255<<2)|0); - $257 = HEAP32[$256>>2]|0; - $$010951864 = 0; - while(1) { - $258 = ((((($0)) + 64|0) + (($248*3488)|0)|0) + ($$010951864)|0); - $259 = HEAP8[$258>>0]|0; - $260 = $259&255; - $261 = (($8) + ($260<<2)|0); - $262 = HEAP32[$261>>2]|0; - $263 = (($262) + 1)|0; - HEAP32[$261>>2] = $263; - $264 = (($$010951864) + 1)|0; - $265 = ($264>>>0)<($257>>>0); - if ($265) { - $$010951864 = $264; - } else { - break; - } - } - } - $266 = ((($7)) + 4|0); - HEAP32[$266>>2] = 0; - HEAP32[$7>>2] = 0; - $267 = ((($8)) + 4|0); - $268 = HEAP32[$267>>2]|0; - $269 = $268 << 1; - $270 = ((($7)) + 8|0); - HEAP32[$270>>2] = $269; - $271 = ((($8)) + 8|0); - $272 = HEAP32[$271>>2]|0; - $273 = (($272) + ($268))|0; - $274 = (($272) + ($269))|0; - $275 = $274 << 1; - $276 = ((($7)) + 12|0); - HEAP32[$276>>2] = $275; - $277 = ((($8)) + 12|0); - $278 = HEAP32[$277>>2]|0; - $279 = (($278) + ($273))|0; - $280 = (($278) + ($275))|0; - $281 = $280 << 1; - $282 = ((($7)) + 16|0); - HEAP32[$282>>2] = $281; - $283 = ((($8)) + 16|0); - $284 = HEAP32[$283>>2]|0; - $285 = (($284) + ($279))|0; - $286 = (($284) + ($281))|0; - $287 = $286 << 1; - $288 = ((($7)) + 20|0); - HEAP32[$288>>2] = $287; - $289 = ((($8)) + 20|0); - $290 = HEAP32[$289>>2]|0; - $291 = (($290) + ($285))|0; - $292 = (($290) + ($287))|0; - $293 = $292 << 1; - $294 = ((($7)) + 24|0); - HEAP32[$294>>2] = $293; - $295 = ((($8)) + 24|0); - $296 = HEAP32[$295>>2]|0; - $297 = (($296) + ($291))|0; - $298 = (($296) + ($293))|0; - $299 = $298 << 1; - $300 = ((($7)) + 28|0); - HEAP32[$300>>2] = $299; - $301 = ((($8)) + 28|0); - $302 = HEAP32[$301>>2]|0; - $303 = (($302) + ($297))|0; - $304 = (($302) + ($299))|0; - $305 = $304 << 1; - $306 = ((($7)) + 32|0); - HEAP32[$306>>2] = $305; - $307 = ((($8)) + 32|0); - $308 = HEAP32[$307>>2]|0; - $309 = (($308) + ($303))|0; - $310 = (($308) + ($305))|0; - $311 = $310 << 1; - $312 = ((($7)) + 36|0); - HEAP32[$312>>2] = $311; - $313 = ((($8)) + 36|0); - $314 = HEAP32[$313>>2]|0; - $315 = (($314) + ($309))|0; - $316 = (($314) + ($311))|0; - $317 = $316 << 1; - $318 = ((($7)) + 40|0); - HEAP32[$318>>2] = $317; - $319 = ((($8)) + 40|0); - $320 = HEAP32[$319>>2]|0; - $321 = (($320) + ($315))|0; - $322 = (($320) + ($317))|0; - $323 = $322 << 1; - $324 = ((($7)) + 44|0); - HEAP32[$324>>2] = $323; - $325 = ((($8)) + 44|0); - $326 = HEAP32[$325>>2]|0; - $327 = (($326) + ($321))|0; - $328 = (($326) + ($323))|0; - $329 = $328 << 1; - $330 = ((($7)) + 48|0); - HEAP32[$330>>2] = $329; - $331 = ((($8)) + 48|0); - $332 = HEAP32[$331>>2]|0; - $333 = (($332) + ($327))|0; - $334 = (($332) + ($329))|0; - $335 = $334 << 1; - $336 = ((($7)) + 52|0); - HEAP32[$336>>2] = $335; - $337 = ((($8)) + 52|0); - $338 = HEAP32[$337>>2]|0; - $339 = (($338) + ($333))|0; - $340 = (($338) + ($335))|0; - $341 = $340 << 1; - $342 = ((($7)) + 56|0); - HEAP32[$342>>2] = $341; - $343 = ((($8)) + 56|0); - $344 = HEAP32[$343>>2]|0; - $345 = (($344) + ($339))|0; - $346 = (($344) + ($341))|0; - $347 = $346 << 1; - $348 = ((($7)) + 60|0); - HEAP32[$348>>2] = $347; - $349 = ((($8)) + 60|0); - $350 = HEAP32[$349>>2]|0; - $351 = (($350) + ($345))|0; - $352 = (($350) + ($347))|0; - $353 = $352 << 1; - $354 = ((($7)) + 64|0); - HEAP32[$354>>2] = $353; - $355 = ($353|0)!=(65536); - $356 = ($351>>>0)>(1); - $or$cond = $355 & $356; - if ($or$cond) { - $$401456 = $$391455;$$401647 = $$391646;$$441035 = $$431034;$$441141 = $$431140;$$441551 = $$431550;$$45 = $$44;$$451248 = $$441247;$$451354 = $$441353; - label = 86; - continue L46; - } - $357 = HEAP32[$247>>2]|0; - $358 = (((($0)) + 44|0) + ($357<<2)|0); - $359 = HEAP32[$358>>2]|0; - $360 = ($359|0)==(0); - if ($360) { - $$lcssa1779 = $357; - } else { - $$010911856 = 0;$$011971855 = -1; - while(1) { - $361 = ((((($0)) + 64|0) + (($248*3488)|0)|0) + ($$010911856)|0); - $362 = HEAP8[$361>>0]|0; - $363 = $362&255; - $364 = ($362<<24>>24)==(0); - L142: do { - if ($364) { - $$41201 = $$011971855; - } else { - $365 = (($7) + ($363<<2)|0); - $366 = HEAP32[$365>>2]|0; - $367 = (($366) + 1)|0; - HEAP32[$365>>2] = $367; - $$010861840 = $366;$$010871839 = $363;$$010881838 = 0; - while(1) { - $368 = $$010881838 << 1; - $369 = $$010861840 & 1; - $370 = $369 | $368; - $371 = (($$010871839) + -1)|0; - $372 = $$010861840 >>> 1; - $373 = ($371|0)==(0); - if ($373) { - break; - } else { - $$010861840 = $372;$$010871839 = $371;$$010881838 = $370; - } - } - $374 = ($362&255)<(11); - if ($374) { - $375 = $363 << 9; - $376 = $375 | $$010911856; - $377 = $376&65535; - $378 = ($370>>>0)<(1024); - if (!($378)) { - $$41201 = $$011971855; - break; - } - $379 = 1 << $363; - $$110891852 = $370; - while(1) { - $380 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0) + ($$110891852<<1)|0); - HEAP16[$380>>1] = $377; - $381 = (($$110891852) + ($379))|0; - $382 = ($381>>>0)<(1024); - if ($382) { - $$110891852 = $381; - } else { - $$41201 = $$011971855; - break L142; - } - } - } - $383 = $370 & 1023; - $384 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0) + ($383<<1)|0); - $385 = HEAP16[$384>>1]|0; - $386 = $385 << 16 >> 16; - $387 = ($385<<16>>16)==(0); - if ($387) { - $388 = (($$011971855) + -2)|0; - $389 = $$011971855&65535; - HEAP16[$384>>1] = $389; - $$01194 = $$011971855;$$11198 = $388; - } else { - $$01194 = $386;$$11198 = $$011971855; - } - $390 = $$010881838 >>> 9; - $391 = ($362&255)>(11); - $392 = $390 & 1; - $393 = (($392) - ($$01194))|0; - $394 = (($393) + -1)|0; - if ($391) { - $395 = $390 & 4194303; - $$010941846 = $363;$$211991845 = $$11198;$397 = $394;$406 = $395; - while(1) { - $396 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 2336|0) + ($397<<1)|0); - $398 = HEAP16[$396>>1]|0; - $399 = ($398<<16>>16)==(0); - if ($399) { - $400 = $$211991845&65535; - HEAP16[$396>>1] = $400; - $401 = (($$211991845) + -2)|0; - $$21196 = $$211991845;$$31200 = $401; - } else { - $402 = $398 << 16 >> 16; - $$21196 = $402;$$31200 = $$211991845; - } - $403 = (($$010941846) + -1)|0; - $404 = ($403>>>0)>(11); - $405 = $406 >>> 1; - $407 = $405 & 1; - $408 = (($407) - ($$21196))|0; - $409 = (($408) + -1)|0; - if ($404) { - $$010941846 = $403;$$211991845 = $$31200;$397 = $409;$406 = $405; - } else { - $$21199$lcssa = $$31200;$$lcssa1778 = $409; - break; - } - } - } else { - $$21199$lcssa = $$11198;$$lcssa1778 = $394; - } - $410 = $$010911856&65535; - $411 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 2336|0) + ($$lcssa1778<<1)|0); - HEAP16[$411>>1] = $410; - $$41201 = $$21199$lcssa; - } - } while(0); - $412 = (($$010911856) + 1)|0; - $413 = HEAP32[$247>>2]|0; - $414 = (((($0)) + 44|0) + ($413<<2)|0); - $415 = HEAP32[$414>>2]|0; - $416 = ($412>>>0)<($415>>>0); - if ($416) { - $$010911856 = $412;$$011971855 = $$41201; - } else { - $$lcssa1779 = $413; - break; - } - } - } - $417 = ($$lcssa1779|0)==(2); - if ($417) { - $$411457 = $$391455;$$411648 = $$391646;$$451036 = $$431034;$$451142 = 0;$$451552 = $$431550;$$46 = $$44;$$461249 = $$441247;$$461355 = $$441353; - label = 105; - } else { - $$521468 = $$391455;$$521659 = $$391646;$$551046 = $$431034;$$561153 = $$431140;$$561563 = $$431550;$$57 = $$44;$$571260 = $$441247;$$571366 = $$441353; - label = 138; - } - } else { - $$531469 = $$391455;$$531660 = $$391646;$$561047 = $$431034;$$571154 = $$431140;$$571564 = $$431550;$$58 = $$44;$$581261 = $$441247;$$581367 = $$441353; - label = 139; - } - break; - } - case 108: { - label = 0; - $429 = $$471356 & 1023; - $430 = (((($0)) + 7328|0) + ($429<<1)|0); - $431 = HEAP16[$430>>1]|0; - $432 = $431 << 16 >> 16; - $433 = ($431<<16>>16)>(-1); - if ($433) { - $434 = $432 >> 9; - $435 = (($434) + -1)|0; - $436 = ($435>>>0)<($$47>>>0); - if ($436) { - $$451461 = $$421458;$$451652 = $$421649;$$491146 = $$461143;$$491556 = $$461553;$$50 = $$47;$$501253 = $$471250;$$501359 = $$471356; - label = 119; - continue L125; - } else { - label = 113; - break L125; - } - } - $437 = ($$47>>>0)>(10); - if ($437) { - $$0981 = 10;$$0984 = $432; - } else { - label = 113; - break L125; - } - while(1) { - $438 = $$0984 ^ -1; - $439 = $$471356 >>> $$0981; - $440 = $439 & 1; - $441 = (($440) + ($438))|0; - $442 = (((($0)) + 9376|0) + ($441<<1)|0); - $443 = HEAP16[$442>>1]|0; - $444 = ($443<<16>>16)<(0); - if (!($444)) { - $$451461 = $$421458;$$451652 = $$421649;$$491146 = $$461143;$$491556 = $$461553;$$50 = $$47;$$501253 = $$471250;$$501359 = $$471356; - label = 119; - continue L125; - } - $445 = (($$0981) + 1)|0; - $446 = $443 << 16 >> 16; - $447 = (($$0981) + 2)|0; - $448 = ($$47>>>0)<($447>>>0); - if ($448) { - label = 113; - break L125; - } else { - $$0981 = $445;$$0984 = $446; - } - } - break; - } - case 119: { - label = 0; - $471 = $$501359 & 1023; - $472 = (((($0)) + 7328|0) + ($471<<1)|0); - $473 = HEAP16[$472>>1]|0; - $474 = $473 << 16 >> 16; - $475 = ($473<<16>>16)>(-1); - if ($475) { - $476 = $474 >> 9; - $477 = $474 & 511; - $$2983 = $476;$$2986 = $477; - } else { - $$1982 = 10;$$1985 = $474; - while(1) { - $478 = $$1985 ^ -1; - $479 = (($$1982) + 1)|0; - $480 = $$501359 >>> $$1982; - $481 = $480 & 1; - $482 = (($481) + ($478))|0; - $483 = (((($0)) + 9376|0) + ($482<<1)|0); - $484 = HEAP16[$483>>1]|0; - $485 = $484 << 16 >> 16; - $486 = ($484<<16>>16)<(0); - if ($486) { - $$1982 = $479;$$1985 = $485; - } else { - $$2983 = $479;$$2986 = $485; - break; - } - } - } - $487 = $$501359 >>> $$2983; - $488 = (($$50) - ($$2983))|0; - $489 = ($$2986>>>0)<(16); - if ($489) { - $490 = $$2986&255; - $491 = (($$491146) + 1)|0; - $492 = (((($0)) + 10532|0) + ($$491146)|0); - HEAP8[$492>>0] = $490; - $$411457 = $$451461;$$411648 = $$451652;$$451036 = $$2986;$$451142 = $491;$$451552 = $$491556;$$46 = $488;$$461249 = $$501253;$$461355 = $487; - label = 105; - break; - } - $493 = ($$2986|0)!=(16); - $494 = ($$491146|0)!=(0); - $or$cond24 = $494 | $493; - if (!($or$cond24)) { - $$461462 = $$451461;$$461653 = $$451652;$$491040 = $$2986;$$501147 = $$491146;$$501557 = $$491556;$$51 = $488;$$511254 = $$501253;$$511360 = $487; - label = 125; - continue L46; - } - $495 = (($$2986) + -16)|0; - $496 = (4801 + ($495)|0); - $497 = HEAP8[$496>>0]|0; - $498 = $497 << 24 >> 24; - $499 = ($488>>>0)<($498>>>0); - if ($499) { - $$471463 = $$451461;$$471654 = $$451652;$$501041 = $$2986;$$511148 = $$491146;$$511558 = $$491556;$$52 = $488;$$521255 = $498;$$521361 = $487; - label = 127; - continue L125; - } else { - $$501466 = $$451461;$$501657 = $$451652;$$531044 = $$2986;$$541151 = $$491146;$$541561 = $$491556;$$55 = $488;$$551258 = $498;$$551364 = $487; - label = 132; - continue L125; - } - break; - } - case 127: { - label = 0; - $500 = ($$511558>>>0)<($10>>>0); - if ($500) { - $$491465$ph = $$471463;$$491656$ph = $$471654;$$521043$ph = $$501041;$$531150$ph = $$511148;$$54$ph = $$52;$$541257$ph = $$521255;$$541363$ph = $$521361;$$sink1732 = $$511558; - label = 130; - continue L46; - } else { - $$481464 = $$471463;$$481655 = $$471654;$$511042 = $$501041;$$521149 = $$511148;$$521559 = $$511558;$$53 = $$52;$$531256 = $$521255;$$531362 = $$521361; - label = 128; - continue L46; - } - break; - } - case 132: { - label = 0; - $510 = 1 << $$551258; - $511 = (($510) + -1)|0; - $512 = $511 & $$551364; - $513 = $$551364 >>> $$551258; - $514 = (($$55) - ($$551258))|0; - $515 = (($$531044) + -16)|0; - $516 = (4805 + ($515)|0); - $517 = HEAP8[$516>>0]|0; - $518 = $517 << 24 >> 24; - $519 = (($518) + ($512))|0; - $520 = (((($0)) + 10532|0) + ($$541151)|0); - $521 = ($$531044|0)==(16); - if ($521) { - $522 = (($$541151) + -1)|0; - $523 = (((($0)) + 10532|0) + ($522)|0); - $524 = HEAP8[$523>>0]|0; - $525 = $524&255; - $527 = $525; - } else { - $527 = 0; - } - $526 = $527&255; - _memset(($520|0),($526|0),($519|0))|0; - $528 = (($519) + ($$541151))|0; - $$411457 = $$501466;$$411648 = $$501657;$$451036 = $$531044;$$451142 = $528;$$451552 = $$541561;$$46 = $514;$$461249 = $$551258;$$461355 = $513; - label = 105; - break; - } - case 140: { - label = 0; - $539 = $10; - $540 = $$581565$ph; - $541 = (($539) - ($540))|0; - $542 = ($541|0)<(4); - $543 = ($$59$ph>>>0)<(15); - L241: do { - if ($542) { - $$541661$lcssa = $$541661$ph;$$581155$lcssa = $$581155$ph;$$581565$lcssa = $$581565$ph;$$59$lcssa = $$59$ph;$$591368$lcssa = $$591368$ph;$$lcssa1799 = $543;$$lcssa1802 = $541; - } else { - $544 = $12; - $$5416611868 = $$541661$ph;$$5811551871 = $$581155$ph;$$5815651869 = $$581565$ph;$$5913681870 = $$591368$ph;$$591872 = $$59$ph;$965 = $543;$966 = $541; - while(1) { - $545 = $$5416611868; - $546 = (($544) - ($545))|0; - $547 = ($546|0)<(2); - if ($547) { - $$541661$lcssa = $$5416611868;$$581155$lcssa = $$5811551871;$$581565$lcssa = $$5815651869;$$59$lcssa = $$591872;$$591368$lcssa = $$5913681870;$$lcssa1799 = $965;$$lcssa1802 = $966; - break L241; - } - if ($965) { - $613 = HEAP8[$$5815651869>>0]|0; - $614 = $613&255; - $615 = ((($$5815651869)) + 1|0); - $616 = HEAP8[$615>>0]|0; - $617 = $616&255; - $618 = $617 << 8; - $619 = $618 | $614; - $620 = $619 << $$591872; - $621 = $620 | $$5913681870; - $622 = ((($$5815651869)) + 2|0); - $623 = (($$591872) + 16)|0; - $$641571 = $622;$$65 = $623;$$651374 = $621; - } else { - $$641571 = $$5815651869;$$65 = $$591872;$$651374 = $$5913681870; - } - $624 = $$651374 & 1023; - $625 = (((($0)) + 352|0) + ($624<<1)|0); - $626 = HEAP16[$625>>1]|0; - $627 = $626 << 16 >> 16; - $628 = ($626<<16>>16)>(-1); - if ($628) { - $629 = $627 >> 9; - $$1964 = $629;$$1968 = $627; - } else { - $$0963 = 10;$$0967 = $627; - while(1) { - $630 = $$0967 ^ -1; - $631 = (($$0963) + 1)|0; - $632 = $$651374 >>> $$0963; - $633 = $632 & 1; - $634 = (($633) + ($630))|0; - $635 = (((($0)) + 2400|0) + ($634<<1)|0); - $636 = HEAP16[$635>>1]|0; - $637 = $636 << 16 >> 16; - $638 = ($636<<16>>16)<(0); - if ($638) { - $$0963 = $631;$$0967 = $637; - } else { - $$1964 = $631;$$1968 = $637; - break; - } - } - } - $639 = $$651374 >>> $$1964; - $640 = (($$65) - ($$1964))|0; - $641 = $$1968 & 256; - $642 = ($641|0)==(0); - if (!($642)) { - $$601476 = $$541470$ph;$$611668 = $$5416611868;$$631054 = $$571048$ph;$$641161 = $$1968;$$651268 = $$591262$ph;$$671574 = $$641571;$$68 = $640;$$681377 = $639; - label = 176; - break L126; - } - $643 = ($640>>>0)<(15); - if ($643) { - $644 = HEAP8[$$641571>>0]|0; - $645 = $644&255; - $646 = ((($$641571)) + 1|0); - $647 = HEAP8[$646>>0]|0; - $648 = $647&255; - $649 = $648 << 8; - $650 = $649 | $645; - $651 = $650 << $640; - $652 = $651 | $639; - $653 = ((($$641571)) + 2|0); - $654 = (($640) + 16)|0; - $$651572 = $653;$$66 = $654;$$661375 = $652; - } else { - $$651572 = $$641571;$$66 = $640;$$661375 = $639; - } - $655 = $$661375 & 1023; - $656 = (((($0)) + 352|0) + ($655<<1)|0); - $657 = HEAP16[$656>>1]|0; - $658 = $657 << 16 >> 16; - $659 = ($657<<16>>16)>(-1); - if ($659) { - $660 = $658 >> 9; - $$3966 = $660;$$3970 = $658; - } else { - $$2965 = 10;$$2969 = $658; - while(1) { - $661 = $$2969 ^ -1; - $662 = (($$2965) + 1)|0; - $663 = $$661375 >>> $$2965; - $664 = $663 & 1; - $665 = (($664) + ($661))|0; - $666 = (((($0)) + 2400|0) + ($665<<1)|0); - $667 = HEAP16[$666>>1]|0; - $668 = $667 << 16 >> 16; - $669 = ($667<<16>>16)<(0); - if ($669) { - $$2965 = $662;$$2969 = $668; - } else { - $$3966 = $662;$$3970 = $668; - break; - } - } - } - $670 = $$661375 >>> $$3966; - $671 = (($$66) - ($$3966))|0; - $672 = $$1968&255; - HEAP8[$$5416611868>>0] = $672; - $673 = $$3970 & 256; - $674 = ($673|0)==(0); - if (!($674)) { - break; - } - $676 = $$3970&255; - $677 = ((($$5416611868)) + 1|0); - HEAP8[$677>>0] = $676; - $678 = ((($$5416611868)) + 2|0); - $679 = $$651572; - $680 = (($539) - ($679))|0; - $681 = ($680|0)<(4); - $682 = ($671>>>0)<(15); - if ($681) { - $$541661$lcssa = $678;$$581155$lcssa = $$1968;$$581565$lcssa = $$651572;$$59$lcssa = $671;$$591368$lcssa = $670;$$lcssa1799 = $682;$$lcssa1802 = $680; - break L241; - } else { - $$5416611868 = $678;$$5811551871 = $$1968;$$5815651869 = $$651572;$$5913681870 = $670;$$591872 = $671;$965 = $682;$966 = $680; - } - } - $675 = ((($$5416611868)) + 1|0); - $$601476 = $$541470$ph;$$611668 = $675;$$631054 = $$571048$ph;$$641161 = $$3970;$$651268 = $$591262$ph;$$671574 = $$651572;$$68 = $671;$$681377 = $670; - label = 176; - break L126; - } - } while(0); - if (!($$lcssa1799)) { - $$581474 = $$541470$ph;$$581665 = $$541661$lcssa;$$611052 = $$571048$ph;$$621569 = $$581565$lcssa;$$63 = $$59$lcssa;$$631266 = $$591262$ph;$$631372 = $$591368$lcssa; - label = 156; - continue L125; - } - $548 = ($$lcssa1802|0)<(2); - if ($548) { - $$551471 = $$541470$ph;$$551662 = $$541661$lcssa;$$581049 = $$571048$ph;$$591156 = $$581155$lcssa;$$591566 = $$581565$lcssa;$$60 = $$59$lcssa;$$601263 = $$591262$ph;$$601369 = $$591368$lcssa; - label = 145; - continue L125; - } - $579 = HEAP8[$$581565$lcssa>>0]|0; - $580 = $579&255; - $581 = $580 << $$59$lcssa; - $582 = ((($$581565$lcssa)) + 1|0); - $583 = HEAP8[$582>>0]|0; - $584 = $583&255; - $585 = (($$59$lcssa) + 8)|0; - $586 = $584 << $585; - $587 = $581 | $$591368$lcssa; - $588 = $587 | $586; - $589 = ((($$581565$lcssa)) + 2|0); - $590 = (($$59$lcssa) + 16)|0; - $$581474 = $$541470$ph;$$581665 = $$541661$lcssa;$$611052 = $$571048$ph;$$621569 = $589;$$63 = $590;$$631266 = $$591262$ph;$$631372 = $588; - label = 156; - continue L125; - break; - } - case 145: { - label = 0; - $549 = $$601369 & 1023; - $550 = (((($0)) + 352|0) + ($549<<1)|0); - $551 = HEAP16[$550>>1]|0; - $552 = $551 << 16 >> 16; - $553 = ($551<<16>>16)>(-1); - if ($553) { - $554 = $552 >> 9; - $555 = (($554) + -1)|0; - $556 = ($555>>>0)<($$60>>>0); - if ($556) { - $$581474 = $$551471;$$581665 = $$551662;$$611052 = $$581049;$$621569 = $$591566;$$63 = $$60;$$631266 = $$601263;$$631372 = $$601369; - label = 156; - continue L125; - } else { - label = 150; - break L125; - } - } - $557 = ($$60>>>0)>(10); - if ($557) { - $$0972 = 10;$$0975 = $552; - } else { - label = 150; - break L125; - } - while(1) { - $558 = $$0975 ^ -1; - $559 = $$601369 >>> $$0972; - $560 = $559 & 1; - $561 = (($560) + ($558))|0; - $562 = (((($0)) + 2400|0) + ($561<<1)|0); - $563 = HEAP16[$562>>1]|0; - $564 = ($563<<16>>16)<(0); - if (!($564)) { - $$581474 = $$551471;$$581665 = $$551662;$$611052 = $$581049;$$621569 = $$591566;$$63 = $$60;$$631266 = $$601263;$$631372 = $$601369; - label = 156; - continue L125; - } - $565 = (($$0972) + 1)|0; - $566 = $563 << 16 >> 16; - $567 = (($$0972) + 2)|0; - $568 = ($$60>>>0)<($567>>>0); - if ($568) { - label = 150; - break L125; - } else { - $$0972 = $565;$$0975 = $566; - } - } - break; - } - case 156: { - label = 0; - $591 = $$631372 & 1023; - $592 = (((($0)) + 352|0) + ($591<<1)|0); - $593 = HEAP16[$592>>1]|0; - $594 = $593 << 16 >> 16; - $595 = ($593<<16>>16)>(-1); - if ($595) { - $596 = $594 >> 9; - $597 = $594 & 511; - $$2974 = $596;$$2977 = $597; - } else { - $$1973 = 10;$$1976 = $594; - while(1) { - $598 = $$1976 ^ -1; - $599 = (($$1973) + 1)|0; - $600 = $$631372 >>> $$1973; - $601 = $600 & 1; - $602 = (($601) + ($598))|0; - $603 = (((($0)) + 2400|0) + ($602<<1)|0); - $604 = HEAP16[$603>>1]|0; - $605 = $604 << 16 >> 16; - $606 = ($604<<16>>16)<(0); - if ($606) { - $$1973 = $599;$$1976 = $605; - } else { - $$2974 = $599;$$2977 = $605; - break; - } - } - } - $607 = $$631372 >>> $$2974; - $608 = (($$63) - ($$2974))|0; - $609 = ($$2977>>>0)>(255); - if ($609) { - $$601476 = $$581474;$$611668 = $$581665;$$631054 = $$611052;$$641161 = $$2977;$$651268 = $$631266;$$671574 = $$621569;$$68 = $608;$$681377 = $607; - label = 176; - } else { - $$591475 = $$581474;$$591666 = $$581665;$$621053 = $$611052;$$621159 = $$2977;$$631570 = $$621569;$$64 = $608;$$641267 = $$631266;$$641373 = $607; - label = 160; - continue L46; - } - break; - } - case 179: { - label = 0; - $693 = ($$681575>>>0)<($10>>>0); - if ($693) { - $$631479$ph = $$611477;$$641671$ph = $$621669;$$661057$ph = $$641055;$$671164$ph = $$651162;$$681271$ph = $$661269;$$71$ph = $$69;$$711380$ph = $$691378;$$sink1739 = $$681575; - label = 182; - continue L46; - } else { - $$621478 = $$611477;$$631670 = $$621669;$$651056 = $$641055;$$661163 = $$651162;$$671270 = $$661269;$$691576 = $$681575;$$70 = $$69;$$701379 = $$691378; - label = 180; - continue L46; - } - break; - } - case 184: { - label = 0; - $703 = 1 << $$691272; - $704 = (($703) + -1)|0; - $705 = $704 & $$721381; - $706 = $$721381 >>> $$691272; - $707 = (($$72) - ($$691272))|0; - $708 = (($705) + ($$681165))|0; - $$651481 = $$641480;$$661673 = $$651672;$$681059 = $$671058;$$691166 = $708;$$701273 = $$691272;$$721579 = $$711578;$$73 = $707;$$731382 = $706; - label = 185; - break; - } - case 187: { - label = 0; - $714 = $$741383 & 1023; - $715 = (((($0)) + 3840|0) + ($714<<1)|0); - $716 = HEAP16[$715>>1]|0; - $717 = $716 << 16 >> 16; - $718 = ($716<<16>>16)>(-1); - if ($718) { - $719 = $717 >> 9; - $720 = (($719) + -1)|0; - $721 = ($720>>>0)<($$74>>>0); - if ($721) { - $$691485 = $$661482;$$701677 = $$671674;$$731170 = $$701167;$$761583 = $$731580;$$77 = $$74;$$771386 = $$741383; - label = 198; - continue L125; - } else { - label = 192; - break L125; - } - } - $722 = ($$74>>>0)>(10); - if ($722) { - $$0953 = 10;$$0956 = $717; - } else { - label = 192; - break L125; - } - while(1) { - $723 = $$0956 ^ -1; - $724 = $$741383 >>> $$0953; - $725 = $724 & 1; - $726 = (($725) + ($723))|0; - $727 = (((($0)) + 5888|0) + ($726<<1)|0); - $728 = HEAP16[$727>>1]|0; - $729 = ($728<<16>>16)<(0); - if (!($729)) { - $$691485 = $$661482;$$701677 = $$671674;$$731170 = $$701167;$$761583 = $$731580;$$77 = $$74;$$771386 = $$741383; - label = 198; - continue L125; - } - $730 = (($$0953) + 1)|0; - $731 = $728 << 16 >> 16; - $732 = (($$0953) + 2)|0; - $733 = ($$74>>>0)<($732>>>0); - if ($733) { - label = 192; - break L125; - } else { - $$0953 = $730;$$0956 = $731; - } - } - break; - } - case 198: { - label = 0; - $756 = $$771386 & 1023; - $757 = (((($0)) + 3840|0) + ($756<<1)|0); - $758 = HEAP16[$757>>1]|0; - $759 = $758 << 16 >> 16; - $760 = ($758<<16>>16)>(-1); - if ($760) { - $761 = $759 >> 9; - $762 = $759 & 511; - $$2955 = $761;$$2958 = $762; - } else { - $$1954 = 10;$$1957 = $759; - while(1) { - $763 = $$1957 ^ -1; - $764 = (($$1954) + 1)|0; - $765 = $$771386 >>> $$1954; - $766 = $765 & 1; - $767 = (($766) + ($763))|0; - $768 = (((($0)) + 5888|0) + ($767<<1)|0); - $769 = HEAP16[$768>>1]|0; - $770 = $769 << 16 >> 16; - $771 = ($769<<16>>16)<(0); - if ($771) { - $$1954 = $764;$$1957 = $770; - } else { - $$2955 = $764;$$2958 = $770; - break; - } - } - } - $772 = $$771386 >>> $$2955; - $773 = (($$77) - ($$2955))|0; - $774 = (3468 + ($$2958<<2)|0); - $775 = HEAP32[$774>>2]|0; - $776 = (3340 + ($$2958<<2)|0); - $777 = HEAP32[$776>>2]|0; - $778 = (($$2958) + -4)|0; - $779 = ($778>>>0)<(26); - if ($779) { - $780 = ($773>>>0)<($775>>>0); - if ($780) { - $$701486 = $$691485;$$711678 = $$701677;$$721063 = $777;$$741171 = $$731170;$$741277 = $775;$$771584 = $$761583;$$78 = $773;$$781387 = $772; - label = 203; - continue L125; - } else { - $$741681 = $$701677;$$751066 = $777;$$771174 = $$731170;$$771280 = $775;$$801587 = $$761583;$$81 = $773;$$811390 = $772; - label = 208; - continue L125; - } - } else { - $$751682 = $$701677;$$761067 = $777;$$781175 = $$731170;$$781281 = $775;$$811588 = $$761583;$$82 = $773;$$821391 = $772; - label = 209; - } - break; - } - case 203: { - label = 0; - $781 = ($$771584>>>0)<($10>>>0); - if ($781) { - $$721488$ph = $$701486;$$731680$ph = $$711678;$$741065$ph = $$721063;$$761173$ph = $$741171;$$761279$ph = $$741277;$$80$ph = $$78;$$801389$ph = $$781387;$$sink1746 = $$771584; - label = 206; - continue L46; - } else { - $$711487 = $$701486;$$721679 = $$711678;$$731064 = $$721063;$$751172 = $$741171;$$751278 = $$741277;$$781585 = $$771584;$$79 = $$78;$$791388 = $$781387; - label = 204; - continue L46; - } - break; - } - case 208: { - label = 0; - $791 = 1 << $$771280; - $792 = (($791) + -1)|0; - $793 = $792 & $$811390; - $794 = $$811390 >>> $$771280; - $795 = (($$81) - ($$771280))|0; - $796 = (($793) + ($$751066))|0; - $$751682 = $$741681;$$761067 = $796;$$781175 = $$771174;$$781281 = $$771280;$$811588 = $$801587;$$82 = $795;$$821391 = $794; - label = 209; - break; - } - case 212: { - label = 0; - $807 = (($$801177) + -1)|0; - $808 = ($$801177|0)==(0); - if ($808) { - $$531469 = $$741490;$$531660 = $$771684;$$561047 = $$781069;$$571154 = $807;$$571564 = $$831590;$$58 = $$84;$$581261 = $$801283;$$581367 = $$841393; - label = 139; - } else { - $$751491 = $$741490;$$781685 = $$771684;$$791070 = $$781069;$$811178 = $807;$$811284 = $$801283;$$841591 = $$831590;$$85 = $$84;$$851394 = $$841393; - label = 213; - continue L46; - } - break; - } - } - do { - if ((label|0) == 70) { - label = 0; - $217 = ((($0)) + 52|0); - $218 = HEAP32[$217>>2]|0; - $219 = ($$381135>>>0)<($218>>>0); - if ($219) { - $220 = ($$39>>>0)<(3); - if ($220) { - $$351451 = $$341450;$$351642 = $$341641;$$391030 = $$381029;$$391136 = $$381135;$$391546 = $$381545;$$40 = $$39;$$401243 = $$391242;$$401349 = $$391348; - label = 72; - continue L125; - } else { - $$381454 = $$341450;$$381645 = $$341641;$$421033 = $$381029;$$421139 = $$381135;$$421549 = $$381545;$$43 = $$39;$$431246 = $$391242;$$431352 = $$391348; - label = 77; - continue L125; - } - } else { - HEAP32[$217>>2] = 19; - $$391455 = $$341450;$$391646 = $$341641;$$431034 = $$381029;$$431140 = $$381135;$$431550 = $$381545;$$44 = $$39;$$441247 = $$391242;$$441353 = $$391348; - label = 80; - continue L125; - } - } - else if ((label|0) == 105) { - label = 0; - $418 = ((($0)) + 44|0); - $419 = HEAP32[$418>>2]|0; - $420 = ((($0)) + 48|0); - $421 = HEAP32[$420>>2]|0; - $422 = (($421) + ($419))|0; - $423 = ($$451142>>>0)<($422>>>0); - if (!($423)) { - $529 = ($422|0)==($$451142|0); - if (!($529)) { - $$511467 = $$411457;$$511658 = $$411648;$$541045 = $$451036;$$551152 = $$451142;$$551562 = $$451552;$$56 = $$46;$$561259 = $$461249;$$561365 = $$461355; - label = 136; - continue L46; - } - $530 = ((($0)) + 64|0); - $531 = ((($0)) + 10532|0); - _memcpy(($530|0),($531|0),($419|0))|0; - $532 = ((($0)) + 3552|0); - $533 = HEAP32[$418>>2]|0; - $534 = (((($0)) + 10532|0) + ($533)|0); - $535 = HEAP32[$420>>2]|0; - _memcpy(($532|0),($534|0),($535|0))|0; - $$521468 = $$411457;$$521659 = $$411648;$$551046 = $$451036;$$561153 = $$451142;$$561563 = $$451552;$$57 = $$46;$$571260 = $$461249;$$571366 = $$461355; - label = 138; - break; - } - $424 = ($$46>>>0)<(15); - if (!($424)) { - $$451461 = $$411457;$$451652 = $$411648;$$491146 = $$451142;$$491556 = $$451552;$$50 = $$46;$$501253 = $$461249;$$501359 = $$461355; - label = 119; - continue L125; - } - $425 = $10; - $426 = $$451552; - $427 = (($425) - ($426))|0; - $428 = ($427|0)<(2); - if ($428) { - $$421458 = $$411457;$$421649 = $$411648;$$461037 = $$451036;$$461143 = $$451142;$$461553 = $$451552;$$47 = $$46;$$471250 = $$461249;$$471356 = $$461355; - label = 108; - continue L125; - } - $459 = HEAP8[$$451552>>0]|0; - $460 = $459&255; - $461 = $460 << $$46; - $462 = ((($$451552)) + 1|0); - $463 = HEAP8[$462>>0]|0; - $464 = $463&255; - $465 = (($$46) + 8)|0; - $466 = $464 << $465; - $467 = $461 | $$461355; - $468 = $467 | $466; - $469 = ((($$451552)) + 2|0); - $470 = (($$46) + 16)|0; - $$451461 = $$411457;$$451652 = $$411648;$$491146 = $$451142;$$491556 = $469;$$50 = $470;$$501253 = $$461249;$$501359 = $468; - label = 119; - continue L125; - } - else if ((label|0) == 176) { - label = 0; - $683 = $$641161 & 511; - $684 = ($683|0)==(256); - if ($684) { - $$761492 = $$601476;$$801071 = $$631054;$$801687 = $$611668;$$821285 = $$651268;$$831180 = 256;$$851592 = $$671574;$$86 = $$68;$$861395 = $$681377; - label = 220; - break L125; - } - $685 = (($683) + -257)|0; - $686 = (3216 + ($685<<2)|0); - $687 = HEAP32[$686>>2]|0; - $688 = (3092 + ($685<<2)|0); - $689 = HEAP32[$688>>2]|0; - $690 = (($683) + -265)|0; - $691 = ($690>>>0)<(20); - if ($691) { - $692 = ($$68>>>0)<($687>>>0); - if ($692) { - $$611477 = $$601476;$$621669 = $$611668;$$641055 = $$631054;$$651162 = $689;$$661269 = $687;$$681575 = $$671574;$$69 = $$68;$$691378 = $$681377; - label = 179; - continue L125; - } else { - $$641480 = $$601476;$$651672 = $$611668;$$671058 = $$631054;$$681165 = $689;$$691272 = $687;$$711578 = $$671574;$$72 = $$68;$$721381 = $$681377; - label = 184; - continue L125; - } - } else { - $$651481 = $$601476;$$661673 = $$611668;$$681059 = $$631054;$$691166 = $689;$$701273 = $687;$$721579 = $$671574;$$73 = $$68;$$731382 = $$681377; - label = 185; - } - } - else if ((label|0) == 209) { - label = 0; - $797 = $$751682; - $798 = $3; - $799 = (($797) - ($798))|0; - $$not = ($799>>>0)>=($$761067>>>0); - $$not1747 = $14 ^ 1; - $brmerge = $$not | $$not1747; - if (!($brmerge)) { - $$731489 = $799;$$761683 = $$751682;$$771068 = $$761067;$$791176 = $$781175;$$791282 = $$781281;$$821589 = $$811588;$$83 = $$82;$$831392 = $$821391; - label = 210; - continue L46; - } - $800 = (($799) - ($$761067))|0; - $801 = $800 & $$1753; - $802 = (($3) + ($801)|0); - $803 = ($$751682>>>0)>($802>>>0); - $804 = $803 ? $$751682 : $802; - $805 = (($804) + ($$781175)|0); - $806 = ($805>>>0)>($12>>>0); - if ($806) { - $$741490 = $799;$$771684 = $$751682;$$781069 = $$761067;$$801177 = $$781175;$$801283 = $$781281;$$831590 = $$811588;$$84 = $$82;$$841393 = $$821391; - label = 212; - continue L125; - } else { - $$0978 = $802;$$791686 = $$751682;$$821179 = $$781175; - } - while(1) { - $816 = HEAP8[$$0978>>0]|0; - HEAP8[$$791686>>0] = $816; - $817 = ((($$0978)) + 1|0); - $818 = HEAP8[$817>>0]|0; - $819 = ((($$791686)) + 1|0); - HEAP8[$819>>0] = $818; - $820 = ((($$0978)) + 2|0); - $821 = HEAP8[$820>>0]|0; - $822 = ((($$791686)) + 2|0); - HEAP8[$822>>0] = $821; - $823 = ((($$791686)) + 3|0); - $824 = ((($$0978)) + 3|0); - $825 = (($$821179) + -3)|0; - $826 = ($825|0)>(2); - if ($826) { - $$0978 = $824;$$791686 = $823;$$821179 = $825; - } else { - break; - } - } - $827 = ($825|0)>(0); - if ($827) { - $828 = HEAP8[$824>>0]|0; - HEAP8[$823>>0] = $828; - $829 = ($825|0)==(1); - if (!($829)) { - $830 = ((($$0978)) + 4|0); - $831 = HEAP8[$830>>0]|0; - $832 = ((($$791686)) + 4|0); - HEAP8[$832>>0] = $831; - } - $833 = (($823) + ($825)|0); - $$531469 = $799;$$531660 = $833;$$561047 = $$761067;$$571154 = $825;$$571564 = $$811588;$$58 = $$82;$$581261 = $$781281;$$581367 = $$821391; - label = 139; - } else { - $$531469 = $799;$$531660 = $823;$$561047 = $$761067;$$571154 = $825;$$571564 = $$811588;$$58 = $$82;$$581261 = $$781281;$$581367 = $$821391; - label = 139; - } - } - } while(0); - if ((label|0) == 138) { - label = 0; - $536 = ((($0)) + 24|0); - $537 = HEAP32[$536>>2]|0; - $538 = (($537) + -1)|0; - HEAP32[$536>>2] = $538; - $$391455 = $$521468;$$391646 = $$521659;$$431034 = $$551046;$$431140 = $$561153;$$431550 = $$561563;$$44 = $$57;$$441247 = $$571260;$$441353 = $$571366; - label = 80; - continue; - } - else if ((label|0) == 139) { - label = 0; - $$541470$ph = $$531469;$$541661$ph = $$531660;$$571048$ph = $$561047;$$581155$ph = $$571154;$$581565$ph = $$571564;$$59$ph = $$58;$$591262$ph = $$581261;$$591368$ph = $$581367; - label = 140; - continue; - } - else if ((label|0) == 185) { - label = 0; - $709 = ($$73>>>0)<(15); - if (!($709)) { - $$691485 = $$651481;$$701677 = $$661673;$$731170 = $$691166;$$761583 = $$721579;$$77 = $$73;$$771386 = $$731382; - label = 198; - continue; - } - $710 = $10; - $711 = $$721579; - $712 = (($710) - ($711))|0; - $713 = ($712|0)<(2); - if ($713) { - $$661482 = $$651481;$$671674 = $$661673;$$691060 = $$681059;$$701167 = $$691166;$$711274 = $$701273;$$731580 = $$721579;$$74 = $$73;$$741383 = $$731382; - label = 187; - continue; - } - $744 = HEAP8[$$721579>>0]|0; - $745 = $744&255; - $746 = $745 << $$73; - $747 = ((($$721579)) + 1|0); - $748 = HEAP8[$747>>0]|0; - $749 = $748&255; - $750 = (($$73) + 8)|0; - $751 = $749 << $750; - $752 = $746 | $$731382; - $753 = $752 | $751; - $754 = ((($$721579)) + 2|0); - $755 = (($$73) + 16)|0; - $$691485 = $$651481;$$701677 = $$661673;$$731170 = $$691166;$$761583 = $754;$$77 = $755;$$771386 = $753; - label = 198; - continue; - } - } - if ((label|0) == 113) { - label = 0; - $449 = ($$461553>>>0)<($10>>>0); - if ($449) { - $$441460$ph = $$421458;$$441651$ph = $$421649;$$481039$ph = $$461037;$$481145$ph = $$461143;$$49$ph = $$47;$$491252$ph = $$471250;$$491358$ph = $$471356;$$sink1729 = $$461553; - label = 116; - continue; - } else { - $$431459 = $$421458;$$431650 = $$421649;$$471038 = $$461037;$$471144 = $$461143;$$471554 = $$461553;$$48 = $$47;$$481251 = $$471250;$$481357 = $$471356; - label = 114; - continue; - } - } - else if ((label|0) == 150) { - label = 0; - $569 = ($$591566>>>0)<($10>>>0); - if ($569) { - $$571473$ph = $$551471;$$571664$ph = $$551662;$$601051$ph = $$581049;$$611158$ph = $$591156;$$62$ph = $$60;$$621265$ph = $$601263;$$621371$ph = $$601369;$$sink1736 = $$591566; - label = 153; - continue; - } else { - $$561472 = $$551471;$$561663 = $$551662;$$591050 = $$581049;$$601157 = $$591156;$$601567 = $$591566;$$61 = $$60;$$611264 = $$601263;$$611370 = $$601369; - label = 151; - continue; - } - } - else if ((label|0) == 192) { - label = 0; - $734 = ($$731580>>>0)<($10>>>0); - if ($734) { - $$681484$ph = $$661482;$$691676$ph = $$671674;$$711062$ph = $$691060;$$721169$ph = $$701167;$$731276$ph = $$711274;$$76$ph = $$74;$$761385$ph = $$741383;$$sink1743 = $$731580; - label = 195; - continue; - } else { - $$671483 = $$661482;$$681675 = $$671674;$$701061 = $$691060;$$711168 = $$701167;$$721275 = $$711274;$$741581 = $$731580;$$75 = $$74;$$751384 = $$741383; - label = 193; - continue; - } - } - else if ((label|0) == 220) { - label = 0; - $834 = ((($0)) + 20|0); - $835 = HEAP32[$834>>2]|0; - $836 = $835 & 1; - $837 = ($836|0)==(0); - if ($837) { - $$01416 = $$761492;$$01607 = $$801687;$$41511 = $$851592;$$5 = $$86;$$51102 = $$831180;$$51208 = $$821285;$$51314 = $$861395;$$5996 = $$801071; - label = 14; - continue; - } - $838 = $6 & 1; - $839 = ($838|0)==(0); - if ($839) { - $$881504 = $$761492;$$921083 = $$801071;$$921699 = $$801687;$$941191 = $$831180;$$941297 = $$821285;$$971604 = $$851592;$$98 = $$86;$$981407 = $$861395; - label = 242; - continue; - } else { - $$801496 = $$761492;$$841075 = $$801071;$$841691 = $$801687;$$861289 = $$821285;$$891596 = $$851592;$$90 = $$86;$$901399 = $$861395; - label = 226; - continue; - } - } - } - if ((label|0) == 258) { - STACKTOP = sp;return ($$0951|0); - } - $892 = ((($0)) + 28|0); - $893 = HEAP32[$892>>2]|0; - $894 = $893 & 65535; - $895 = $893 >>> 16; - $896 = ($888|0)==(0); - if ($896) { - $$0937$lcssa = $895;$$0938$lcssa = $894; - } else { - $897 = (($888>>>0) % 5552)&-1; - $$01834 = $897;$$09371833 = $895;$$09381832 = $894;$$09431831 = $888;$$09441830 = $4; - while(1) { - $898 = ($$01834>>>0)>(7); - if ($898) { - $899 = (($$01834) + -8)|0; - $900 = $899 & -8; - $scevgep = ((($$09441830)) + 8|0); - $$09411816 = 0;$$11818 = $$09371833;$$19391817 = $$09381832;$$19451815 = $$09441830; - while(1) { - $904 = HEAP8[$$19451815>>0]|0; - $905 = $904&255; - $906 = (($905) + ($$19391817))|0; - $907 = (($906) + ($$11818))|0; - $908 = ((($$19451815)) + 1|0); - $909 = HEAP8[$908>>0]|0; - $910 = $909&255; - $911 = (($906) + ($910))|0; - $912 = (($907) + ($911))|0; - $913 = ((($$19451815)) + 2|0); - $914 = HEAP8[$913>>0]|0; - $915 = $914&255; - $916 = (($911) + ($915))|0; - $917 = (($912) + ($916))|0; - $918 = ((($$19451815)) + 3|0); - $919 = HEAP8[$918>>0]|0; - $920 = $919&255; - $921 = (($916) + ($920))|0; - $922 = (($917) + ($921))|0; - $923 = ((($$19451815)) + 4|0); - $924 = HEAP8[$923>>0]|0; - $925 = $924&255; - $926 = (($921) + ($925))|0; - $927 = (($922) + ($926))|0; - $928 = ((($$19451815)) + 5|0); - $929 = HEAP8[$928>>0]|0; - $930 = $929&255; - $931 = (($926) + ($930))|0; - $932 = (($927) + ($931))|0; - $933 = ((($$19451815)) + 6|0); - $934 = HEAP8[$933>>0]|0; - $935 = $934&255; - $936 = (($931) + ($935))|0; - $937 = (($932) + ($936))|0; - $938 = ((($$19451815)) + 7|0); - $939 = HEAP8[$938>>0]|0; - $940 = $939&255; - $941 = (($936) + ($940))|0; - $942 = (($937) + ($941))|0; - $943 = (($$09411816) + 8)|0; - $944 = ((($$19451815)) + 8|0); - $945 = $943 | 7; - $946 = ($945>>>0)<($$01834>>>0); - if ($946) { - $$09411816 = $943;$$11818 = $942;$$19391817 = $941;$$19451815 = $944; - } else { - break; - } - } - $901 = (($900) + 8)|0; - $scevgep1947 = (($scevgep) + ($900)|0); - $$0941$lcssa = $901;$$1$lcssa = $942;$$1939$lcssa = $941;$$1945$lcssa = $scevgep1947; - } else { - $$0941$lcssa = 0;$$1$lcssa = $$09371833;$$1939$lcssa = $$09381832;$$1945$lcssa = $$09441830; - } - $902 = ($$01834>>>0)>($$0941$lcssa>>>0); - if ($902) { - $903 = (($$01834) - ($$0941$lcssa))|0; - $$19421823 = $$0941$lcssa;$$21825 = $$1$lcssa;$$29401824 = $$1939$lcssa;$$29461822 = $$1945$lcssa; - while(1) { - $947 = ((($$29461822)) + 1|0); - $948 = HEAP8[$$29461822>>0]|0; - $949 = $948&255; - $950 = (($949) + ($$29401824))|0; - $951 = (($950) + ($$21825))|0; - $952 = (($$19421823) + 1)|0; - $exitcond = ($952|0)==($$01834|0); - if ($exitcond) { - break; - } else { - $$19421823 = $952;$$21825 = $951;$$29401824 = $950;$$29461822 = $947; - } - } - $scevgep1948 = (($$1945$lcssa) + ($903)|0); - $$2$lcssa = $951;$$2940$lcssa = $950;$$2946$lcssa = $scevgep1948; - } else { - $$2$lcssa = $$1$lcssa;$$2940$lcssa = $$1939$lcssa;$$2946$lcssa = $$1945$lcssa; - } - $953 = (($$2940$lcssa>>>0) % 65521)&-1; - $954 = (($$2$lcssa>>>0) % 65521)&-1; - $955 = (($$09431831) - ($$01834))|0; - $956 = ($955|0)==(0); - if ($956) { - $$0937$lcssa = $954;$$0938$lcssa = $953; - break; - } else { - $$01834 = 5552;$$09371833 = $954;$$09381832 = $953;$$09431831 = $955;$$09441830 = $$2946$lcssa; - } - } - } - $957 = $$0937$lcssa << 16; - $958 = $957 | $$0938$lcssa; - HEAP32[$892>>2] = $958; - $959 = ($$1961|0)!=(0); - $960 = $6 & 1; - $961 = ($960|0)==(0); - $or$cond1752 = $961 | $959; - if ($or$cond1752) { - $$0951 = $$1961; - STACKTOP = sp;return ($$0951|0); - } else { - $962 = ((($0)) + 16|0); - $963 = HEAP32[$962>>2]|0; - $964 = ($958|0)==($963|0); - $$1961$ = $964 ? $$1961 : -2; - STACKTOP = sp;return ($$1961$|0); - } - return (0)|0; -} -function _tinfl_decompress_mem_to_mem($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 11008|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(11008|0); - $5 = sp + 11000|0; - $6 = sp; - $7 = sp + 8|0; - HEAP32[$5>>2] = $1; - HEAP32[$6>>2] = $3; - HEAP32[$7>>2] = 0; - $8 = $4 & -7; - $9 = $8 | 4; - $10 = (_tinfl_decompress($7,$2,$6,$0,$0,$5,$9)|0); - $11 = ($10|0)!=(0); - $12 = HEAP32[$5>>2]|0; - $13 = $11 ? -1 : $12; - STACKTOP = sp;return ($13|0); -} -function _LoadResource($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0$lcssa = 0, $$05664 = 0, $$05763 = 0, $$065 = 0, $$1 = 0, $$2 = 0, $$3 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; - var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; - var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; - var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $8 = 0, $9 = 0, $or$cond = 0; - var $or$cond60 = 0, $or$cond62 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr11 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $vararg_buffer8 = sp + 24|0; - $vararg_buffer4 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 64|0; - $3 = sp + 32|0; - $4 = (_fopen($0,8986)|0); - $5 = ($4|0)==(0|0); - if ($5) { - HEAP32[$vararg_buffer>>2] = $0; - _TraceLog(1,4809,$vararg_buffer); - $$3 = 0; - STACKTOP = sp;return ($$3|0); - } - (_fread($2,1,1,$4)|0); - $6 = ((($2)) + 1|0); - (_fread($6,1,1,$4)|0); - $7 = ((($2)) + 2|0); - (_fread($7,1,1,$4)|0); - $8 = ((($2)) + 3|0); - (_fread($8,1,1,$4)|0); - $9 = ((($2)) + 4|0); - (_fread($9,2,1,$4)|0); - $10 = ((($2)) + 6|0); - (_fread($10,2,1,$4)|0); - $11 = HEAP8[$2>>0]|0; - $12 = ($11<<24>>24)==(114); - $13 = HEAP8[$6>>0]|0; - $14 = ($13<<24>>24)==(82); - $or$cond = $12 | $14; - $15 = HEAP8[$7>>0]|0; - $16 = ($15<<24>>24)==(69); - $or$cond60 = $or$cond | $16; - $17 = HEAP8[$8>>0]|0; - $18 = ($17<<24>>24)==(83); - $or$cond62 = $or$cond60 | $18; - if ($or$cond62) { - $19 = HEAP16[$10>>1]|0; - $20 = ($19<<16>>16)==(0); - if ($20) { - $$0$lcssa = 0; - } else { - $21 = ((($3)) + 7|0); - $22 = ((($3)) + 4|0); - $23 = ((($3)) + 16|0); - $24 = ((($3)) + 20|0); - $25 = ((($3)) + 24|0); - $26 = ((($3)) + 28|0); - $27 = ((($3)) + 8|0); - $28 = ((($3)) + 5|0); - $29 = ((($3)) + 12|0); - $30 = HEAP16[$10>>1]|0; - $31 = $30&65535; - $32 = ((($3)) + 8|0); - $$05664 = 0;$$065 = 0; - while(1) { - (_fread($3,32,1,$4)|0); - $36 = HEAP32[$3>>2]|0; - $37 = ($36|0)==($1|0); - if ($37) { - $38 = HEAP8[$21>>0]|0; - $39 = $38&255; - $40 = ($39*24)|0; - $41 = (_malloc($40)|0); - $42 = ($38<<24>>24)==(0); - if ($42) { - $$1 = $41; - } else { - $$05763 = 0; - while(1) { - $43 = HEAP8[$22>>0]|0; - $44 = $43&255; - $45 = (($41) + (($$05763*24)|0)|0); - HEAP32[$45>>2] = $44; - $46 = HEAP32[$23>>2]|0; - $47 = (((($41) + (($$05763*24)|0)|0)) + 4|0); - HEAP32[$47>>2] = $46; - $48 = HEAP32[$24>>2]|0; - $49 = (((($41) + (($$05763*24)|0)|0)) + 8|0); - HEAP32[$49>>2] = $48; - $50 = HEAP32[$25>>2]|0; - $51 = (((($41) + (($$05763*24)|0)|0)) + 12|0); - HEAP32[$51>>2] = $50; - $52 = HEAP32[$26>>2]|0; - $53 = (((($41) + (($$05763*24)|0)|0)) + 16|0); - HEAP32[$53>>2] = $52; - $54 = HEAP32[$27>>2]|0; - $55 = (_malloc($54)|0); - (_fread($55,$54,1,$4)|0); - $56 = HEAP8[$28>>0]|0; - $57 = ($56<<24>>24)==(1); - if ($57) { - $58 = HEAP32[$27>>2]|0; - $59 = HEAP32[$29>>2]|0; - $60 = (_DecompressData($55,$58,$59)|0); - $61 = (((($41) + (($$05763*24)|0)|0)) + 20|0); - HEAP32[$61>>2] = $60; - _free($55); - } else { - $62 = (((($41) + (($$05763*24)|0)|0)) + 20|0); - HEAP32[$62>>2] = $55; - } - $63 = (((($41) + (($$05763*24)|0)|0)) + 20|0); - $64 = HEAP32[$63>>2]|0; - $65 = ($64|0)==(0|0); - if (!($65)) { - $66 = HEAP32[$3>>2]|0; - HEAP32[$vararg_buffer4>>2] = $0; - $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); - HEAP32[$vararg_ptr7>>2] = $66; - _TraceLog(0,4906,$vararg_buffer4); - } - (_fread($3,32,1,$4)|0); - $67 = (($$05763) + 1)|0; - $68 = HEAP8[$21>>0]|0; - $69 = $68&255; - $70 = ($67|0)<($69|0); - if ($70) { - $$05763 = $67; - } else { - $$1 = $41; - break; - } - } - } - } else { - $71 = HEAP32[$32>>2]|0; - (_fseek($4,$71,1)|0); - $$1 = $$065; - } - $72 = (($$05664) + 1)|0; - $73 = ($72|0)<($31|0); - if ($73) { - $$05664 = $72;$$065 = $$1; - } else { - $$0$lcssa = $$1; - break; - } - } - } - $33 = ((($$0$lcssa)) + 20|0); - $34 = HEAP32[$33>>2]|0; - $35 = ($34|0)==(0|0); - if ($35) { - HEAP32[$vararg_buffer8>>2] = $0; - $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); - HEAP32[$vararg_ptr11>>2] = $1; - _TraceLog(1,4952,$vararg_buffer8); - $$2 = $$0$lcssa; - } else { - $$2 = $$0$lcssa; - } - } else { - HEAP32[$vararg_buffer1>>2] = $0; - _TraceLog(1,4860,$vararg_buffer1); - $$2 = 0; - } - (_fclose($4)|0); - $$3 = $$2; - STACKTOP = sp;return ($$3|0); -} -function _TraceLog($0,$1,$varargs) { - $0 = $0|0; - $1 = $1|0; - $varargs = $varargs|0; - var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $endptr = 0, $strlen = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = sp; - switch ($0|0) { - case 0: { - ;HEAP8[20000>>0]=HEAP8[5257>>0]|0;HEAP8[20000+1>>0]=HEAP8[5257+1>>0]|0;HEAP8[20000+2>>0]=HEAP8[5257+2>>0]|0;HEAP8[20000+3>>0]=HEAP8[5257+3>>0]|0;HEAP8[20000+4>>0]=HEAP8[5257+4>>0]|0;HEAP8[20000+5>>0]=HEAP8[5257+5>>0]|0;HEAP8[20000+6>>0]=HEAP8[5257+6>>0]|0; - break; - } - case 2: { - $3 = 20000; - $4 = $3; - HEAP32[$4>>2] = 1330795077; - $5 = (($3) + 4)|0; - $6 = $5; - HEAP32[$6>>2] = 2112082; - break; - } - case 1: { - dest=20000; src=5264; stop=dest+10|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); - break; - } - case 3: { - $7 = 20000; - $8 = $7; - HEAP32[$8>>2] = 1430406468; - $9 = (($7) + 4)|0; - $10 = $9; - HEAP32[$10>>2] = 2112071; - break; - } - default: { - } - } - (_strcat(20000,$1)|0); - $strlen = (_strlen(20000)|0); - $endptr = (20000 + ($strlen)|0); - HEAP8[$endptr>>0]=10&255;HEAP8[$endptr+1>>0]=10>>8; - HEAP32[$2>>2] = $varargs; - $11 = ($0|0)==(3); - if ($11) { - STACKTOP = sp;return; - } - (_vprintf(20000,$2)|0); - $12 = ($0|0)==(2); - if ($12) { - _exit(1); - // unreachable; - } else { - STACKTOP = sp;return; - } -} -function _DecompressData($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $vararg_buffer10 = sp + 40|0; - $vararg_buffer7 = sp + 32|0; - $vararg_buffer5 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $3 = (_malloc($2)|0); - $4 = ($3|0)==(0|0); - if ($4) { - _TraceLog(1,5002,$vararg_buffer); - STACKTOP = sp;return ($3|0); - } - $5 = (_tinfl_decompress_mem_to_mem($3,$2,$0,$1,1)|0); - $6 = ($5|0)==(-1); - if ($6) { - _TraceLog(1,5041,$vararg_buffer1); - _free($3); - } - $7 = ($5|0)==($2|0); - if (!($7)) { - _TraceLog(1,5067,$vararg_buffer3); - HEAP32[$vararg_buffer5>>2] = $2; - _TraceLog(1,5130,$vararg_buffer5); - HEAP32[$vararg_buffer7>>2] = $5; - _TraceLog(1,5165,$vararg_buffer7); - } - HEAP32[$vararg_buffer10>>2] = $1; - $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); - HEAP32[$vararg_ptr13>>2] = $5; - _TraceLog(0,5200,$vararg_buffer10); - STACKTOP = sp;return ($3|0); -} -function _UnloadResource($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 20|0); - $2 = HEAP32[$1>>2]|0; - $3 = ($2|0)==(0|0); - if ($3) { - return; - } - _free($2); - return; -} -function _LoadDefaultFont() { - var $$ = 0, $$0101 = 0, $$090100 = 0, $$09299 = 0, $$095104 = 0, $$096103 = 0, $$097102 = 0, $$191 = 0, $$193 = 0, $$byval_copy1 = 0, $$lcssa = 0, $$sroa$0$0$$sroa_idx = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; - var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $$byval_copy1 = sp + 44|0; - $vararg_buffer = sp; - $0 = sp + 4|0; - $1 = sp + 24|0; - HEAP32[(20328)>>2] = 224; - $2 = (_malloc(65536)|0); - _memset(($2|0),0,65536)|0; - $$095104 = 0;$$096103 = 0; - while(1) { - $3 = (20 + ($$095104<<2)|0); - $4 = HEAP32[$3>>2]|0; - $$097102 = 31; - while(1) { - $16 = 1 << $$097102; - $17 = $4 & $16; - $18 = ($17|0)==(0); - if (!($18)) { - $19 = (($$097102) + ($$096103))|0; - $$sroa$0$0$$sroa_idx = (($2) + ($19<<2)|0); - HEAP8[$$sroa$0$0$$sroa_idx>>0]=-1&255;HEAP8[$$sroa$0$0$$sroa_idx+1>>0]=(-1>>8)&255;HEAP8[$$sroa$0$0$$sroa_idx+2>>0]=(-1>>16)&255;HEAP8[$$sroa$0$0$$sroa_idx+3>>0]=-1>>24; - } - $20 = (($$097102) + -1)|0; - $21 = ($$097102|0)>(0); - if ($21) { - $$097102 = $20; - } else { - break; - } - } - $12 = (($$095104) + 1)|0; - $13 = ($$095104|0)>(511); - $$ = $13 ? 0 : $12; - $14 = (($$096103) + 32)|0; - $15 = ($14|0)<(16384); - if ($15) { - $$095104 = $$;$$096103 = $14; - } else { - break; - } - } - _LoadImageEx($0,$2,128,128); - _ImageFormat($0,2); - _free($2); - ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; - _LoadTextureFromImage($1,$$byval_copy1); - ;HEAP32[20304>>2]=HEAP32[$1>>2]|0;HEAP32[20304+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[20304+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[20304+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[20304+16>>2]=HEAP32[$1+16>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; - _UnloadImage($$byval_copy1); - $5 = HEAP32[(20328)>>2]|0; - $6 = $5 << 5; - $7 = (_malloc($6)|0); - HEAP32[(20332)>>2] = $7; - $8 = ($5|0)>(0); - if (!($8)) { - $$lcssa = $7; - $22 = ((($$lcssa)) + 16|0); - $23 = HEAP32[$22>>2]|0; - HEAP32[(20324)>>2] = $23; - $24 = HEAP32[5076]|0; - HEAP32[$vararg_buffer>>2] = $24; - _TraceLog(0,5274,$vararg_buffer); - STACKTOP = sp;return; - } - $9 = HEAP32[(20308)>>2]|0; - $10 = HEAP32[(20328)>>2]|0; - $11 = HEAP32[(20332)>>2]|0; - $$0101 = 0;$$090100 = 1;$$09299 = 0;$27 = $7; - while(1) { - $25 = (($$0101) + 32)|0; - $26 = (($27) + ($$0101<<5)|0); - HEAP32[$26>>2] = $25; - $28 = (((($27) + ($$0101<<5)|0)) + 4|0); - HEAP32[$28>>2] = $$090100; - $29 = ($$09299*11)|0; - $30 = (($29) + 1)|0; - $31 = (((($27) + ($$0101<<5)|0)) + 8|0); - HEAP32[$31>>2] = $30; - $32 = (2068 + ($$0101<<2)|0); - $33 = HEAP32[$32>>2]|0; - $34 = (((($27) + ($$0101<<5)|0)) + 12|0); - HEAP32[$34>>2] = $33; - $35 = (((($27) + ($$0101<<5)|0)) + 16|0); - HEAP32[$35>>2] = 10; - $36 = (($$090100) + 1)|0; - $37 = (($36) + ($33))|0; - $38 = ($37|0)<($9|0); - $39 = (($$09299) + 1)|0; - if ($38) { - $$191 = $37;$$193 = $$09299; - } else { - $40 = ($39*11)|0; - $41 = (($40) + 1)|0; - $42 = (($33) + 2)|0; - HEAP32[$28>>2] = 1; - HEAP32[$31>>2] = $41; - $$191 = $42;$$193 = $39; - } - $43 = (((($27) + ($$0101<<5)|0)) + 20|0); - HEAP32[$43>>2] = 0; - $44 = (((($27) + ($$0101<<5)|0)) + 24|0); - HEAP32[$44>>2] = 0; - $45 = (((($27) + ($$0101<<5)|0)) + 28|0); - HEAP32[$45>>2] = 0; - $46 = (($$0101) + 1)|0; - $47 = ($46|0)<($10|0); - if ($47) { - $$0101 = $46;$$090100 = $$191;$$09299 = $$193;$27 = $11; - } else { - $$lcssa = $11; - break; - } - } - $22 = ((($$lcssa)) + 16|0); - $23 = HEAP32[$22>>2]|0; - HEAP32[(20324)>>2] = $23; - $24 = HEAP32[5076]|0; - HEAP32[$vararg_buffer>>2] = $24; - _TraceLog(0,5274,$vararg_buffer); - STACKTOP = sp;return; -} -function _LoadImageEx($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$03334 = 0, $$035 = 0, $$sroa$12$0$$sroa_idx21 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$9$0$$sroa_idx18 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = $2 << 2; - $5 = Math_imul($4, $3)|0; - $6 = (_malloc($5)|0); - $7 = ($5|0)>(0); - if ($7) { - $8 = (($5) + -1)|0; - $9 = $8 >>> 2; - $$03334 = 0;$$035 = 0; - while(1) { - $10 = (($1) + ($$03334<<2)|0); - $11 = HEAP8[$10>>0]|0; - $12 = (($6) + ($$035)|0); - HEAP8[$12>>0] = $11; - $13 = (((($1) + ($$03334<<2)|0)) + 1|0); - $14 = HEAP8[$13>>0]|0; - $15 = $$035 | 1; - $16 = (($6) + ($15)|0); - HEAP8[$16>>0] = $14; - $17 = (((($1) + ($$03334<<2)|0)) + 2|0); - $18 = HEAP8[$17>>0]|0; - $19 = $$035 | 2; - $20 = (($6) + ($19)|0); - HEAP8[$20>>0] = $18; - $21 = (((($1) + ($$03334<<2)|0)) + 3|0); - $22 = HEAP8[$21>>0]|0; - $23 = $$035 | 3; - $24 = (($6) + ($23)|0); - HEAP8[$24>>0] = $22; - $25 = (($$03334) + 1)|0; - $26 = (($$035) + 4)|0; - $exitcond = ($$03334|0)==($9|0); - if ($exitcond) { - break; - } else { - $$03334 = $25;$$035 = $26; - } - } - } - HEAP32[$0>>2] = $6; - $$sroa$9$0$$sroa_idx18 = ((($0)) + 4|0); - HEAP32[$$sroa$9$0$$sroa_idx18>>2] = $2; - $$sroa$12$0$$sroa_idx21 = ((($0)) + 8|0); - HEAP32[$$sroa$12$0$$sroa_idx21>>2] = $3; - $$sroa$15$0$$sroa_idx24 = ((($0)) + 12|0); - HEAP32[$$sroa$15$0$$sroa_idx24>>2] = 1; - $$sroa$16$0$$sroa_idx26 = ((($0)) + 16|0); - HEAP32[$$sroa$16$0$$sroa_idx26>>2] = 7; - return; -} -function _ImageFormat($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0166199 = 0, $$0167197 = 0, $$0168195 = 0, $$0169192 = 0, $$0170190 = 0, $$0171188 = 0, $$0172189 = 0, $$0202 = 0, $$1194 = 0, $$2201 = 0, $$byval_copy = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0, $106 = 0, $107 = 0; - var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0; - var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0; - var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0; - var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $178 = 0, $179 = 0, $18 = 0; - var $180 = 0, $181 = 0.0, $182 = 0.0, $183 = 0.0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0.0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0; - var $199 = 0, $2 = 0, $20 = 0.0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0; - var $216 = 0, $217 = 0, $218 = 0.0, $219 = 0.0, $22 = 0, $220 = 0.0, $221 = 0, $222 = 0, $223 = 0, $224 = 0.0, $225 = 0.0, $226 = 0.0, $227 = 0, $228 = 0, $229 = 0, $23 = 0.0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0; - var $234 = 0, $235 = 0, $236 = 0.0, $237 = 0.0, $238 = 0.0, $239 = 0, $24 = 0.0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0.0, $250 = 0, $251 = 0; - var $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0; - var $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0.0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0; - var $289 = 0, $29 = 0.0, $290 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0; - var $63 = 0.0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0; - var $or$cond = 0, $roundf = 0.0, $roundf173 = 0.0, $roundf174 = 0.0, $roundf175 = 0.0, $roundf176 = 0.0, $roundf177 = 0.0, $roundf178 = 0.0, $roundf179 = 0.0, $roundf180 = 0.0, $roundf181 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $$byval_copy = sp + 4|0; - $vararg_buffer = sp; - $2 = ((($0)) + 16|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)==($1|0); - if ($4) { - STACKTOP = sp;return; - } - $5 = ($3|0)<(9); - $6 = ($1|0)<(9); - $or$cond = $6 & $5; - if (!($or$cond)) { - _TraceLog(1,5700,$vararg_buffer); - STACKTOP = sp;return; - } - ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; - $7 = (_GetImageData($$byval_copy)|0); - $8 = HEAP32[$0>>2]|0; - _free($8); - HEAP32[$2>>2] = $1; - switch ($1|0) { - case 1: { - $9 = ((($0)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($0)) + 8|0); - $12 = HEAP32[$11>>2]|0; - $13 = Math_imul($12, $10)|0; - $14 = (_malloc($13)|0); - HEAP32[$0>>2] = $14; - $15 = Math_imul($12, $10)|0; - $16 = ($15|0)>(0); - if ($16) { - $$0171188 = 0; - while(1) { - $17 = (($7) + ($$0171188<<2)|0); - $18 = HEAP8[$17>>0]|0; - $19 = (+($18&255)); - $20 = $19 * 0.29899999499320984; - $21 = (((($7) + ($$0171188<<2)|0)) + 1|0); - $22 = HEAP8[$21>>0]|0; - $23 = (+($22&255)); - $24 = $23 * 0.58700001239776611; - $25 = $20 + $24; - $26 = (((($7) + ($$0171188<<2)|0)) + 2|0); - $27 = HEAP8[$26>>0]|0; - $28 = (+($27&255)); - $29 = $28 * 0.11400000005960464; - $30 = $25 + $29; - $31 = (~~(($30))&255); - $32 = HEAP32[$0>>2]|0; - $33 = (($32) + ($$0171188)|0); - HEAP8[$33>>0] = $31; - $34 = (($$0171188) + 1)|0; - $35 = HEAP32[$9>>2]|0; - $36 = HEAP32[$11>>2]|0; - $37 = Math_imul($36, $35)|0; - $38 = ($34|0)<($37|0); - if ($38) { - $$0171188 = $34; - } else { - break; - } - } - } - break; - } - case 2: { - $39 = ((($0)) + 4|0); - $40 = HEAP32[$39>>2]|0; - $41 = ((($0)) + 8|0); - $42 = HEAP32[$41>>2]|0; - $43 = $40 << 1; - $44 = Math_imul($43, $42)|0; - $45 = (_malloc($44)|0); - HEAP32[$0>>2] = $45; - $46 = HEAP32[$39>>2]|0; - $47 = $46 << 1; - $48 = Math_imul($47, $42)|0; - $49 = ($48|0)>(0); - if ($49) { - $$0170190 = 0;$$0172189 = 0; - while(1) { - $50 = (($7) + ($$0172189<<2)|0); - $51 = HEAP8[$50>>0]|0; - $52 = (+($51&255)); - $53 = $52 * 0.29899999499320984; - $54 = (((($7) + ($$0172189<<2)|0)) + 1|0); - $55 = HEAP8[$54>>0]|0; - $56 = (+($55&255)); - $57 = $56 * 0.58700001239776611; - $58 = $53 + $57; - $59 = (((($7) + ($$0172189<<2)|0)) + 2|0); - $60 = HEAP8[$59>>0]|0; - $61 = (+($60&255)); - $62 = $61 * 0.11400000005960464; - $63 = $58 + $62; - $64 = (~~(($63))&255); - $65 = HEAP32[$0>>2]|0; - $66 = (($65) + ($$0170190)|0); - HEAP8[$66>>0] = $64; - $67 = (((($7) + ($$0172189<<2)|0)) + 3|0); - $68 = HEAP8[$67>>0]|0; - $69 = HEAP32[$0>>2]|0; - $70 = $$0170190 | 1; - $71 = (($69) + ($70)|0); - HEAP8[$71>>0] = $68; - $72 = (($$0172189) + 1)|0; - $73 = (($$0170190) + 2)|0; - $74 = HEAP32[$39>>2]|0; - $75 = HEAP32[$41>>2]|0; - $76 = $74 << 1; - $77 = Math_imul($76, $75)|0; - $78 = ($73|0)<($77|0); - if ($78) { - $$0170190 = $73;$$0172189 = $72; - } else { - break; - } - } - } - break; - } - case 3: { - $79 = ((($0)) + 4|0); - $80 = HEAP32[$79>>2]|0; - $81 = ((($0)) + 8|0); - $82 = HEAP32[$81>>2]|0; - $83 = $80 << 1; - $84 = Math_imul($83, $82)|0; - $85 = (_malloc($84)|0); - HEAP32[$0>>2] = $85; - $86 = HEAP32[$79>>2]|0; - $87 = Math_imul($82, $86)|0; - $88 = ($87|0)>(0); - if ($88) { - $89 = HEAP8[$7>>0]|0; - $90 = (+($89&255)); - $91 = $90 * 31.0; - $92 = $91 / 255.0; - $roundf179 = (+_roundf((+$92))); - $93 = (~~(($roundf179))&255); - $94 = ((($7)) + 1|0); - $95 = HEAP8[$94>>0]|0; - $96 = (+($95&255)); - $97 = $96 * 63.0; - $98 = $97 / 255.0; - $roundf180 = (+_roundf((+$98))); - $99 = (~~(($roundf180))&255); - $100 = ((($7)) + 2|0); - $101 = HEAP8[$100>>0]|0; - $102 = (+($101&255)); - $103 = $102 * 31.0; - $104 = $103 / 255.0; - $roundf181 = (+_roundf((+$104))); - $105 = (~~(($roundf181))&255); - $106 = $93&255; - $107 = $106 << 11; - $108 = $99&255; - $109 = $108 << 5; - $110 = $109 | $107; - $111 = $105&255; - $112 = $110 | $111; - $113 = $112&65535; - $114 = HEAP32[$0>>2]|0; - $115 = HEAP32[$79>>2]|0; - $116 = HEAP32[$81>>2]|0; - $117 = Math_imul($116, $115)|0; - $$0169192 = 0; - while(1) { - $118 = (($114) + ($$0169192<<1)|0); - HEAP16[$118>>1] = $113; - $119 = (($$0169192) + 1)|0; - $120 = ($119|0)<($117|0); - if ($120) { - $$0169192 = $119; - } else { - break; - } - } - } - break; - } - case 4: { - $121 = ((($0)) + 4|0); - $122 = HEAP32[$121>>2]|0; - $123 = ((($0)) + 8|0); - $124 = HEAP32[$123>>2]|0; - $125 = ($122*3)|0; - $126 = Math_imul($125, $124)|0; - $127 = (_malloc($126)|0); - HEAP32[$0>>2] = $127; - $128 = HEAP32[$121>>2]|0; - $129 = ($128*3)|0; - $130 = Math_imul($129, $124)|0; - $131 = ($130|0)>(0); - if ($131) { - $$0168195 = 0;$$1194 = 0; - while(1) { - $132 = (($7) + ($$1194<<2)|0); - $133 = HEAP8[$132>>0]|0; - $134 = HEAP32[$0>>2]|0; - $135 = (($134) + ($$0168195)|0); - HEAP8[$135>>0] = $133; - $136 = (((($7) + ($$1194<<2)|0)) + 1|0); - $137 = HEAP8[$136>>0]|0; - $138 = HEAP32[$0>>2]|0; - $139 = (($$0168195) + 1)|0; - $140 = (($138) + ($139)|0); - HEAP8[$140>>0] = $137; - $141 = (((($7) + ($$1194<<2)|0)) + 2|0); - $142 = HEAP8[$141>>0]|0; - $143 = HEAP32[$0>>2]|0; - $144 = (($$0168195) + 2)|0; - $145 = (($143) + ($144)|0); - HEAP8[$145>>0] = $142; - $146 = (($$1194) + 1)|0; - $147 = (($$0168195) + 3)|0; - $148 = HEAP32[$121>>2]|0; - $149 = HEAP32[$123>>2]|0; - $150 = ($148*3)|0; - $151 = Math_imul($150, $149)|0; - $152 = ($147|0)<($151|0); - if ($152) { - $$0168195 = $147;$$1194 = $146; - } else { - break; - } - } - } - break; - } - case 5: { - $153 = ((($0)) + 4|0); - $154 = HEAP32[$153>>2]|0; - $155 = ((($0)) + 8|0); - $156 = HEAP32[$155>>2]|0; - $157 = $154 << 1; - $158 = Math_imul($157, $156)|0; - $159 = (_malloc($158)|0); - HEAP32[$0>>2] = $159; - $160 = HEAP32[$153>>2]|0; - $161 = Math_imul($156, $160)|0; - $162 = ($161|0)>(0); - if ($162) { - $163 = HEAP32[$0>>2]|0; - $164 = HEAP32[$153>>2]|0; - $165 = HEAP32[$155>>2]|0; - $166 = Math_imul($165, $164)|0; - $$0167197 = 0; - while(1) { - $167 = (($7) + ($$0167197<<2)|0); - $168 = HEAP8[$167>>0]|0; - $169 = (+($168&255)); - $170 = $169 * 31.0; - $171 = $170 / 255.0; - $roundf176 = (+_roundf((+$171))); - $172 = (~~(($roundf176))&255); - $173 = (((($7) + ($$0167197<<2)|0)) + 1|0); - $174 = HEAP8[$173>>0]|0; - $175 = (+($174&255)); - $176 = $175 * 31.0; - $177 = $176 / 255.0; - $roundf177 = (+_roundf((+$177))); - $178 = (~~(($roundf177))&255); - $179 = (((($7) + ($$0167197<<2)|0)) + 2|0); - $180 = HEAP8[$179>>0]|0; - $181 = (+($180&255)); - $182 = $181 * 31.0; - $183 = $182 / 255.0; - $roundf178 = (+_roundf((+$183))); - $184 = (~~(($roundf178))&255); - $185 = (((($7) + ($$0167197<<2)|0)) + 3|0); - $186 = HEAP8[$185>>0]|0; - $187 = ($186&255)>(50); - $188 = $172&255; - $189 = $188 << 11; - $190 = $178&255; - $191 = $190 << 6; - $192 = $191 | $189; - $193 = $184&255; - $194 = $193 << 1; - $195 = $192 | $194; - $196 = $187&1; - $197 = $195 | $196; - $198 = $197&65535; - $199 = (($163) + ($$0167197<<1)|0); - HEAP16[$199>>1] = $198; - $200 = (($$0167197) + 1)|0; - $201 = ($200|0)<($166|0); - if ($201) { - $$0167197 = $200; - } else { - break; - } - } - } - break; - } - case 6: { - $202 = ((($0)) + 4|0); - $203 = HEAP32[$202>>2]|0; - $204 = ((($0)) + 8|0); - $205 = HEAP32[$204>>2]|0; - $206 = $203 << 1; - $207 = Math_imul($206, $205)|0; - $208 = (_malloc($207)|0); - HEAP32[$0>>2] = $208; - $209 = HEAP32[$202>>2]|0; - $210 = Math_imul($205, $209)|0; - $211 = ($210|0)>(0); - if ($211) { - $212 = HEAP32[$0>>2]|0; - $213 = HEAP32[$202>>2]|0; - $214 = HEAP32[$204>>2]|0; - $215 = Math_imul($214, $213)|0; - $$0166199 = 0; - while(1) { - $216 = (($7) + ($$0166199<<2)|0); - $217 = HEAP8[$216>>0]|0; - $218 = (+($217&255)); - $219 = $218 * 15.0; - $220 = $219 / 255.0; - $roundf = (+_roundf((+$220))); - $221 = (~~(($roundf))&255); - $222 = (((($7) + ($$0166199<<2)|0)) + 1|0); - $223 = HEAP8[$222>>0]|0; - $224 = (+($223&255)); - $225 = $224 * 15.0; - $226 = $225 / 255.0; - $roundf173 = (+_roundf((+$226))); - $227 = (~~(($roundf173))&255); - $228 = (((($7) + ($$0166199<<2)|0)) + 2|0); - $229 = HEAP8[$228>>0]|0; - $230 = (+($229&255)); - $231 = $230 * 15.0; - $232 = $231 / 255.0; - $roundf174 = (+_roundf((+$232))); - $233 = (~~(($roundf174))&255); - $234 = (((($7) + ($$0166199<<2)|0)) + 3|0); - $235 = HEAP8[$234>>0]|0; - $236 = (+($235&255)); - $237 = $236 * 15.0; - $238 = $237 / 255.0; - $roundf175 = (+_roundf((+$238))); - $239 = (~~(($roundf175))&255); - $240 = $221&255; - $241 = $240 << 12; - $242 = $227&255; - $243 = $242 << 8; - $244 = $243 | $241; - $245 = $233&255; - $246 = $245 << 4; - $247 = $244 | $246; - $248 = $239&255; - $249 = $247 | $248; - $250 = $249&65535; - $251 = (($212) + ($$0166199<<1)|0); - HEAP16[$251>>1] = $250; - $252 = (($$0166199) + 1)|0; - $253 = ($252|0)<($215|0); - if ($253) { - $$0166199 = $252; - } else { - break; - } - } - } - break; - } - case 7: { - $254 = ((($0)) + 4|0); - $255 = HEAP32[$254>>2]|0; - $256 = ((($0)) + 8|0); - $257 = HEAP32[$256>>2]|0; - $258 = $255 << 2; - $259 = Math_imul($258, $257)|0; - $260 = (_malloc($259)|0); - HEAP32[$0>>2] = $260; - $261 = HEAP32[$254>>2]|0; - $262 = $261 << 2; - $263 = Math_imul($262, $257)|0; - $264 = ($263|0)>(0); - if ($264) { - $$0202 = 0;$$2201 = 0; - while(1) { - $265 = (($7) + ($$2201<<2)|0); - $266 = HEAP8[$265>>0]|0; - $267 = HEAP32[$0>>2]|0; - $268 = (($267) + ($$0202)|0); - HEAP8[$268>>0] = $266; - $269 = (((($7) + ($$2201<<2)|0)) + 1|0); - $270 = HEAP8[$269>>0]|0; - $271 = HEAP32[$0>>2]|0; - $272 = $$0202 | 1; - $273 = (($271) + ($272)|0); - HEAP8[$273>>0] = $270; - $274 = (((($7) + ($$2201<<2)|0)) + 2|0); - $275 = HEAP8[$274>>0]|0; - $276 = HEAP32[$0>>2]|0; - $277 = $$0202 | 2; - $278 = (($276) + ($277)|0); - HEAP8[$278>>0] = $275; - $279 = (((($7) + ($$2201<<2)|0)) + 3|0); - $280 = HEAP8[$279>>0]|0; - $281 = HEAP32[$0>>2]|0; - $282 = $$0202 | 3; - $283 = (($281) + ($282)|0); - HEAP8[$283>>0] = $280; - $284 = (($$2201) + 1)|0; - $285 = (($$0202) + 4)|0; - $286 = HEAP32[$254>>2]|0; - $287 = HEAP32[$256>>2]|0; - $288 = $286 << 2; - $289 = Math_imul($288, $287)|0; - $290 = ($285|0)<($289|0); - if ($290) { - $$0202 = $285;$$2201 = $284; - } else { - break; - } - } - } - break; - } - default: { - } - } - _free($7); - STACKTOP = sp;return; -} -function _LoadTextureFromImage($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$sroa$10$0$$sroa_idx6 = 0, $$sroa$12$0$$sroa_idx8 = 0, $$sroa$6$0$$sroa_idx2 = 0, $$sroa$8$0$$sroa_idx4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0; - var $vararg_ptr4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $2 = HEAP32[$1>>2]|0; - $3 = ((($1)) + 4|0); - $4 = HEAP32[$3>>2]|0; - $5 = ((($1)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = ((($1)) + 16|0); - $8 = HEAP32[$7>>2]|0; - $9 = ((($1)) + 12|0); - $10 = HEAP32[$9>>2]|0; - $11 = (_rlLoadTexture($2,$4,$6,$8,$10)|0); - $12 = HEAP32[$3>>2]|0; - $13 = HEAP32[$5>>2]|0; - HEAP32[$vararg_buffer>>2] = $11; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $12; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $13; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $10; - $vararg_ptr4 = ((($vararg_buffer)) + 16|0); - HEAP32[$vararg_ptr4>>2] = $8; - _TraceLog(3,5319,$vararg_buffer); - HEAP32[$0>>2] = $11; - $$sroa$6$0$$sroa_idx2 = ((($0)) + 4|0); - HEAP32[$$sroa$6$0$$sroa_idx2>>2] = $12; - $$sroa$8$0$$sroa_idx4 = ((($0)) + 8|0); - HEAP32[$$sroa$8$0$$sroa_idx4>>2] = $13; - $$sroa$10$0$$sroa_idx6 = ((($0)) + 12|0); - HEAP32[$$sroa$10$0$$sroa_idx6>>2] = $10; - $$sroa$12$0$$sroa_idx8 = ((($0)) + 16|0); - HEAP32[$$sroa$12$0$$sroa_idx8>>2] = $8; - STACKTOP = sp;return; -} -function _UnloadImage($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - $2 = ($1|0)==(0|0); - if ($2) { - return; - } - _free($1); - return; -} -function _rlLoadTexture($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0 = 0, $$off = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond101 = 0, $or$cond7 = 0, $or$cond97 = 0, $or$cond99 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer15 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0; - var $vararg_buffer9 = 0, $vararg_ptr13 = 0, $vararg_ptr14 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $vararg_buffer15 = sp + 64|0; - $vararg_buffer11 = sp + 48|0; - $vararg_buffer9 = sp + 40|0; - $vararg_buffer7 = sp + 32|0; - $vararg_buffer5 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $5 = sp + 68|0; - _glBindTexture(3553,0); - HEAP32[$5>>2] = 0; - $6 = HEAP32[5084]|0; - $7 = ($6|0)==(0); - $$off = (($3) + -9)|0; - $8 = ($$off>>>0)<(4); - $or$cond = $8 & $7; - if ($or$cond) { - _TraceLog(1,5369,$vararg_buffer); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $9 = HEAP32[5085]|0; - $10 = ($9|0)==(0); - $11 = ($3|0)==(13); - $or$cond7 = $11 & $10; - if ($or$cond7) { - _TraceLog(1,5413,$vararg_buffer1); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $12 = HEAP32[5086]|0; - $13 = ($12|0)==(0); - $14 = $3 | 1; - $15 = ($14|0)==(15); - $or$cond97 = $15 & $13; - if ($or$cond97) { - _TraceLog(1,5458,$vararg_buffer3); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $16 = HEAP32[5087]|0; - $17 = ($16|0)==(0); - $18 = ($14|0)==(17); - $or$cond99 = $18 & $17; - if ($or$cond99) { - _TraceLog(1,5503,$vararg_buffer5); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - $19 = HEAP32[5088]|0; - $20 = ($19|0)==(0); - $21 = ($14|0)==(19); - $or$cond101 = $21 & $20; - if ($or$cond101) { - _TraceLog(1,5548,$vararg_buffer7); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - _glGenTextures(1,($5|0)); - $22 = HEAP32[$5>>2]|0; - _glBindTexture(3553,($22|0)); - do { - switch ($3|0) { - case 1: { - _glTexImage2D(3553,0,6409,($1|0),($2|0),0,6409,5121,($0|0)); - break; - } - case 2: { - _glTexImage2D(3553,0,6410,($1|0),($2|0),0,6410,5121,($0|0)); - break; - } - case 3: { - _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,33635,($0|0)); - break; - } - case 4: { - _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,5121,($0|0)); - break; - } - case 5: { - _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32820,($0|0)); - break; - } - case 6: { - _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32819,($0|0)); - break; - } - case 7: { - _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,5121,($0|0)); - break; - } - case 8: { - $23 = HEAP32[5089]|0; - $24 = ($23|0)==(0); - if (!($24)) { - _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,5126,($0|0)); - } - break; - } - case 9: { - $25 = HEAP32[5084]|0; - $26 = ($25|0)==(0); - if (!($26)) { - _LoadTextureCompressed($0,$1,$2,33776,$4); - } - break; - } - case 10: { - $27 = HEAP32[5084]|0; - $28 = ($27|0)==(0); - if (!($28)) { - _LoadTextureCompressed($0,$1,$2,33777,$4); - } - break; - } - case 11: { - $29 = HEAP32[5084]|0; - $30 = ($29|0)==(0); - if (!($30)) { - _LoadTextureCompressed($0,$1,$2,33778,$4); - } - break; - } - case 12: { - $31 = HEAP32[5084]|0; - $32 = ($31|0)==(0); - if (!($32)) { - _LoadTextureCompressed($0,$1,$2,33779,$4); - } - break; - } - case 13: { - $33 = HEAP32[5085]|0; - $34 = ($33|0)==(0); - if (!($34)) { - _LoadTextureCompressed($0,$1,$2,36196,$4); - } - break; - } - case 14: { - $35 = HEAP32[5086]|0; - $36 = ($35|0)==(0); - if (!($36)) { - _LoadTextureCompressed($0,$1,$2,37492,$4); - } - break; - } - case 15: { - $37 = HEAP32[5086]|0; - $38 = ($37|0)==(0); - if (!($38)) { - _LoadTextureCompressed($0,$1,$2,37496,$4); - } - break; - } - case 16: { - $39 = HEAP32[5087]|0; - $40 = ($39|0)==(0); - if (!($40)) { - _LoadTextureCompressed($0,$1,$2,35840,$4); - } - break; - } - case 17: { - $41 = HEAP32[5087]|0; - $42 = ($41|0)==(0); - if (!($42)) { - _LoadTextureCompressed($0,$1,$2,35842,$4); - } - break; - } - case 18: { - $43 = HEAP32[5088]|0; - $44 = ($43|0)==(0); - if (!($44)) { - _LoadTextureCompressed($0,$1,$2,37808,$4); - } - break; - } - case 19: { - $45 = HEAP32[5088]|0; - $46 = ($45|0)==(0); - if (!($46)) { - _LoadTextureCompressed($0,$1,$2,37815,$4); - } - break; - } - default: { - _TraceLog(1,5593,$vararg_buffer9); - } - } - } while(0); - $47 = HEAP32[5090]|0; - $48 = ($47|0)==(0); - if ($48) { - _glTexParameteri(3553,10242,33071); - _glTexParameteri(3553,10243,33071); - } else { - _glTexParameteri(3553,10242,10497); - _glTexParameteri(3553,10243,10497); - } - _glTexParameteri(3553,10240,9728); - _glTexParameteri(3553,10241,9728); - _glBindTexture(3553,0); - $49 = HEAP32[$5>>2]|0; - $50 = ($49|0)==(0); - if ($50) { - _TraceLog(1,5671,$vararg_buffer15); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } else { - HEAP32[$vararg_buffer11>>2] = $49; - $vararg_ptr13 = ((($vararg_buffer11)) + 4|0); - HEAP32[$vararg_ptr13>>2] = $1; - $vararg_ptr14 = ((($vararg_buffer11)) + 8|0); - HEAP32[$vararg_ptr14>>2] = $2; - _TraceLog(0,5622,$vararg_buffer11); - $$0 = HEAP32[$5>>2]|0; - STACKTOP = sp;return ($$0|0); - } - return (0)|0; -} -function _LoadTextureCompressed($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$ = 0, $$03645 = 0, $$03744 = 0, $$038 = 0, $$03943 = 0, $$046 = 0, $$140 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond42 = 0, label = 0, sp = 0; - sp = STACKTOP; - _glPixelStorei(3317,1); - switch ($3|0) { - case 33776: case 33777: case 36196: case 37492: { - $$038 = 8; - break; - } - default: { - $$038 = 16; - } - } - $5 = ($4|0)<(1); - $6 = $1 | $2; - $7 = ($6|0)==(0); - $or$cond42 = $5 | $7; - if ($or$cond42) { - return; - } else { - $$03645 = 0;$$03744 = 0;$$03943 = $2;$$046 = $1; - } - while(1) { - $8 = (($$046) + 3)|0; - $9 = (($8|0) / 4)&-1; - $10 = (($$03943) + 3)|0; - $11 = (($10|0) / 4)&-1; - $12 = Math_imul($11, $$038)|0; - $13 = Math_imul($12, $9)|0; - $14 = (($0) + ($$03744)|0); - _glCompressedTexImage2D(3553,($$03645|0),($3|0),($$046|0),($$03943|0),0,($13|0),($14|0)); - $15 = (($13) + ($$03744))|0; - $16 = (($$046|0) / 2)&-1; - $17 = (($$03943|0) / 2)&-1; - $18 = ($$046|0)<(2); - $$ = $18 ? 1 : $16; - $19 = ($$03943|0)<(2); - $$140 = $19 ? 1 : $17; - $20 = (($$03645) + 1)|0; - $21 = ($20|0)>=($4|0); - $22 = $$ | $$140; - $23 = ($22|0)==(0); - $or$cond = $21 | $23; - if ($or$cond) { - break; - } else { - $$03645 = $20;$$03744 = $15;$$03943 = $$140;$$046 = $$; - } - } - return; -} -function _GetImageData($0) { - $0 = $0|0; - var $$0104105 = 0, $$0106 = 0, $$1 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; - var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; - var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0.0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0.0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; - var $97 = 0.0, $98 = 0.0, $99 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = ((($0)) + 4|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 8|0); - $4 = HEAP32[$3>>2]|0; - $5 = $2 << 2; - $6 = Math_imul($5, $4)|0; - $7 = (_malloc($6)|0); - $8 = HEAP32[$1>>2]|0; - $9 = Math_imul($4, $8)|0; - $10 = ($9|0)>(0); - if (!($10)) { - STACKTOP = sp;return ($7|0); - } - $11 = ((($0)) + 16|0); - $12 = HEAP32[$11>>2]|0; - $13 = HEAP32[$0>>2]|0; - $$0104105 = 0;$$0106 = 0; - while(1) { - switch ($12|0) { - case 1: { - $14 = (($13) + ($$0106)|0); - $15 = HEAP8[$14>>0]|0; - $16 = (($7) + ($$0104105<<2)|0); - HEAP8[$16>>0] = $15; - $17 = HEAP8[$14>>0]|0; - $18 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$18>>0] = $17; - $19 = HEAP8[$14>>0]|0; - $20 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$20>>0] = $19; - $21 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$21>>0] = -1; - $22 = (($$0106) + 1)|0; - $$1 = $22; - break; - } - case 2: { - $23 = (($13) + ($$0106)|0); - $24 = HEAP8[$23>>0]|0; - $25 = (($7) + ($$0104105<<2)|0); - HEAP8[$25>>0] = $24; - $26 = HEAP8[$23>>0]|0; - $27 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$27>>0] = $26; - $28 = HEAP8[$23>>0]|0; - $29 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$29>>0] = $28; - $30 = (($$0106) + 1)|0; - $31 = (($13) + ($30)|0); - $32 = HEAP8[$31>>0]|0; - $33 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$33>>0] = $32; - $34 = (($$0106) + 2)|0; - $$1 = $34; - break; - } - case 5: { - $35 = (($13) + ($$0106<<1)|0); - $36 = HEAP16[$35>>1]|0; - $37 = $36&65535; - $38 = $37 >>> 11; - $39 = (+($38|0)); - $40 = $39 * 8.0; - $41 = (~~(($40))&255); - $42 = (($7) + ($$0104105<<2)|0); - HEAP8[$42>>0] = $41; - $43 = $37 >>> 6; - $44 = $43 & 31; - $45 = (+($44|0)); - $46 = $45 * 8.0; - $47 = (~~(($46))&255); - $48 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$48>>0] = $47; - $49 = $37 >>> 1; - $50 = $49 & 31; - $51 = (+($50|0)); - $52 = $51 * 8.0; - $53 = (~~(($52))&255); - $54 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$54>>0] = $53; - $55 = $37 & 1; - $56 = (0 - ($55))|0; - $57 = $56&255; - $58 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$58>>0] = $57; - $59 = (($$0106) + 1)|0; - $$1 = $59; - break; - } - case 3: { - $60 = (($13) + ($$0106<<1)|0); - $61 = HEAP16[$60>>1]|0; - $62 = $61&65535; - $63 = $62 >>> 11; - $64 = (+($63|0)); - $65 = $64 * 8.0; - $66 = (~~(($65))&255); - $67 = (($7) + ($$0104105<<2)|0); - HEAP8[$67>>0] = $66; - $68 = $62 >>> 5; - $69 = $68 & 63; - $70 = (+($69|0)); - $71 = $70 * 4.0; - $72 = (~~(($71))&255); - $73 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$73>>0] = $72; - $74 = $62 & 31; - $75 = (+($74|0)); - $76 = $75 * 8.0; - $77 = (~~(($76))&255); - $78 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$78>>0] = $77; - $79 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$79>>0] = -1; - $80 = (($$0106) + 1)|0; - $$1 = $80; - break; - } - case 6: { - $81 = (($13) + ($$0106<<1)|0); - $82 = HEAP16[$81>>1]|0; - $83 = $82&65535; - $84 = $83 >>> 12; - $85 = (+($84|0)); - $86 = $85 * 17.0; - $87 = (~~(($86))&255); - $88 = (($7) + ($$0104105<<2)|0); - HEAP8[$88>>0] = $87; - $89 = $83 >>> 8; - $90 = $89 & 15; - $91 = (+($90|0)); - $92 = $91 * 17.0; - $93 = (~~(($92))&255); - $94 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$94>>0] = $93; - $95 = $83 >>> 4; - $96 = $95 & 15; - $97 = (+($96|0)); - $98 = $97 * 17.0; - $99 = (~~(($98))&255); - $100 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$100>>0] = $99; - $101 = $83 & 15; - $102 = (+($101|0)); - $103 = $102 * 17.0; - $104 = (~~(($103))&255); - $105 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$105>>0] = $104; - $106 = (($$0106) + 1)|0; - $$1 = $106; - break; - } - case 7: { - $107 = (($13) + ($$0106)|0); - $108 = HEAP8[$107>>0]|0; - $109 = (($7) + ($$0104105<<2)|0); - HEAP8[$109>>0] = $108; - $110 = (($$0106) + 1)|0; - $111 = (($13) + ($110)|0); - $112 = HEAP8[$111>>0]|0; - $113 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$113>>0] = $112; - $114 = (($$0106) + 2)|0; - $115 = (($13) + ($114)|0); - $116 = HEAP8[$115>>0]|0; - $117 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$117>>0] = $116; - $118 = (($$0106) + 3)|0; - $119 = (($13) + ($118)|0); - $120 = HEAP8[$119>>0]|0; - $121 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$121>>0] = $120; - $122 = (($$0106) + 4)|0; - $$1 = $122; - break; - } - case 4: { - $123 = (($13) + ($$0106)|0); - $124 = HEAP8[$123>>0]|0; - $125 = (($7) + ($$0104105<<2)|0); - HEAP8[$125>>0] = $124; - $126 = (($$0106) + 1)|0; - $127 = (($13) + ($126)|0); - $128 = HEAP8[$127>>0]|0; - $129 = (((($7) + ($$0104105<<2)|0)) + 1|0); - HEAP8[$129>>0] = $128; - $130 = (($$0106) + 2)|0; - $131 = (($13) + ($130)|0); - $132 = HEAP8[$131>>0]|0; - $133 = (((($7) + ($$0104105<<2)|0)) + 2|0); - HEAP8[$133>>0] = $132; - $134 = (((($7) + ($$0104105<<2)|0)) + 3|0); - HEAP8[$134>>0] = -1; - $135 = (($$0106) + 3)|0; - $$1 = $135; - break; - } - default: { - _TraceLog(1,5754,$vararg_buffer); - $$1 = $$0106; - } - } - $136 = (($$0104105) + 1)|0; - $137 = HEAP32[$1>>2]|0; - $138 = HEAP32[$3>>2]|0; - $139 = Math_imul($138, $137)|0; - $140 = ($136|0)<($139|0); - if ($140) { - $$0104105 = $136;$$0106 = $$1; - } else { - break; - } - } - STACKTOP = sp;return ($7|0); -} -function _UnloadDefaultFont() { - var $$byval_copy = 0, $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $$byval_copy = sp; - ;HEAP32[$$byval_copy>>2]=HEAP32[20304>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[20304+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[20304+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[20304+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[20304+16>>2]|0; - _UnloadTexture($$byval_copy); - $0 = HEAP32[(20332)>>2]|0; - _free($0); - STACKTOP = sp;return; -} -function _UnloadTexture($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = HEAP32[$0>>2]|0; - $2 = ($1|0)==(0); - if ($2) { - STACKTOP = sp;return; - } - _rlDeleteTextures($1); - $3 = HEAP32[$0>>2]|0; - HEAP32[$vararg_buffer>>2] = $3; - _TraceLog(0,5800,$vararg_buffer); - STACKTOP = sp;return; -} -function _rlDeleteTextures($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - HEAP32[$1>>2] = $0; - $2 = ($0|0)==(0); - if (!($2)) { - _glDeleteTextures(1,($1|0)); - } - STACKTOP = sp;return; -} -function _GetDefaultFont($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - ;HEAP32[$0>>2]=HEAP32[20304>>2]|0;HEAP32[$0+4>>2]=HEAP32[20304+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[20304+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[20304+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[20304+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[20304+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[20304+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[20304+28>>2]|0; - return; -} -function _LoadSpriteFont($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy2 = 0, $$byval_copy5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy5 = sp + 232|0; - $$byval_copy2 = sp + 212|0; - $vararg_buffer = sp; - $2 = sp + 96|0; - $3 = sp + 192|0; - $4 = sp + 160|0; - $5 = sp + 128|0; - $6 = sp + 40|0; - $7 = sp + 252|0; - $8 = sp + 64|0; - $9 = sp + 8|0; - ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; - $10 = (_IsFileExtension($1,6202)|0); - $11 = ($10|0)==(0); - do { - if ($11) { - $35 = (_IsFileExtension($1,5850)|0); - $36 = ($35|0)==(0); - if (!($36)) { - _LoadSpriteFontEx($4,$1,32,0,0); - ;HEAP32[$2>>2]=HEAP32[$4>>2]|0;HEAP32[$2+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$4+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$4+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$4+16>>2]|0;HEAP32[$2+20>>2]=HEAP32[$4+20>>2]|0;HEAP32[$2+24>>2]=HEAP32[$4+24>>2]|0;HEAP32[$2+28>>2]=HEAP32[$4+28>>2]|0; - break; - } - $37 = (_IsFileExtension($1,5855)|0); - $38 = ($37|0)==(0); - if (!($38)) { - _LoadBMFont($5,$1); - ;HEAP32[$2>>2]=HEAP32[$5>>2]|0;HEAP32[$2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$5+16>>2]|0;HEAP32[$2+20>>2]=HEAP32[$5+20>>2]|0;HEAP32[$2+24>>2]=HEAP32[$5+24>>2]|0;HEAP32[$2+28>>2]=HEAP32[$5+28>>2]|0; - break; - } - _LoadImage($6,$1); - $39 = HEAP32[$6>>2]|0; - $40 = ($39|0)==(0|0); - if (!($40)) { - HEAP8[$7>>0] = -1; - $41 = ((($7)) + 1|0); - HEAP8[$41>>0] = 0; - $42 = ((($7)) + 2|0); - HEAP8[$42>>0] = -1; - $43 = ((($7)) + 3|0); - HEAP8[$43>>0] = -1; - ;HEAP32[$$byval_copy2>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$byval_copy2+12>>2]=HEAP32[$6+12>>2]|0;HEAP32[$$byval_copy2+16>>2]=HEAP32[$6+16>>2]|0; - ;HEAP8[$$byval_copy5>>0]=HEAP8[$7>>0]|0;HEAP8[$$byval_copy5+1>>0]=HEAP8[$7+1>>0]|0;HEAP8[$$byval_copy5+2>>0]=HEAP8[$7+2>>0]|0;HEAP8[$$byval_copy5+3>>0]=HEAP8[$7+3>>0]|0; - _LoadImageFont($8,$$byval_copy2,$$byval_copy5); - ;HEAP32[$2>>2]=HEAP32[$8>>2]|0;HEAP32[$2+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$8+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$8+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$8+16>>2]|0;HEAP32[$2+20>>2]=HEAP32[$8+20>>2]|0;HEAP32[$2+24>>2]=HEAP32[$8+24>>2]|0;HEAP32[$2+28>>2]=HEAP32[$8+28>>2]|0; - } - ;HEAP32[$$byval_copy5>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$byval_copy5+12>>2]=HEAP32[$6+12>>2]|0;HEAP32[$$byval_copy5+16>>2]=HEAP32[$6+16>>2]|0; - _UnloadImage($$byval_copy5); - } else { - $12 = (_LoadResource($1,0)|0); - $13 = HEAP32[$12>>2]|0; - $14 = ($13|0)==(5); - if ($14) { - $15 = ((($12)) + 20|0); - $16 = HEAP32[$15>>2]|0; - $17 = ((($12)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ((($12)) + 8|0); - $20 = HEAP32[$19>>2]|0; - $21 = ((($12)) + 12|0); - $22 = HEAP32[$21>>2]|0; - _LoadImagePro($$byval_copy2,$16,$18,$20,$22); - ;HEAP32[$$byval_copy5>>2]=HEAP32[$$byval_copy2>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$$byval_copy2+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$$byval_copy2+8>>2]|0;HEAP32[$$byval_copy5+12>>2]=HEAP32[$$byval_copy2+12>>2]|0;HEAP32[$$byval_copy5+16>>2]=HEAP32[$$byval_copy2+16>>2]|0; - _LoadTextureFromImage($3,$$byval_copy5); - ;HEAP32[$2>>2]=HEAP32[$3>>2]|0;HEAP32[$2+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$3+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$3+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$3+16>>2]|0; - ;HEAP32[$$byval_copy5>>2]=HEAP32[$$byval_copy2>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$$byval_copy2+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$$byval_copy2+8>>2]|0;HEAP32[$$byval_copy5+12>>2]=HEAP32[$$byval_copy2+12>>2]|0;HEAP32[$$byval_copy5+16>>2]=HEAP32[$$byval_copy2+16>>2]|0; - _UnloadImage($$byval_copy5); - } - $23 = ((($12)) + 24|0); - $24 = HEAP32[$23>>2]|0; - $25 = ($24|0)==(6); - if ($25) { - $26 = ((($12)) + 28|0); - $27 = HEAP32[$26>>2]|0; - $28 = ((($2)) + 20|0); - HEAP32[$28>>2] = $27; - $29 = ((($12)) + 32|0); - $30 = HEAP32[$29>>2]|0; - $31 = ((($2)) + 24|0); - HEAP32[$31>>2] = $30; - $32 = ((($12)) + 44|0); - $33 = HEAP32[$32>>2]|0; - $34 = ((($2)) + 28|0); - HEAP32[$34>>2] = $33; - } - } - } while(0); - $44 = HEAP32[$2>>2]|0; - $45 = ($44|0)==(0); - if ($45) { - HEAP32[$vararg_buffer>>2] = $1; - _TraceLog(1,5860,$vararg_buffer); - _GetDefaultFont($9); - ;HEAP32[$2>>2]=HEAP32[$9>>2]|0;HEAP32[$2+4>>2]=HEAP32[$9+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$9+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$9+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$9+16>>2]|0;HEAP32[$2+20>>2]=HEAP32[$9+20>>2]|0;HEAP32[$2+24>>2]=HEAP32[$9+24>>2]|0;HEAP32[$2+28>>2]=HEAP32[$9+28>>2]|0; - ;HEAP32[$0>>2]=HEAP32[$2>>2]|0;HEAP32[$0+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$2+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$2+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[$2+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[$2+28>>2]|0; - STACKTOP = sp;return; - } else { - ;HEAP32[$$byval_copy5>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$byval_copy5+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$byval_copy5+16>>2]=HEAP32[$2+16>>2]|0; - _SetTextureFilter($$byval_copy5,0); - ;HEAP32[$0>>2]=HEAP32[$2>>2]|0;HEAP32[$0+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$2+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$2+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[$2+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[$2+28>>2]|0; - STACKTOP = sp;return; - } -} -function _IsFileExtension($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$ = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (_strrchr($0,46)|0); - $3 = ($2|0)==(0|0); - if ($3) { - return 0; - } else { - $4 = (_strcmp($2,$1)|0); - $5 = ($4|0)==(0); - $$ = $5&1; - return ($$|0); - } - return (0)|0; -} -function _LoadImagePro($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$byval_copy = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $$byval_copy = sp + 20|0; - $5 = sp; - HEAP32[$5>>2] = $1; - $6 = ((($5)) + 4|0); - HEAP32[$6>>2] = $2; - $7 = ((($5)) + 8|0); - HEAP32[$7>>2] = $3; - $8 = ((($5)) + 12|0); - HEAP32[$8>>2] = 1; - $9 = ((($5)) + 16|0); - HEAP32[$9>>2] = $4; - ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$5+16>>2]|0; - _ImageCopy($0,$$byval_copy); - STACKTOP = sp;return; -} -function _LoadSpriteFontEx($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$048 = 0, $$sroa$0$0 = 0, $$sroa$0$0$copyload = 0, $$sroa$0$0$copyload15 = 0, $$sroa$0$0$copyload17 = 0, $$sroa$0$1 = 0, $$sroa$8 = 0, $$sroa$8$0$$sroa_idx = 0, $$sroa$8$0$$sroa_idx23 = 0, $$sroa$8$0$$sroa_idx26 = 0, $$sroa$8$0$$sroa_idx29 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $or$cond = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $vararg_buffer = sp; - $$sroa$8 = sp + 104|0; - $5 = sp + 72|0; - $6 = sp + 40|0; - $7 = sp + 8|0; - ;HEAP32[$$sroa$8>>2]=0|0;HEAP32[$$sroa$8+4>>2]=0|0;HEAP32[$$sroa$8+8>>2]=0|0;HEAP32[$$sroa$8+12>>2]=0|0;HEAP32[$$sroa$8+16>>2]=0|0;HEAP32[$$sroa$8+20>>2]=0|0;HEAP32[$$sroa$8+24>>2]=0|0; - $8 = (_IsFileExtension($1,5850)|0); - $9 = ($8|0)==(0); - if (!($9)) { - $10 = ($4|0)==(0|0); - $11 = ($3|0)==(0); - $or$cond = $11 | $10; - if ($or$cond) { - $12 = (_malloc(380)|0); - $$048 = 0; - while(1) { - $13 = (($$048) + 32)|0; - $14 = (($12) + ($$048<<2)|0); - HEAP32[$14>>2] = $13; - $15 = (($$048) + 1)|0; - $exitcond = ($15|0)==(95); - if ($exitcond) { - break; - } else { - $$048 = $15; - } - } - _LoadTTF($5,$1,$2,95,$12); - $$sroa$0$0$copyload = HEAP32[$5>>2]|0; - $$sroa$8$0$$sroa_idx = ((($5)) + 4|0); - ;HEAP32[$$sroa$8>>2]=HEAP32[$$sroa$8$0$$sroa_idx>>2]|0;HEAP32[$$sroa$8+4>>2]=HEAP32[$$sroa$8$0$$sroa_idx+4>>2]|0;HEAP32[$$sroa$8+8>>2]=HEAP32[$$sroa$8$0$$sroa_idx+8>>2]|0;HEAP32[$$sroa$8+12>>2]=HEAP32[$$sroa$8$0$$sroa_idx+12>>2]|0;HEAP32[$$sroa$8+16>>2]=HEAP32[$$sroa$8$0$$sroa_idx+16>>2]|0;HEAP32[$$sroa$8+20>>2]=HEAP32[$$sroa$8$0$$sroa_idx+20>>2]|0;HEAP32[$$sroa$8+24>>2]=HEAP32[$$sroa$8$0$$sroa_idx+24>>2]|0; - $$sroa$0$0 = $$sroa$0$0$copyload; - } else { - _LoadTTF($6,$1,$2,$3,$4); - $$sroa$0$0$copyload15 = HEAP32[$6>>2]|0; - $$sroa$8$0$$sroa_idx23 = ((($6)) + 4|0); - ;HEAP32[$$sroa$8>>2]=HEAP32[$$sroa$8$0$$sroa_idx23>>2]|0;HEAP32[$$sroa$8+4>>2]=HEAP32[$$sroa$8$0$$sroa_idx23+4>>2]|0;HEAP32[$$sroa$8+8>>2]=HEAP32[$$sroa$8$0$$sroa_idx23+8>>2]|0;HEAP32[$$sroa$8+12>>2]=HEAP32[$$sroa$8$0$$sroa_idx23+12>>2]|0;HEAP32[$$sroa$8+16>>2]=HEAP32[$$sroa$8$0$$sroa_idx23+16>>2]|0;HEAP32[$$sroa$8+20>>2]=HEAP32[$$sroa$8$0$$sroa_idx23+20>>2]|0;HEAP32[$$sroa$8+24>>2]=HEAP32[$$sroa$8$0$$sroa_idx23+24>>2]|0; - $$sroa$0$0 = $$sroa$0$0$copyload15; - } - $16 = ($$sroa$0$0|0)==(0); - if (!($16)) { - $$sroa$0$1 = $$sroa$0$0; - HEAP32[$0>>2] = $$sroa$0$1; - $$sroa$8$0$$sroa_idx29 = ((($0)) + 4|0); - ;HEAP32[$$sroa$8$0$$sroa_idx29>>2]=HEAP32[$$sroa$8>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+4>>2]=HEAP32[$$sroa$8+4>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+8>>2]=HEAP32[$$sroa$8+8>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+12>>2]=HEAP32[$$sroa$8+12>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+16>>2]=HEAP32[$$sroa$8+16>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+20>>2]=HEAP32[$$sroa$8+20>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+24>>2]=HEAP32[$$sroa$8+24>>2]|0; - STACKTOP = sp;return; - } - } - HEAP32[$vararg_buffer>>2] = $1; - _TraceLog(1,8873,$vararg_buffer); - _GetDefaultFont($7); - $$sroa$0$0$copyload17 = HEAP32[$7>>2]|0; - $$sroa$8$0$$sroa_idx26 = ((($7)) + 4|0); - ;HEAP32[$$sroa$8>>2]=HEAP32[$$sroa$8$0$$sroa_idx26>>2]|0;HEAP32[$$sroa$8+4>>2]=HEAP32[$$sroa$8$0$$sroa_idx26+4>>2]|0;HEAP32[$$sroa$8+8>>2]=HEAP32[$$sroa$8$0$$sroa_idx26+8>>2]|0;HEAP32[$$sroa$8+12>>2]=HEAP32[$$sroa$8$0$$sroa_idx26+12>>2]|0;HEAP32[$$sroa$8+16>>2]=HEAP32[$$sroa$8$0$$sroa_idx26+16>>2]|0;HEAP32[$$sroa$8+20>>2]=HEAP32[$$sroa$8$0$$sroa_idx26+20>>2]|0;HEAP32[$$sroa$8+24>>2]=HEAP32[$$sroa$8$0$$sroa_idx26+24>>2]|0; - $$sroa$0$1 = $$sroa$0$0$copyload17; - HEAP32[$0>>2] = $$sroa$0$1; - $$sroa$8$0$$sroa_idx29 = ((($0)) + 4|0); - ;HEAP32[$$sroa$8$0$$sroa_idx29>>2]=HEAP32[$$sroa$8>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+4>>2]=HEAP32[$$sroa$8+4>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+8>>2]=HEAP32[$$sroa$8+8>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+12>>2]=HEAP32[$$sroa$8+12>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+16>>2]=HEAP32[$$sroa$8+16>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+20>>2]=HEAP32[$$sroa$8+20>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+24>>2]=HEAP32[$$sroa$8+24>>2]|0; - STACKTOP = sp;return; -} -function _LoadBMFont($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$05355 = 0, $$056 = 0, $$byval_copy52 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx1 = 0, $$sroa$3$0$$sroa_idx2 = 0, $$sroa$4$0$$sroa_idx3 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; - var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; - var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; - var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; - var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer23 = 0, $vararg_buffer26 = 0, $vararg_buffer34 = 0, $vararg_buffer44 = 0, $vararg_buffer7 = 0, $vararg_ptr10 = 0; - var $vararg_ptr14 = 0, $vararg_ptr15 = 0, $vararg_ptr22 = 0, $vararg_ptr29 = 0, $vararg_ptr33 = 0, $vararg_ptr37 = 0, $vararg_ptr38 = 0, $vararg_ptr39 = 0, $vararg_ptr4 = 0, $vararg_ptr40 = 0, $vararg_ptr41 = 0, $vararg_ptr42 = 0, $vararg_ptr43 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 704|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(704|0); - $$byval_copy52 = sp + 152|0; - $vararg_buffer44 = sp + 144|0; - $vararg_buffer34 = sp + 112|0; - $vararg_buffer26 = sp + 88|0; - $vararg_buffer23 = sp + 64|0; - $vararg_buffer19 = sp + 56|0; - $vararg_buffer16 = sp + 48|0; - $vararg_buffer11 = sp + 32|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 288|0; - $3 = sp + 448|0; - $4 = sp + 260|0; - $5 = sp + 236|0; - $6 = sp + 232|0; - $7 = sp + 320|0; - $8 = sp + 196|0; - $9 = sp + 192|0; - $10 = sp + 264|0; - $11 = sp + 240|0; - $12 = sp + 188|0; - $13 = sp + 184|0; - $14 = sp + 200|0; - ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; - HEAP32[$4>>2] = 0; - HEAP32[$8>>2] = 0; - $15 = (_fopen($1,8348)|0); - $16 = ($15|0)==(0|0); - if ($16) { - HEAP32[$vararg_buffer>>2] = $1; - _TraceLog(1,8351,$vararg_buffer); - ;HEAP32[$0>>2]=HEAP32[$2>>2]|0;HEAP32[$0+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$2+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$2+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[$2+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[$2+28>>2]|0; - STACKTOP = sp;return; - } - (_fgets($3,256,$15)|0); - (_fgets($3,256,$15)|0); - $17 = (_strstr($3,8385)|0); - HEAP32[$vararg_buffer1>>2] = $4; - $vararg_ptr4 = ((($vararg_buffer1)) + 4|0); - HEAP32[$vararg_ptr4>>2] = $9; - $vararg_ptr5 = ((($vararg_buffer1)) + 8|0); - HEAP32[$vararg_ptr5>>2] = $5; - $vararg_ptr6 = ((($vararg_buffer1)) + 12|0); - HEAP32[$vararg_ptr6>>2] = $6; - (_sscanf($17,8396,$vararg_buffer1)|0); - $18 = HEAP32[$4>>2]|0; - HEAP32[$vararg_buffer7>>2] = $1; - $vararg_ptr10 = ((($vararg_buffer7)) + 4|0); - HEAP32[$vararg_ptr10>>2] = $18; - _TraceLog(3,8438,$vararg_buffer7); - $19 = HEAP32[$5>>2]|0; - $20 = HEAP32[$6>>2]|0; - HEAP32[$vararg_buffer11>>2] = $1; - $vararg_ptr14 = ((($vararg_buffer11)) + 4|0); - HEAP32[$vararg_ptr14>>2] = $19; - $vararg_ptr15 = ((($vararg_buffer11)) + 8|0); - HEAP32[$vararg_ptr15>>2] = $20; - _TraceLog(3,8457,$vararg_buffer11); - (_fgets($3,256,$15)|0); - $21 = (_strstr($3,8488)|0); - HEAP32[$vararg_buffer16>>2] = $7; - (_sscanf($21,8493,$vararg_buffer16)|0); - HEAP32[$vararg_buffer19>>2] = $1; - $vararg_ptr22 = ((($vararg_buffer19)) + 4|0); - HEAP32[$vararg_ptr22>>2] = $7; - _TraceLog(3,8509,$vararg_buffer19); - (_fgets($3,256,$15)|0); - $22 = (_strstr($3,8540)|0); - HEAP32[$vararg_buffer23>>2] = $8; - (_sscanf($22,8546,$vararg_buffer23)|0); - $23 = HEAP32[$8>>2]|0; - HEAP32[$vararg_buffer26>>2] = $1; - $vararg_ptr29 = ((($vararg_buffer26)) + 4|0); - HEAP32[$vararg_ptr29>>2] = $23; - _TraceLog(3,8555,$vararg_buffer26); - $24 = (_strrchr($1,47)|0); - $25 = (_strlen($1)|0); - $26 = (_strlen($24)|0); - $27 = (_strlen($7)|0); - $28 = (($25) + 4)|0; - $29 = (($28) - ($26))|0; - $30 = (($29) + ($27))|0; - $31 = (_malloc($30)|0); - HEAP8[$31>>0] = 0; - $32 = (_strlen($1)|0); - $33 = (_strlen($24)|0); - $34 = (($32) + 1)|0; - $35 = (($34) - ($33))|0; - (_strncat($31,$1,$35)|0); - $36 = (_strlen($7)|0); - (_strncat($31,$7,$36)|0); - HEAP32[$$byval_copy52>>2] = $1; - $vararg_ptr33 = ((($$byval_copy52)) + 4|0); - HEAP32[$vararg_ptr33>>2] = $31; - _TraceLog(3,8579,$$byval_copy52); - _LoadImage($vararg_buffer26,$31); - $37 = ((($vararg_buffer26)) + 16|0); - $38 = HEAP32[$37>>2]|0; - $39 = ($38|0)==(1); - if ($39) { - ;HEAP32[$$byval_copy52>>2]=HEAP32[$vararg_buffer26>>2]|0;HEAP32[$$byval_copy52+4>>2]=HEAP32[$vararg_buffer26+4>>2]|0;HEAP32[$$byval_copy52+8>>2]=HEAP32[$vararg_buffer26+8>>2]|0;HEAP32[$$byval_copy52+12>>2]=HEAP32[$vararg_buffer26+12>>2]|0;HEAP32[$$byval_copy52+16>>2]=HEAP32[$vararg_buffer26+16>>2]|0; - _ImageCopy($vararg_buffer23,$$byval_copy52); - $40 = ((($vararg_buffer23)) + 4|0); - $41 = HEAP32[$40>>2]|0; - $42 = ((($vararg_buffer23)) + 8|0); - $43 = HEAP32[$42>>2]|0; - $44 = Math_imul($43, $41)|0; - $45 = ($44|0)>(0); - if ($45) { - $$056 = 0; - while(1) { - $46 = HEAP32[$vararg_buffer23>>2]|0; - $47 = (($46) + ($$056)|0); - HEAP8[$47>>0] = -1; - $48 = (($$056) + 1)|0; - $49 = HEAP32[$40>>2]|0; - $50 = HEAP32[$42>>2]|0; - $51 = Math_imul($50, $49)|0; - $52 = ($48|0)<($51|0); - if ($52) { - $$056 = $48; - } else { - break; - } - } - } - ;HEAP32[$$byval_copy52>>2]=HEAP32[$vararg_buffer26>>2]|0;HEAP32[$$byval_copy52+4>>2]=HEAP32[$vararg_buffer26+4>>2]|0;HEAP32[$$byval_copy52+8>>2]=HEAP32[$vararg_buffer26+8>>2]|0;HEAP32[$$byval_copy52+12>>2]=HEAP32[$vararg_buffer26+12>>2]|0;HEAP32[$$byval_copy52+16>>2]=HEAP32[$vararg_buffer26+16>>2]|0; - _ImageAlphaMask($vararg_buffer23,$$byval_copy52); - ;HEAP32[$$byval_copy52>>2]=HEAP32[$vararg_buffer23>>2]|0;HEAP32[$$byval_copy52+4>>2]=HEAP32[$vararg_buffer23+4>>2]|0;HEAP32[$$byval_copy52+8>>2]=HEAP32[$vararg_buffer23+8>>2]|0;HEAP32[$$byval_copy52+12>>2]=HEAP32[$vararg_buffer23+12>>2]|0;HEAP32[$$byval_copy52+16>>2]=HEAP32[$vararg_buffer23+16>>2]|0; - _LoadTextureFromImage($10,$$byval_copy52); - ;HEAP32[$2>>2]=HEAP32[$10>>2]|0;HEAP32[$2+4>>2]=HEAP32[$10+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$10+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$10+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$10+16>>2]|0; - ;HEAP32[$$byval_copy52>>2]=HEAP32[$vararg_buffer23>>2]|0;HEAP32[$$byval_copy52+4>>2]=HEAP32[$vararg_buffer23+4>>2]|0;HEAP32[$$byval_copy52+8>>2]=HEAP32[$vararg_buffer23+8>>2]|0;HEAP32[$$byval_copy52+12>>2]=HEAP32[$vararg_buffer23+12>>2]|0;HEAP32[$$byval_copy52+16>>2]=HEAP32[$vararg_buffer23+16>>2]|0; - _UnloadImage($$byval_copy52); - } else { - ;HEAP32[$$byval_copy52>>2]=HEAP32[$vararg_buffer26>>2]|0;HEAP32[$$byval_copy52+4>>2]=HEAP32[$vararg_buffer26+4>>2]|0;HEAP32[$$byval_copy52+8>>2]=HEAP32[$vararg_buffer26+8>>2]|0;HEAP32[$$byval_copy52+12>>2]=HEAP32[$vararg_buffer26+12>>2]|0;HEAP32[$$byval_copy52+16>>2]=HEAP32[$vararg_buffer26+16>>2]|0; - _LoadTextureFromImage($11,$$byval_copy52); - ;HEAP32[$2>>2]=HEAP32[$11>>2]|0;HEAP32[$2+4>>2]=HEAP32[$11+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$11+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$11+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$11+16>>2]|0; - } - $53 = HEAP32[$4>>2]|0; - $54 = ((($2)) + 20|0); - HEAP32[$54>>2] = $53; - $55 = HEAP32[$8>>2]|0; - $56 = ((($2)) + 24|0); - HEAP32[$56>>2] = $55; - $57 = $55 << 5; - $58 = (_malloc($57)|0); - $59 = ((($2)) + 28|0); - HEAP32[$59>>2] = $58; - ;HEAP32[$$byval_copy52>>2]=HEAP32[$vararg_buffer26>>2]|0;HEAP32[$$byval_copy52+4>>2]=HEAP32[$vararg_buffer26+4>>2]|0;HEAP32[$$byval_copy52+8>>2]=HEAP32[$vararg_buffer26+8>>2]|0;HEAP32[$$byval_copy52+12>>2]=HEAP32[$vararg_buffer26+12>>2]|0;HEAP32[$$byval_copy52+16>>2]=HEAP32[$vararg_buffer26+16>>2]|0; - _UnloadImage($$byval_copy52); - _free($31); - $60 = HEAP32[$8>>2]|0; - $61 = ($60|0)>(0); - if ($61) { - $$05355 = 0; - while(1) { - (_fgets($3,256,$15)|0); - HEAP32[$vararg_buffer34>>2] = $vararg_buffer23; - $vararg_ptr37 = ((($vararg_buffer34)) + 4|0); - HEAP32[$vararg_ptr37>>2] = $vararg_buffer19; - $vararg_ptr38 = ((($vararg_buffer34)) + 8|0); - HEAP32[$vararg_ptr38>>2] = $vararg_buffer16; - $vararg_ptr39 = ((($vararg_buffer34)) + 12|0); - HEAP32[$vararg_ptr39>>2] = $vararg_buffer11; - $vararg_ptr40 = ((($vararg_buffer34)) + 16|0); - HEAP32[$vararg_ptr40>>2] = $vararg_buffer7; - $vararg_ptr41 = ((($vararg_buffer34)) + 20|0); - HEAP32[$vararg_ptr41>>2] = $vararg_buffer1; - $vararg_ptr42 = ((($vararg_buffer34)) + 24|0); - HEAP32[$vararg_ptr42>>2] = $12; - $vararg_ptr43 = ((($vararg_buffer34)) + 28|0); - HEAP32[$vararg_ptr43>>2] = $13; - (_sscanf($3,8614,$vararg_buffer34)|0); - $64 = HEAP32[$vararg_buffer23>>2]|0; - $65 = HEAP32[$59>>2]|0; - $66 = (($65) + ($$05355<<5)|0); - HEAP32[$66>>2] = $64; - $67 = HEAP32[$59>>2]|0; - $68 = HEAP32[$vararg_buffer19>>2]|0; - $69 = HEAP32[$vararg_buffer16>>2]|0; - $70 = HEAP32[$vararg_buffer11>>2]|0; - $71 = HEAP32[$vararg_buffer7>>2]|0; - $$sroa$0$0$$sroa_idx = (((($67) + ($$05355<<5)|0)) + 4|0); - HEAP32[$$sroa$0$0$$sroa_idx>>2] = $68; - $$sroa$2$0$$sroa_idx1 = (((($67) + ($$05355<<5)|0)) + 8|0); - HEAP32[$$sroa$2$0$$sroa_idx1>>2] = $69; - $$sroa$3$0$$sroa_idx2 = (((($67) + ($$05355<<5)|0)) + 12|0); - HEAP32[$$sroa$3$0$$sroa_idx2>>2] = $70; - $$sroa$4$0$$sroa_idx3 = (((($67) + ($$05355<<5)|0)) + 16|0); - HEAP32[$$sroa$4$0$$sroa_idx3>>2] = $71; - $72 = HEAP32[$vararg_buffer1>>2]|0; - $73 = HEAP32[$59>>2]|0; - $74 = (((($73) + ($$05355<<5)|0)) + 20|0); - HEAP32[$74>>2] = $72; - $75 = HEAP32[$12>>2]|0; - $76 = HEAP32[$59>>2]|0; - $77 = (((($76) + ($$05355<<5)|0)) + 24|0); - HEAP32[$77>>2] = $75; - $78 = HEAP32[$13>>2]|0; - $79 = HEAP32[$59>>2]|0; - $80 = (((($79) + ($$05355<<5)|0)) + 28|0); - HEAP32[$80>>2] = $78; - $81 = (($$05355) + 1)|0; - $82 = HEAP32[$8>>2]|0; - $83 = ($81|0)<($82|0); - if ($83) { - $$05355 = $81; - } else { - break; - } - } - } - (_fclose($15)|0); - $62 = HEAP32[$2>>2]|0; - $63 = ($62|0)==(0); - if ($63) { - ;HEAP32[$$byval_copy52>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy52+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy52+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$byval_copy52+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$byval_copy52+16>>2]=HEAP32[$2+16>>2]|0;HEAP32[$$byval_copy52+20>>2]=HEAP32[$2+20>>2]|0;HEAP32[$$byval_copy52+24>>2]=HEAP32[$2+24>>2]|0;HEAP32[$$byval_copy52+28>>2]=HEAP32[$2+28>>2]|0; - _UnloadSpriteFont($$byval_copy52); - _GetDefaultFont($14); - ;HEAP32[$2>>2]=HEAP32[$14>>2]|0;HEAP32[$2+4>>2]=HEAP32[$14+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$14+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$14+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$14+16>>2]|0;HEAP32[$2+20>>2]=HEAP32[$14+20>>2]|0;HEAP32[$2+24>>2]=HEAP32[$14+24>>2]|0;HEAP32[$2+28>>2]=HEAP32[$14+28>>2]|0; - } else { - HEAP32[$vararg_buffer44>>2] = $1; - _TraceLog(0,8688,$vararg_buffer44); - } - ;HEAP32[$0>>2]=HEAP32[$2>>2]|0;HEAP32[$0+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$2+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$2+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[$2+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[$2+28>>2]|0; - STACKTOP = sp;return; -} -function _LoadImage($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); - $$byval_copy = sp + 40|0; - $vararg_buffer12 = sp + 32|0; - $vararg_buffer7 = sp + 16|0; - $vararg_buffer4 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 72|0; - $3 = sp + 68|0; - $4 = sp + 64|0; - $5 = sp + 60|0; - ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0; - $6 = (_IsFileExtension($1,6202)|0); - $7 = ($6|0)==(0); - do { - if ($7) { - $19 = (_IsFileExtension($1,6255)|0); - $20 = ($19|0)==(0); - if ($20) { - $21 = (_IsFileExtension($1,6260)|0); - $22 = ($21|0)==(0); - if ($22) { - $36 = (_IsFileExtension($1,6265)|0); - $37 = ($36|0)==(0); - if ($37) { - $46 = (_IsFileExtension($1,6337)|0); - $47 = ($46|0)==(0); - if ($47) { - HEAP32[$vararg_buffer4>>2] = $1; - _TraceLog(1,6342,$vararg_buffer4); - break; - } else { - _LoadDDS($2,$1); - break; - } - } - HEAP32[$3>>2] = 0; - $38 = (_fopen($1,8986)|0); - _stbi_set_flip_vertically_on_load(1); - $39 = ((($2)) + 4|0); - $40 = ((($2)) + 8|0); - $41 = (_stbi_loadf_from_file($38,$39,$40,$3,0)|0); - HEAP32[$2>>2] = $41; - _stbi_set_flip_vertically_on_load(0); - (_fclose($38)|0); - $42 = ((($2)) + 12|0); - HEAP32[$42>>2] = 1; - $43 = HEAP32[$3>>2]|0; - $44 = ($43|0)==(3); - if ($44) { - $45 = ((($2)) + 16|0); - HEAP32[$45>>2] = 8; - } else { - HEAP32[$$byval_copy>>2] = $1; - _TraceLog(1,6270,$$byval_copy); - ;HEAP32[$$byval_copy>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$2+16>>2]|0; - _UnloadImage($$byval_copy); - } - break; - } - } - HEAP32[$3>>2] = 0; - HEAP32[$4>>2] = 0; - HEAP32[$5>>2] = 0; - $23 = (_fopen($1,8986)|0); - $24 = ($23|0)==(0|0); - L17: do { - if (!($24)) { - $25 = (_stbi_load_from_file($23,$3,$4,$5,0)|0); - HEAP32[$2>>2] = $25; - (_fclose($23)|0); - $26 = HEAP32[$3>>2]|0; - $27 = ((($2)) + 4|0); - HEAP32[$27>>2] = $26; - $28 = HEAP32[$4>>2]|0; - $29 = ((($2)) + 8|0); - HEAP32[$29>>2] = $28; - $30 = ((($2)) + 12|0); - HEAP32[$30>>2] = 1; - $31 = HEAP32[$5>>2]|0; - switch ($31|0) { - case 1: { - $32 = ((($2)) + 16|0); - HEAP32[$32>>2] = 1; - break L17; - break; - } - case 2: { - $33 = ((($2)) + 16|0); - HEAP32[$33>>2] = 2; - break L17; - break; - } - case 3: { - $34 = ((($2)) + 16|0); - HEAP32[$34>>2] = 4; - break L17; - break; - } - case 4: { - $35 = ((($2)) + 16|0); - HEAP32[$35>>2] = 7; - break L17; - break; - } - default: { - break L17; - } - } - } - } while(0); - } else { - $8 = (_LoadResource($1,0)|0); - $9 = HEAP32[$8>>2]|0; - $10 = ($9|0)==(1); - if ($10) { - $11 = ((($8)) + 20|0); - $12 = HEAP32[$11>>2]|0; - $13 = ((($8)) + 4|0); - $14 = HEAP32[$13>>2]|0; - $15 = ((($8)) + 8|0); - $16 = HEAP32[$15>>2]|0; - $17 = ((($8)) + 12|0); - $18 = HEAP32[$17>>2]|0; - _LoadImagePro($2,$12,$14,$16,$18); - } else { - HEAP32[$vararg_buffer>>2] = $1; - _TraceLog(1,6208,$vararg_buffer); - } - _UnloadResource($8); - } - } while(0); - $48 = HEAP32[$2>>2]|0; - $49 = ($48|0)==(0|0); - if ($49) { - HEAP32[$vararg_buffer12>>2] = $1; - _TraceLog(1,6417,$vararg_buffer12); - ;HEAP32[$0>>2]=HEAP32[$2>>2]|0;HEAP32[$0+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$2+16>>2]|0; - STACKTOP = sp;return; - } else { - $50 = ((($2)) + 4|0); - $51 = HEAP32[$50>>2]|0; - $52 = ((($2)) + 8|0); - $53 = HEAP32[$52>>2]|0; - HEAP32[$vararg_buffer7>>2] = $1; - $vararg_ptr10 = ((($vararg_buffer7)) + 4|0); - HEAP32[$vararg_ptr10>>2] = $51; - $vararg_ptr11 = ((($vararg_buffer7)) + 8|0); - HEAP32[$vararg_ptr11>>2] = $53; - _TraceLog(0,6378,$vararg_buffer7); - ;HEAP32[$0>>2]=HEAP32[$2>>2]|0;HEAP32[$0+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$2+16>>2]|0; - STACKTOP = sp;return; - } -} -function _LoadImageFont($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0195$lcssa = 0, $$019552 = 0, $$019622 = 0, $$0197 = 0, $$020032 = 0, $$0201$lcssa = 0, $$020131 = 0, $$0203 = 0, $$021 = 0, $$1$lcssa = 0, $$119927 = 0, $$1202$lcssa = 0, $$120226 = 0, $$135 = 0, $$2 = 0, $$byval_copy4 = 0, $$sroa$0 = 0, $$sroa$5$0$$sroa_idx15 = 0, $$sroa$6$0$$sroa_idx17 = 0, $$sroa$9$0$$sroa_idx20 = 0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; - var $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 5232|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(5232|0); - $$byval_copy4 = sp + 5200|0; - $vararg_buffer1 = sp + 48|0; - $vararg_buffer = sp + 24|0; - $3 = sp + 4176|0; - $4 = sp + 56|0; - $$sroa$0 = sp; - $5 = sp + 4152|0; - ;HEAP32[$$byval_copy4>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$$byval_copy4+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[$$byval_copy4+16>>2]=HEAP32[$1+16>>2]|0; - $6 = (_GetImageData($$byval_copy4)|0); - $7 = ((($1)) + 8|0); - $8 = HEAP32[$7>>2]|0; - $9 = ($8|0)>(0); - L1: do { - if ($9) { - $10 = ((($1)) + 4|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($11|0)>(0); - $13 = HEAP8[$2>>0]|0; - $14 = ((($2)) + 1|0); - $15 = HEAP8[$14>>0]|0; - $16 = ((($2)) + 2|0); - $17 = HEAP8[$16>>0]|0; - $18 = ((($2)) + 3|0); - $19 = HEAP8[$18>>0]|0; - $20 = HEAP8[$2>>0]|0; - $21 = ((($2)) + 1|0); - $22 = HEAP8[$21>>0]|0; - $23 = ((($2)) + 2|0); - $24 = HEAP8[$23>>0]|0; - $25 = ((($2)) + 3|0); - $26 = HEAP8[$25>>0]|0; - $27 = HEAP32[$10>>2]|0; - $$019552 = 0; - while(1) { - L5: do { - if ($12) { - $$135 = 0;$29 = $11; - while(1) { - $28 = Math_imul($29, $$019552)|0; - $30 = (($28) + ($$135))|0; - $31 = (($6) + ($30<<2)|0); - $32 = HEAP8[$31>>0]|0; - $33 = ($32<<24>>24)==($20<<24>>24); - if (!($33)) { - $$1$lcssa = $$135; - break L5; - } - $34 = (((($6) + ($30<<2)|0)) + 1|0); - $35 = HEAP8[$34>>0]|0; - $36 = ($35<<24>>24)==($22<<24>>24); - if (!($36)) { - $$1$lcssa = $$135; - break L5; - } - $37 = (((($6) + ($30<<2)|0)) + 2|0); - $38 = HEAP8[$37>>0]|0; - $39 = ($38<<24>>24)==($24<<24>>24); - if (!($39)) { - $$1$lcssa = $$135; - break L5; - } - $40 = (((($6) + ($30<<2)|0)) + 3|0); - $41 = HEAP8[$40>>0]|0; - $42 = ($41<<24>>24)==($26<<24>>24); - if (!($42)) { - $$1$lcssa = $$135; - break L5; - } - $43 = (($$135) + 1)|0; - $44 = HEAP32[$10>>2]|0; - $45 = ($43|0)<($44|0); - if ($45) { - $$135 = $43;$29 = $44; - } else { - $$1$lcssa = $43; - break; - } - } - } else { - $$1$lcssa = 0; - } - } while(0); - $46 = Math_imul($27, $$019552)|0; - $47 = (($46) + ($$1$lcssa))|0; - $48 = (($6) + ($47<<2)|0); - $49 = HEAP8[$48>>0]|0; - $50 = ($49<<24>>24)==($13<<24>>24); - if (!($50)) { - $$0195$lcssa = $$019552;$$2 = $$1$lcssa; - break L1; - } - $51 = (((($6) + ($47<<2)|0)) + 1|0); - $52 = HEAP8[$51>>0]|0; - $53 = ($52<<24>>24)==($15<<24>>24); - if (!($53)) { - $$0195$lcssa = $$019552;$$2 = $$1$lcssa; - break L1; - } - $54 = (((($6) + ($47<<2)|0)) + 2|0); - $55 = HEAP8[$54>>0]|0; - $56 = ($55<<24>>24)==($17<<24>>24); - if (!($56)) { - $$0195$lcssa = $$019552;$$2 = $$1$lcssa; - break L1; - } - $57 = (((($6) + ($47<<2)|0)) + 3|0); - $58 = HEAP8[$57>>0]|0; - $59 = ($58<<24>>24)==($19<<24>>24); - if (!($59)) { - $$0195$lcssa = $$019552;$$2 = $$1$lcssa; - break L1; - } - $60 = (($$019552) + 1)|0; - $61 = HEAP32[$7>>2]|0; - $62 = ($60|0)<($61|0); - if ($62) { - $$019552 = $60; - } else { - $$0195$lcssa = $60;$$2 = $$1$lcssa; - break; - } - } - } else { - $$0195$lcssa = 0;$$2 = 0; - } - } while(0); - $63 = ((($1)) + 4|0); - $64 = HEAP32[$63>>2]|0; - $65 = HEAP8[$2>>0]|0; - $66 = ((($2)) + 1|0); - $67 = HEAP8[$66>>0]|0; - $68 = ((($2)) + 2|0); - $69 = HEAP8[$68>>0]|0; - $70 = ((($2)) + 3|0); - $71 = HEAP8[$70>>0]|0; - $$0203 = 0; - while(1) { - $72 = (($$0203) + ($$0195$lcssa))|0; - $73 = Math_imul($72, $64)|0; - $74 = (($73) + ($$2))|0; - $75 = (($6) + ($74<<2)|0); - $76 = HEAP8[$75>>0]|0; - $77 = ($76<<24>>24)==($65<<24>>24); - if ($77) { - $78 = (((($6) + ($74<<2)|0)) + 1|0); - $79 = HEAP8[$78>>0]|0; - $80 = ($79<<24>>24)==($67<<24>>24); - if ($80) { - $81 = (((($6) + ($74<<2)|0)) + 2|0); - $82 = HEAP8[$81>>0]|0; - $83 = ($82<<24>>24)==($69<<24>>24); - if ($83) { - $84 = (((($6) + ($74<<2)|0)) + 3|0); - $85 = HEAP8[$84>>0]|0; - $86 = ($85<<24>>24)==($71<<24>>24); - if ($86) { - break; - } - } - } - } - $96 = (($$0203) + 1)|0; - $$0203 = $96; - } - $87 = HEAP32[$7>>2]|0; - $88 = ($$0195$lcssa|0)<($87|0); - if ($88) { - $89 = HEAP32[$63>>2]|0; - $90 = ($$2|0)<($89|0); - $91 = HEAP32[$7>>2]|0; - $92 = HEAP8[$2>>0]|0; - $93 = HEAP8[$66>>0]|0; - $94 = HEAP8[$68>>0]|0; - $95 = HEAP8[$70>>0]|0; - $$020032 = 0;$$020131 = 0;$99 = $$0195$lcssa; - while(1) { - L30: do { - if ($90) { - $$119927 = $$2;$$120226 = $$020131;$98 = $89; - while(1) { - $97 = Math_imul($98, $99)|0; - $100 = (($97) + ($$119927))|0; - $101 = (($6) + ($100<<2)|0); - $102 = HEAP8[$101>>0]|0; - $103 = ($102<<24>>24)==($92<<24>>24); - if ($103) { - $104 = (((($6) + ($100<<2)|0)) + 1|0); - $105 = HEAP8[$104>>0]|0; - $106 = ($105<<24>>24)==($93<<24>>24); - if ($106) { - $107 = (((($6) + ($100<<2)|0)) + 2|0); - $108 = HEAP8[$107>>0]|0; - $109 = ($108<<24>>24)==($94<<24>>24); - if ($109) { - $110 = (((($6) + ($100<<2)|0)) + 3|0); - $111 = HEAP8[$110>>0]|0; - $112 = ($111<<24>>24)==($95<<24>>24); - if ($112) { - $$1202$lcssa = $$120226; - break L30; - } - } - } - } - $113 = (($$120226) + 32)|0; - $114 = (($3) + ($$120226<<2)|0); - HEAP32[$114>>2] = $113; - $115 = (($4) + ($$120226<<4)|0); - HEAP32[$115>>2] = $$119927; - $116 = (((($4) + ($$120226<<4)|0)) + 4|0); - HEAP32[$116>>2] = $99; - $117 = (((($4) + ($$120226<<4)|0)) + 12|0); - HEAP32[$117>>2] = $$0203; - $118 = HEAP32[$63>>2]|0; - $119 = Math_imul($118, $99)|0; - $$0197 = 0; - while(1) { - $120 = (($$0197) + ($$119927))|0; - $121 = (($120) + ($119))|0; - $122 = (($6) + ($121<<2)|0); - $123 = HEAP8[$122>>0]|0; - $124 = ($123<<24>>24)==($92<<24>>24); - if ($124) { - $125 = (((($6) + ($121<<2)|0)) + 1|0); - $126 = HEAP8[$125>>0]|0; - $127 = ($126<<24>>24)==($93<<24>>24); - if ($127) { - $128 = (((($6) + ($121<<2)|0)) + 2|0); - $129 = HEAP8[$128>>0]|0; - $130 = ($129<<24>>24)==($94<<24>>24); - if ($130) { - $131 = (((($6) + ($121<<2)|0)) + 3|0); - $132 = HEAP8[$131>>0]|0; - $133 = ($132<<24>>24)==($95<<24>>24); - if ($133) { - break; - } - } - } - } - $134 = (($$0197) + 1)|0; - $$0197 = $134; - } - $135 = (((($4) + ($$120226<<4)|0)) + 8|0); - HEAP32[$135>>2] = $$0197; - $136 = (($$120226) + 1)|0; - $137 = (($$119927) + ($$2))|0; - $138 = (($137) + ($$0197))|0; - $139 = HEAP32[$63>>2]|0; - $140 = ($138|0)<($139|0); - if ($140) { - $$119927 = $138;$$120226 = $136;$98 = $139; - } else { - $$1202$lcssa = $136; - break; - } - } - } else { - $$1202$lcssa = $$020131; - } - } while(0); - $141 = (($$020032) + 1)|0; - $142 = Math_imul($141, $72)|0; - $143 = (($142) + ($$0195$lcssa))|0; - $144 = ($143|0)<($91|0); - if ($144) { - $$020032 = $141;$$020131 = $$1202$lcssa;$99 = $143; - } else { - $$0201$lcssa = $$1202$lcssa; - break; - } - } - } else { - $$0201$lcssa = 0; - } - _TraceLog(3,6116,$vararg_buffer); - $145 = HEAP32[$7>>2]|0; - $146 = HEAP32[$63>>2]|0; - $147 = Math_imul($146, $145)|0; - $148 = ($147|0)>(0); - if ($148) { - $149 = HEAP8[$2>>0]|0; - $150 = HEAP8[$66>>0]|0; - $151 = HEAP8[$68>>0]|0; - $152 = HEAP8[$70>>0]|0; - $$019622 = 0; - while(1) { - $158 = (($6) + ($$019622<<2)|0); - $159 = HEAP8[$158>>0]|0; - $160 = ($159<<24>>24)==($149<<24>>24); - if ($160) { - $161 = (((($6) + ($$019622<<2)|0)) + 1|0); - $162 = HEAP8[$161>>0]|0; - $163 = ($162<<24>>24)==($150<<24>>24); - if ($163) { - $164 = (((($6) + ($$019622<<2)|0)) + 2|0); - $165 = HEAP8[$164>>0]|0; - $166 = ($165<<24>>24)==($151<<24>>24); - if ($166) { - $167 = (((($6) + ($$019622<<2)|0)) + 3|0); - $168 = HEAP8[$167>>0]|0; - $169 = ($168<<24>>24)==($152<<24>>24); - if ($169) { - HEAP8[$158>>0]=0&255;HEAP8[$158+1>>0]=(0>>8)&255;HEAP8[$158+2>>0]=(0>>16)&255;HEAP8[$158+3>>0]=0>>24; - } - } - } - } - $170 = (($$019622) + 1)|0; - $171 = HEAP32[$7>>2]|0; - $172 = HEAP32[$63>>2]|0; - $173 = Math_imul($172, $171)|0; - $174 = ($170|0)<($173|0); - if ($174) { - $$019622 = $170; - } else { - break; - } - } - } - $153 = HEAP32[$63>>2]|0; - $154 = HEAP32[$7>>2]|0; - _LoadImageEx($vararg_buffer,$6,$153,$154); - _free($6); - ;HEAP32[$$sroa$0>>2]=0|0;HEAP32[$$sroa$0+4>>2]=0|0;HEAP32[$$sroa$0+8>>2]=0|0;HEAP32[$$sroa$0+12>>2]=0|0;HEAP32[$$sroa$0+16>>2]=0|0; - ;HEAP32[$$byval_copy4>>2]=HEAP32[$vararg_buffer>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$vararg_buffer+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$vararg_buffer+8>>2]|0;HEAP32[$$byval_copy4+12>>2]=HEAP32[$vararg_buffer+12>>2]|0;HEAP32[$$byval_copy4+16>>2]=HEAP32[$vararg_buffer+16>>2]|0; - _LoadTextureFromImage($5,$$byval_copy4); - ;HEAP32[$$sroa$0>>2]=HEAP32[$5>>2]|0;HEAP32[$$sroa$0+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$sroa$0+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$$sroa$0+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$$sroa$0+16>>2]=HEAP32[$5+16>>2]|0; - ;HEAP32[$$byval_copy4>>2]=HEAP32[$vararg_buffer>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$vararg_buffer+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$vararg_buffer+8>>2]|0;HEAP32[$$byval_copy4+12>>2]=HEAP32[$vararg_buffer+12>>2]|0;HEAP32[$$byval_copy4+16>>2]=HEAP32[$vararg_buffer+16>>2]|0; - _UnloadImage($$byval_copy4); - $155 = $$0201$lcssa << 5; - $156 = (_malloc($155)|0); - $157 = ($$0201$lcssa|0)>(0); - if ($157) { - $$021 = 0; - } else { - $175 = ((($156)) + 16|0); - $176 = HEAP32[$175>>2]|0; - _TraceLog(0,6160,$vararg_buffer1); - ;HEAP32[$0>>2]=HEAP32[$$sroa$0>>2]|0;HEAP32[$0+4>>2]=HEAP32[$$sroa$0+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$$sroa$0+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$$sroa$0+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$$sroa$0+16>>2]|0; - $$sroa$5$0$$sroa_idx15 = ((($0)) + 20|0); - HEAP32[$$sroa$5$0$$sroa_idx15>>2] = $176; - $$sroa$6$0$$sroa_idx17 = ((($0)) + 24|0); - HEAP32[$$sroa$6$0$$sroa_idx17>>2] = $$0201$lcssa; - $$sroa$9$0$$sroa_idx20 = ((($0)) + 28|0); - HEAP32[$$sroa$9$0$$sroa_idx20>>2] = $156; - STACKTOP = sp;return; - } - while(1) { - $177 = (($3) + ($$021<<2)|0); - $178 = HEAP32[$177>>2]|0; - $179 = (($156) + ($$021<<5)|0); - HEAP32[$179>>2] = $178; - $180 = (((($156) + ($$021<<5)|0)) + 4|0); - $181 = (($4) + ($$021<<4)|0); - ;HEAP32[$180>>2]=HEAP32[$181>>2]|0;HEAP32[$180+4>>2]=HEAP32[$181+4>>2]|0;HEAP32[$180+8>>2]=HEAP32[$181+8>>2]|0;HEAP32[$180+12>>2]=HEAP32[$181+12>>2]|0; - $182 = (((($156) + ($$021<<5)|0)) + 20|0); - HEAP32[$182>>2] = 0; - $183 = (((($156) + ($$021<<5)|0)) + 24|0); - HEAP32[$183>>2] = 0; - $184 = (((($156) + ($$021<<5)|0)) + 28|0); - HEAP32[$184>>2] = 0; - $185 = (($$021) + 1)|0; - $exitcond = ($185|0)==($$0201$lcssa|0); - if ($exitcond) { - break; - } else { - $$021 = $185; - } - } - $175 = ((($156)) + 16|0); - $176 = HEAP32[$175>>2]|0; - _TraceLog(0,6160,$vararg_buffer1); - ;HEAP32[$0>>2]=HEAP32[$$sroa$0>>2]|0;HEAP32[$0+4>>2]=HEAP32[$$sroa$0+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$$sroa$0+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$$sroa$0+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$$sroa$0+16>>2]|0; - $$sroa$5$0$$sroa_idx15 = ((($0)) + 20|0); - HEAP32[$$sroa$5$0$$sroa_idx15>>2] = $176; - $$sroa$6$0$$sroa_idx17 = ((($0)) + 24|0); - HEAP32[$$sroa$6$0$$sroa_idx17>>2] = $$0201$lcssa; - $$sroa$9$0$$sroa_idx20 = ((($0)) + 28|0); - HEAP32[$$sroa$9$0$$sroa_idx20>>2] = $156; - STACKTOP = sp;return; -} -function _SetTextureFilter($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - switch ($1|0) { - case 0: { - $2 = ((($0)) + 12|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)>(1); - $5 = HEAP32[$0>>2]|0; - if ($4) { - _rlTextureParameters($5,10241,9984); - $6 = HEAP32[$0>>2]|0; - _rlTextureParameters($6,10240,9728); - STACKTOP = sp;return; - } else { - _rlTextureParameters($5,10241,9728); - $7 = HEAP32[$0>>2]|0; - _rlTextureParameters($7,10240,9728); - STACKTOP = sp;return; - } - break; - } - case 1: { - $8 = ((($0)) + 12|0); - $9 = HEAP32[$8>>2]|0; - $10 = ($9|0)>(1); - $11 = HEAP32[$0>>2]|0; - if ($10) { - _rlTextureParameters($11,10241,9985); - $12 = HEAP32[$0>>2]|0; - _rlTextureParameters($12,10240,9729); - STACKTOP = sp;return; - } else { - _rlTextureParameters($11,10241,9729); - $13 = HEAP32[$0>>2]|0; - _rlTextureParameters($13,10240,9729); - STACKTOP = sp;return; - } - break; - } - case 2: { - $14 = ((($0)) + 12|0); - $15 = HEAP32[$14>>2]|0; - $16 = ($15|0)>(1); - $17 = HEAP32[$0>>2]|0; - if ($16) { - _rlTextureParameters($17,10241,9987); - $18 = HEAP32[$0>>2]|0; - _rlTextureParameters($18,10240,9729); - STACKTOP = sp;return; - } else { - HEAP32[$vararg_buffer>>2] = $17; - _TraceLog(1,5916,$vararg_buffer); - $19 = HEAP32[$0>>2]|0; - _rlTextureParameters($19,10241,9729); - _rlTextureParameters($19,10240,9729); - STACKTOP = sp;return; - } - break; - } - case 3: { - $20 = HEAP32[$0>>2]|0; - _rlTextureParameters($20,12288,4); - STACKTOP = sp;return; - break; - } - case 4: { - $21 = HEAP32[$0>>2]|0; - _rlTextureParameters($21,12288,8); - STACKTOP = sp;return; - break; - } - case 5: { - $22 = HEAP32[$0>>2]|0; - _rlTextureParameters($22,12288,16); - STACKTOP = sp;return; - break; - } - default: { - STACKTOP = sp;return; - } - } -} -function _rlTextureParameters($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0.0, $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $or$cond = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_ptr3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer4 = sp + 24|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - _glBindTexture(3553,($0|0)); - L1: do { - switch ($1|0) { - case 10243: case 10242: { - $3 = ($2|0)!=(34626); - $4 = HEAP32[5091]|0; - $5 = ($4|0)!=(0); - $or$cond = $3 | $5; - if ($or$cond) { - _glTexParameteri(3553,($1|0),($2|0)); - break L1; - } else { - _TraceLog(1,5981,$vararg_buffer); - break L1; - } - break; - } - case 10241: case 10240: { - _glTexParameteri(3553,($1|0),($2|0)); - break; - } - case 12288: { - $6 = (+($2|0)); - $7 = +HEAPF32[5092]; - $8 = !($6 <= $7); - if (!($8)) { - _glTexParameterf(3553,34046,(+$6)); - break L1; - } - $9 = $7 > 0.0; - if ($9) { - $10 = $7; - HEAP32[$vararg_buffer1>>2] = $0; - $vararg_ptr3 = ((($vararg_buffer1)) + 8|0); - HEAPF64[$vararg_ptr3>>3] = $10; - _TraceLog(1,6018,$vararg_buffer1); - _glTexParameterf(3553,34046,(+$6)); - break L1; - } else { - _TraceLog(1,6080,$vararg_buffer4); - break L1; - } - break; - } - default: { - } - } - } while(0); - _glBindTexture(3553,0); - STACKTOP = sp;return; -} -function _stbi_load_from_file($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $10 = 0, $11 = 0, $12 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); - $5 = sp; - _stbi__start_file($5,$0); - $6 = (_stbi__load_and_postprocess_8bit($5,$1,$2,$3,$4)|0); - $7 = ($6|0)==(0|0); - if ($7) { - STACKTOP = sp;return ($6|0); - } - $8 = ((($5)) + 172|0); - $9 = HEAP32[$8>>2]|0; - $10 = ((($5)) + 168|0); - $11 = HEAP32[$10>>2]|0; - $12 = (($11) - ($9))|0; - (_fseek($0,$12,1)|0); - STACKTOP = sp;return ($6|0); -} -function _stbi_set_flip_vertically_on_load($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - HEAP32[5094] = $0; - return; -} -function _stbi_loadf_from_file($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); - $5 = sp; - _stbi__start_file($5,$0); - $6 = (_stbi__loadf_main($5,$1,$2,$3,$4)|0); - STACKTOP = sp;return ($6|0); -} -function _LoadDDS($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$0101111 = 0, $$0102114 = 0, $$0103112 = 0, $$sink = 0, $$sink2 = 0, $$sroa$0$0 = 0, $$sroa$0$1 = 0, $$sroa$0$2 = 0, $$sroa$0$3 = 0, $$sroa$28$0 = 0, $$sroa$28$0$$sroa_idx61 = 0, $$sroa$28$1 = 0, $$sroa$42$0 = 0, $$sroa$42$0$$sroa_idx75 = 0, $$sroa$42$1 = 0, $$sroa$56$0 = 0, $$sroa$56$0$$sroa_idx89 = 0, $$sroa$56$1 = 0, $$sroa$57$0 = 0; - var $$sroa$57$0$$sroa_idx91 = 0, $$sroa$57$2 = 0, $$sroa$57$3 = 0, $$sroa$57$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; - var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; - var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; - var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, $exitcond = 0, $exitcond117 = 0, $or$cond = 0, $or$cond106 = 0, $or$cond108 = 0, $switch = 0, $switch$split282D = 0, $switch$split2D = 0, $switch$split312D = 0; - var $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer12 = 0, $vararg_buffer16 = 0, $vararg_buffer20 = 0, $vararg_buffer24 = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr19 = 0, $vararg_ptr23 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); - $vararg_buffer24 = sp + 56|0; - $vararg_buffer20 = sp + 48|0; - $vararg_buffer16 = sp + 40|0; - $vararg_buffer12 = sp + 32|0; - $vararg_buffer8 = sp + 24|0; - $vararg_buffer4 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 184|0; - $3 = sp + 60|0; - $4 = (_fopen($1,8986)|0); - $5 = ($4|0)==(0|0); - if ($5) { - HEAP32[$vararg_buffer>>2] = $1; - _TraceLog(1,6448,$vararg_buffer); - $$sroa$0$3 = 0;$$sroa$28$1 = 0;$$sroa$42$1 = 0;$$sroa$56$1 = 0;$$sroa$57$4 = 0; - HEAP32[$0>>2] = $$sroa$0$3; - $$sroa$28$0$$sroa_idx61 = ((($0)) + 4|0); - HEAP32[$$sroa$28$0$$sroa_idx61>>2] = $$sroa$28$1; - $$sroa$42$0$$sroa_idx75 = ((($0)) + 8|0); - HEAP32[$$sroa$42$0$$sroa_idx75>>2] = $$sroa$42$1; - $$sroa$56$0$$sroa_idx89 = ((($0)) + 12|0); - HEAP32[$$sroa$56$0$$sroa_idx89>>2] = $$sroa$56$1; - $$sroa$57$0$$sroa_idx91 = ((($0)) + 16|0); - HEAP32[$$sroa$57$0$$sroa_idx91>>2] = $$sroa$57$4; - STACKTOP = sp;return; - } - (_fread($2,4,1,$4)|0); - $6 = (_strncmp($2,6482,4)|0); - $7 = ($6|0)==(0); - if ($7) { - (_fread($3,124,1,$4)|0); - HEAP32[$vararg_buffer4>>2] = $1; - $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); - HEAP32[$vararg_ptr7>>2] = 124; - _TraceLog(3,6535,$vararg_buffer4); - $8 = ((($3)) + 72|0); - $9 = HEAP32[$8>>2]|0; - HEAP32[$vararg_buffer8>>2] = $1; - $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); - HEAP32[$vararg_ptr11>>2] = $9; - _TraceLog(3,6565,$vararg_buffer8); - $10 = ((($3)) + 76|0); - $11 = HEAP32[$10>>2]|0; - HEAP32[$vararg_buffer12>>2] = $1; - $vararg_ptr15 = ((($vararg_buffer12)) + 4|0); - HEAP32[$vararg_ptr15>>2] = $11; - _TraceLog(3,6601,$vararg_buffer12); - $12 = ((($3)) + 80|0); - $13 = HEAP32[$12>>2]|0; - HEAP32[$vararg_buffer16>>2] = $1; - $vararg_ptr19 = ((($vararg_buffer16)) + 4|0); - HEAP32[$vararg_ptr19>>2] = $13; - _TraceLog(3,6640,$vararg_buffer16); - $14 = ((($3)) + 84|0); - $15 = HEAP32[$14>>2]|0; - HEAP32[$vararg_buffer20>>2] = $1; - $vararg_ptr23 = ((($vararg_buffer20)) + 4|0); - HEAP32[$vararg_ptr23>>2] = $15; - _TraceLog(3,6667,$vararg_buffer20); - $16 = ((($3)) + 12|0); - $17 = HEAP32[$16>>2]|0; - $18 = ((($3)) + 8|0); - $19 = HEAP32[$18>>2]|0; - $20 = ((($3)) + 24|0); - $21 = HEAP32[$20>>2]|0; - $22 = ($21|0)==(0); - $$sink = $22 ? 1 : $21; - $23 = HEAP32[$14>>2]|0; - $24 = ($23|0)==(16); - L7: do { - if ($24) { - $25 = HEAP32[$10>>2]|0; - switch ($25|0) { - case 64: { - $26 = $17 << 1; - $27 = Math_imul($26, $19)|0; - $28 = (_malloc($27)|0); - (_fread($28,$27,1,$4)|0); - $$sroa$0$0 = $28;$$sroa$57$0 = 3; - break L7; - break; - } - case 65: { - break; - } - default: { - $$sroa$0$0 = 0;$$sroa$57$0 = 0; - break L7; - } - } - $29 = ((($3)) + 100|0); - $30 = HEAP32[$29>>2]|0; - $switch$split2D = ($30|0)<(61440); - if ($switch$split2D) { - switch ($30|0) { - case 32768: { - break; - } - default: { - $$sroa$0$0 = 0;$$sroa$57$0 = 0; - break L7; - } - } - $31 = Math_imul($19, $17)|0; - $32 = $31 << 1; - $33 = (_malloc($32)|0); - (_fread($33,$32,1,$4)|0); - $34 = ($31|0)>(0); - if ($34) { - $$0103112 = 0; - } else { - $$sroa$0$0 = $33;$$sroa$57$0 = 5; - break; - } - while(1) { - $35 = (($33) + ($$0103112<<1)|0); - $36 = HEAP16[$35>>1]|0; - $37 = $36&65535; - $38 = ($36&65535) >>> 15; - $39 = $38&65535; - $40 = $37 << 1; - $41 = $40 | $39; - $42 = $41&65535; - HEAP16[$35>>1] = $42; - $43 = (($$0103112) + 1)|0; - $exitcond = ($43|0)==($31|0); - if ($exitcond) { - $$sroa$0$0 = $33;$$sroa$57$0 = 5; - break; - } else { - $$0103112 = $43; - } - } - } else { - switch ($30|0) { - case 61440: { - break; - } - default: { - $$sroa$0$0 = 0;$$sroa$57$0 = 0; - break L7; - } - } - $44 = Math_imul($19, $17)|0; - $45 = $44 << 1; - $46 = (_malloc($45)|0); - (_fread($46,$45,1,$4)|0); - $47 = ($44|0)>(0); - if ($47) { - $$0102114 = 0; - } else { - $$sroa$0$0 = $46;$$sroa$57$0 = 6; - break; - } - while(1) { - $48 = (($46) + ($$0102114<<1)|0); - $49 = HEAP16[$48>>1]|0; - $50 = $49&65535; - $51 = ($49&65535) >>> 12; - $52 = $51&65535; - $53 = $50 << 4; - $54 = $53 | $52; - $55 = $54&65535; - HEAP16[$48>>1] = $55; - $56 = (($$0102114) + 1)|0; - $exitcond117 = ($56|0)==($44|0); - if ($exitcond117) { - $$sroa$0$0 = $46;$$sroa$57$0 = 6; - break; - } else { - $$0102114 = $56; - } - } - } - } else { - $$sroa$0$0 = 0;$$sroa$57$0 = 0; - } - } while(0); - $57 = HEAP32[$10>>2]|0; - $58 = ($57|0)==(64); - $59 = HEAP32[$14>>2]|0; - $60 = ($59|0)==(24); - $or$cond = $58 & $60; - L22: do { - if ($or$cond) { - $61 = ($17*3)|0; - $62 = Math_imul($61, $19)|0; - $63 = (_malloc($62)|0); - (_fread($63,$62,1,$4)|0); - $$sroa$0$1 = $63;$$sroa$57$2 = 4; - } else { - $64 = ($57|0)==(65); - $65 = ($59|0)==(32); - $or$cond106 = $64 & $65; - if ($or$cond106) { - $66 = $17 << 2; - $67 = Math_imul($66, $19)|0; - $68 = (_malloc($67)|0); - (_fread($68,$67,1,$4)|0); - $69 = ($67|0)>(0); - if ($69) { - $$0101111 = 0; - } else { - $$sroa$0$1 = $68;$$sroa$57$2 = 7; - break; - } - while(1) { - $70 = (($68) + ($$0101111)|0); - $71 = HEAP8[$70>>0]|0; - $72 = $$0101111 | 2; - $73 = (($68) + ($72)|0); - $74 = HEAP8[$73>>0]|0; - HEAP8[$70>>0] = $74; - HEAP8[$73>>0] = $71; - $75 = (($$0101111) + 4)|0; - $76 = ($75|0)<($67|0); - if ($76) { - $$0101111 = $75; - } else { - $$sroa$0$1 = $68;$$sroa$57$2 = 7; - break L22; - } - } - } - $77 = $57 & -2; - $switch = ($77|0)!=(4); - $78 = HEAP32[$12>>2]|0; - $79 = ($78|0)==(0); - $or$cond108 = $switch | $79; - if ($or$cond108) { - $$sroa$0$1 = $$sroa$0$0;$$sroa$57$2 = $$sroa$57$0; - } else { - $80 = HEAP32[$20>>2]|0; - $81 = ($80>>>0)>(1); - $82 = ((($3)) + 16|0); - $83 = HEAP32[$82>>2]|0; - $84 = $81&1; - $$0 = $83 << $84; - HEAP32[$vararg_buffer24>>2] = $83; - _TraceLog(3,6697,$vararg_buffer24); - $85 = (_malloc($$0)|0); - (_fread($85,$$0,1,$4)|0); - $86 = HEAP32[$12>>2]|0; - $switch$split282D = ($86|0)<(861165636); - if ($switch$split282D) { - switch ($86|0) { - case 827611204: { - break; - } - default: { - $$sroa$0$1 = $85;$$sroa$57$2 = $$sroa$57$0; - break L22; - } - } - $87 = HEAP32[$10>>2]|0; - $88 = ($87|0)==(4); - $$sink2 = $88 ? 9 : 10; - $$sroa$0$1 = $85;$$sroa$57$2 = $$sink2; - break; - } - $switch$split312D = ($86|0)<(894720068); - if ($switch$split312D) { - switch ($86|0) { - case 861165636: { - break; - } - default: { - $$sroa$0$1 = $85;$$sroa$57$2 = $$sroa$57$0; - break L22; - } - } - $$sroa$0$1 = $85;$$sroa$57$2 = 11; - break; - } else { - switch ($86|0) { - case 894720068: { - break; - } - default: { - $$sroa$0$1 = $85;$$sroa$57$2 = $$sroa$57$0; - break L22; - } - } - $$sroa$0$1 = $85;$$sroa$57$2 = 12; - break; - } - } - } - } while(0); - $$sroa$0$2 = $$sroa$0$1;$$sroa$28$0 = $17;$$sroa$42$0 = $19;$$sroa$56$0 = $$sink;$$sroa$57$3 = $$sroa$57$2; - } else { - HEAP32[$vararg_buffer1>>2] = $1; - _TraceLog(1,6487,$vararg_buffer1); - $$sroa$0$2 = 0;$$sroa$28$0 = 0;$$sroa$42$0 = 0;$$sroa$56$0 = 0;$$sroa$57$3 = 0; - } - (_fclose($4)|0); - $$sroa$0$3 = $$sroa$0$2;$$sroa$28$1 = $$sroa$28$0;$$sroa$42$1 = $$sroa$42$0;$$sroa$56$1 = $$sroa$56$0;$$sroa$57$4 = $$sroa$57$3; - HEAP32[$0>>2] = $$sroa$0$3; - $$sroa$28$0$$sroa_idx61 = ((($0)) + 4|0); - HEAP32[$$sroa$28$0$$sroa_idx61>>2] = $$sroa$28$1; - $$sroa$42$0$$sroa_idx75 = ((($0)) + 8|0); - HEAP32[$$sroa$42$0$$sroa_idx75>>2] = $$sroa$42$1; - $$sroa$56$0$$sroa_idx89 = ((($0)) + 12|0); - HEAP32[$$sroa$56$0$$sroa_idx89>>2] = $$sroa$56$1; - $$sroa$57$0$$sroa_idx91 = ((($0)) + 16|0); - HEAP32[$$sroa$57$0$$sroa_idx91>>2] = $$sroa$57$4; - STACKTOP = sp;return; -} -function _stbi__start_file($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - _stbi__start_callbacks($0,3596,$1); - return; -} -function _stbi__loadf_main($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = (_stbi__hdr_test($0)|0); - $6 = ($5|0)==(0); - if (!($6)) { - $7 = (_stbi__hdr_load($0,$1,$2,$3,$4)|0); - $8 = ($7|0)==(0|0); - if ($8) { - $$0 = 0; - return ($$0|0); - } - _stbi__float_postprocess($7,$1,$2,$3,$4); - $$0 = $7; - return ($$0|0); - } - $9 = (_stbi__load_and_postprocess_8bit($0,$1,$2,$3,$4)|0); - $10 = ($9|0)==(0|0); - if ($10) { - _stbi__err(6722); - $$0 = 0; - return ($$0|0); - } - $11 = HEAP32[$1>>2]|0; - $12 = HEAP32[$2>>2]|0; - $13 = ($4|0)==(0); - if ($13) { - $14 = HEAP32[$3>>2]|0; - $15 = $14; - } else { - $15 = $4; - } - $16 = (_stbi__ldr_to_hdr($9,$11,$12,$15)|0); - $$0 = $16; - return ($$0|0); -} -function _stbi__hdr_test($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (_stbi__hdr_test_core($0,8328)|0); - _stbi__rewind($0); - $2 = ($1|0)==(0); - if (!($2)) { - $$0 = $1; - return ($$0|0); - } - $3 = (_stbi__hdr_test_core($0,8340)|0); - _stbi__rewind($0); - $$0 = $3; - return ($$0|0); -} -function _stbi__hdr_load($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$ = 0, $$$0142 = 0, $$014033 = 0, $$014253 = 0, $$014344 = 0, $$014538 = 0, $$0146 = 0, $$0150 = 0, $$114131 = 0, $$1144 = 0, $$1147 = 0, $$1151 = 0, $$2148 = 0, $$2152$be = 0, $$215236 = 0, $$3 = 0, $$314943 = 0, $$315332 = 0, $$430 = 0, $$540 = 0; - var $$lcssa29 = 0, $$off = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $12 = 0, $13 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0; - var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0; - var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0; - var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond87 = 0, $exitcond88 = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond3$not = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1040|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1040|0); - $5 = sp + 16|0; - $6 = sp; - $7 = sp + 4|0; - $8 = sp + 8|0; - $9 = (_stbi__hdr_gettoken($0,$5)|0); - $10 = (_strcmp($9,8188)|0); - $11 = ($10|0)==(0); - if (!($11)) { - $12 = (_strcmp($9,8199)|0); - $13 = ($12|0)==(0); - if (!($13)) { - _stbi__err(8206); - $$3 = 0; - STACKTOP = sp;return ($$3|0); - } - } - $14 = (_stbi__hdr_gettoken($0,$5)|0); - HEAP32[$6>>2] = $14; - $15 = HEAP8[$14>>0]|0; - $16 = ($15<<24>>24)==(0); - if (!($16)) { - $$014253 = 0;$17 = $5; - while(1) { - $18 = (_strcmp($17,8214)|0); - $19 = ($18|0)==(0); - $$$0142 = $19 ? 1 : $$014253; - $20 = (_stbi__hdr_gettoken($0,$5)|0); - $21 = HEAP8[$20>>0]|0; - $22 = ($21<<24>>24)==(0); - if ($22) { - break; - } else { - $$014253 = $$$0142;$17 = $5; - } - } - HEAP32[$6>>2] = $20; - $23 = ($$$0142|0)==(0); - if (!($23)) { - $24 = (_stbi__hdr_gettoken($0,$5)|0); - HEAP32[$6>>2] = $24; - $25 = (_strncmp($24,8256,3)|0); - $26 = ($25|0)==(0); - if (!($26)) { - _stbi__err(8260); - $$3 = 0; - STACKTOP = sp;return ($$3|0); - } - $27 = ((($5)) + 3|0); - HEAP32[$6>>2] = $27; - $28 = (_strtol($27,$6,10)|0); - $29 = HEAP32[$6>>2]|0; - $30 = HEAP8[$29>>0]|0; - $31 = ($30<<24>>24)==(32); - if ($31) { - $33 = $29; - while(1) { - $32 = ((($33)) + 1|0); - $34 = HEAP8[$32>>0]|0; - $35 = ($34<<24>>24)==(32); - if ($35) { - $33 = $32; - } else { - break; - } - } - HEAP32[$6>>2] = $32; - $$lcssa29 = $32; - } else { - $$lcssa29 = $29; - } - $36 = (_strncmp($$lcssa29,8284,3)|0); - $37 = ($36|0)==(0); - if (!($37)) { - _stbi__err(8260); - $$3 = 0; - STACKTOP = sp;return ($$3|0); - } - $38 = ((($$lcssa29)) + 3|0); - HEAP32[$6>>2] = $38; - $39 = (_strtol($38,0,10)|0); - HEAP32[$1>>2] = $39; - HEAP32[$2>>2] = $28; - $40 = ($3|0)==(0|0); - if (!($40)) { - HEAP32[$3>>2] = 3; - } - $41 = ($4|0)==(0); - $$ = $41 ? 3 : $4; - $42 = (_stbi__mad4sizes_valid($39,$28,$$)|0); - $43 = ($42|0)==(0); - if ($43) { - _stbi__err(6946); - $$3 = 0; - STACKTOP = sp;return ($$3|0); - } - $44 = (_stbi__malloc_mad4($39,$28,$$)|0); - $45 = ($44|0)==(0|0); - if ($45) { - _stbi__err(6741); - $$3 = 0; - STACKTOP = sp;return ($$3|0); - } - $$off = (($39) + -8)|0; - $46 = ($$off>>>0)>(32759); - do { - if ($46) { - $$0146 = 0; - label = 23; - } else { - $47 = ($28|0)>(0); - if ($47) { - $$014344 = 0;$$314943 = 0; - } else { - $$3 = $44; - STACKTOP = sp;return ($$3|0); - } - L39: while(1) { - $57 = (_stbi__get8($0)|0); - $58 = (_stbi__get8($0)|0); - $59 = (_stbi__get8($0)|0); - $60 = $59&255; - $notlhs = ($57<<24>>24)==(2); - $notrhs = ($58<<24>>24)==(2); - $or$cond3$not = $notlhs & $notrhs; - $61 = $60 & 128; - $62 = ($61|0)==(0); - $or$cond = $or$cond3$not & $62; - if (!($or$cond)) { - label = 28; - break; - } - $67 = $60 << 8; - $68 = (_stbi__get8($0)|0); - $69 = $68&255; - $70 = $69 | $67; - $71 = ($70|0)==($39|0); - if (!($71)) { - label = 30; - break; - } - $72 = ($$014344|0)==(0|0); - if ($72) { - $73 = (_stbi__malloc_mad2($39,4)|0); - $74 = ($73|0)==(0|0); - if ($74) { - label = 33; - break; - } else { - $$1144 = $73; - } - } else { - $$1144 = $$014344; - } - $$014538 = 0; - while(1) { - $$215236 = 0;$87 = $39; - while(1) { - $82 = (_stbi__get8($0)|0); - $79 = $82&255; - $83 = ($82&255)>(128); - do { - if ($83) { - $84 = (_stbi__get8($0)|0); - $85 = (($79) + 128)|0; - $77 = $85 & 255; - $86 = ($77|0)>($87|0); - if ($86) { - label = 43; - break L39; - } - $88 = ($77|0)==(0); - if ($88) { - $$2152$be = $$215236; - break; - } else { - $$014033 = 0;$$315332 = $$215236; - } - while(1) { - $89 = (($$315332) + 1)|0; - $90 = $$315332 << 2; - $91 = (($90) + ($$014538))|0; - $92 = (($$1144) + ($91)|0); - HEAP8[$92>>0] = $84; - $93 = (($$014033) + 1)|0; - $exitcond87 = ($93|0)==($77|0); - if ($exitcond87) { - break; - } else { - $$014033 = $93;$$315332 = $89; - } - } - $76 = (($$215236) + ($77))|0; - $$2152$be = $76; - } else { - $94 = ($79|0)>($87|0); - if ($94) { - label = 47; - break L39; - } - $95 = ($82<<24>>24)==(0); - if ($95) { - $$2152$be = $$215236; - break; - } else { - $$114131 = 0;$$430 = $$215236; - } - while(1) { - $96 = (_stbi__get8($0)|0); - $97 = (($$430) + 1)|0; - $98 = $$430 << 2; - $99 = (($98) + ($$014538))|0; - $100 = (($$1144) + ($99)|0); - HEAP8[$100>>0] = $96; - $101 = (($$114131) + 1)|0; - $exitcond = ($101|0)==($79|0); - if ($exitcond) { - break; - } else { - $$114131 = $101;$$430 = $97; - } - } - $78 = (($$215236) + ($79))|0; - $$2152$be = $78; - } - } while(0); - $80 = (($39) - ($$2152$be))|0; - $81 = ($80|0)>(0); - if ($81) { - $$215236 = $$2152$be;$87 = $80; - } else { - break; - } - } - $102 = (($$014538) + 1)|0; - $103 = ($102|0)<(4); - if ($103) { - $$014538 = $102; - } else { - break; - } - } - $75 = Math_imul($$314943, $39)|0; - $$540 = 0; - while(1) { - $104 = (($$540) + ($75))|0; - $105 = Math_imul($104, $$)|0; - $106 = (($44) + ($105<<2)|0); - $107 = $$540 << 2; - $108 = (($$1144) + ($107)|0); - _stbi__hdr_convert($106,$108,$$); - $109 = (($$540) + 1)|0; - $exitcond88 = ($109|0)==($39|0); - if ($exitcond88) { - break; - } else { - $$540 = $109; - } - } - $110 = (($$314943) + 1)|0; - $111 = ($110|0)<($28|0); - if ($111) { - $$014344 = $$1144;$$314943 = $110; - } else { - label = 52; - break; - } - } - if ((label|0) == 28) { - HEAP8[$8>>0] = $57; - $63 = ((($8)) + 1|0); - HEAP8[$63>>0] = $58; - $64 = ((($8)) + 2|0); - HEAP8[$64>>0] = $59; - $65 = (_stbi__get8($0)|0); - $66 = ((($8)) + 3|0); - HEAP8[$66>>0] = $65; - _stbi__hdr_convert($44,$8,$$); - _free($$014344); - $$1151 = 1;$$2148 = 0; - label = 25; - break; - } - else if ((label|0) == 30) { - _free($44); - _free($$014344); - _stbi__err(8288); - $$3 = 0; - STACKTOP = sp;return ($$3|0); - } - else if ((label|0) == 33) { - _free($44); - _stbi__err(6741); - $$3 = 0; - STACKTOP = sp;return ($$3|0); - } - else if ((label|0) == 43) { - _free($44); - _free($$1144); - _stbi__err(8320); - $$3 = 0; - STACKTOP = sp;return ($$3|0); - } - else if ((label|0) == 47) { - _free($44); - _free($$1144); - _stbi__err(8320); - $$3 = 0; - STACKTOP = sp;return ($$3|0); - } - else if ((label|0) == 52) { - $112 = ($$1144|0)==(0|0); - if ($112) { - $$3 = $44; - STACKTOP = sp;return ($$3|0); - } - _free($$1144); - $$3 = $44; - STACKTOP = sp;return ($$3|0); - } - } - } while(0); - while(1) { - if ((label|0) == 23) { - label = 0; - $48 = ($$0146|0)<($28|0); - if ($48) { - $$0150 = 0;$$1147 = $$0146; - } else { - $$3 = $44; - break; - } - } - else if ((label|0) == 25) { - label = 0; - (_stbi__getn($0,$7,4)|0); - $50 = Math_imul($39, $$)|0; - $51 = Math_imul($50, $$2148)|0; - $52 = (($44) + ($51<<2)|0); - $53 = Math_imul($$1151, $$)|0; - $54 = (($52) + ($53<<2)|0); - _stbi__hdr_convert($54,$7,$$); - $55 = (($$1151) + 1)|0; - $$0150 = $55;$$1147 = $$2148; - } - $49 = ($$0150|0)<($39|0); - if ($49) { - $$1151 = $$0150;$$2148 = $$1147; - label = 25; - continue; - } - $56 = (($$1147) + 1)|0; - $$0146 = $56; - label = 23; - } - STACKTOP = sp;return ($$3|0); - } - } - _stbi__err(8237); - $$3 = 0; - STACKTOP = sp;return ($$3|0); -} -function _stbi__float_postprocess($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = HEAP32[5094]|0; - $6 = ($5|0)!=(0); - $7 = ($0|0)!=(0|0); - $or$cond = $7 & $6; - if (!($or$cond)) { - return; - } - $8 = ($4|0)==(0); - if ($8) { - $9 = HEAP32[$3>>2]|0; - $13 = $9; - } else { - $13 = $4; - } - $10 = HEAP32[$1>>2]|0; - $11 = HEAP32[$2>>2]|0; - $12 = $13 << 2; - _stbi__vertical_flip($0,$10,$11,$12); - return; -} -function _stbi__load_and_postprocess_8bit($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0 = 0, $$023 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $5 = sp; - $6 = (_stbi__load_main($0,$1,$2,$3,$4,$5)|0); - $7 = ($6|0)==(0|0); - if ($7) { - $$0 = 0; - STACKTOP = sp;return ($$0|0); - } - $8 = HEAP32[$5>>2]|0; - switch ($8|0) { - case 8: { - $$023 = $6; - break; - } - case 16: { - label = 4; - break; - } - default: { - ___assert_fail((6750|0),(6776|0),1066,(6799|0)); - // unreachable; - } - } - if ((label|0) == 4) { - $9 = HEAP32[$1>>2]|0; - $10 = HEAP32[$2>>2]|0; - $11 = ($4|0)==(0); - if ($11) { - $12 = HEAP32[$3>>2]|0; - $13 = $12; - } else { - $13 = $4; - } - $14 = (_stbi__convert_16_to_8($6,$9,$10,$13)|0); - HEAP32[$5>>2] = 8; - $$023 = $14; - } - $15 = HEAP32[5094]|0; - $16 = ($15|0)==(0); - if ($16) { - $$0 = $$023; - STACKTOP = sp;return ($$0|0); - } - $17 = ($4|0)==(0); - if ($17) { - $18 = HEAP32[$3>>2]|0; - $21 = $18; - } else { - $21 = $4; - } - $19 = HEAP32[$1>>2]|0; - $20 = HEAP32[$2>>2]|0; - _stbi__vertical_flip($$023,$19,$20,$21); - $$0 = $$023; - STACKTOP = sp;return ($$0|0); -} -function _stbi__ldr_to_hdr($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$0 = 0, $$042 = 0, $$043$lcssa = 0, $$04345 = 0, $$04446 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0; - var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0.0, $34 = 0.0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond48 = 0, $sext = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $4 = ($0|0)==(0|0); - if ($4) { - $$0 = 0; - return ($$0|0); - } - $5 = (_stbi__malloc_mad4($1,$2,$3)|0); - $6 = ($5|0)==(0|0); - if ($6) { - _free($0); - _stbi__err(6741); - $$0 = 0; - return ($$0|0); - } - $7 = $3 & 1; - $sext = (($3) + -1)|0; - $$042 = (($sext) + ($7))|0; - $8 = Math_imul($2, $1)|0; - $9 = ($8|0)>(0); - if ($9) { - $10 = ($$042|0)>(0); - $11 = +HEAPF32[741]; - $12 = $11; - $13 = +HEAPF32[742]; - $14 = $13; - $$04446 = 0; - while(1) { - if ($10) { - $15 = Math_imul($$04446, $3)|0; - $$04345 = 0; - while(1) { - $16 = (($$04345) + ($15))|0; - $17 = (($0) + ($16)|0); - $18 = HEAP8[$17>>0]|0; - $19 = (+($18&255)); - $20 = $19 / 255.0; - $21 = $20; - $22 = (+Math_pow((+$21),(+$12))); - $23 = $22 * $14; - $24 = $23; - $25 = (($5) + ($16<<2)|0); - HEAPF32[$25>>2] = $24; - $26 = (($$04345) + 1)|0; - $exitcond = ($26|0)==($$042|0); - if ($exitcond) { - $$043$lcssa = $$042; - break; - } else { - $$04345 = $26; - } - } - } else { - $$043$lcssa = 0; - } - $27 = ($$043$lcssa|0)<($3|0); - $28 = Math_imul($$04446, $3)|0; - $29 = (($$043$lcssa) + ($28))|0; - if ($27) { - $30 = (($5) + ($29<<2)|0); - $31 = (($0) + ($29)|0); - $32 = HEAP8[$31>>0]|0; - $33 = (+($32&255)); - $34 = $33 / 255.0; - HEAPF32[$30>>2] = $34; - } - $35 = (($$04446) + 1)|0; - $exitcond48 = ($35|0)==($8|0); - if ($exitcond48) { - break; - } else { - $$04446 = $35; - } - } - } - _free($0); - $$0 = $5; - return ($$0|0); -} -function _stbi__err($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - HEAP32[5093] = $0; - return; -} -function _stbi__malloc_mad4($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (_stbi__mad4sizes_valid($0,$1,$2)|0); - $4 = ($3|0)==(0); - if ($4) { - $$0 = 0; - return ($$0|0); - } - $5 = $0 << 2; - $6 = Math_imul($5, $1)|0; - $7 = Math_imul($6, $2)|0; - $8 = (_stbi__malloc($7)|0); - $$0 = $8; - return ($$0|0); -} -function _stbi__mad4sizes_valid($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (_stbi__mul2sizes_valid($0,$1)|0); - $4 = ($3|0)==(0); - if ($4) { - $15 = 0; - } else { - $5 = Math_imul($1, $0)|0; - $6 = (_stbi__mul2sizes_valid($5,$2)|0); - $7 = ($6|0)==(0); - if ($7) { - $15 = 0; - } else { - $8 = Math_imul($5, $2)|0; - $9 = (_stbi__mul2sizes_valid($8,4)|0); - $10 = ($9|0)==(0); - if ($10) { - $15 = 0; - } else { - $11 = $8 << 2; - $12 = (_stbi__addsizes_valid($11)|0); - $13 = ($12|0)!=(0); - $15 = $13; - } - } - } - $14 = $15&1; - return ($14|0); -} -function _stbi__malloc($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (_malloc($0)|0); - return ($1|0); -} -function _stbi__mul2sizes_valid($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = $1 | $0; - $3 = ($2|0)<(0); - if ($3) { - $$0 = 0; - } else { - $4 = ($1|0)==(0); - if ($4) { - $$0 = 1; - } else { - $5 = (2147483647 / ($1|0))&-1; - $6 = ($5|0)>=($0|0); - $7 = $6&1; - $$0 = $7; - } - } - return ($$0|0); -} -function _stbi__addsizes_valid($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return 1; -} -function _stbi__load_main($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAP32[$5>>2] = 8; - $6 = ((($5)) + 8|0); - HEAP32[$6>>2] = 0; - $7 = ((($5)) + 4|0); - HEAP32[$7>>2] = 0; - $8 = (_stbi__png_test($0)|0); - $9 = ($8|0)==(0); - if (!($9)) { - $10 = (_stbi__png_load($0,$1,$2,$3,$4,$5)|0); - $$0 = $10; - return ($$0|0); - } - $11 = (_stbi__hdr_test($0)|0); - $12 = ($11|0)==(0); - if ($12) { - _stbi__err(6722); - $$0 = 0; - return ($$0|0); - } - $13 = (_stbi__hdr_load($0,$1,$2,$3,$4)|0); - $14 = HEAP32[$1>>2]|0; - $15 = HEAP32[$2>>2]|0; - $16 = ($4|0)==(0); - if ($16) { - $17 = HEAP32[$3>>2]|0; - $18 = $17; - } else { - $18 = $4; - } - $19 = (_stbi__hdr_to_ldr($13,$14,$15,$18)|0); - $$0 = $19; - return ($$0|0); -} -function _stbi__convert_16_to_8($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$0 = 0, $$01819 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = Math_imul($2, $1)|0; - $5 = Math_imul($4, $3)|0; - $6 = (_stbi__malloc($5)|0); - $7 = ($6|0)==(0|0); - if ($7) { - _stbi__err(6741); - $$0 = 0; - return ($$0|0); - } - $8 = ($5|0)>(0); - if ($8) { - $$01819 = 0; - while(1) { - $9 = (($0) + ($$01819<<1)|0); - $10 = HEAP16[$9>>1]|0; - $11 = ($10&65535) >>> 8; - $12 = $11&255; - $13 = (($6) + ($$01819)|0); - HEAP8[$13>>0] = $12; - $14 = (($$01819) + 1)|0; - $exitcond = ($14|0)==($5|0); - if ($exitcond) { - break; - } else { - $$01819 = $14; - } - } - } - _free($0); - $$0 = $6; - return ($$0|0); -} -function _stbi__vertical_flip($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$04553 = 0, $$04652 = 0, $$04751 = 0, $$054 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 2048|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2048|0); - $4 = sp; - $5 = Math_imul($3, $1)|0; - $6 = $2 >> 1; - $7 = ($6|0)>(0); - if (!($7)) { - STACKTOP = sp;return; - } - $8 = (($2) + -1)|0; - $9 = ($5|0)==(0); - $$054 = 0; - while(1) { - if (!($9)) { - $10 = (($8) - ($$054))|0; - $11 = Math_imul($10, $5)|0; - $12 = (($0) + ($11)|0); - $13 = Math_imul($$054, $5)|0; - $14 = (($0) + ($13)|0); - $$04553 = $5;$$04652 = $12;$$04751 = $14; - while(1) { - $15 = ($$04553>>>0)<(2048); - $16 = $15 ? $$04553 : 2048; - _memcpy(($4|0),($$04751|0),($16|0))|0; - _memcpy(($$04751|0),($$04652|0),($16|0))|0; - _memcpy(($$04652|0),($4|0),($16|0))|0; - $17 = (($$04751) + ($16)|0); - $18 = (($$04652) + ($16)|0); - $19 = (($$04553) - ($16))|0; - $20 = ($19|0)==(0); - if ($20) { - break; - } else { - $$04553 = $19;$$04652 = $18;$$04751 = $17; - } - } - } - $21 = (($$054) + 1)|0; - $exitcond = ($21|0)==($6|0); - if ($exitcond) { - break; - } else { - $$054 = $21; - } - } - STACKTOP = sp;return; -} -function _stbi__png_test($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (_stbi__check_png_header($0)|0); - _stbi__rewind($0); - return ($1|0); -} -function _stbi__png_load($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $6 = sp; - HEAP32[$6>>2] = $0; - $7 = (_stbi__do_png($6,$1,$2,$3,$4,$5)|0); - STACKTOP = sp;return ($7|0); -} -function _stbi__hdr_to_ldr($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$0 = 0.0, $$052 = 0.0, $$054 = 0, $$055 = 0, $$056$lcssa = 0, $$05658 = 0, $$05759 = 0, $$1 = 0.0, $$153 = 0.0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0; - var $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; - var $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond61 = 0, $sext = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ($0|0)==(0|0); - if ($4) { - $$054 = 0; - return ($$054|0); - } - $5 = (_stbi__malloc_mad3($1,$2,$3)|0); - $6 = ($5|0)==(0|0); - if ($6) { - _free($0); - _stbi__err(6741); - $$054 = 0; - return ($$054|0); - } - $7 = $3 & 1; - $sext = (($3) + -1)|0; - $$055 = (($sext) + ($7))|0; - $8 = Math_imul($2, $1)|0; - $9 = ($8|0)>(0); - if ($9) { - $10 = ($$055|0)>(0); - $11 = +HEAPF32[743]; - $12 = +HEAPF32[744]; - $13 = $12; - $$05759 = 0; - while(1) { - if ($10) { - $14 = Math_imul($$05759, $3)|0; - $$05658 = 0; - while(1) { - $15 = (($$05658) + ($14))|0; - $16 = (($0) + ($15<<2)|0); - $17 = +HEAPF32[$16>>2]; - $18 = $17 * $11; - $19 = $18; - $20 = (+Math_pow((+$19),(+$13))); - $21 = $20; - $22 = $21 * 255.0; - $23 = $22 + 0.5; - $24 = $23 < 0.0; - $$052 = $24 ? 0.0 : $23; - $25 = $$052 > 255.0; - $$153 = $25 ? 255.0 : $$052; - $26 = (~~(($$153))); - $27 = $26&255; - $28 = (($5) + ($15)|0); - HEAP8[$28>>0] = $27; - $29 = (($$05658) + 1)|0; - $exitcond = ($29|0)==($$055|0); - if ($exitcond) { - $$056$lcssa = $$055; - break; - } else { - $$05658 = $29; - } - } - } else { - $$056$lcssa = 0; - } - $30 = ($$056$lcssa|0)<($3|0); - if ($30) { - $31 = Math_imul($$05759, $3)|0; - $32 = (($$056$lcssa) + ($31))|0; - $33 = (($0) + ($32<<2)|0); - $34 = +HEAPF32[$33>>2]; - $35 = $34 * 255.0; - $36 = $35 + 0.5; - $37 = $36 < 0.0; - $$0 = $37 ? 0.0 : $36; - $38 = $$0 > 255.0; - $$1 = $38 ? 255.0 : $$0; - $39 = (~~(($$1))); - $40 = $39&255; - $41 = (($5) + ($32)|0); - HEAP8[$41>>0] = $40; - } - $42 = (($$05759) + 1)|0; - $exitcond61 = ($42|0)==($8|0); - if ($exitcond61) { - break; - } else { - $$05759 = $42; - } - } - } - _free($0); - $$054 = $5; - return ($$054|0); -} -function _stbi__malloc_mad3($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (_stbi__mad3sizes_valid($0,$1,$2)|0); - $4 = ($3|0)==(0); - if ($4) { - $$0 = 0; - return ($$0|0); - } - $5 = Math_imul($1, $0)|0; - $6 = Math_imul($5, $2)|0; - $7 = (_stbi__malloc($6)|0); - $$0 = $7; - return ($$0|0); -} -function _stbi__mad3sizes_valid($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (_stbi__mul2sizes_valid($0,$1)|0); - $4 = ($3|0)==(0); - if ($4) { - $12 = 0; - } else { - $5 = Math_imul($1, $0)|0; - $6 = (_stbi__mul2sizes_valid($5,$2)|0); - $7 = ($6|0)==(0); - if ($7) { - $12 = 0; - } else { - $8 = Math_imul($5, $2)|0; - $9 = (_stbi__addsizes_valid($8)|0); - $10 = ($9|0)!=(0); - $12 = $10; - } - } - $11 = $12&1; - return ($11|0); -} -function _stbi__do_png($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $$ = 0, $$0 = 0, $$045 = 0, $$1 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $6 = ($4>>>0)>(4); - if ($6) { - _stbi__err(6831); - $$045 = 0; - return ($$045|0); - } - $7 = (_stbi__parse_png_file($0,0,$4)|0); - $8 = ($7|0)==(0); - if ($8) { - $$2 = 0; - } else { - $9 = ((($0)) + 16|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)>(8); - $$ = $11 ? $10 : 8; - HEAP32[$5>>2] = $$; - $12 = ((($0)) + 12|0); - $13 = HEAP32[$12>>2]|0; - HEAP32[$12>>2] = 0; - $14 = ($4|0)==(0); - if ($14) { - $$1 = $13; - } else { - $15 = HEAP32[$0>>2]|0; - $16 = ((($15)) + 12|0); - $17 = HEAP32[$16>>2]|0; - $18 = ($17|0)==($4|0); - if ($18) { - $$1 = $13; - } else { - $19 = HEAP32[$5>>2]|0; - $20 = ($19|0)==(8); - $21 = ((($15)) + 4|0); - $22 = HEAP32[$21>>2]|0; - $23 = HEAP32[$15>>2]|0; - if ($20) { - $24 = (_stbi__convert_format($13,$17,$4,$23,$22)|0); - $$0 = $24; - } else { - $25 = (_stbi__convert_format16($13,$17,$4,$23,$22)|0); - $$0 = $25; - } - $26 = HEAP32[$0>>2]|0; - $27 = ((($26)) + 12|0); - HEAP32[$27>>2] = $4; - $28 = ($$0|0)==(0|0); - if ($28) { - $$045 = 0; - return ($$045|0); - } else { - $$1 = $$0; - } - } - } - $29 = HEAP32[$0>>2]|0; - $30 = HEAP32[$29>>2]|0; - HEAP32[$1>>2] = $30; - $31 = ((($29)) + 4|0); - $32 = HEAP32[$31>>2]|0; - HEAP32[$2>>2] = $32; - $33 = ($3|0)==(0|0); - if ($33) { - $$2 = $$1; - } else { - $34 = ((($29)) + 8|0); - $35 = HEAP32[$34>>2]|0; - HEAP32[$3>>2] = $35; - $$2 = $$1; - } - } - $36 = ((($0)) + 12|0); - $37 = HEAP32[$36>>2]|0; - _free($37); - HEAP32[$36>>2] = 0; - $38 = ((($0)) + 8|0); - $39 = HEAP32[$38>>2]|0; - _free($39); - HEAP32[$38>>2] = 0; - $40 = ((($0)) + 4|0); - $41 = HEAP32[$40>>2]|0; - _free($41); - HEAP32[$40>>2] = 0; - $$045 = $$2; - return ($$045|0); -} -function _stbi__parse_png_file($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $$$0219 = 0, $$0208 = 0, $$0213 = 0, $$0216 = 0, $$0219 = 0, $$0228595 = 0, $$0230 = 0, $$0233 = 0, $$0237 = 0, $$0241593 = 0, $$0243 = 0, $$0247 = 0, $$1209 = 0, $$1214 = 0, $$1217 = 0, $$1220 = 0, $$1229590 = 0, $$1231 = 0, $$1242591 = 0; - var $$1248 = 0, $$2221 = 0, $$2235 = 0, $$2239 = 0, $$2245 = 0, $$256 = 0, $$3211 = 0, $$3222 = 0, $$4 = 0, $$6$ph = 0, $$7 = 0, $$lobit = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0; - var $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0; - var $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0; - var $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0; - var $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0; - var $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0; - var $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0; - var $216 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; - var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; - var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0; - var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0; - var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond11 = 0, $or$cond250 = 0, $or$cond5$not = 0, $or$cond7 = 0, $switch$split112D = 0, $switch$split142D = 0, $switch$split2D = 0, $switch$split52D = 0, $switch$split82D = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); - $3 = sp + 32|0; - $4 = sp + 22|0; - $5 = sp + 16|0; - $6 = sp + 8|0; - $7 = sp; - $8 = HEAP32[$0>>2]|0; - $9 = ((($0)) + 8|0); - HEAP32[$9>>2] = 0; - $10 = ((($0)) + 4|0); - HEAP32[$10>>2] = 0; - $11 = ((($0)) + 12|0); - HEAP32[$11>>2] = 0; - $12 = (_stbi__check_png_header($8)|0); - $13 = ($12|0)==(0); - if ($13) { - $$7 = 0; - STACKTOP = sp;return ($$7|0); - } - $14 = ($1|0)==(1); - if ($14) { - $$7 = 1; - STACKTOP = sp;return ($$7|0); - } - $15 = ((($6)) + 4|0); - $16 = ((($8)) + 4|0); - $17 = ((($0)) + 16|0); - $18 = ((($8)) + 8|0); - $19 = ($1|0)==(2); - $20 = ((($8)) + 8|0); - $21 = ((($8)) + 8|0); - $22 = ((($0)) + 16|0); - $23 = ($1|0)==(2); - $24 = ($1|0)==(2); - $$0208 = 0;$$0213 = 0;$$0216 = 0;$$0219 = 0;$$0230 = 0;$$0233 = 0;$$0237 = 0;$$0243 = 1;$$0247 = 0; - L7: while(1) { - _stbi__get_chunk_header($6,$8); - $25 = HEAP32[$15>>2]|0; - $switch$split2D = ($25|0)<(1229472850); - L9: do { - if ($switch$split2D) { - $switch$split52D = ($25|0)<(1229209940); - if ($switch$split52D) { - switch ($25|0) { - case 1130840649: { - break; - } - default: { - label = 105; - break L9; - } - } - $26 = HEAP32[$6>>2]|0; - _stbi__skip($8,$26); - $$1214 = $$0213;$$1217 = $$0216;$$1231 = 1;$$1248 = $$0247;$$2235 = $$0233;$$2239 = $$0237;$$2245 = $$0243;$$3211 = $$0208;$$3222 = $$0219; - break; - } - $switch$split112D = ($25|0)<(1229278788); - if (!($switch$split112D)) { - switch ($25|0) { - case 1229278788: { - label = 85; - break L7; - break; - } - default: { - label = 105; - break L9; - } - } - } - switch ($25|0) { - case 1229209940: { - break; - } - default: { - label = 105; - break L9; - } - } - $130 = ($$0243|0)==(0); - if (!($130)) { - label = 70; - break L7; - } - $131 = ($$0208<<24>>24)==(0); - $132 = ($$0247|0)!=(0); - $or$cond = $132 | $131; - if (!($or$cond)) { - label = 72; - break L7; - } - if ($24) { - label = 74; - break L7; - } - $135 = HEAP32[$6>>2]|0; - $136 = (($135) + ($$0216))|0; - $137 = ($136|0)<($$0216|0); - if ($137) { - $$6$ph = 0; - break L7; - } - $138 = ($136>>>0)>($$0219>>>0); - if ($138) { - $139 = ($$0219|0)==(0); - $140 = ($135>>>0)>(4096); - $141 = $140 ? $135 : 4096; - $$$0219 = $139 ? $141 : $$0219; - $142 = HEAP32[$6>>2]|0; - $143 = (($142) + ($$0216))|0; - $$1220 = $$$0219; - while(1) { - $144 = ($143>>>0)>($$1220>>>0); - $145 = $$1220 << 1; - if ($144) { - $$1220 = $145; - } else { - break; - } - } - $146 = HEAP32[$10>>2]|0; - $147 = (_realloc($146,$$1220)|0); - $148 = ($147|0)==(0|0); - if ($148) { - label = 81; - break L7; - } - HEAP32[$10>>2] = $147; - $$2221 = $$1220; - } else { - $$2221 = $$0219; - } - $149 = HEAP32[$10>>2]|0; - $150 = (($149) + ($$0216)|0); - $151 = HEAP32[$6>>2]|0; - $152 = (_stbi__getn($8,$150,$151)|0); - $153 = ($152|0)==(0); - if ($153) { - label = 83; - break L7; - } - $154 = HEAP32[$6>>2]|0; - $155 = (($154) + ($$0216))|0; - $$1214 = $$0213;$$1217 = $155;$$1231 = $$0230;$$1248 = $$0247;$$2235 = $$0233;$$2239 = $$0237;$$2245 = $$0243;$$3211 = $$0208;$$3222 = $$2221; - } else { - $switch$split82D = ($25|0)<(1347179589); - if ($switch$split82D) { - switch ($25|0) { - case 1229472850: { - break; - } - default: { - label = 105; - break L9; - } - } - $27 = ($$0243|0)==(0); - if ($27) { - label = 7; - break L7; - } - $28 = HEAP32[$6>>2]|0; - $29 = ($28|0)==(13); - if (!($29)) { - label = 9; - break L7; - } - $30 = (_stbi__get32be($8)|0); - HEAP32[$8>>2] = $30; - $31 = ($30>>>0)>(16777216); - if ($31) { - label = 11; - break L7; - } - $32 = (_stbi__get32be($8)|0); - HEAP32[$16>>2] = $32; - $33 = ($32>>>0)>(16777216); - if ($33) { - label = 13; - break L7; - } - $34 = (_stbi__get8($8)|0); - $35 = $34&255; - HEAP32[$17>>2] = $35; - switch ($34<<24>>24) { - case 16: case 8: case 4: case 2: case 1: { - break; - } - default: { - label = 15; - break L7; - } - } - $36 = (_stbi__get8($8)|0); - $37 = $36&255; - $38 = ($36&255)>(6); - if ($38) { - label = 17; - break L7; - } - $39 = ($36<<24>>24)==(3); - if ($39) { - $40 = HEAP32[$17>>2]|0; - $41 = ($40|0)==(16); - if ($41) { - label = 20; - break L7; - } else { - $$1209 = 3; - } - } else { - $42 = $37 & 1; - $43 = ($42|0)==(0); - if ($43) { - $$1209 = $$0208; - } else { - label = 22; - break L7; - } - } - $44 = (_stbi__get8($8)|0); - $45 = ($44<<24>>24)==(0); - if (!($45)) { - label = 24; - break L7; - } - $46 = (_stbi__get8($8)|0); - $47 = ($46<<24>>24)==(0); - if (!($47)) { - label = 26; - break L7; - } - $48 = (_stbi__get8($8)|0); - $49 = $48&255; - $50 = ($48&255)>(1); - if ($50) { - label = 28; - break L7; - } - $51 = HEAP32[$8>>2]|0; - $52 = ($51|0)==(0); - if ($52) { - label = 31; - break L7; - } - $53 = HEAP32[$16>>2]|0; - $54 = ($53|0)==(0); - if ($54) { - label = 31; - break L7; - } - $55 = ($$1209<<24>>24)==(0); - $56 = (1073741824 / ($51>>>0))&-1; - if (!($55)) { - HEAP32[$20>>2] = 1; - $63 = $56 >>> 2; - $64 = ($63>>>0)<($53>>>0); - if ($64) { - label = 37; - break L7; - } else { - $$1214 = $$0213;$$1217 = $$0216;$$1231 = $$0230;$$1248 = $$0247;$$2235 = $37;$$2239 = $49;$$2245 = 0;$$3211 = $$1209;$$3222 = $$0219; - break; - } - } - $57 = $37 & 2; - $58 = $57 | 1; - $59 = $37 >>> 2; - $$lobit = $59 & 1; - $60 = (($58) + ($$lobit))|0; - HEAP32[$18>>2] = $60; - $61 = (($56>>>0) / ($60>>>0))&-1; - $62 = ($61>>>0)<($53>>>0); - if ($62) { - label = 34; - break L7; - } - if ($19) { - $$6$ph = 1; - break L7; - } else { - $$1214 = $$0213;$$1217 = $$0216;$$1231 = $$0230;$$1248 = $$0247;$$2235 = $37;$$2239 = $49;$$2245 = 0;$$3211 = 0;$$3222 = $$0219; - break; - } - } - $switch$split142D = ($25|0)<(1951551059); - if ($switch$split142D) { - switch ($25|0) { - case 1347179589: { - break; - } - default: { - label = 105; - break L9; - } - } - $65 = ($$0243|0)==(0); - if (!($65)) { - label = 39; - break L7; - } - $66 = HEAP32[$6>>2]|0; - $67 = ($66>>>0)>(768); - if ($67) { - label = 41; - break L7; - } - $68 = (($66>>>0) / 3)&-1; - $69 = ($68*3)|0; - $70 = ($69|0)==($66|0); - if (!($70)) { - label = 44; - break L7; - } - $71 = ($66>>>0)>(2); - if ($71) { - $$0228595 = 0; - } else { - $$1214 = $$0213;$$1217 = $$0216;$$1231 = $$0230;$$1248 = $68;$$2235 = $$0233;$$2239 = $$0237;$$2245 = 0;$$3211 = $$0208;$$3222 = $$0219; - break; - } - while(1) { - $72 = (_stbi__get8($8)|0); - $73 = $$0228595 << 2; - $74 = (($3) + ($73)|0); - HEAP8[$74>>0] = $72; - $75 = (_stbi__get8($8)|0); - $76 = $73 | 1; - $77 = (($3) + ($76)|0); - HEAP8[$77>>0] = $75; - $78 = (_stbi__get8($8)|0); - $79 = $73 | 2; - $80 = (($3) + ($79)|0); - HEAP8[$80>>0] = $78; - $81 = $73 | 3; - $82 = (($3) + ($81)|0); - HEAP8[$82>>0] = -1; - $83 = (($$0228595) + 1)|0; - $84 = ($83>>>0)<($68>>>0); - if ($84) { - $$0228595 = $83; - } else { - $$1214 = $$0213;$$1217 = $$0216;$$1231 = $$0230;$$1248 = $68;$$2235 = $$0233;$$2239 = $$0237;$$2245 = $$0243;$$3211 = $$0208;$$3222 = $$0219; - break L9; - } - } - } - switch ($25|0) { - case 1951551059: { - break; - } - default: { - label = 105; - break L9; - } - } - $85 = ($$0243|0)==(0); - if (!($85)) { - label = 47; - break L7; - } - $86 = HEAP32[$10>>2]|0; - $87 = ($86|0)==(0|0); - if (!($87)) { - label = 49; - break L7; - } - $88 = ($$0208<<24>>24)==(0); - if (!($88)) { - if ($23) { - label = 52; - break L7; - } - $90 = ($$0247|0)==(0); - if ($90) { - label = 54; - break L7; - } - $91 = HEAP32[$6>>2]|0; - $92 = ($91>>>0)>($$0247>>>0); - if ($92) { - label = 58; - break L7; - } - $93 = HEAP32[$6>>2]|0; - $94 = ($93|0)==(0); - if ($94) { - $$1214 = $$0213;$$1217 = $$0216;$$1231 = $$0230;$$1248 = $$0247;$$2235 = $$0233;$$2239 = $$0237;$$2245 = 0;$$3211 = 4;$$3222 = $$0219; - break; - } - $95 = HEAP32[$6>>2]|0; - $$1229590 = 0; - while(1) { - $96 = (_stbi__get8($8)|0); - $97 = $$1229590 << 2; - $98 = $97 | 3; - $99 = (($3) + ($98)|0); - HEAP8[$99>>0] = $96; - $100 = (($$1229590) + 1)|0; - $101 = ($100>>>0)<($95>>>0); - if ($101) { - $$1229590 = $100; - } else { - $$1214 = $$0213;$$1217 = $$0216;$$1231 = $$0230;$$1248 = $$0247;$$2235 = $$0233;$$2239 = $$0237;$$2245 = $$0243;$$3211 = 4;$$3222 = $$0219; - break L9; - } - } - } - $102 = HEAP32[$21>>2]|0; - $103 = $102 & 1; - $104 = ($103|0)==(0); - if ($104) { - label = 61; - break L7; - } - $105 = HEAP32[$6>>2]|0; - $106 = $102 << 1; - $107 = ($105|0)==($106|0); - if (!($107)) { - label = 63; - break L7; - } - $108 = HEAP32[$22>>2]|0; - $109 = ($108|0)==(16); - $110 = HEAP32[$21>>2]|0; - $111 = ($110|0)>(0); - if ($109) { - if ($111) { - $$0241593 = 0; - } else { - $$1214 = 1;$$1217 = $$0216;$$1231 = $$0230;$$1248 = $$0247;$$2235 = $$0233;$$2239 = $$0237;$$2245 = 0;$$3211 = 0;$$3222 = $$0219; - break; - } - while(1) { - $112 = (_stbi__get16be($8)|0); - $113 = $112&65535; - $114 = (($5) + ($$0241593<<1)|0); - HEAP16[$114>>1] = $113; - $115 = (($$0241593) + 1)|0; - $116 = HEAP32[$21>>2]|0; - $117 = ($115|0)<($116|0); - if ($117) { - $$0241593 = $115; - } else { - $$1214 = 1;$$1217 = $$0216;$$1231 = $$0230;$$1248 = $$0247;$$2235 = $$0233;$$2239 = $$0237;$$2245 = $$0243;$$3211 = $$0208;$$3222 = $$0219; - break; - } - } - } else { - if ($111) { - $$1242591 = 0; - } else { - $$1214 = 1;$$1217 = $$0216;$$1231 = $$0230;$$1248 = $$0247;$$2235 = $$0233;$$2239 = $$0237;$$2245 = 0;$$3211 = 0;$$3222 = $$0219; - break; - } - while(1) { - $118 = (_stbi__get16be($8)|0); - $119 = $118 & 255; - $120 = HEAP32[$22>>2]|0; - $121 = (7145 + ($120)|0); - $122 = HEAP8[$121>>0]|0; - $123 = $122&255; - $124 = Math_imul($123, $119)|0; - $125 = $124&255; - $126 = (($4) + ($$1242591)|0); - HEAP8[$126>>0] = $125; - $127 = (($$1242591) + 1)|0; - $128 = HEAP32[$21>>2]|0; - $129 = ($127|0)<($128|0); - if ($129) { - $$1242591 = $127; - } else { - $$1214 = 1;$$1217 = $$0216;$$1231 = $$0230;$$1248 = $$0247;$$2235 = $$0233;$$2239 = $$0237;$$2245 = $$0243;$$3211 = $$0208;$$3222 = $$0219; - break; - } - } - } - } - } while(0); - if ((label|0) == 105) { - label = 0; - $205 = ($$0243|0)==(0); - if (!($205)) { - label = 106; - break; - } - $206 = $25 & 536870912; - $207 = ($206|0)==(0); - if ($207) { - label = 108; - break; - } - $216 = HEAP32[$6>>2]|0; - _stbi__skip($8,$216); - $$1214 = $$0213;$$1217 = $$0216;$$1231 = $$0230;$$1248 = $$0247;$$2235 = $$0233;$$2239 = $$0237;$$2245 = 0;$$3211 = $$0208;$$3222 = $$0219; - } - (_stbi__get32be($8)|0); - $$0208 = $$3211;$$0213 = $$1214;$$0216 = $$1217;$$0219 = $$3222;$$0230 = $$1231;$$0233 = $$2235;$$0237 = $$2239;$$0243 = $$2245;$$0247 = $$1248; - } - switch (label|0) { - case 7: { - _stbi__err(6919); - $$6$ph = 0; - break; - } - case 9: { - _stbi__err(6933); - $$6$ph = 0; - break; - } - case 11: { - _stbi__err(6946); - $$6$ph = 0; - break; - } - case 13: { - _stbi__err(6946); - $$6$ph = 0; - break; - } - case 15: { - _stbi__err(6956); - $$6$ph = 0; - break; - } - case 17: { - _stbi__err(6976); - $$6$ph = 0; - break; - } - case 20: { - _stbi__err(6976); - $$6$ph = 0; - break; - } - case 22: { - _stbi__err(6976); - $$6$ph = 0; - break; - } - case 24: { - _stbi__err(6986); - $$6$ph = 0; - break; - } - case 26: { - _stbi__err(7002); - $$6$ph = 0; - break; - } - case 28: { - _stbi__err(7020); - $$6$ph = 0; - break; - } - case 31: { - _stbi__err(7041); - $$6$ph = 0; - break; - } - case 34: { - _stbi__err(6946); - $$6$ph = 0; - break; - } - case 37: { - _stbi__err(6946); - $$6$ph = 0; - break; - } - case 39: { - _stbi__err(7055); - $$6$ph = 0; - break; - } - case 41: { - _stbi__err(7070); - $$6$ph = 0; - break; - } - case 44: { - _stbi__err(7070); - $$6$ph = 0; - break; - } - case 47: { - _stbi__err(7055); - $$6$ph = 0; - break; - } - case 49: { - _stbi__err(7083); - $$6$ph = 0; - break; - } - case 52: { - $89 = ((($8)) + 8|0); - HEAP32[$89>>2] = 4; - $$6$ph = 1; - break; - } - case 54: { - _stbi__err(7099); - $$6$ph = 0; - break; - } - case 58: { - _stbi__err(7116); - $$6$ph = 0; - break; - } - case 61: { - _stbi__err(7129); - $$6$ph = 0; - break; - } - case 63: { - _stbi__err(7116); - $$6$ph = 0; - break; - } - case 70: { - _stbi__err(7055); - $$6$ph = 0; - break; - } - case 72: { - _stbi__err(7154); - $$6$ph = 0; - break; - } - case 74: { - $133 = $$0208&255; - $134 = ((($8)) + 8|0); - HEAP32[$134>>2] = $133; - $$6$ph = 1; - break; - } - case 81: { - _stbi__err(6741); - $$6$ph = 0; - break; - } - case 83: { - _stbi__err(7162); - $$6$ph = 0; - break; - } - case 85: { - $156 = ($$0243|0)==(0); - do { - if ($156) { - $157 = ($1|0)==(0); - if ($157) { - $158 = HEAP32[$10>>2]|0; - $159 = ($158|0)==(0|0); - if ($159) { - _stbi__err(7172); - $$4 = 0; - break; - } - $160 = HEAP32[$8>>2]|0; - $161 = ((($0)) + 16|0); - $162 = HEAP32[$161>>2]|0; - $163 = Math_imul($162, $160)|0; - $164 = (($163) + 7)|0; - $165 = $164 >>> 3; - $166 = ((($8)) + 4|0); - $167 = HEAP32[$166>>2]|0; - $168 = ((($8)) + 8|0); - $169 = HEAP32[$168>>2]|0; - $170 = Math_imul($169, $167)|0; - $171 = Math_imul($170, $165)|0; - $172 = (($171) + ($167))|0; - HEAP32[$7>>2] = $172; - $173 = ($$0230|0)!=(0); - $174 = $173 ^ 1; - $175 = $174&1; - $176 = (_stbi_zlib_decode_malloc_guesssize_headerflag($158,$$0216,$172,$7,$175)|0); - HEAP32[$9>>2] = $176; - $177 = ($176|0)==(0|0); - if ($177) { - $$4 = 0; - } else { - $178 = HEAP32[$10>>2]|0; - _free($178); - HEAP32[$10>>2] = 0; - $179 = HEAP32[$168>>2]|0; - $180 = (($179) + 1)|0; - $notlhs = ($180|0)!=($2|0); - $notrhs = ($2|0)==(3); - $or$cond5$not = $notrhs | $notlhs; - $181 = ($$0208<<24>>24)!=(0); - $or$cond7 = $181 | $or$cond5$not; - $182 = ($$0213<<24>>24)==(0); - $or$cond250 = $182 & $or$cond7; - $$256 = $or$cond250 ? $179 : $180; - $183 = ((($8)) + 12|0); - HEAP32[$183>>2] = $$256; - $184 = HEAP32[$9>>2]|0; - $185 = HEAP32[$7>>2]|0; - $186 = HEAP32[$161>>2]|0; - $187 = (_stbi__create_png_image($0,$184,$185,$$256,$186,$$0233,$$0237)|0); - $188 = ($187|0)==(0); - if ($188) { - $$4 = 0; - } else { - $189 = ($$0213<<24>>24)!=(0); - do { - if ($189) { - $190 = HEAP32[$161>>2]|0; - $191 = ($190|0)==(16); - if ($191) { - $192 = HEAP32[$183>>2]|0; - _stbi__compute_transparency16($0,$5,$192); - break; - } else { - $193 = HEAP32[$183>>2]|0; - _stbi__compute_transparency($0,$4,$193); - break; - } - } - } while(0); - $194 = HEAP32[5095]|0; - $195 = ($194|0)!=(0); - $or$cond11 = $173 & $195; - if ($or$cond11) { - $196 = HEAP32[$183>>2]|0; - $197 = ($196|0)>(2); - if ($197) { - _stbi__de_iphone($0); - } - } - if ($181) { - $198 = $$0208&255; - HEAP32[$168>>2] = $198; - $199 = ($2|0)>(2); - $$ = $199 ? $2 : $198; - HEAP32[$183>>2] = $$; - $200 = (_stbi__expand_png_palette($0,$3,$$)|0); - $201 = ($200|0)==(0); - if ($201) { - $$4 = 0; - break; - } - } else { - if ($189) { - $202 = HEAP32[$168>>2]|0; - $203 = (($202) + 1)|0; - HEAP32[$168>>2] = $203; - } - } - $204 = HEAP32[$9>>2]|0; - _free($204); - HEAP32[$9>>2] = 0; - $$4 = 1; - } - } - } else { - $$4 = 1; - } - } else { - _stbi__err(7055); - $$4 = 0; - } - } while(0); - $$6$ph = $$4; - break; - } - case 106: { - _stbi__err(7055); - $$6$ph = 0; - break; - } - case 108: { - $208 = $25 >>> 24; - $209 = $208&255; - HEAP8[7180] = $209; - $210 = HEAP32[$15>>2]|0; - $211 = $210 >>> 16; - $212 = $211&255; - HEAP8[(7181)>>0] = $212; - $213 = $210 >>> 8; - $214 = $213&255; - HEAP8[(7182)>>0] = $214; - $215 = $210&255; - HEAP8[(7183)>>0] = $215; - _stbi__err(7180); - $$6$ph = 0; - break; - } - } - $$7 = $$6$ph; - STACKTOP = sp;return ($$7|0); -} -function _stbi__convert_format($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0151255 = 0, $$0163 = 0, $$0164259 = 0, $$0165 = 0, $$0165254 = 0, $$0165257 = 0, $$0256 = 0, $$10161205 = 0, $$10175 = 0, $$10175204 = 0, $$10175207 = 0, $$10206 = 0, $$11162201 = 0, $$11176 = 0, $$11176200 = 0, $$11176203 = 0, $$11202 = 0, $$1152250 = 0, $$1166 = 0, $$1166249 = 0; - var $$1166252 = 0, $$1251 = 0, $$2153245 = 0, $$2167 = 0, $$2167244 = 0, $$2167247 = 0, $$2246 = 0, $$3154240 = 0, $$3168 = 0, $$3168239 = 0, $$3168242 = 0, $$3241 = 0, $$4155235 = 0, $$4169 = 0, $$4169234 = 0, $$4169237 = 0, $$4236 = 0, $$5156230 = 0, $$5170 = 0, $$5170229 = 0; - var $$5170232 = 0, $$5231 = 0, $$6157225 = 0, $$6171 = 0, $$6171224 = 0, $$6171227 = 0, $$6226 = 0, $$7158220 = 0, $$7172 = 0, $$7172219 = 0, $$7172222 = 0, $$7221 = 0, $$8159215 = 0, $$8173 = 0, $$8173214 = 0, $$8173217 = 0, $$8216 = 0, $$9160210 = 0, $$9174 = 0, $$9174209 = 0; - var $$9174212 = 0, $$9211 = 0, $$off = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; - var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; - var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $5 = ($2|0)==($1|0); - if ($5) { - $$0163 = $0; - return ($$0163|0); - } - $$off = (($2) + -1)|0; - $6 = ($$off>>>0)<(4); - if (!($6)) { - ___assert_fail((6844|0),(6776|0),1477,(6898|0)); - // unreachable; - } - $7 = (_stbi__malloc_mad3($2,$3,$4)|0); - $8 = ($7|0)==(0|0); - if ($8) { - _free($0); - _stbi__err(6741); - $$0163 = 0; - return ($$0163|0); - } - $9 = ($4|0)>(0); - L11: do { - if ($9) { - $10 = $1 << 3; - $11 = (($10) + ($2))|0; - $$0165254 = (($3) + -1)|0; - $12 = ($$0165254|0)>(-1); - $$1166249 = (($3) + -1)|0; - $13 = ($$1166249|0)>(-1); - $$2167244 = (($3) + -1)|0; - $14 = ($$2167244|0)>(-1); - $$3168239 = (($3) + -1)|0; - $15 = ($$3168239|0)>(-1); - $$4169234 = (($3) + -1)|0; - $16 = ($$4169234|0)>(-1); - $$5170229 = (($3) + -1)|0; - $17 = ($$5170229|0)>(-1); - $$6171224 = (($3) + -1)|0; - $18 = ($$6171224|0)>(-1); - $$7172219 = (($3) + -1)|0; - $19 = ($$7172219|0)>(-1); - $$8173214 = (($3) + -1)|0; - $20 = ($$8173214|0)>(-1); - $$9174209 = (($3) + -1)|0; - $21 = ($$9174209|0)>(-1); - $$10175204 = (($3) + -1)|0; - $22 = ($$10175204|0)>(-1); - $$11176200 = (($3) + -1)|0; - $23 = ($$11176200|0)>(-1); - $$0164259 = 0; - L13: while(1) { - $24 = Math_imul($$0164259, $3)|0; - $25 = Math_imul($24, $1)|0; - $26 = (($0) + ($25)|0); - $27 = Math_imul($24, $2)|0; - $28 = (($7) + ($27)|0); - do { - switch ($11|0) { - case 10: { - if ($12) { - $$0151255 = $26;$$0165257 = $$0165254;$$0256 = $28; - while(1) { - $29 = HEAP8[$$0151255>>0]|0; - HEAP8[$$0256>>0] = $29; - $30 = ((($$0256)) + 1|0); - HEAP8[$30>>0] = -1; - $31 = ((($$0151255)) + 1|0); - $32 = ((($$0256)) + 2|0); - $$0165 = (($$0165257) + -1)|0; - $33 = ($$0165|0)>(-1); - if ($33) { - $$0151255 = $31;$$0165257 = $$0165;$$0256 = $32; - } else { - break; - } - } - } - break; - } - case 11: { - if ($13) { - $$1152250 = $26;$$1166252 = $$1166249;$$1251 = $28; - while(1) { - $34 = HEAP8[$$1152250>>0]|0; - $35 = ((($$1251)) + 2|0); - HEAP8[$35>>0] = $34; - $36 = ((($$1251)) + 1|0); - HEAP8[$36>>0] = $34; - HEAP8[$$1251>>0] = $34; - $37 = ((($$1152250)) + 1|0); - $38 = ((($$1251)) + 3|0); - $$1166 = (($$1166252) + -1)|0; - $39 = ($$1166|0)>(-1); - if ($39) { - $$1152250 = $37;$$1166252 = $$1166;$$1251 = $38; - } else { - break; - } - } - } - break; - } - case 12: { - if ($14) { - $$2153245 = $26;$$2167247 = $$2167244;$$2246 = $28; - while(1) { - $40 = HEAP8[$$2153245>>0]|0; - $41 = ((($$2246)) + 2|0); - HEAP8[$41>>0] = $40; - $42 = ((($$2246)) + 1|0); - HEAP8[$42>>0] = $40; - HEAP8[$$2246>>0] = $40; - $43 = ((($$2246)) + 3|0); - HEAP8[$43>>0] = -1; - $44 = ((($$2153245)) + 1|0); - $45 = ((($$2246)) + 4|0); - $$2167 = (($$2167247) + -1)|0; - $46 = ($$2167|0)>(-1); - if ($46) { - $$2153245 = $44;$$2167247 = $$2167;$$2246 = $45; - } else { - break; - } - } - } - break; - } - case 17: { - if ($15) { - $$3154240 = $26;$$3168242 = $$3168239;$$3241 = $28; - while(1) { - $47 = HEAP8[$$3154240>>0]|0; - HEAP8[$$3241>>0] = $47; - $48 = ((($$3154240)) + 2|0); - $49 = ((($$3241)) + 1|0); - $$3168 = (($$3168242) + -1)|0; - $50 = ($$3168|0)>(-1); - if ($50) { - $$3154240 = $48;$$3168242 = $$3168;$$3241 = $49; - } else { - break; - } - } - } - break; - } - case 19: { - if ($16) { - $$4155235 = $26;$$4169237 = $$4169234;$$4236 = $28; - while(1) { - $51 = HEAP8[$$4155235>>0]|0; - $52 = ((($$4236)) + 2|0); - HEAP8[$52>>0] = $51; - $53 = ((($$4236)) + 1|0); - HEAP8[$53>>0] = $51; - HEAP8[$$4236>>0] = $51; - $54 = ((($$4155235)) + 2|0); - $55 = ((($$4236)) + 3|0); - $$4169 = (($$4169237) + -1)|0; - $56 = ($$4169|0)>(-1); - if ($56) { - $$4155235 = $54;$$4169237 = $$4169;$$4236 = $55; - } else { - break; - } - } - } - break; - } - case 20: { - if ($17) { - $$5156230 = $26;$$5170232 = $$5170229;$$5231 = $28; - while(1) { - $57 = HEAP8[$$5156230>>0]|0; - $58 = ((($$5231)) + 2|0); - HEAP8[$58>>0] = $57; - $59 = ((($$5231)) + 1|0); - HEAP8[$59>>0] = $57; - HEAP8[$$5231>>0] = $57; - $60 = ((($$5156230)) + 1|0); - $61 = HEAP8[$60>>0]|0; - $62 = ((($$5231)) + 3|0); - HEAP8[$62>>0] = $61; - $63 = ((($$5156230)) + 2|0); - $64 = ((($$5231)) + 4|0); - $$5170 = (($$5170232) + -1)|0; - $65 = ($$5170|0)>(-1); - if ($65) { - $$5156230 = $63;$$5170232 = $$5170;$$5231 = $64; - } else { - break; - } - } - } - break; - } - case 28: { - if ($18) { - $$6157225 = $26;$$6171227 = $$6171224;$$6226 = $28; - while(1) { - $66 = HEAP8[$$6157225>>0]|0; - HEAP8[$$6226>>0] = $66; - $67 = ((($$6157225)) + 1|0); - $68 = HEAP8[$67>>0]|0; - $69 = ((($$6226)) + 1|0); - HEAP8[$69>>0] = $68; - $70 = ((($$6157225)) + 2|0); - $71 = HEAP8[$70>>0]|0; - $72 = ((($$6226)) + 2|0); - HEAP8[$72>>0] = $71; - $73 = ((($$6226)) + 3|0); - HEAP8[$73>>0] = -1; - $74 = ((($$6157225)) + 3|0); - $75 = ((($$6226)) + 4|0); - $$6171 = (($$6171227) + -1)|0; - $76 = ($$6171|0)>(-1); - if ($76) { - $$6157225 = $74;$$6171227 = $$6171;$$6226 = $75; - } else { - break; - } - } - } - break; - } - case 25: { - if ($19) { - $$7158220 = $26;$$7172222 = $$7172219;$$7221 = $28; - while(1) { - $77 = HEAP8[$$7158220>>0]|0; - $78 = $77&255; - $79 = ((($$7158220)) + 1|0); - $80 = HEAP8[$79>>0]|0; - $81 = $80&255; - $82 = ((($$7158220)) + 2|0); - $83 = HEAP8[$82>>0]|0; - $84 = $83&255; - $85 = (_stbi__compute_y($78,$81,$84)|0); - HEAP8[$$7221>>0] = $85; - $86 = ((($$7158220)) + 3|0); - $87 = ((($$7221)) + 1|0); - $$7172 = (($$7172222) + -1)|0; - $88 = ($$7172|0)>(-1); - if ($88) { - $$7158220 = $86;$$7172222 = $$7172;$$7221 = $87; - } else { - break; - } - } - } - break; - } - case 26: { - if ($20) { - $$8159215 = $26;$$8173217 = $$8173214;$$8216 = $28; - while(1) { - $89 = HEAP8[$$8159215>>0]|0; - $90 = $89&255; - $91 = ((($$8159215)) + 1|0); - $92 = HEAP8[$91>>0]|0; - $93 = $92&255; - $94 = ((($$8159215)) + 2|0); - $95 = HEAP8[$94>>0]|0; - $96 = $95&255; - $97 = (_stbi__compute_y($90,$93,$96)|0); - HEAP8[$$8216>>0] = $97; - $98 = ((($$8216)) + 1|0); - HEAP8[$98>>0] = -1; - $99 = ((($$8159215)) + 3|0); - $100 = ((($$8216)) + 2|0); - $$8173 = (($$8173217) + -1)|0; - $101 = ($$8173|0)>(-1); - if ($101) { - $$8159215 = $99;$$8173217 = $$8173;$$8216 = $100; - } else { - break; - } - } - } - break; - } - case 33: { - if ($21) { - $$9160210 = $26;$$9174212 = $$9174209;$$9211 = $28; - while(1) { - $102 = HEAP8[$$9160210>>0]|0; - $103 = $102&255; - $104 = ((($$9160210)) + 1|0); - $105 = HEAP8[$104>>0]|0; - $106 = $105&255; - $107 = ((($$9160210)) + 2|0); - $108 = HEAP8[$107>>0]|0; - $109 = $108&255; - $110 = (_stbi__compute_y($103,$106,$109)|0); - HEAP8[$$9211>>0] = $110; - $111 = ((($$9160210)) + 4|0); - $112 = ((($$9211)) + 1|0); - $$9174 = (($$9174212) + -1)|0; - $113 = ($$9174|0)>(-1); - if ($113) { - $$9160210 = $111;$$9174212 = $$9174;$$9211 = $112; - } else { - break; - } - } - } - break; - } - case 34: { - if ($22) { - $$10161205 = $26;$$10175207 = $$10175204;$$10206 = $28; - while(1) { - $114 = HEAP8[$$10161205>>0]|0; - $115 = $114&255; - $116 = ((($$10161205)) + 1|0); - $117 = HEAP8[$116>>0]|0; - $118 = $117&255; - $119 = ((($$10161205)) + 2|0); - $120 = HEAP8[$119>>0]|0; - $121 = $120&255; - $122 = (_stbi__compute_y($115,$118,$121)|0); - HEAP8[$$10206>>0] = $122; - $123 = ((($$10161205)) + 3|0); - $124 = HEAP8[$123>>0]|0; - $125 = ((($$10206)) + 1|0); - HEAP8[$125>>0] = $124; - $126 = ((($$10161205)) + 4|0); - $127 = ((($$10206)) + 2|0); - $$10175 = (($$10175207) + -1)|0; - $128 = ($$10175|0)>(-1); - if ($128) { - $$10161205 = $126;$$10175207 = $$10175;$$10206 = $127; - } else { - break; - } - } - } - break; - } - case 35: { - if ($23) { - $$11162201 = $26;$$11176203 = $$11176200;$$11202 = $28; - while(1) { - $129 = HEAP8[$$11162201>>0]|0; - HEAP8[$$11202>>0] = $129; - $130 = ((($$11162201)) + 1|0); - $131 = HEAP8[$130>>0]|0; - $132 = ((($$11202)) + 1|0); - HEAP8[$132>>0] = $131; - $133 = ((($$11162201)) + 2|0); - $134 = HEAP8[$133>>0]|0; - $135 = ((($$11202)) + 2|0); - HEAP8[$135>>0] = $134; - $136 = ((($$11162201)) + 4|0); - $137 = ((($$11202)) + 3|0); - $$11176 = (($$11176203) + -1)|0; - $138 = ($$11176|0)>(-1); - if ($138) { - $$11162201 = $136;$$11176203 = $$11176;$$11202 = $137; - } else { - break; - } - } - } - break; - } - default: { - break L13; - } - } - } while(0); - $139 = (($$0164259) + 1)|0; - $140 = ($139|0)<($4|0); - if ($140) { - $$0164259 = $139; - } else { - break L11; - } - } - ___assert_fail((9623|0),(6776|0),1506,(6898|0)); - // unreachable; - } - } while(0); - _free($0); - $$0163 = $7; - return ($$0163|0); -} -function _stbi__convert_format16($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0151255 = 0, $$0163 = 0, $$0164259 = 0, $$0165 = 0, $$0165254 = 0, $$0165257 = 0, $$0256 = 0, $$10161205 = 0, $$10175 = 0, $$10175204 = 0, $$10175207 = 0, $$10206 = 0, $$11162201 = 0, $$11176 = 0, $$11176200 = 0, $$11176203 = 0, $$11202 = 0, $$1152250 = 0, $$1166 = 0, $$1166249 = 0; - var $$1166252 = 0, $$1251 = 0, $$2153245 = 0, $$2167 = 0, $$2167244 = 0, $$2167247 = 0, $$2246 = 0, $$3154240 = 0, $$3168 = 0, $$3168239 = 0, $$3168242 = 0, $$3241 = 0, $$4155235 = 0, $$4169 = 0, $$4169234 = 0, $$4169237 = 0, $$4236 = 0, $$5156230 = 0, $$5170 = 0, $$5170229 = 0; - var $$5170232 = 0, $$5231 = 0, $$6157225 = 0, $$6171 = 0, $$6171224 = 0, $$6171227 = 0, $$6226 = 0, $$7158220 = 0, $$7172 = 0, $$7172219 = 0, $$7172222 = 0, $$7221 = 0, $$8159215 = 0, $$8173 = 0, $$8173214 = 0, $$8173217 = 0, $$8216 = 0, $$9160210 = 0, $$9174 = 0, $$9174209 = 0; - var $$9174212 = 0, $$9211 = 0, $$off = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; - var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; - var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0; - var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; - var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; - var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; - var $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ($2|0)==($1|0); - if ($5) { - $$0163 = $0; - return ($$0163|0); - } - $$off = (($2) + -1)|0; - $6 = ($$off>>>0)<(4); - if (!($6)) { - ___assert_fail((6844|0),(6776|0),1526,(6875|0)); - // unreachable; - } - $7 = $2 << 1; - $8 = Math_imul($7, $3)|0; - $9 = Math_imul($8, $4)|0; - $10 = (_stbi__malloc($9)|0); - $11 = ($10|0)==(0|0); - if ($11) { - _free($0); - _stbi__err(6741); - $$0163 = 0; - return ($$0163|0); - } - $12 = ($4|0)>(0); - L11: do { - if ($12) { - $13 = $1 << 3; - $14 = (($13) + ($2))|0; - $$0165254 = (($3) + -1)|0; - $15 = ($$0165254|0)>(-1); - $$1166249 = (($3) + -1)|0; - $16 = ($$1166249|0)>(-1); - $$2167244 = (($3) + -1)|0; - $17 = ($$2167244|0)>(-1); - $$3168239 = (($3) + -1)|0; - $18 = ($$3168239|0)>(-1); - $$4169234 = (($3) + -1)|0; - $19 = ($$4169234|0)>(-1); - $$5170229 = (($3) + -1)|0; - $20 = ($$5170229|0)>(-1); - $$6171224 = (($3) + -1)|0; - $21 = ($$6171224|0)>(-1); - $$7172219 = (($3) + -1)|0; - $22 = ($$7172219|0)>(-1); - $$8173214 = (($3) + -1)|0; - $23 = ($$8173214|0)>(-1); - $$9174209 = (($3) + -1)|0; - $24 = ($$9174209|0)>(-1); - $$10175204 = (($3) + -1)|0; - $25 = ($$10175204|0)>(-1); - $$11176200 = (($3) + -1)|0; - $26 = ($$11176200|0)>(-1); - $$0164259 = 0; - L13: while(1) { - $27 = Math_imul($$0164259, $3)|0; - $28 = Math_imul($27, $1)|0; - $29 = (($0) + ($28<<1)|0); - $30 = Math_imul($27, $2)|0; - $31 = (($10) + ($30<<1)|0); - do { - switch ($14|0) { - case 10: { - if ($15) { - $$0151255 = $29;$$0165257 = $$0165254;$$0256 = $31; - while(1) { - $32 = HEAP16[$$0151255>>1]|0; - HEAP16[$$0256>>1] = $32; - $33 = ((($$0256)) + 2|0); - HEAP16[$33>>1] = -1; - $34 = ((($$0151255)) + 2|0); - $35 = ((($$0256)) + 4|0); - $$0165 = (($$0165257) + -1)|0; - $36 = ($$0165|0)>(-1); - if ($36) { - $$0151255 = $34;$$0165257 = $$0165;$$0256 = $35; - } else { - break; - } - } - } - break; - } - case 11: { - if ($16) { - $$1152250 = $29;$$1166252 = $$1166249;$$1251 = $31; - while(1) { - $37 = HEAP16[$$1152250>>1]|0; - $38 = ((($$1251)) + 4|0); - HEAP16[$38>>1] = $37; - $39 = ((($$1251)) + 2|0); - HEAP16[$39>>1] = $37; - HEAP16[$$1251>>1] = $37; - $40 = ((($$1152250)) + 2|0); - $41 = ((($$1251)) + 6|0); - $$1166 = (($$1166252) + -1)|0; - $42 = ($$1166|0)>(-1); - if ($42) { - $$1152250 = $40;$$1166252 = $$1166;$$1251 = $41; - } else { - break; - } - } - } - break; - } - case 12: { - if ($17) { - $$2153245 = $29;$$2167247 = $$2167244;$$2246 = $31; - while(1) { - $43 = HEAP16[$$2153245>>1]|0; - $44 = ((($$2246)) + 4|0); - HEAP16[$44>>1] = $43; - $45 = ((($$2246)) + 2|0); - HEAP16[$45>>1] = $43; - HEAP16[$$2246>>1] = $43; - $46 = ((($$2246)) + 6|0); - HEAP16[$46>>1] = -1; - $47 = ((($$2153245)) + 2|0); - $48 = ((($$2246)) + 8|0); - $$2167 = (($$2167247) + -1)|0; - $49 = ($$2167|0)>(-1); - if ($49) { - $$2153245 = $47;$$2167247 = $$2167;$$2246 = $48; - } else { - break; - } - } - } - break; - } - case 17: { - if ($18) { - $$3154240 = $29;$$3168242 = $$3168239;$$3241 = $31; - while(1) { - $50 = HEAP16[$$3154240>>1]|0; - HEAP16[$$3241>>1] = $50; - $51 = ((($$3154240)) + 4|0); - $52 = ((($$3241)) + 2|0); - $$3168 = (($$3168242) + -1)|0; - $53 = ($$3168|0)>(-1); - if ($53) { - $$3154240 = $51;$$3168242 = $$3168;$$3241 = $52; - } else { - break; - } - } - } - break; - } - case 19: { - if ($19) { - $$4155235 = $29;$$4169237 = $$4169234;$$4236 = $31; - while(1) { - $54 = HEAP16[$$4155235>>1]|0; - $55 = ((($$4236)) + 4|0); - HEAP16[$55>>1] = $54; - $56 = ((($$4236)) + 2|0); - HEAP16[$56>>1] = $54; - HEAP16[$$4236>>1] = $54; - $57 = ((($$4155235)) + 4|0); - $58 = ((($$4236)) + 6|0); - $$4169 = (($$4169237) + -1)|0; - $59 = ($$4169|0)>(-1); - if ($59) { - $$4155235 = $57;$$4169237 = $$4169;$$4236 = $58; - } else { - break; - } - } - } - break; - } - case 20: { - if ($20) { - $$5156230 = $29;$$5170232 = $$5170229;$$5231 = $31; - while(1) { - $60 = HEAP16[$$5156230>>1]|0; - $61 = ((($$5231)) + 4|0); - HEAP16[$61>>1] = $60; - $62 = ((($$5231)) + 2|0); - HEAP16[$62>>1] = $60; - HEAP16[$$5231>>1] = $60; - $63 = ((($$5156230)) + 2|0); - $64 = HEAP16[$63>>1]|0; - $65 = ((($$5231)) + 6|0); - HEAP16[$65>>1] = $64; - $66 = ((($$5156230)) + 4|0); - $67 = ((($$5231)) + 8|0); - $$5170 = (($$5170232) + -1)|0; - $68 = ($$5170|0)>(-1); - if ($68) { - $$5156230 = $66;$$5170232 = $$5170;$$5231 = $67; - } else { - break; - } - } - } - break; - } - case 28: { - if ($21) { - $$6157225 = $29;$$6171227 = $$6171224;$$6226 = $31; - while(1) { - $69 = HEAP16[$$6157225>>1]|0; - HEAP16[$$6226>>1] = $69; - $70 = ((($$6157225)) + 2|0); - $71 = HEAP16[$70>>1]|0; - $72 = ((($$6226)) + 2|0); - HEAP16[$72>>1] = $71; - $73 = ((($$6157225)) + 4|0); - $74 = HEAP16[$73>>1]|0; - $75 = ((($$6226)) + 4|0); - HEAP16[$75>>1] = $74; - $76 = ((($$6226)) + 6|0); - HEAP16[$76>>1] = -1; - $77 = ((($$6157225)) + 6|0); - $78 = ((($$6226)) + 8|0); - $$6171 = (($$6171227) + -1)|0; - $79 = ($$6171|0)>(-1); - if ($79) { - $$6157225 = $77;$$6171227 = $$6171;$$6226 = $78; - } else { - break; - } - } - } - break; - } - case 25: { - if ($22) { - $$7158220 = $29;$$7172222 = $$7172219;$$7221 = $31; - while(1) { - $80 = HEAP16[$$7158220>>1]|0; - $81 = $80&65535; - $82 = ((($$7158220)) + 2|0); - $83 = HEAP16[$82>>1]|0; - $84 = $83&65535; - $85 = ((($$7158220)) + 4|0); - $86 = HEAP16[$85>>1]|0; - $87 = $86&65535; - $88 = (_stbi__compute_y_16($81,$84,$87)|0); - HEAP16[$$7221>>1] = $88; - $89 = ((($$7158220)) + 6|0); - $90 = ((($$7221)) + 2|0); - $$7172 = (($$7172222) + -1)|0; - $91 = ($$7172|0)>(-1); - if ($91) { - $$7158220 = $89;$$7172222 = $$7172;$$7221 = $90; - } else { - break; - } - } - } - break; - } - case 26: { - if ($23) { - $$8159215 = $29;$$8173217 = $$8173214;$$8216 = $31; - while(1) { - $92 = HEAP16[$$8159215>>1]|0; - $93 = $92&65535; - $94 = ((($$8159215)) + 2|0); - $95 = HEAP16[$94>>1]|0; - $96 = $95&65535; - $97 = ((($$8159215)) + 4|0); - $98 = HEAP16[$97>>1]|0; - $99 = $98&65535; - $100 = (_stbi__compute_y_16($93,$96,$99)|0); - HEAP16[$$8216>>1] = $100; - $101 = ((($$8216)) + 2|0); - HEAP16[$101>>1] = -1; - $102 = ((($$8159215)) + 6|0); - $103 = ((($$8216)) + 4|0); - $$8173 = (($$8173217) + -1)|0; - $104 = ($$8173|0)>(-1); - if ($104) { - $$8159215 = $102;$$8173217 = $$8173;$$8216 = $103; - } else { - break; - } - } - } - break; - } - case 33: { - if ($24) { - $$9160210 = $29;$$9174212 = $$9174209;$$9211 = $31; - while(1) { - $105 = HEAP16[$$9160210>>1]|0; - $106 = $105&65535; - $107 = ((($$9160210)) + 2|0); - $108 = HEAP16[$107>>1]|0; - $109 = $108&65535; - $110 = ((($$9160210)) + 4|0); - $111 = HEAP16[$110>>1]|0; - $112 = $111&65535; - $113 = (_stbi__compute_y_16($106,$109,$112)|0); - HEAP16[$$9211>>1] = $113; - $114 = ((($$9160210)) + 8|0); - $115 = ((($$9211)) + 2|0); - $$9174 = (($$9174212) + -1)|0; - $116 = ($$9174|0)>(-1); - if ($116) { - $$9160210 = $114;$$9174212 = $$9174;$$9211 = $115; - } else { - break; - } - } - } - break; - } - case 34: { - if ($25) { - $$10161205 = $29;$$10175207 = $$10175204;$$10206 = $31; - while(1) { - $117 = HEAP16[$$10161205>>1]|0; - $118 = $117&65535; - $119 = ((($$10161205)) + 2|0); - $120 = HEAP16[$119>>1]|0; - $121 = $120&65535; - $122 = ((($$10161205)) + 4|0); - $123 = HEAP16[$122>>1]|0; - $124 = $123&65535; - $125 = (_stbi__compute_y_16($118,$121,$124)|0); - HEAP16[$$10206>>1] = $125; - $126 = ((($$10161205)) + 6|0); - $127 = HEAP16[$126>>1]|0; - $128 = ((($$10206)) + 2|0); - HEAP16[$128>>1] = $127; - $129 = ((($$10161205)) + 8|0); - $130 = ((($$10206)) + 4|0); - $$10175 = (($$10175207) + -1)|0; - $131 = ($$10175|0)>(-1); - if ($131) { - $$10161205 = $129;$$10175207 = $$10175;$$10206 = $130; - } else { - break; - } - } - } - break; - } - case 35: { - if ($26) { - $$11162201 = $29;$$11176203 = $$11176200;$$11202 = $31; - while(1) { - $132 = HEAP16[$$11162201>>1]|0; - HEAP16[$$11202>>1] = $132; - $133 = ((($$11162201)) + 2|0); - $134 = HEAP16[$133>>1]|0; - $135 = ((($$11202)) + 2|0); - HEAP16[$135>>1] = $134; - $136 = ((($$11162201)) + 4|0); - $137 = HEAP16[$136>>1]|0; - $138 = ((($$11202)) + 4|0); - HEAP16[$138>>1] = $137; - $139 = ((($$11162201)) + 8|0); - $140 = ((($$11202)) + 6|0); - $$11176 = (($$11176203) + -1)|0; - $141 = ($$11176|0)>(-1); - if ($141) { - $$11162201 = $139;$$11176203 = $$11176;$$11202 = $140; - } else { - break; - } - } - } - break; - } - default: { - break L13; - } - } - } while(0); - $142 = (($$0164259) + 1)|0; - $143 = ($142|0)<($4|0); - if ($143) { - $$0164259 = $142; - } else { - break L11; - } - } - ___assert_fail((9623|0),(6776|0),1555,(6875|0)); - // unreachable; - } - } while(0); - _free($0); - $$0163 = $10; - return ($$0163|0); -} -function _stbi__compute_y_16($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0*77)|0; - $4 = ($1*150)|0; - $5 = (($4) + ($3))|0; - $6 = ($2*29)|0; - $7 = (($5) + ($6))|0; - $8 = $7 >>> 8; - $9 = $8&65535; - return ($9|0); -} -function _stbi__compute_y($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0*77)|0; - $4 = ($1*150)|0; - $5 = (($4) + ($3))|0; - $6 = ($2*29)|0; - $7 = (($5) + ($6))|0; - $8 = $7 >>> 8; - $9 = $8&255; - return ($9|0); -} -function _stbi__check_png_header($0) { - $0 = $0|0; - var $$05 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (_stbi__get8($0)|0); - $2 = ($1<<24>>24)==(-119); - if ($2) { - $3 = (_stbi__get8($0)|0); - $4 = ($3<<24>>24)==(80); - if ($4) { - $5 = (_stbi__get8($0)|0); - $6 = ($5<<24>>24)==(78); - if ($6) { - $7 = (_stbi__get8($0)|0); - $8 = ($7<<24>>24)==(71); - if ($8) { - $9 = (_stbi__get8($0)|0); - $10 = ($9<<24>>24)==(13); - if ($10) { - $11 = (_stbi__get8($0)|0); - $12 = ($11<<24>>24)==(10); - if ($12) { - $13 = (_stbi__get8($0)|0); - $14 = ($13<<24>>24)==(26); - if ($14) { - $15 = (_stbi__get8($0)|0); - $16 = ($15<<24>>24)==(10); - if ($16) { - $$05 = 1; - return ($$05|0); - } - } - } - } - } - } - } - } - _stbi__err(8176); - $$05 = 0; - return ($$05|0); -} -function _stbi__get_chunk_header($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$sroa$4$0$$sroa_idx2 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (_stbi__get32be($1)|0); - $3 = (_stbi__get32be($1)|0); - HEAP32[$0>>2] = $2; - $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); - HEAP32[$$sroa$4$0$$sroa_idx2>>2] = $3; - return; -} -function _stbi__skip($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)<(0); - if ($2) { - $3 = ((($0)) + 172|0); - $4 = HEAP32[$3>>2]|0; - $5 = ((($0)) + 168|0); - HEAP32[$5>>2] = $4; - return; - } - $6 = ((($0)) + 16|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)==(0|0); - if (!($8)) { - $9 = ((($0)) + 172|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($0)) + 168|0); - $12 = HEAP32[$11>>2]|0; - $13 = $10; - $14 = (($13) - ($12))|0; - $15 = ($14|0)<($1|0); - if ($15) { - HEAP32[$11>>2] = $10; - $16 = ((($0)) + 20|0); - $17 = HEAP32[$16>>2]|0; - $18 = ((($0)) + 28|0); - $19 = HEAP32[$18>>2]|0; - $20 = (($1) - ($14))|0; - FUNCTION_TABLE_vii[$17 & 63]($19,$20); - return; - } - } - $21 = ((($0)) + 168|0); - $22 = HEAP32[$21>>2]|0; - $23 = (($22) + ($1)|0); - HEAP32[$21>>2] = $23; - return; -} -function _stbi__get32be($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (_stbi__get16be($0)|0); - $2 = $1 << 16; - $3 = (_stbi__get16be($0)|0); - $4 = (($2) + ($3))|0; - return ($4|0); -} -function _stbi__get8($0) { - $0 = $0|0; - var $$0 = 0, $$sink6 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 168|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 172|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($2>>>0)<($4>>>0); - do { - if ($5) { - $$sink6 = $2; - } else { - $6 = ((($0)) + 32|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)==(0); - if ($8) { - $$0 = 0; - return ($$0|0); - } else { - _stbi__refill_buffer($0); - $9 = HEAP32[$1>>2]|0; - $$sink6 = $9; - break; - } - } - } while(0); - $10 = ((($$sink6)) + 1|0); - HEAP32[$1>>2] = $10; - $11 = HEAP8[$$sink6>>0]|0; - $$0 = $11; - return ($$0|0); -} -function _stbi__get16be($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (_stbi__get8($0)|0); - $2 = $1&255; - $3 = $2 << 8; - $4 = (_stbi__get8($0)|0); - $5 = $4&255; - $6 = $3 | $5; - return ($6|0); -} -function _stbi__getn($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($0)) + 16|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)==(0|0); - if (!($5)) { - $6 = ((($0)) + 172|0); - $7 = HEAP32[$6>>2]|0; - $8 = ((($0)) + 168|0); - $9 = HEAP32[$8>>2]|0; - $10 = $9; - $11 = (($7) - ($10))|0; - $12 = ($11|0)<($2|0); - if ($12) { - _memcpy(($1|0),($9|0),($11|0))|0; - $13 = HEAP32[$3>>2]|0; - $14 = ((($0)) + 28|0); - $15 = HEAP32[$14>>2]|0; - $16 = (($1) + ($11)|0); - $17 = (($2) - ($11))|0; - $18 = (FUNCTION_TABLE_iiii[$13 & 15]($15,$16,$17)|0); - $19 = ($18|0)==($17|0); - $20 = $19&1; - $21 = HEAP32[$6>>2]|0; - HEAP32[$8>>2] = $21; - $$1 = $20; - return ($$1|0); - } - } - $22 = ((($0)) + 168|0); - $23 = HEAP32[$22>>2]|0; - $24 = (($23) + ($2)|0); - $25 = ((($0)) + 172|0); - $26 = HEAP32[$25>>2]|0; - $27 = ($24>>>0)>($26>>>0); - if ($27) { - $$1 = 0; - return ($$1|0); - } - _memcpy(($1|0),($23|0),($2|0))|0; - $28 = HEAP32[$22>>2]|0; - $29 = (($28) + ($2)|0); - HEAP32[$22>>2] = $29; - $$1 = 1; - return ($$1|0); -} -function _stbi_zlib_decode_malloc_guesssize_headerflag($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 4080|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(4080|0); - $5 = sp; - $6 = (_stbi__malloc($2)|0); - $7 = ($6|0)==(0|0); - do { - if ($7) { - $$0 = 0; - } else { - HEAP32[$5>>2] = $0; - $8 = (($0) + ($1)|0); - $9 = ((($5)) + 4|0); - HEAP32[$9>>2] = $8; - $10 = (_stbi__do_zlib($5,$6,$2,1,$4)|0); - $11 = ($10|0)==(0); - $12 = ((($5)) + 20|0); - $13 = HEAP32[$12>>2]|0; - if ($11) { - _free($13); - $$0 = 0; - break; - } - $14 = ($3|0)==(0|0); - if ($14) { - $$0 = $13; - } else { - $15 = ((($5)) + 16|0); - $16 = HEAP32[$15>>2]|0; - $17 = $13; - $18 = (($16) - ($17))|0; - HEAP32[$3>>2] = $18; - $$0 = $13; - } - } - } while(0); - STACKTOP = sp;return ($$0|0); -} -function _stbi__create_png_image($0,$1,$2,$3,$4,$5,$6) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - $6 = $6|0; - var $$0103117 = 0, $$0106116 = 0, $$0107115 = 0, $$095119 = 0, $$099118 = 0, $$3102$ph = 0, $$398$ph = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; - var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $60 = 0, $61 = 0; - var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; - var $80 = 0, $81 = 0, $82 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $7 = ($4|0)==(16); - $8 = $7 ? 2 : 1; - $9 = Math_imul($8, $3)|0; - $10 = ($6|0)==(0); - $11 = HEAP32[$0>>2]|0; - $12 = HEAP32[$11>>2]|0; - $13 = ((($11)) + 4|0); - $14 = HEAP32[$13>>2]|0; - if ($10) { - $15 = (_stbi__create_png_image_raw($0,$1,$2,$3,$12,$14,$4,$5)|0); - $$4 = $15; - return ($$4|0); - } - $16 = (_stbi__malloc_mad3($12,$14,$9)|0); - $17 = ((($0)) + 12|0); - $18 = ((($0)) + 12|0); - $$0103117 = 0;$$095119 = $1;$$099118 = $2; - while(1) { - $19 = HEAP32[$0>>2]|0; - $20 = HEAP32[$19>>2]|0; - $21 = (2980 + ($$0103117<<2)|0); - $22 = HEAP32[$21>>2]|0; - $23 = (3008 + ($$0103117<<2)|0); - $24 = HEAP32[$23>>2]|0; - $25 = (($20) + -1)|0; - $26 = (($25) - ($22))|0; - $27 = (($26) + ($24))|0; - $28 = (($27>>>0) / ($24>>>0))&-1; - $29 = ((($19)) + 4|0); - $30 = HEAP32[$29>>2]|0; - $31 = (3036 + ($$0103117<<2)|0); - $32 = HEAP32[$31>>2]|0; - $33 = (3064 + ($$0103117<<2)|0); - $34 = HEAP32[$33>>2]|0; - $35 = (($30) + -1)|0; - $36 = (($35) - ($32))|0; - $37 = (($36) + ($34))|0; - $38 = (($37>>>0) / ($34>>>0))&-1; - $39 = ($24>>>0)<=($27>>>0); - $40 = ($34>>>0)<=($37>>>0); - $or$cond = $39 & $40; - if ($or$cond) { - $41 = ((($19)) + 8|0); - $42 = HEAP32[$41>>2]|0; - $43 = Math_imul($28, $4)|0; - $44 = Math_imul($43, $42)|0; - $45 = (($44) + 7)|0; - $46 = $45 >> 3; - $47 = (($46) + 1)|0; - $48 = Math_imul($47, $38)|0; - $49 = (_stbi__create_png_image_raw($0,$$095119,$$099118,$3,$28,$38,$4,$5)|0); - $50 = ($49|0)==(0); - if ($50) { - label = 13; - break; - } - $51 = ($38|0)>(0); - if ($51) { - $52 = ($28|0)>(0); - $$0106116 = 0; - while(1) { - if ($52) { - $53 = HEAP32[$33>>2]|0; - $54 = Math_imul($53, $$0106116)|0; - $55 = HEAP32[$31>>2]|0; - $56 = (($54) + ($55))|0; - $57 = HEAP32[$23>>2]|0; - $58 = HEAP32[$21>>2]|0; - $59 = Math_imul($56, $9)|0; - $60 = Math_imul($$0106116, $28)|0; - $$0107115 = 0; - while(1) { - $61 = Math_imul($57, $$0107115)|0; - $62 = (($61) + ($58))|0; - $63 = HEAP32[$0>>2]|0; - $64 = HEAP32[$63>>2]|0; - $65 = Math_imul($59, $64)|0; - $66 = (($16) + ($65)|0); - $67 = Math_imul($62, $9)|0; - $68 = (($66) + ($67)|0); - $69 = HEAP32[$18>>2]|0; - $70 = (($$0107115) + ($60))|0; - $71 = Math_imul($70, $9)|0; - $72 = (($69) + ($71)|0); - _memcpy(($68|0),($72|0),($9|0))|0; - $73 = (($$0107115) + 1)|0; - $74 = ($73|0)<($28|0); - if ($74) { - $$0107115 = $73; - } else { - break; - } - } - } - $75 = (($$0106116) + 1)|0; - $76 = ($75|0)<($38|0); - if ($76) { - $$0106116 = $75; - } else { - break; - } - } - } - $77 = HEAP32[$17>>2]|0; - _free($77); - $78 = (($$095119) + ($48)|0); - $79 = (($$099118) - ($48))|0; - $$3102$ph = $79;$$398$ph = $78; - } else { - $$3102$ph = $$099118;$$398$ph = $$095119; - } - $80 = (($$0103117) + 1)|0; - $81 = ($80|0)<(7); - if ($81) { - $$0103117 = $80;$$095119 = $$398$ph;$$099118 = $$3102$ph; - } else { - label = 15; - break; - } - } - if ((label|0) == 13) { - _free($16); - $$4 = 0; - return ($$4|0); - } - else if ((label|0) == 15) { - $82 = ((($0)) + 12|0); - HEAP32[$82>>2] = $16; - $$4 = 1; - return ($$4|0); - } - return (0)|0; -} -function _stbi__compute_transparency16($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0323 = 0, $$04 = 0, $$1335 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, $not$ = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = HEAP32[$0>>2]|0; - $4 = HEAP32[$3>>2]|0; - $5 = ((($3)) + 4|0); - $6 = HEAP32[$5>>2]|0; - $7 = Math_imul($6, $4)|0; - $8 = ((($0)) + 12|0); - $9 = HEAP32[$8>>2]|0; - switch ($2|0) { - case 2: { - $13 = ($7|0)==(0); - if ($13) { - return; - } else { - $$0323 = 0;$$04 = $9; - } - while(1) { - $14 = HEAP16[$$04>>1]|0; - $15 = HEAP16[$1>>1]|0; - $not$ = ($14<<16>>16)!=($15<<16>>16); - $16 = $not$ << 31 >> 31; - $17 = ((($$04)) + 2|0); - HEAP16[$17>>1] = $16; - $18 = ((($$04)) + 4|0); - $19 = (($$0323) + 1)|0; - $exitcond = ($19|0)==($7|0); - if ($exitcond) { - break; - } else { - $$0323 = $19;$$04 = $18; - } - } - return; - break; - } - case 4: { - $10 = ($7|0)==(0); - if ($10) { - return; - } - $11 = ((($1)) + 2|0); - $12 = ((($1)) + 4|0); - $$1335 = 0;$$16 = $9; - while(1) { - $20 = HEAP16[$$16>>1]|0; - $21 = HEAP16[$1>>1]|0; - $22 = ($20<<16>>16)==($21<<16>>16); - if ($22) { - $23 = ((($$16)) + 2|0); - $24 = HEAP16[$23>>1]|0; - $25 = HEAP16[$11>>1]|0; - $26 = ($24<<16>>16)==($25<<16>>16); - if ($26) { - $27 = ((($$16)) + 4|0); - $28 = HEAP16[$27>>1]|0; - $29 = HEAP16[$12>>1]|0; - $30 = ($28<<16>>16)==($29<<16>>16); - if ($30) { - $31 = ((($$16)) + 6|0); - HEAP16[$31>>1] = 0; - } - } - } - $32 = ((($$16)) + 8|0); - $33 = (($$1335) + 1)|0; - $exitcond9 = ($33|0)==($7|0); - if ($exitcond9) { - break; - } else { - $$1335 = $33;$$16 = $32; - } - } - return; - break; - } - default: { - ___assert_fail((7239|0),(6776|0),4568,(7291|0)); - // unreachable; - } - } -} -function _stbi__compute_transparency($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0323 = 0, $$04 = 0, $$1335 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, $not$ = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = HEAP32[$0>>2]|0; - $4 = HEAP32[$3>>2]|0; - $5 = ((($3)) + 4|0); - $6 = HEAP32[$5>>2]|0; - $7 = Math_imul($6, $4)|0; - $8 = ((($0)) + 12|0); - $9 = HEAP32[$8>>2]|0; - switch ($2|0) { - case 2: { - $13 = ($7|0)==(0); - if ($13) { - return; - } else { - $$0323 = 0;$$04 = $9; - } - while(1) { - $14 = HEAP8[$$04>>0]|0; - $15 = HEAP8[$1>>0]|0; - $not$ = ($14<<24>>24)!=($15<<24>>24); - $16 = $not$ << 31 >> 31; - $17 = ((($$04)) + 1|0); - HEAP8[$17>>0] = $16; - $18 = ((($$04)) + 2|0); - $19 = (($$0323) + 1)|0; - $exitcond = ($19|0)==($7|0); - if ($exitcond) { - break; - } else { - $$0323 = $19;$$04 = $18; - } - } - return; - break; - } - case 4: { - $10 = ($7|0)==(0); - if ($10) { - return; - } - $11 = ((($1)) + 1|0); - $12 = ((($1)) + 2|0); - $$1335 = 0;$$16 = $9; - while(1) { - $20 = HEAP8[$$16>>0]|0; - $21 = HEAP8[$1>>0]|0; - $22 = ($20<<24>>24)==($21<<24>>24); - if ($22) { - $23 = ((($$16)) + 1|0); - $24 = HEAP8[$23>>0]|0; - $25 = HEAP8[$11>>0]|0; - $26 = ($24<<24>>24)==($25<<24>>24); - if ($26) { - $27 = ((($$16)) + 2|0); - $28 = HEAP8[$27>>0]|0; - $29 = HEAP8[$12>>0]|0; - $30 = ($28<<24>>24)==($29<<24>>24); - if ($30) { - $31 = ((($$16)) + 3|0); - HEAP8[$31>>0] = 0; - } - } - } - $32 = ((($$16)) + 4|0); - $33 = (($$1335) + 1)|0; - $exitcond9 = ($33|0)==($7|0); - if ($exitcond9) { - break; - } else { - $$1335 = $33;$$16 = $32; - } - } - return; - break; - } - default: { - ___assert_fail((7239|0),(6776|0),4543,(7264|0)); - // unreachable; - } - } -} -function _stbi__de_iphone($0) { - $0 = $0|0; - var $$05461 = 0, $$062 = 0, $$15566 = 0, $$167 = 0, $$25663 = 0, $$264 = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; - var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0, $exitcond = 0, $exitcond71 = 0; - var $exitcond72 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - $2 = HEAP32[$1>>2]|0; - $3 = ((($1)) + 4|0); - $4 = HEAP32[$3>>2]|0; - $5 = Math_imul($4, $2)|0; - $6 = ((($0)) + 12|0); - $7 = HEAP32[$6>>2]|0; - $8 = ((($1)) + 12|0); - $9 = HEAP32[$8>>2]|0; - switch ($9|0) { - case 3: { - $10 = ($5|0)==(0); - if ($10) { - return; - } else { - $$05461 = $7;$$062 = 0; - } - while(1) { - $11 = HEAP8[$$05461>>0]|0; - $12 = ((($$05461)) + 2|0); - $13 = HEAP8[$12>>0]|0; - HEAP8[$$05461>>0] = $13; - HEAP8[$12>>0] = $11; - $14 = ((($$05461)) + 3|0); - $15 = (($$062) + 1)|0; - $exitcond = ($15|0)==($5|0); - if ($exitcond) { - break; - } else { - $$05461 = $14;$$062 = $15; - } - } - return; - break; - } - case 4: { - $16 = HEAP32[5096]|0; - $17 = ($16|0)==(0); - $18 = ($5|0)!=(0); - if ($17) { - if ($18) { - $$25663 = $7;$$264 = 0; - } else { - return; - } - while(1) { - $46 = HEAP8[$$25663>>0]|0; - $47 = ((($$25663)) + 2|0); - $48 = HEAP8[$47>>0]|0; - HEAP8[$$25663>>0] = $48; - HEAP8[$47>>0] = $46; - $49 = ((($$25663)) + 4|0); - $50 = (($$264) + 1)|0; - $exitcond71 = ($50|0)==($5|0); - if ($exitcond71) { - break; - } else { - $$25663 = $49;$$264 = $50; - } - } - return; - } - if ($18) { - $$15566 = $7;$$167 = 0; - } else { - return; - } - while(1) { - $19 = ((($$15566)) + 3|0); - $20 = HEAP8[$19>>0]|0; - $21 = HEAP8[$$15566>>0]|0; - $22 = ($20<<24>>24)==(0); - $23 = ((($$15566)) + 2|0); - $24 = HEAP8[$23>>0]|0; - if ($22) { - HEAP8[$$15566>>0] = $24; - $$sink = $21; - } else { - $25 = $20&255; - $div = ($20&255) >>> 1; - $26 = $24&255; - $27 = ($26*255)|0; - $28 = $div&255; - $29 = (($27) + ($28))|0; - $30 = (($29>>>0) / ($25>>>0))&-1; - $31 = $30&255; - HEAP8[$$15566>>0] = $31; - $32 = ((($$15566)) + 1|0); - $33 = HEAP8[$32>>0]|0; - $34 = $33&255; - $35 = ($34*255)|0; - $36 = (($35) + ($28))|0; - $37 = (($36>>>0) / ($25>>>0))&-1; - $38 = $37&255; - HEAP8[$32>>0] = $38; - $39 = $21&255; - $40 = ($39*255)|0; - $41 = (($40) + ($28))|0; - $42 = (($41>>>0) / ($25>>>0))&-1; - $43 = $42&255; - $$sink = $43; - } - HEAP8[$23>>0] = $$sink; - $44 = ((($$15566)) + 4|0); - $45 = (($$167) + 1)|0; - $exitcond72 = ($45|0)==($5|0); - if ($exitcond72) { - break; - } else { - $$15566 = $44;$$167 = $45; - } - } - return; - break; - } - default: { - ___assert_fail((7205|0),(6776|0),4649,(7223|0)); - // unreachable; - } - } -} -function _stbi__expand_png_palette($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$0574 = 0, $$0583 = 0, $$1595 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; - var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = HEAP32[$0>>2]|0; - $4 = HEAP32[$3>>2]|0; - $5 = ((($3)) + 4|0); - $6 = HEAP32[$5>>2]|0; - $7 = Math_imul($6, $4)|0; - $8 = ((($0)) + 12|0); - $9 = HEAP32[$8>>2]|0; - $10 = (_stbi__malloc_mad2($7,$2)|0); - $11 = ($10|0)==(0|0); - if ($11) { - _stbi__err(6741); - $$0 = 0; - return ($$0|0); - } - $12 = ($2|0)==(3); - $13 = ($7|0)!=(0); - if ($12) { - if ($13) { - $$0574 = 0;$$0583 = $10; - while(1) { - $14 = (($9) + ($$0574)|0); - $15 = HEAP8[$14>>0]|0; - $16 = $15&255; - $17 = $16 << 2; - $18 = (($1) + ($17)|0); - $19 = HEAP8[$18>>0]|0; - HEAP8[$$0583>>0] = $19; - $20 = $17 | 1; - $21 = (($1) + ($20)|0); - $22 = HEAP8[$21>>0]|0; - $23 = ((($$0583)) + 1|0); - HEAP8[$23>>0] = $22; - $24 = $17 | 2; - $25 = (($1) + ($24)|0); - $26 = HEAP8[$25>>0]|0; - $27 = ((($$0583)) + 2|0); - HEAP8[$27>>0] = $26; - $28 = ((($$0583)) + 3|0); - $29 = (($$0574) + 1)|0; - $exitcond = ($29|0)==($7|0); - if ($exitcond) { - break; - } else { - $$0574 = $29;$$0583 = $28; - } - } - } - } else { - if ($13) { - $$1595 = $10;$$16 = 0; - while(1) { - $30 = (($9) + ($$16)|0); - $31 = HEAP8[$30>>0]|0; - $32 = $31&255; - $33 = $32 << 2; - $34 = (($1) + ($33)|0); - $35 = HEAP8[$34>>0]|0; - HEAP8[$$1595>>0] = $35; - $36 = $33 | 1; - $37 = (($1) + ($36)|0); - $38 = HEAP8[$37>>0]|0; - $39 = ((($$1595)) + 1|0); - HEAP8[$39>>0] = $38; - $40 = $33 | 2; - $41 = (($1) + ($40)|0); - $42 = HEAP8[$41>>0]|0; - $43 = ((($$1595)) + 2|0); - HEAP8[$43>>0] = $42; - $44 = $33 | 3; - $45 = (($1) + ($44)|0); - $46 = HEAP8[$45>>0]|0; - $47 = ((($$1595)) + 3|0); - HEAP8[$47>>0] = $46; - $48 = ((($$1595)) + 4|0); - $49 = (($$16) + 1)|0; - $exitcond9 = ($49|0)==($7|0); - if ($exitcond9) { - break; - } else { - $$1595 = $48;$$16 = $49; - } - } - } - } - $50 = HEAP32[$8>>2]|0; - _free($50); - HEAP32[$8>>2] = $10; - $$0 = 1; - return ($$0|0); -} -function _stbi__malloc_mad2($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (_stbi__mad2sizes_valid($0,$1)|0); - $3 = ($2|0)==(0); - if ($3) { - $$0 = 0; - return ($$0|0); - } - $4 = Math_imul($1, $0)|0; - $5 = (_stbi__malloc($4)|0); - $$0 = $5; - return ($$0|0); -} -function _stbi__mad2sizes_valid($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (_stbi__mul2sizes_valid($0,$1)|0); - $3 = ($2|0)==(0); - if ($3) { - $8 = 0; - $7 = $8&1; - return ($7|0); - } - $4 = Math_imul($1, $0)|0; - $5 = (_stbi__addsizes_valid($4)|0); - $6 = ($5|0)!=(0); - $8 = $6; - $7 = $8&1; - return ($7|0); -} -function _stbi__create_png_image_raw($0,$1,$2,$3,$4,$5,$6,$7) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - $6 = $6|0; - $7 = $7|0; - var $$0562 = 0, $$0562718 = 0, $$0562719 = 0, $$0565$lcssa = 0, $$0565709 = 0, $$0568$lcssa = 0, $$0568708 = 0, $$0571811 = 0, $$0582 = 0, $$0591 = 0, $$0602810 = 0, $$0605809 = 0, $$0608 = 0, $$0608787 = 0, $$0608790 = 0, $$0617808 = 0, $$0619728 = 0, $$0725 = 0, $$1 = 0, $$10629758 = 0; - var $$11$ph = 0, $$11630749 = 0, $$12741 = 0, $$13733 = 0, $$14$lcssa = 0, $$14707 = 0, $$15$lcssa = 0, $$1566$lcssa = 0, $$1566701 = 0, $$1569$lcssa = 0, $$1569700 = 0, $$15699 = 0, $$1572 = 0, $$16$lcssa = 0, $$1603 = 0, $$1606 = 0, $$1609 = 0, $$1609779 = 0, $$1609782 = 0, $$1618721 = 0; - var $$1620806 = 0, $$16694 = 0, $$1715 = 0, $$1716 = 0, $$2 = 0, $$2567$lcssa = 0, $$2567696 = 0, $$2573789 = 0, $$2593788 = 0, $$2610 = 0, $$2610770 = 0, $$2610774 = 0, $$2621804 = 0, $$3574781 = 0, $$3586772 = 0, $$3594780 = 0, $$3611 = 0, $$3611761 = 0, $$3611765 = 0, $$3622802 = 0; - var $$4$lcssa = 0, $$4575773 = 0, $$4587763 = 0, $$4595771 = 0, $$4612 = 0, $$4612752 = 0, $$4612756 = 0, $$4623800 = 0, $$4695 = 0, $$5576764 = 0, $$5588754 = 0, $$5596762 = 0, $$5613 = 0, $$5613744 = 0, $$5613747 = 0, $$5624798 = 0, $$6577755 = 0, $$6597753 = 0, $$6614 = 0, $$6614736 = 0; - var $$6614739 = 0, $$6625796 = 0, $$7578746 = 0, $$7598745 = 0, $$7615792 = 0, $$7626784 = 0, $$8579738 = 0, $$8599737 = 0, $$8616723 = 0, $$8627776 = 0, $$9580 = 0, $$9600793 = 0, $$9628767 = 0, $$not = 0, $$sink = 0, $$sink1 = 0, $$sink635 = 0, $10 = 0, $100 = 0, $101 = 0; - var $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0; - var $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0; - var $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0; - var $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0; - var $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0; - var $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0; - var $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0; - var $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0; - var $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0; - var $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0; - var $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0; - var $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0; - var $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0; - var $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0; - var $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0; - var $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0; - var $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0; - var $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0; - var $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0; - var $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0; - var $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0; - var $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $50 = 0, $500 = 0, $501 = 0; - var $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0; - var $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0; - var $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0; - var $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0; - var $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0; - var $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; - var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, $brmerge888 = 0; - var $exitcond = 0, $exitcond858 = 0, $exitcond859 = 0, $exitcond861 = 0, $exitcond863 = 0, $exitcond865 = 0, $exitcond867 = 0, $exitcond869 = 0, $exitcond871 = 0, $exitcond874 = 0, $exitcond875 = 0, $exitcond876 = 0, $exitcond877 = 0, $exitcond878 = 0, $exitcond879 = 0, $exitcond880 = 0, $indvars$iv = 0, $indvars$iv$next = 0, $indvars$iv$next843 = 0, $indvars$iv$next846 = 0; - var $indvars$iv$next849 = 0, $indvars$iv$next852 = 0, $indvars$iv$next855 = 0, $indvars$iv842 = 0, $indvars$iv845 = 0, $indvars$iv848 = 0, $indvars$iv851 = 0, $indvars$iv854 = 0, $or$cond = 0, $scevgep = 0, $scevgep844 = 0, $scevgep847 = 0, $scevgep850 = 0, $scevgep853 = 0, $scevgep856 = 0, $scevgep860 = 0, $scevgep862 = 0, $scevgep864 = 0, $scevgep866 = 0, $scevgep868 = 0; - var $scevgep870 = 0, $scevgep873 = 0, $trunc = 0, $trunc631 = 0, $trunc632 = 0, label = 0, sp = 0; - sp = STACKTOP; - $8 = ($6|0)==(16); - $9 = $8 ? 2 : 1; - $10 = HEAP32[$0>>2]|0; - $11 = Math_imul($4, $3)|0; - $12 = Math_imul($9, $11)|0; - $13 = ((($10)) + 8|0); - $14 = HEAP32[$13>>2]|0; - $15 = Math_imul($9, $3)|0; - $16 = Math_imul($14, $9)|0; - $17 = ($14|0)==($3|0); - $18 = (($14) + 1)|0; - $19 = ($18|0)==($3|0); - $or$cond = $17 | $19; - if (!($or$cond)) { - ___assert_fail((7320|0),(6776|0),4294,(7361|0)); - // unreachable; - } - $20 = (_stbi__malloc_mad3($4,$5,$15)|0); - $21 = ((($0)) + 12|0); - HEAP32[$21>>2] = $20; - $22 = ($20|0)==(0|0); - if ($22) { - _stbi__err(6741); - $$2 = 0; - return ($$2|0); - } - $23 = Math_imul($14, $4)|0; - $24 = Math_imul($23, $6)|0; - $25 = (($24) + 7)|0; - $26 = $25 >>> 3; - $27 = (($26) + 1)|0; - $28 = Math_imul($27, $5)|0; - $29 = ($28>>>0)>($2>>>0); - if ($29) { - _stbi__err(7388); - $$2 = 0; - return ($$2|0); - } - $30 = ($5|0)==(0); - L12: do { - if (!($30)) { - $31 = ($6|0)<(8); - $32 = ($26>>>0)>($4>>>0); - $33 = (($11) - ($26))|0; - $34 = (0 - ($12))|0; - $35 = ($6|0)==(8); - $brmerge = $31 | $17; - $36 = ($4|0)==(0); - $$0608787 = (($4) + -1)|0; - $37 = ($$0608787|0)==(0); - $$1609779 = (($4) + -1)|0; - $38 = ($$1609779|0)==(0); - $$2610770 = (($4) + -1)|0; - $39 = ($$2610770|0)==(0); - $$3611761 = (($4) + -1)|0; - $40 = ($$3611761|0)==(0); - $$4612752 = (($4) + -1)|0; - $41 = ($$4612752|0)==(0); - $$5613744 = (($4) + -1)|0; - $42 = ($$5613744|0)==(0); - $$6614736 = (($4) + -1)|0; - $43 = ($$6614736|0)==(0); - $$not = $8 ^ 1; - $brmerge888 = $36 | $$not; - $$0571811 = $1;$$0602810 = $4;$$0605809 = $16;$$0617808 = 0; - while(1) { - $44 = HEAP32[$21>>2]|0; - $45 = Math_imul($$0617808, $12)|0; - $46 = (($44) + ($45)|0); - $47 = ((($$0571811)) + 1|0); - $48 = HEAP8[$$0571811>>0]|0; - $49 = $48&255; - $50 = ($48&255)>(4); - if ($50) { - label = 101; - break; - } - if ($31) { - if ($32) { - label = 12; - break; - } - $51 = (($46) + ($33)|0); - $$0591 = $51;$$1603 = $26;$$1606 = 1; - } else { - $$0591 = $46;$$1603 = $$0602810;$$1606 = $$0605809; - } - $52 = (($$0591) + ($34)|0); - $53 = ($$0617808|0)==(0); - if ($53) { - $54 = (7427 + ($49)|0); - $55 = HEAP8[$54>>0]|0; - $56 = $55&255; - $$0582 = $56; - } else { - $$0582 = $49; - } - $57 = ($$1606|0)>(0); - L24: do { - if ($57) { - $trunc632 = $$0582&255; - $$0619728 = 0; - while(1) { - switch ($trunc632<<24>>24) { - case 0: { - $58 = (($47) + ($$0619728)|0); - $59 = HEAP8[$58>>0]|0; - $$sink = $59; - label = 26; - break; - } - case 1: { - $60 = (($47) + ($$0619728)|0); - $61 = HEAP8[$60>>0]|0; - $$sink = $61; - label = 26; - break; - } - case 2: { - $62 = (($47) + ($$0619728)|0); - $63 = HEAP8[$62>>0]|0; - $64 = $63&255; - $65 = (($52) + ($$0619728)|0); - $66 = HEAP8[$65>>0]|0; - $67 = $66&255; - $68 = (($67) + ($64))|0; - $69 = $68&255; - $$sink = $69; - label = 26; - break; - } - case 3: { - $70 = (($47) + ($$0619728)|0); - $71 = HEAP8[$70>>0]|0; - $72 = $71&255; - $73 = (($52) + ($$0619728)|0); - $74 = HEAP8[$73>>0]|0; - $75 = $74&255; - $76 = $75 >>> 1; - $77 = (($76) + ($72))|0; - $78 = $77&255; - $$sink = $78; - label = 26; - break; - } - case 4: { - $79 = (($47) + ($$0619728)|0); - $80 = HEAP8[$79>>0]|0; - $81 = $80&255; - $82 = (($52) + ($$0619728)|0); - $83 = HEAP8[$82>>0]|0; - $84 = $83&255; - $85 = (_stbi__paeth(0,$84,0)|0); - $86 = (($85) + ($81))|0; - $87 = $86&255; - $$sink = $87; - label = 26; - break; - } - case 5: { - $88 = (($47) + ($$0619728)|0); - $89 = HEAP8[$88>>0]|0; - $$sink = $89; - label = 26; - break; - } - case 6: { - $90 = (($47) + ($$0619728)|0); - $91 = HEAP8[$90>>0]|0; - $$sink = $91; - label = 26; - break; - } - default: { - } - } - if ((label|0) == 26) { - label = 0; - $$sink1 = (($$0591) + ($$0619728)|0); - HEAP8[$$sink1>>0] = $$sink; - } - $92 = (($$0619728) + 1)|0; - $exitcond858 = ($92|0)==($$1606|0); - if ($exitcond858) { - break L24; - } else { - $$0619728 = $92; - } - } - } - } while(0); - do { - if ($35) { - if (!($17)) { - $93 = (($$0591) + ($14)|0); - HEAP8[$93>>0] = -1; - } - $94 = (($47) + ($14)|0); - $$1572 = $94;$$sink635 = $3; - } else { - if (!($8)) { - $99 = ((($$0571811)) + 2|0); - $$1572 = $99;$$sink635 = 1; - break; - } - if (!($17)) { - $95 = (($$1606) + 1)|0; - $96 = (($$0591) + ($95)|0); - $97 = (($$0591) + ($$1606)|0); - HEAP8[$97>>0] = -1; - HEAP8[$96>>0] = -1; - } - $98 = (($47) + ($$1606)|0); - $$1572 = $98;$$sink635 = $15; - } - } while(0); - $100 = (($$0591) + ($$sink635)|0); - $101 = (($52) + ($$sink635)|0); - if ($brmerge) { - $102 = (($$1603) + -1)|0; - $103 = Math_imul($102, $$1606)|0; - $trunc631 = $$0582&255; - switch ($trunc631<<24>>24) { - case 0: { - _memcpy(($100|0),($$1572|0),($103|0))|0; - break; - } - case 1: { - $109 = ($103|0)>(0); - if ($109) { - $$1620806 = 0; - while(1) { - $110 = (($$1572) + ($$1620806)|0); - $111 = HEAP8[$110>>0]|0; - $112 = $111&255; - $113 = (($$1620806) - ($$1606))|0; - $114 = (($100) + ($113)|0); - $115 = HEAP8[$114>>0]|0; - $116 = $115&255; - $117 = (($116) + ($112))|0; - $118 = $117&255; - $119 = (($100) + ($$1620806)|0); - HEAP8[$119>>0] = $118; - $120 = (($$1620806) + 1)|0; - $exitcond880 = ($120|0)==($103|0); - if ($exitcond880) { - break; - } else { - $$1620806 = $120; - } - } - } - break; - } - case 2: { - $108 = ($103|0)>(0); - if ($108) { - $$2621804 = 0; - while(1) { - $121 = (($$1572) + ($$2621804)|0); - $122 = HEAP8[$121>>0]|0; - $123 = $122&255; - $124 = (($101) + ($$2621804)|0); - $125 = HEAP8[$124>>0]|0; - $126 = $125&255; - $127 = (($126) + ($123))|0; - $128 = $127&255; - $129 = (($100) + ($$2621804)|0); - HEAP8[$129>>0] = $128; - $130 = (($$2621804) + 1)|0; - $exitcond879 = ($130|0)==($103|0); - if ($exitcond879) { - break; - } else { - $$2621804 = $130; - } - } - } - break; - } - case 3: { - $107 = ($103|0)>(0); - if ($107) { - $$3622802 = 0; - while(1) { - $131 = (($$1572) + ($$3622802)|0); - $132 = HEAP8[$131>>0]|0; - $133 = $132&255; - $134 = (($101) + ($$3622802)|0); - $135 = HEAP8[$134>>0]|0; - $136 = $135&255; - $137 = (($$3622802) - ($$1606))|0; - $138 = (($100) + ($137)|0); - $139 = HEAP8[$138>>0]|0; - $140 = $139&255; - $141 = (($140) + ($136))|0; - $142 = $141 >>> 1; - $143 = (($142) + ($133))|0; - $144 = $143&255; - $145 = (($100) + ($$3622802)|0); - HEAP8[$145>>0] = $144; - $146 = (($$3622802) + 1)|0; - $exitcond878 = ($146|0)==($103|0); - if ($exitcond878) { - break; - } else { - $$3622802 = $146; - } - } - } - break; - } - case 4: { - $106 = ($103|0)>(0); - if ($106) { - $$4623800 = 0; - while(1) { - $147 = (($$1572) + ($$4623800)|0); - $148 = HEAP8[$147>>0]|0; - $149 = $148&255; - $150 = (($$4623800) - ($$1606))|0; - $151 = (($100) + ($150)|0); - $152 = HEAP8[$151>>0]|0; - $153 = $152&255; - $154 = (($101) + ($$4623800)|0); - $155 = HEAP8[$154>>0]|0; - $156 = $155&255; - $157 = (($101) + ($150)|0); - $158 = HEAP8[$157>>0]|0; - $159 = $158&255; - $160 = (_stbi__paeth($153,$156,$159)|0); - $161 = (($160) + ($149))|0; - $162 = $161&255; - $163 = (($100) + ($$4623800)|0); - HEAP8[$163>>0] = $162; - $164 = (($$4623800) + 1)|0; - $exitcond877 = ($164|0)==($103|0); - if ($exitcond877) { - break; - } else { - $$4623800 = $164; - } - } - } - break; - } - case 5: { - $105 = ($103|0)>(0); - if ($105) { - $$5624798 = 0; - while(1) { - $165 = (($$1572) + ($$5624798)|0); - $166 = HEAP8[$165>>0]|0; - $167 = $166&255; - $168 = (($$5624798) - ($$1606))|0; - $169 = (($100) + ($168)|0); - $170 = HEAP8[$169>>0]|0; - $171 = $170&255; - $172 = $171 >>> 1; - $173 = (($172) + ($167))|0; - $174 = $173&255; - $175 = (($100) + ($$5624798)|0); - HEAP8[$175>>0] = $174; - $176 = (($$5624798) + 1)|0; - $exitcond876 = ($176|0)==($103|0); - if ($exitcond876) { - break; - } else { - $$5624798 = $176; - } - } - } - break; - } - case 6: { - $104 = ($103|0)>(0); - if ($104) { - $$6625796 = 0; - while(1) { - $177 = (($$1572) + ($$6625796)|0); - $178 = HEAP8[$177>>0]|0; - $179 = $178&255; - $180 = (($$6625796) - ($$1606))|0; - $181 = (($100) + ($180)|0); - $182 = HEAP8[$181>>0]|0; - $183 = $182&255; - $184 = (_stbi__paeth($183,0,0)|0); - $185 = (($184) + ($179))|0; - $186 = $185&255; - $187 = (($100) + ($$6625796)|0); - HEAP8[$187>>0] = $186; - $188 = (($$6625796) + 1)|0; - $exitcond875 = ($188|0)==($103|0); - if ($exitcond875) { - break; - } else { - $$6625796 = $188; - } - } - } - break; - } - default: { - } - } - $189 = (($$1572) + ($103)|0); - $$11$ph = $189; - } else { - if (!($19)) { - label = 54; - break; - } - $trunc = $$0582&255; - switch ($trunc<<24>>24) { - case 0: { - if ($37) { - $$9580 = $$1572; - } else { - $202 = ($$1606|0)>(0); - $203 = Math_imul($$6614736, $$1606)|0; - $$0608790 = $$0608787;$$2573789 = $$1572;$$2593788 = $100; - while(1) { - if ($202) { - $$7626784 = 0; - while(1) { - $204 = (($$2573789) + ($$7626784)|0); - $205 = HEAP8[$204>>0]|0; - $206 = (($$2593788) + ($$7626784)|0); - HEAP8[$206>>0] = $205; - $207 = (($$7626784) + 1)|0; - $exitcond871 = ($207|0)==($$1606|0); - if ($exitcond871) { - break; - } else { - $$7626784 = $207; - } - } - } - $208 = (($$2593788) + ($$1606)|0); - HEAP8[$208>>0] = -1; - $209 = (($$2573789) + ($$1606)|0); - $210 = (($$2593788) + ($15)|0); - $$0608 = (($$0608790) + -1)|0; - $211 = ($$0608|0)==(0); - if ($211) { - break; - } else { - $$0608790 = $$0608;$$2573789 = $209;$$2593788 = $210; - } - } - $scevgep873 = (($$1572) + ($203)|0); - $$9580 = $scevgep873; - } - break; - } - case 1: { - if ($38) { - $$9580 = $$1572; - } else { - $200 = ($$1606|0)>(0); - $201 = Math_imul($$6614736, $$1606)|0; - $$1609782 = $$1609779;$$3574781 = $$1572;$$3594780 = $100; - while(1) { - if ($200) { - $$8627776 = 0; - while(1) { - $212 = (($$3574781) + ($$8627776)|0); - $213 = HEAP8[$212>>0]|0; - $214 = $213&255; - $215 = (($$8627776) - ($15))|0; - $216 = (($$3594780) + ($215)|0); - $217 = HEAP8[$216>>0]|0; - $218 = $217&255; - $219 = (($218) + ($214))|0; - $220 = $219&255; - $221 = (($$3594780) + ($$8627776)|0); - HEAP8[$221>>0] = $220; - $222 = (($$8627776) + 1)|0; - $exitcond869 = ($222|0)==($$1606|0); - if ($exitcond869) { - break; - } else { - $$8627776 = $222; - } - } - } - $223 = (($$3594780) + ($$1606)|0); - HEAP8[$223>>0] = -1; - $224 = (($$3574781) + ($$1606)|0); - $225 = (($$3594780) + ($15)|0); - $$1609 = (($$1609782) + -1)|0; - $226 = ($$1609|0)==(0); - if ($226) { - break; - } else { - $$1609782 = $$1609;$$3574781 = $224;$$3594780 = $225; - } - } - $scevgep870 = (($$1572) + ($201)|0); - $$9580 = $scevgep870; - } - break; - } - case 2: { - if ($39) { - $$9580 = $$1572; - } else { - $198 = ($$1606|0)>(0); - $199 = Math_imul($$6614736, $$1606)|0; - $$2610774 = $$2610770;$$3586772 = $101;$$4575773 = $$1572;$$4595771 = $100; - while(1) { - if ($198) { - $$9628767 = 0; - while(1) { - $227 = (($$4575773) + ($$9628767)|0); - $228 = HEAP8[$227>>0]|0; - $229 = $228&255; - $230 = (($$3586772) + ($$9628767)|0); - $231 = HEAP8[$230>>0]|0; - $232 = $231&255; - $233 = (($232) + ($229))|0; - $234 = $233&255; - $235 = (($$4595771) + ($$9628767)|0); - HEAP8[$235>>0] = $234; - $236 = (($$9628767) + 1)|0; - $exitcond867 = ($236|0)==($$1606|0); - if ($exitcond867) { - break; - } else { - $$9628767 = $236; - } - } - } - $237 = (($$4595771) + ($$1606)|0); - HEAP8[$237>>0] = -1; - $238 = (($$4575773) + ($$1606)|0); - $239 = (($$4595771) + ($15)|0); - $240 = (($$3586772) + ($15)|0); - $$2610 = (($$2610774) + -1)|0; - $241 = ($$2610|0)==(0); - if ($241) { - break; - } else { - $$2610774 = $$2610;$$3586772 = $240;$$4575773 = $238;$$4595771 = $239; - } - } - $scevgep868 = (($$1572) + ($199)|0); - $$9580 = $scevgep868; - } - break; - } - case 3: { - if ($40) { - $$9580 = $$1572; - } else { - $196 = ($$1606|0)>(0); - $197 = Math_imul($$6614736, $$1606)|0; - $$3611765 = $$3611761;$$4587763 = $101;$$5576764 = $$1572;$$5596762 = $100; - while(1) { - if ($196) { - $$10629758 = 0; - while(1) { - $242 = (($$5576764) + ($$10629758)|0); - $243 = HEAP8[$242>>0]|0; - $244 = $243&255; - $245 = (($$4587763) + ($$10629758)|0); - $246 = HEAP8[$245>>0]|0; - $247 = $246&255; - $248 = (($$10629758) - ($15))|0; - $249 = (($$5596762) + ($248)|0); - $250 = HEAP8[$249>>0]|0; - $251 = $250&255; - $252 = (($251) + ($247))|0; - $253 = $252 >>> 1; - $254 = (($253) + ($244))|0; - $255 = $254&255; - $256 = (($$5596762) + ($$10629758)|0); - HEAP8[$256>>0] = $255; - $257 = (($$10629758) + 1)|0; - $exitcond865 = ($257|0)==($$1606|0); - if ($exitcond865) { - break; - } else { - $$10629758 = $257; - } - } - } - $258 = (($$5596762) + ($$1606)|0); - HEAP8[$258>>0] = -1; - $259 = (($$5576764) + ($$1606)|0); - $260 = (($$5596762) + ($15)|0); - $261 = (($$4587763) + ($15)|0); - $$3611 = (($$3611765) + -1)|0; - $262 = ($$3611|0)==(0); - if ($262) { - break; - } else { - $$3611765 = $$3611;$$4587763 = $261;$$5576764 = $259;$$5596762 = $260; - } - } - $scevgep866 = (($$1572) + ($197)|0); - $$9580 = $scevgep866; - } - break; - } - case 4: { - if ($41) { - $$9580 = $$1572; - } else { - $194 = ($$1606|0)>(0); - $195 = Math_imul($$6614736, $$1606)|0; - $$4612756 = $$4612752;$$5588754 = $101;$$6577755 = $$1572;$$6597753 = $100; - while(1) { - if ($194) { - $$11630749 = 0; - while(1) { - $263 = (($$6577755) + ($$11630749)|0); - $264 = HEAP8[$263>>0]|0; - $265 = $264&255; - $266 = (($$11630749) - ($15))|0; - $267 = (($$6597753) + ($266)|0); - $268 = HEAP8[$267>>0]|0; - $269 = $268&255; - $270 = (($$5588754) + ($$11630749)|0); - $271 = HEAP8[$270>>0]|0; - $272 = $271&255; - $273 = (($$5588754) + ($266)|0); - $274 = HEAP8[$273>>0]|0; - $275 = $274&255; - $276 = (_stbi__paeth($269,$272,$275)|0); - $277 = (($276) + ($265))|0; - $278 = $277&255; - $279 = (($$6597753) + ($$11630749)|0); - HEAP8[$279>>0] = $278; - $280 = (($$11630749) + 1)|0; - $exitcond863 = ($280|0)==($$1606|0); - if ($exitcond863) { - break; - } else { - $$11630749 = $280; - } - } - } - $281 = (($$6597753) + ($$1606)|0); - HEAP8[$281>>0] = -1; - $282 = (($$6577755) + ($$1606)|0); - $283 = (($$6597753) + ($15)|0); - $284 = (($$5588754) + ($15)|0); - $$4612 = (($$4612756) + -1)|0; - $285 = ($$4612|0)==(0); - if ($285) { - break; - } else { - $$4612756 = $$4612;$$5588754 = $284;$$6577755 = $282;$$6597753 = $283; - } - } - $scevgep864 = (($$1572) + ($195)|0); - $$9580 = $scevgep864; - } - break; - } - case 5: { - if ($42) { - $$9580 = $$1572; - } else { - $192 = ($$1606|0)>(0); - $193 = Math_imul($$6614736, $$1606)|0; - $$5613747 = $$5613744;$$7578746 = $$1572;$$7598745 = $100; - while(1) { - if ($192) { - $$12741 = 0; - while(1) { - $286 = (($$7578746) + ($$12741)|0); - $287 = HEAP8[$286>>0]|0; - $288 = $287&255; - $289 = (($$12741) - ($15))|0; - $290 = (($$7598745) + ($289)|0); - $291 = HEAP8[$290>>0]|0; - $292 = $291&255; - $293 = $292 >>> 1; - $294 = (($293) + ($288))|0; - $295 = $294&255; - $296 = (($$7598745) + ($$12741)|0); - HEAP8[$296>>0] = $295; - $297 = (($$12741) + 1)|0; - $exitcond861 = ($297|0)==($$1606|0); - if ($exitcond861) { - break; - } else { - $$12741 = $297; - } - } - } - $298 = (($$7598745) + ($$1606)|0); - HEAP8[$298>>0] = -1; - $299 = (($$7578746) + ($$1606)|0); - $300 = (($$7598745) + ($15)|0); - $$5613 = (($$5613747) + -1)|0; - $301 = ($$5613|0)==(0); - if ($301) { - break; - } else { - $$5613747 = $$5613;$$7578746 = $299;$$7598745 = $300; - } - } - $scevgep862 = (($$1572) + ($193)|0); - $$9580 = $scevgep862; - } - break; - } - case 6: { - if ($43) { - $$9580 = $$1572; - } else { - $190 = ($$1606|0)>(0); - $191 = Math_imul($$6614736, $$1606)|0; - $$6614739 = $$6614736;$$8579738 = $$1572;$$8599737 = $100; - while(1) { - if ($190) { - $$13733 = 0; - while(1) { - $302 = (($$8579738) + ($$13733)|0); - $303 = HEAP8[$302>>0]|0; - $304 = $303&255; - $305 = (($$13733) - ($15))|0; - $306 = (($$8599737) + ($305)|0); - $307 = HEAP8[$306>>0]|0; - $308 = $307&255; - $309 = (_stbi__paeth($308,0,0)|0); - $310 = (($309) + ($304))|0; - $311 = $310&255; - $312 = (($$8599737) + ($$13733)|0); - HEAP8[$312>>0] = $311; - $313 = (($$13733) + 1)|0; - $exitcond859 = ($313|0)==($$1606|0); - if ($exitcond859) { - break; - } else { - $$13733 = $313; - } - } - } - $314 = (($$8599737) + ($$1606)|0); - HEAP8[$314>>0] = -1; - $315 = (($$8579738) + ($$1606)|0); - $316 = (($$8599737) + ($15)|0); - $$6614 = (($$6614739) + -1)|0; - $317 = ($$6614|0)==(0); - if ($317) { - break; - } else { - $$6614739 = $$6614;$$8579738 = $315;$$8599737 = $316; - } - } - $scevgep860 = (($$1572) + ($191)|0); - $$9580 = $scevgep860; - } - break; - } - default: { - $$9580 = $$1572; - } - } - if ($brmerge888) { - $$11$ph = $$9580; - } else { - $318 = HEAP32[$21>>2]|0; - $319 = (($318) + ($45)|0); - $320 = (($$1606) + 1)|0; - $$7615792 = 0;$$9600793 = $319; - while(1) { - $321 = (($$9600793) + ($320)|0); - HEAP8[$321>>0] = -1; - $322 = (($$7615792) + 1)|0; - $323 = (($$9600793) + ($15)|0); - $exitcond874 = ($322|0)==($4|0); - if ($exitcond874) { - $$11$ph = $$9580; - break; - } else { - $$7615792 = $322;$$9600793 = $323; - } - } - } - } - $324 = (($$0617808) + 1)|0; - $325 = ($324>>>0)<($5>>>0); - if ($325) { - $$0571811 = $$11$ph;$$0602810 = $$1603;$$0605809 = $$1606;$$0617808 = $324; - } else { - break L12; - } - } - if ((label|0) == 12) { - ___assert_fail((7406|0),(6776|0),4314,(7361|0)); - // unreachable; - } - else if ((label|0) == 54) { - ___assert_fail((7432|0),(6776|0),4376,(7361|0)); - // unreachable; - } - else if ((label|0) == 101) { - _stbi__err(7449); - $$2 = 0; - return ($$2|0); - } - } - } while(0); - $326 = ($6|0)<(8); - if (!($326)) { - if (!($8)) { - $$2 = 1; - return ($$2|0); - } - $595 = Math_imul($4, $3)|0; - $596 = Math_imul($595, $5)|0; - $597 = ($596|0)==(0); - if ($597) { - $$2 = 1; - return ($$2|0); - } - $598 = HEAP32[$21>>2]|0; - $$0725 = $598;$$8616723 = 0; - while(1) { - $599 = HEAP8[$$0725>>0]|0; - $600 = $599&255; - $601 = $600 << 8; - $602 = ((($$0725)) + 1|0); - $603 = HEAP8[$602>>0]|0; - $604 = $603&255; - $605 = $601 | $604; - $606 = $605&65535; - HEAP16[$$0725>>1] = $606; - $607 = (($$8616723) + 1)|0; - $608 = ((($$0725)) + 2|0); - $exitcond = ($607|0)==($596|0); - if ($exitcond) { - $$2 = 1; - break; - } else { - $$0725 = $608;$$8616723 = $607; - } - } - return ($$2|0); - } - $327 = ($5|0)==(0); - if ($327) { - $$2 = 1; - return ($$2|0); - } - $328 = (0 - ($26))|0; - $329 = ($7|0)==(0); - $330 = (7145 + ($6)|0); - $$0562718 = (($4) + -1)|0; - $331 = ($$0562718|0)>(-1); - $$1715 = (($4) + -1)|0; - $332 = ($$1715|0)>(-1); - $333 = ($23|0)>(1); - $334 = ($23|0)>(3); - $335 = ($23|0)>(7); - $336 = (($23) + -8)|0; - $337 = $336 >>> 3; - $338 = $337 << 3; - $339 = (($338) + 8)|0; - $340 = (($336) - ($338))|0; - $341 = (($337) + ($11))|0; - $342 = (($341) + 1)|0; - $343 = (($342) - ($26))|0; - $344 = (($23) + -4)|0; - $345 = $344 >>> 2; - $346 = $345 << 2; - $347 = (($346) + 4)|0; - $348 = (($344) - ($346))|0; - $349 = (($345) + ($11))|0; - $350 = (($349) + 1)|0; - $351 = (($350) - ($26))|0; - $352 = (($23) + -2)|0; - $353 = $352 >>> 1; - $354 = $353 << 1; - $355 = (($354) + 2)|0; - $356 = (($352) - ($354))|0; - $357 = (($353) + ($11))|0; - $358 = (($357) + 1)|0; - $359 = (($358) - ($26))|0; - $$1618721 = 0;$indvars$iv = $339;$indvars$iv842 = $343;$indvars$iv845 = $347;$indvars$iv848 = $351;$indvars$iv851 = $355;$indvars$iv854 = $359; - L168: while(1) { - $360 = HEAP32[$21>>2]|0; - $361 = Math_imul($$1618721, $12)|0; - $362 = (($360) + ($361)|0); - $363 = (($362) + ($11)|0); - $364 = (($363) + ($328)|0); - if ($329) { - $365 = HEAP8[$330>>0]|0; - $366 = $365&255; - $371 = $366; - } else { - $371 = 1; - } - switch ($6|0) { - case 4: { - if ($333) { - $scevgep853 = (($360) + ($indvars$iv851)|0); - $$0565709 = $364;$$0568708 = $362;$$14707 = $23; - while(1) { - $367 = HEAP8[$$0565709>>0]|0; - $368 = $367&255; - $369 = $368 >>> 4; - $370 = Math_imul($369, $371)|0; - $372 = $370&255; - $373 = ((($$0568708)) + 1|0); - HEAP8[$$0568708>>0] = $372; - $374 = HEAP8[$$0565709>>0]|0; - $375 = $374 & 15; - $376 = $375&255; - $377 = Math_imul($376, $371)|0; - $378 = $377&255; - $379 = ((($$0568708)) + 2|0); - HEAP8[$373>>0] = $378; - $380 = (($$14707) + -2)|0; - $381 = ((($$0565709)) + 1|0); - $382 = ($380|0)>(1); - if ($382) { - $$0565709 = $381;$$0568708 = $379;$$14707 = $380; - } else { - break; - } - } - $scevgep856 = (($360) + ($indvars$iv854)|0); - $$0565$lcssa = $scevgep856;$$0568$lcssa = $scevgep853;$$14$lcssa = $356; - } else { - $$0565$lcssa = $364;$$0568$lcssa = $362;$$14$lcssa = $23; - } - $383 = ($$14$lcssa|0)==(1); - if ($383) { - $384 = HEAP8[$$0565$lcssa>>0]|0; - $385 = $384&255; - $386 = $385 >>> 4; - $387 = Math_imul($386, $371)|0; - $388 = $387&255; - HEAP8[$$0568$lcssa>>0] = $388; - } - break; - } - case 2: { - if ($334) { - $scevgep847 = (($360) + ($indvars$iv845)|0); - $$1566701 = $364;$$1569700 = $362;$$15699 = $23; - while(1) { - $389 = HEAP8[$$1566701>>0]|0; - $390 = $389&255; - $391 = $390 >>> 6; - $392 = Math_imul($391, $371)|0; - $393 = $392&255; - $394 = ((($$1569700)) + 1|0); - HEAP8[$$1569700>>0] = $393; - $395 = HEAP8[$$1566701>>0]|0; - $396 = $395&255; - $397 = $396 >>> 4; - $398 = $397 & 3; - $399 = Math_imul($398, $371)|0; - $400 = $399&255; - $401 = ((($$1569700)) + 2|0); - HEAP8[$394>>0] = $400; - $402 = HEAP8[$$1566701>>0]|0; - $403 = $402&255; - $404 = $403 >>> 2; - $405 = $404 & 3; - $406 = Math_imul($405, $371)|0; - $407 = $406&255; - $408 = ((($$1569700)) + 3|0); - HEAP8[$401>>0] = $407; - $409 = HEAP8[$$1566701>>0]|0; - $410 = $409 & 3; - $411 = $410&255; - $412 = Math_imul($411, $371)|0; - $413 = $412&255; - $414 = ((($$1569700)) + 4|0); - HEAP8[$408>>0] = $413; - $415 = (($$15699) + -4)|0; - $416 = ((($$1566701)) + 1|0); - $417 = ($415|0)>(3); - if ($417) { - $$1566701 = $416;$$1569700 = $414;$$15699 = $415; - } else { - break; - } - } - $scevgep850 = (($360) + ($indvars$iv848)|0); - $$15$lcssa = $348;$$1566$lcssa = $scevgep850;$$1569$lcssa = $scevgep847; - } else { - $$15$lcssa = $23;$$1566$lcssa = $364;$$1569$lcssa = $362; - } - $418 = ($$15$lcssa|0)>(0); - if ($418) { - $419 = HEAP8[$$1566$lcssa>>0]|0; - $420 = $419&255; - $421 = $420 >>> 6; - $422 = Math_imul($421, $371)|0; - $423 = $422&255; - HEAP8[$$1569$lcssa>>0] = $423; - $424 = ($$15$lcssa|0)==(1); - if (!($424)) { - $425 = ((($$1569$lcssa)) + 1|0); - $426 = HEAP8[$$1566$lcssa>>0]|0; - $427 = $426&255; - $428 = $427 >>> 4; - $429 = $428 & 3; - $430 = Math_imul($429, $371)|0; - $431 = $430&255; - HEAP8[$425>>0] = $431; - $432 = ($$15$lcssa|0)>(2); - if ($432) { - $433 = ((($$1569$lcssa)) + 2|0); - $434 = HEAP8[$$1566$lcssa>>0]|0; - $435 = $434&255; - $436 = $435 >>> 2; - $437 = $436 & 3; - $438 = Math_imul($437, $371)|0; - $439 = $438&255; - HEAP8[$433>>0] = $439; - } - } - } - break; - } - case 1: { - if ($335) { - $scevgep = (($360) + ($indvars$iv)|0); - $$16694 = $23;$$2567696 = $364;$$4695 = $362; - while(1) { - $440 = HEAP8[$$2567696>>0]|0; - $441 = $440&255; - $442 = $441 >>> 7; - $443 = (0 - ($442))|0; - $444 = $371 & $443; - $445 = $444&255; - $446 = ((($$4695)) + 1|0); - HEAP8[$$4695>>0] = $445; - $447 = HEAP8[$$2567696>>0]|0; - $448 = $447&255; - $449 = $448 >>> 6; - $450 = $449 & 1; - $451 = (0 - ($450))|0; - $452 = $371 & $451; - $453 = $452&255; - $454 = ((($$4695)) + 2|0); - HEAP8[$446>>0] = $453; - $455 = HEAP8[$$2567696>>0]|0; - $456 = $455&255; - $457 = $456 >>> 5; - $458 = $457 & 1; - $459 = (0 - ($458))|0; - $460 = $371 & $459; - $461 = $460&255; - $462 = ((($$4695)) + 3|0); - HEAP8[$454>>0] = $461; - $463 = HEAP8[$$2567696>>0]|0; - $464 = $463&255; - $465 = $464 >>> 4; - $466 = $465 & 1; - $467 = (0 - ($466))|0; - $468 = $371 & $467; - $469 = $468&255; - $470 = ((($$4695)) + 4|0); - HEAP8[$462>>0] = $469; - $471 = HEAP8[$$2567696>>0]|0; - $472 = $471&255; - $473 = $472 >>> 3; - $474 = $473 & 1; - $475 = (0 - ($474))|0; - $476 = $371 & $475; - $477 = $476&255; - $478 = ((($$4695)) + 5|0); - HEAP8[$470>>0] = $477; - $479 = HEAP8[$$2567696>>0]|0; - $480 = $479&255; - $481 = $480 >>> 2; - $482 = $481 & 1; - $483 = (0 - ($482))|0; - $484 = $371 & $483; - $485 = $484&255; - $486 = ((($$4695)) + 6|0); - HEAP8[$478>>0] = $485; - $487 = HEAP8[$$2567696>>0]|0; - $488 = $487&255; - $489 = $488 >>> 1; - $490 = $489 & 1; - $491 = (0 - ($490))|0; - $492 = $371 & $491; - $493 = $492&255; - $494 = ((($$4695)) + 7|0); - HEAP8[$486>>0] = $493; - $495 = HEAP8[$$2567696>>0]|0; - $496 = $495 & 1; - $497 = $496&255; - $498 = (0 - ($497))|0; - $499 = $371 & $498; - $500 = $499&255; - $501 = ((($$4695)) + 8|0); - HEAP8[$494>>0] = $500; - $502 = (($$16694) + -8)|0; - $503 = ((($$2567696)) + 1|0); - $504 = ($502|0)>(7); - if ($504) { - $$16694 = $502;$$2567696 = $503;$$4695 = $501; - } else { - break; - } - } - $scevgep844 = (($360) + ($indvars$iv842)|0); - $$16$lcssa = $340;$$2567$lcssa = $scevgep844;$$4$lcssa = $scevgep; - } else { - $$16$lcssa = $23;$$2567$lcssa = $364;$$4$lcssa = $362; - } - $505 = ($$16$lcssa|0)>(0); - if ($505) { - $506 = HEAP8[$$2567$lcssa>>0]|0; - $507 = $506&255; - $508 = $507 >>> 7; - $509 = (0 - ($508))|0; - $510 = $371 & $509; - $511 = $510&255; - HEAP8[$$4$lcssa>>0] = $511; - $512 = ($$16$lcssa|0)==(1); - if (!($512)) { - $513 = ((($$4$lcssa)) + 1|0); - $514 = HEAP8[$$2567$lcssa>>0]|0; - $515 = $514&255; - $516 = $515 >>> 6; - $517 = $516 & 1; - $518 = (0 - ($517))|0; - $519 = $371 & $518; - $520 = $519&255; - HEAP8[$513>>0] = $520; - $521 = ($$16$lcssa|0)>(2); - if ($521) { - $522 = ((($$4$lcssa)) + 2|0); - $523 = HEAP8[$$2567$lcssa>>0]|0; - $524 = $523&255; - $525 = $524 >>> 5; - $526 = $525 & 1; - $527 = (0 - ($526))|0; - $528 = $371 & $527; - $529 = $528&255; - HEAP8[$522>>0] = $529; - $530 = ($$16$lcssa|0)==(3); - if (!($530)) { - $531 = ((($$4$lcssa)) + 3|0); - $532 = HEAP8[$$2567$lcssa>>0]|0; - $533 = $532&255; - $534 = $533 >>> 4; - $535 = $534 & 1; - $536 = (0 - ($535))|0; - $537 = $371 & $536; - $538 = $537&255; - HEAP8[$531>>0] = $538; - $539 = ($$16$lcssa|0)>(4); - if ($539) { - $540 = ((($$4$lcssa)) + 4|0); - $541 = HEAP8[$$2567$lcssa>>0]|0; - $542 = $541&255; - $543 = $542 >>> 3; - $544 = $543 & 1; - $545 = (0 - ($544))|0; - $546 = $371 & $545; - $547 = $546&255; - HEAP8[$540>>0] = $547; - $548 = ($$16$lcssa|0)==(5); - if (!($548)) { - $549 = ((($$4$lcssa)) + 5|0); - $550 = HEAP8[$$2567$lcssa>>0]|0; - $551 = $550&255; - $552 = $551 >>> 2; - $553 = $552 & 1; - $554 = (0 - ($553))|0; - $555 = $371 & $554; - $556 = $555&255; - HEAP8[$549>>0] = $556; - $557 = ($$16$lcssa|0)>(6); - if ($557) { - $558 = ((($$4$lcssa)) + 6|0); - $559 = HEAP8[$$2567$lcssa>>0]|0; - $560 = $559&255; - $561 = $560 >>> 1; - $562 = $561 & 1; - $563 = (0 - ($562))|0; - $564 = $371 & $563; - $565 = $564&255; - HEAP8[$558>>0] = $565; - } - } - } - } - } - } - } - break; - } - default: { - } - } - L207: do { - if (!($17)) { - $566 = HEAP32[$21>>2]|0; - $567 = (($566) + ($361)|0); - switch ($14|0) { - case 1: { - if ($331) { - $$0562719 = $$0562718; - } else { - break L207; - } - while(1) { - $568 = $$0562719 << 1; - $569 = $568 | 1; - $570 = (($567) + ($569)|0); - HEAP8[$570>>0] = -1; - $571 = (($567) + ($$0562719)|0); - $572 = HEAP8[$571>>0]|0; - $573 = (($567) + ($568)|0); - HEAP8[$573>>0] = $572; - $$0562 = (($$0562719) + -1)|0; - $574 = ($$0562|0)>(-1); - if ($574) { - $$0562719 = $$0562; - } else { - break; - } - } - break; - } - case 3: { - if ($332) { - $$1716 = $$1715; - } else { - break L207; - } - while(1) { - $575 = $$1716 << 2; - $576 = $575 | 3; - $577 = (($567) + ($576)|0); - HEAP8[$577>>0] = -1; - $578 = ($$1716*3)|0; - $579 = (($578) + 2)|0; - $580 = (($567) + ($579)|0); - $581 = HEAP8[$580>>0]|0; - $582 = $575 | 2; - $583 = (($567) + ($582)|0); - HEAP8[$583>>0] = $581; - $584 = (($578) + 1)|0; - $585 = (($567) + ($584)|0); - $586 = HEAP8[$585>>0]|0; - $587 = $575 | 1; - $588 = (($567) + ($587)|0); - HEAP8[$588>>0] = $586; - $589 = (($567) + ($578)|0); - $590 = HEAP8[$589>>0]|0; - $591 = (($567) + ($575)|0); - HEAP8[$591>>0] = $590; - $$1 = (($$1716) + -1)|0; - $592 = ($$1|0)>(-1); - if ($592) { - $$1716 = $$1; - } else { - break; - } - } - break; - } - default: { - label = 140; - break L168; - } - } - } - } while(0); - $593 = (($$1618721) + 1)|0; - $594 = ($593>>>0)<($5>>>0); - $indvars$iv$next = (($indvars$iv) + ($12))|0; - $indvars$iv$next843 = (($indvars$iv842) + ($12))|0; - $indvars$iv$next846 = (($indvars$iv845) + ($12))|0; - $indvars$iv$next849 = (($indvars$iv848) + ($12))|0; - $indvars$iv$next852 = (($indvars$iv851) + ($12))|0; - $indvars$iv$next855 = (($indvars$iv854) + ($12))|0; - if ($594) { - $$1618721 = $593;$indvars$iv = $indvars$iv$next;$indvars$iv842 = $indvars$iv$next843;$indvars$iv845 = $indvars$iv$next846;$indvars$iv848 = $indvars$iv$next849;$indvars$iv851 = $indvars$iv$next852;$indvars$iv854 = $indvars$iv$next855; - } else { - $$2 = 1; - label = 147; - break; - } - } - if ((label|0) == 140) { - ___assert_fail((7464|0),(6776|0),4465,(7361|0)); - // unreachable; - } - else if ((label|0) == 147) { - return ($$2|0); - } - return (0)|0; -} -function _stbi__paeth($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ispos = 0, $ispos26 = 0, $ispos28 = 0, $neg = 0, $neg27 = 0, $neg29 = 0, $or$cond = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $3 = (($1) + ($0))|0; - $4 = (($3) - ($2))|0; - $5 = (($4) - ($0))|0; - $ispos = ($5|0)>(-1); - $neg = (0 - ($5))|0; - $6 = $ispos ? $5 : $neg; - $7 = (($4) - ($1))|0; - $ispos26 = ($7|0)>(-1); - $neg27 = (0 - ($7))|0; - $8 = $ispos26 ? $7 : $neg27; - $9 = (($4) - ($2))|0; - $ispos28 = ($9|0)>(-1); - $neg29 = (0 - ($9))|0; - $10 = $ispos28 ? $9 : $neg29; - $11 = ($6|0)>($8|0); - $12 = ($6|0)>($10|0); - $or$cond = $11 | $12; - $13 = ($8|0)>($10|0); - $$ = $13 ? $2 : $1; - $$0 = $or$cond ? $$ : $0; - return ($$0|0); -} -function _stbi__do_zlib($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $10 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ((($0)) + 20|0); - HEAP32[$5>>2] = $1; - $6 = ((($0)) + 16|0); - HEAP32[$6>>2] = $1; - $7 = (($1) + ($2)|0); - $8 = ((($0)) + 24|0); - HEAP32[$8>>2] = $7; - $9 = ((($0)) + 28|0); - HEAP32[$9>>2] = $3; - $10 = (_stbi__parse_zlib($0,$4)|0); - return ($10|0); -} -function _stbi__parse_zlib($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)==(0); - if (!($2)) { - $3 = (_stbi__parse_zlib_header($0)|0); - $4 = ($3|0)==(0); - if ($4) { - $$0 = 0; - return ($$0|0); - } - } - $5 = ((($0)) + 8|0); - HEAP32[$5>>2] = 0; - $6 = ((($0)) + 12|0); - HEAP32[$6>>2] = 0; - $7 = ((($0)) + 32|0); - $8 = ((($0)) + 2052|0); - L5: while(1) { - $9 = (_stbi__zreceive($0,1)|0); - $10 = (_stbi__zreceive($0,2)|0); - switch ($10|0) { - case 3: { - $$0 = 0; - label = 11; - break L5; - break; - } - case 0: { - $11 = (_stbi__parse_uncompressed_block($0)|0); - $12 = ($11|0)==(0); - if ($12) { - $$0 = 0; - label = 11; - break L5; - } - break; - } - case 1: { - $13 = (_stbi__zbuild_huffman($7,7475,288)|0); - $14 = ($13|0)==(0); - if ($14) { - $$0 = 0; - label = 11; - break L5; - } - $15 = (_stbi__zbuild_huffman($8,7763,32)|0); - $16 = ($15|0)==(0); - if ($16) { - $$0 = 0; - label = 11; - break L5; - } else { - label = 9; - } - break; - } - default: { - $17 = (_stbi__compute_huffman_codes($0)|0); - $18 = ($17|0)==(0); - if ($18) { - $$0 = 0; - label = 11; - break L5; - } else { - label = 9; - } - } - } - if ((label|0) == 9) { - label = 0; - $19 = (_stbi__parse_huffman_block($0)|0); - $20 = ($19|0)==(0); - if ($20) { - $$0 = 0; - label = 11; - break; - } - } - $21 = ($9|0)==(0); - if (!($21)) { - $$0 = 1; - label = 11; - break; - } - } - if ((label|0) == 11) { - return ($$0|0); - } - return (0)|0; -} -function _stbi__parse_zlib_header($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (_stbi__zget8($0)|0); - $2 = $1&255; - $3 = $2 & 15; - $4 = (_stbi__zget8($0)|0); - $5 = $4&255; - $6 = $2 << 8; - $7 = $6 | $5; - $8 = (($7>>>0) % 31)&-1; - $9 = ($8|0)==(0); - if (!($9)) { - _stbi__err(8129); - $$0 = 0; - return ($$0|0); - } - $10 = $5 & 32; - $11 = ($10|0)==(0); - if (!($11)) { - _stbi__err(8145); - $$0 = 0; - return ($$0|0); - } - $12 = ($3|0)==(8); - if ($12) { - $$0 = 1; - return ($$0|0); - } - _stbi__err(8160); - $$0 = 0; - return ($$0|0); -} -function _stbi__zreceive($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 8|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)<($1|0); - if ($4) { - _stbi__fill_bits($0); - } - $5 = ((($0)) + 12|0); - $6 = HEAP32[$5>>2]|0; - $7 = 1 << $1; - $8 = (($7) + -1)|0; - $9 = $6 & $8; - $10 = $6 >>> $1; - HEAP32[$5>>2] = $10; - $11 = HEAP32[$2>>2]|0; - $12 = (($11) - ($1))|0; - HEAP32[$2>>2] = $12; - return ($9|0); -} -function _stbi__parse_uncompressed_block($0) { - $0 = $0|0; - var $$0$lcssa = 0, $$034 = 0, $$037 = 0, $$136 = 0, $$lcssa = 0, $$ph = 0, $$pr = 0, $$promoted = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; - var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; - var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0; - var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond47 = 0, $smax = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - $2 = ((($0)) + 8|0); - $3 = HEAP32[$2>>2]|0; - $4 = $3 & 7; - $5 = ($4|0)==(0); - if ($5) { - $$ph = $3; - } else { - (_stbi__zreceive($0,$4)|0); - $$pr = HEAP32[$2>>2]|0; - $$ph = $$pr; - } - $6 = ($$ph|0)>(0); - if ($6) { - $7 = ((($0)) + 12|0); - $$promoted = HEAP32[$7>>2]|0; - $8 = $$ph ^ -1; - $9 = ($8|0)>(-9); - $smax = $9 ? $8 : -9; - $10 = (($$ph) + ($smax))|0; - $11 = (($10) + 8)|0; - $12 = $11 >>> 3; - $13 = (($12) + 1)|0; - $14 = $12 << 3; - $$037 = 0;$16 = $$promoted; - while(1) { - $15 = $16&255; - $17 = (($$037) + 1)|0; - $18 = (($1) + ($$037)|0); - HEAP8[$18>>0] = $15; - $19 = $16 >>> 8; - $exitcond47 = ($17|0)==($13|0); - if ($exitcond47) { - break; - } else { - $$037 = $17;$16 = $19; - } - } - $20 = (($$ph) + -8)|0; - $21 = (($20) - ($14))|0; - HEAP32[$7>>2] = $19; - HEAP32[$2>>2] = $21; - $$0$lcssa = $13;$$lcssa = $21; - } else { - $$0$lcssa = 0;$$lcssa = $$ph; - } - $22 = ($$lcssa|0)==(0); - if (!($22)) { - ___assert_fail((8051|0),(6776|0),4033,(8068|0)); - // unreachable; - } - $23 = ($$0$lcssa|0)<(4); - if ($23) { - $$136 = $$0$lcssa; - while(1) { - $24 = (_stbi__zget8($0)|0); - $25 = (($$136) + 1)|0; - $26 = (($1) + ($$136)|0); - HEAP8[$26>>0] = $24; - $exitcond = ($25|0)==(4); - if ($exitcond) { - break; - } else { - $$136 = $25; - } - } - } - $27 = ((($1)) + 1|0); - $28 = HEAP8[$27>>0]|0; - $29 = $28&255; - $30 = $29 << 8; - $31 = HEAP8[$1>>0]|0; - $32 = $31&255; - $33 = $30 | $32; - $34 = ((($1)) + 3|0); - $35 = HEAP8[$34>>0]|0; - $36 = $35&255; - $37 = $36 << 8; - $38 = ((($1)) + 2|0); - $39 = HEAP8[$38>>0]|0; - $40 = $39&255; - $41 = $37 | $40; - $42 = $33 ^ 65535; - $43 = ($41|0)==($42|0); - if (!($43)) { - _stbi__err(8099); - $$034 = 0; - STACKTOP = sp;return ($$034|0); - } - $44 = HEAP32[$0>>2]|0; - $45 = (($44) + ($33)|0); - $46 = ((($0)) + 4|0); - $47 = HEAP32[$46>>2]|0; - $48 = ($45>>>0)>($47>>>0); - if ($48) { - _stbi__err(8112); - $$034 = 0; - STACKTOP = sp;return ($$034|0); - } - $49 = ((($0)) + 16|0); - $50 = HEAP32[$49>>2]|0; - $51 = (($50) + ($33)|0); - $52 = ((($0)) + 24|0); - $53 = HEAP32[$52>>2]|0; - $54 = ($51>>>0)>($53>>>0); - if ($54) { - $55 = (_stbi__zexpand($0,$50,$33)|0); - $56 = ($55|0)==(0); - if ($56) { - $$034 = 0; - STACKTOP = sp;return ($$034|0); - } - } - $57 = HEAP32[$49>>2]|0; - $58 = HEAP32[$0>>2]|0; - _memcpy(($57|0),($58|0),($33|0))|0; - $59 = HEAP32[$0>>2]|0; - $60 = (($59) + ($33)|0); - HEAP32[$0>>2] = $60; - $61 = HEAP32[$49>>2]|0; - $62 = (($61) + ($33)|0); - HEAP32[$49>>2] = $62; - $$034 = 1; - STACKTOP = sp;return ($$034|0); -} -function _stbi__zbuild_huffman($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$075 = 0, $$07688 = 0, $$07785 = 0, $$07884 = 0, $$081 = 0, $$286 = 0, $$382 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; - var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; - var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; - var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond91 = 0, $or$cond = 0, dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $3 = sp + 72|0; - $4 = sp; - dest=$4; stop=dest+68|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - _memset(($0|0),0,1024)|0; - $5 = ($2|0)>(0); - if ($5) { - $$07688 = 0; - while(1) { - $6 = (($1) + ($$07688)|0); - $7 = HEAP8[$6>>0]|0; - $8 = $7&255; - $9 = (($4) + ($8<<2)|0); - $10 = HEAP32[$9>>2]|0; - $11 = (($10) + 1)|0; - HEAP32[$9>>2] = $11; - $12 = (($$07688) + 1)|0; - $exitcond91 = ($12|0)==($2|0); - if ($exitcond91) { - break; - } else { - $$07688 = $12; - } - } - } - HEAP32[$4>>2] = 0; - $16 = ((($4)) + 4|0); - $17 = HEAP32[$16>>2]|0; - $18 = ($17|0)>(2); - if (!($18)) { - $13 = ((($4)) + 8|0); - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)>(4); - if (!($15)) { - $69 = ((($4)) + 12|0); - $70 = HEAP32[$69>>2]|0; - $71 = ($70|0)>(8); - if (!($71)) { - $72 = ((($4)) + 16|0); - $73 = HEAP32[$72>>2]|0; - $74 = ($73|0)>(16); - if (!($74)) { - $75 = ((($4)) + 20|0); - $76 = HEAP32[$75>>2]|0; - $77 = ($76|0)>(32); - if (!($77)) { - $78 = ((($4)) + 24|0); - $79 = HEAP32[$78>>2]|0; - $80 = ($79|0)>(64); - if (!($80)) { - $81 = ((($4)) + 28|0); - $82 = HEAP32[$81>>2]|0; - $83 = ($82|0)>(128); - if (!($83)) { - $84 = ((($4)) + 32|0); - $85 = HEAP32[$84>>2]|0; - $86 = ($85|0)>(256); - if (!($86)) { - $87 = ((($4)) + 36|0); - $88 = HEAP32[$87>>2]|0; - $89 = ($88|0)>(512); - if (!($89)) { - $90 = ((($4)) + 40|0); - $91 = HEAP32[$90>>2]|0; - $92 = ($91|0)>(1024); - if (!($92)) { - $93 = ((($4)) + 44|0); - $94 = HEAP32[$93>>2]|0; - $95 = ($94|0)>(2048); - if (!($95)) { - $96 = ((($4)) + 48|0); - $97 = HEAP32[$96>>2]|0; - $98 = ($97|0)>(4096); - if (!($98)) { - $99 = ((($4)) + 52|0); - $100 = HEAP32[$99>>2]|0; - $101 = ($100|0)>(8192); - if (!($101)) { - $102 = ((($4)) + 56|0); - $103 = HEAP32[$102>>2]|0; - $104 = ($103|0)>(16384); - if (!($104)) { - $105 = ((($4)) + 60|0); - $106 = HEAP32[$105>>2]|0; - $107 = ($106|0)>(32768); - if (!($107)) { - $$07785 = 0;$$07884 = 0;$$286 = 1; - while(1) { - $19 = (($3) + ($$286<<2)|0); - HEAP32[$19>>2] = $$07884; - $20 = $$07884&65535; - $21 = (((($0)) + 1024|0) + ($$286<<1)|0); - HEAP16[$21>>1] = $20; - $22 = $$07785&65535; - $23 = (((($0)) + 1124|0) + ($$286<<1)|0); - HEAP16[$23>>1] = $22; - $24 = (($4) + ($$286<<2)|0); - $25 = HEAP32[$24>>2]|0; - $26 = (($25) + ($$07884))|0; - $27 = ($25|0)!=(0); - $28 = 1 << $$286; - $29 = ($26|0)>($28|0); - $or$cond = $27 & $29; - if ($or$cond) { - label = 7; - break; - } - $30 = (16 - ($$286))|0; - $31 = $26 << $30; - $32 = (((($0)) + 1056|0) + ($$286<<2)|0); - HEAP32[$32>>2] = $31; - $33 = $26 << 1; - $34 = (($25) + ($$07785))|0; - $35 = (($$286) + 1)|0; - $36 = ($35|0)<(16); - if ($36) { - $$07785 = $34;$$07884 = $33;$$286 = $35; - } else { - break; - } - } - if ((label|0) == 7) { - _stbi__err(7989); - $$075 = 0; - STACKTOP = sp;return ($$075|0); - } - $37 = ((($0)) + 1120|0); - HEAP32[$37>>2] = 65536; - $38 = ($2|0)>(0); - if ($38) { - $$382 = 0; - } else { - $$075 = 1; - STACKTOP = sp;return ($$075|0); - } - while(1) { - $39 = (($1) + ($$382)|0); - $40 = HEAP8[$39>>0]|0; - $41 = $40&255; - $42 = ($40<<24>>24)==(0); - if (!($42)) { - $43 = (($3) + ($41<<2)|0); - $44 = HEAP32[$43>>2]|0; - $45 = (((($0)) + 1024|0) + ($41<<1)|0); - $46 = HEAP16[$45>>1]|0; - $47 = $46&65535; - $48 = (($44) - ($47))|0; - $49 = (((($0)) + 1124|0) + ($41<<1)|0); - $50 = HEAP16[$49>>1]|0; - $51 = $50&65535; - $52 = (($48) + ($51))|0; - $53 = $41 << 9; - $54 = $53 | $$382; - $55 = $54&65535; - $56 = (((($0)) + 1156|0) + ($52)|0); - HEAP8[$56>>0] = $40; - $57 = $$382&65535; - $58 = (((($0)) + 1444|0) + ($52<<1)|0); - HEAP16[$58>>1] = $57; - $59 = ($40&255)<(10); - do { - if ($59) { - $60 = (_stbi__bit_reverse($44,$41)|0); - $61 = ($60|0)<(512); - if (!($61)) { - break; - } - $62 = 1 << $41; - $$081 = $60; - while(1) { - $63 = (($0) + ($$081<<1)|0); - HEAP16[$63>>1] = $55; - $64 = (($$081) + ($62))|0; - $65 = ($64|0)<(512); - if ($65) { - $$081 = $64; - } else { - break; - } - } - } - } while(0); - $66 = HEAP32[$43>>2]|0; - $67 = (($66) + 1)|0; - HEAP32[$43>>2] = $67; - } - $68 = (($$382) + 1)|0; - $exitcond = ($68|0)==($2|0); - if ($exitcond) { - $$075 = 1; - break; - } else { - $$382 = $68; - } - } - STACKTOP = sp;return ($$075|0); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - _stbi__err(8041); - $$075 = 0; - STACKTOP = sp;return ($$075|0); -} -function _stbi__compute_huffman_codes($0) { - $0 = $0|0; - var $$ = 0, $$0 = 0, $$061 = 0, $$06579 = 0, $$066$be = 0, $$066$lcssa = 0, $$06678 = 0, $$4 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; - var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; - var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $not$ = 0, dest = 0; - var label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 2496|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2496|0); - $1 = sp; - $2 = sp + 2039|0; - $3 = sp + 2020|0; - $4 = (_stbi__zreceive($0,5)|0); - $5 = (($4) + 257)|0; - $6 = (_stbi__zreceive($0,5)|0); - $7 = (($6) + 1)|0; - $8 = (_stbi__zreceive($0,4)|0); - $9 = (($8) + 4)|0; - $10 = (($7) + ($5))|0; - dest=$3; stop=dest+19|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); - $11 = ($9|0)>(0); - if ($11) { - $$06579 = 0; - while(1) { - $12 = (_stbi__zreceive($0,3)|0); - $13 = $12&255; - $14 = (7970 + ($$06579)|0); - $15 = HEAP8[$14>>0]|0; - $16 = $15&255; - $17 = (($3) + ($16)|0); - HEAP8[$17>>0] = $13; - $18 = (($$06579) + 1)|0; - $exitcond = ($18|0)==($9|0); - if ($exitcond) { - break; - } else { - $$06579 = $18; - } - } - } - $19 = (_stbi__zbuild_huffman($1,$3,19)|0); - $20 = ($19|0)==(0); - if ($20) { - $$4 = 0; - STACKTOP = sp;return ($$4|0); - } - $21 = ($10|0)>(0); - L8: do { - if ($21) { - $$06678 = 0; - L9: while(1) { - $22 = (_stbi__zhuffman_decode($0,$1)|0); - $23 = ($22>>>0)>(18); - if ($23) { - label = 6; - break; - } - $24 = ($22|0)<(16); - if ($24) { - $25 = $22&255; - $26 = (($$06678) + 1)|0; - $27 = (($2) + ($$06678)|0); - HEAP8[$27>>0] = $25; - $$066$be = $26; - } else { - switch ($22|0) { - case 16: { - $28 = (_stbi__zreceive($0,2)|0); - $29 = ($$06678|0)==(0); - if ($29) { - label = 11; - break L9; - } - $30 = (($28) + 3)|0; - $31 = (($$06678) + -1)|0; - $32 = (($2) + ($31)|0); - $33 = HEAP8[$32>>0]|0; - $$0 = $33;$$061 = $30; - break; - } - case 17: { - $34 = (_stbi__zreceive($0,3)|0); - $35 = (($34) + 3)|0; - $$0 = 0;$$061 = $35; - break; - } - case 18: { - $36 = (_stbi__zreceive($0,7)|0); - $37 = (($36) + 11)|0; - $$0 = 0;$$061 = $37; - break; - } - default: { - label = 14; - break L9; - } - } - $38 = (($10) - ($$06678))|0; - $39 = ($38|0)<($$061|0); - if ($39) { - label = 17; - break; - } - $40 = (($2) + ($$06678)|0); - _memset(($40|0),($$0|0),($$061|0))|0; - $41 = (($$061) + ($$06678))|0; - $$066$be = $41; - } - $42 = ($10|0)>($$066$be|0); - if ($42) { - $$06678 = $$066$be; - } else { - $$066$lcssa = $$066$be; - break L8; - } - } - if ((label|0) == 6) { - _stbi__err(7989); - $$4 = 0; - STACKTOP = sp;return ($$4|0); - } - else if ((label|0) == 11) { - _stbi__err(7989); - $$4 = 0; - STACKTOP = sp;return ($$4|0); - } - else if ((label|0) == 14) { - ___assert_fail((8005|0),(6776|0),4006,(8013|0)); - // unreachable; - } - else if ((label|0) == 17) { - _stbi__err(7989); - $$4 = 0; - STACKTOP = sp;return ($$4|0); - } - } else { - $$066$lcssa = 0; - } - } while(0); - $43 = ($10|0)==($$066$lcssa|0); - if (!($43)) { - _stbi__err(7989); - $$4 = 0; - STACKTOP = sp;return ($$4|0); - } - $44 = ((($0)) + 32|0); - $45 = (_stbi__zbuild_huffman($44,$2,$5)|0); - $46 = ($45|0)==(0); - if ($46) { - $$4 = 0; - STACKTOP = sp;return ($$4|0); - } - $47 = ((($0)) + 2052|0); - $48 = (($2) + ($5)|0); - $49 = (_stbi__zbuild_huffman($47,$48,$7)|0); - $not$ = ($49|0)!=(0); - $$ = $not$&1; - $$4 = $$; - STACKTOP = sp;return ($$4|0); -} -function _stbi__parse_huffman_block($0) { - $0 = $0|0; - var $$063 = 0, $$064 = 0, $$067 = 0, $$070 = 0, $$171 = 0, $$266 = 0, $$272 = 0, $$3$ph = 0, $$5 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; - var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; - var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; - var $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep92 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 16|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 32|0); - $4 = ((($0)) + 24|0); - $5 = ((($0)) + 2052|0); - $6 = ((($0)) + 20|0); - $7 = ((($0)) + 24|0); - $$070 = $2; - while(1) { - $10 = (_stbi__zhuffman_decode($0,$3)|0); - $11 = ($10|0)<(256); - if ($11) { - $12 = ($10|0)<(0); - if ($12) { - label = 6; - break; - } - $13 = HEAP32[$4>>2]|0; - $14 = ($$070>>>0)<($13>>>0); - if ($14) { - $$171 = $$070; - } else { - $15 = (_stbi__zexpand($0,$$070,1)|0); - $16 = ($15|0)==(0); - if ($16) { - $$3$ph = 0; - label = 28; - break; - } - $17 = HEAP32[$1>>2]|0; - $$171 = $17; - } - $18 = $10&255; - $19 = ((($$171)) + 1|0); - HEAP8[$$171>>0] = $18; - $$070 = $19; - continue; - } - $20 = ($10|0)==(256); - if ($20) { - label = 12; - break; - } - $21 = (($10) + -257)|0; - $22 = (3092 + ($21<<2)|0); - $23 = HEAP32[$22>>2]|0; - $24 = (($10) + -265)|0; - $25 = ($24>>>0)<(20); - if ($25) { - $26 = (3216 + ($21<<2)|0); - $27 = HEAP32[$26>>2]|0; - $28 = (_stbi__zreceive($0,$27)|0); - $29 = (($28) + ($23))|0; - $$064 = $29; - } else { - $$064 = $23; - } - $30 = (_stbi__zhuffman_decode($0,$5)|0); - $31 = ($30|0)<(0); - if ($31) { - label = 16; - break; - } - $32 = (3340 + ($30<<2)|0); - $33 = HEAP32[$32>>2]|0; - $34 = (($30) + -4)|0; - $35 = ($34>>>0)<(26); - if ($35) { - $36 = (3468 + ($30<<2)|0); - $37 = HEAP32[$36>>2]|0; - $38 = (_stbi__zreceive($0,$37)|0); - $39 = (($38) + ($33))|0; - $$063 = $39; - } else { - $$063 = $33; - } - $40 = HEAP32[$6>>2]|0; - $41 = $$070; - $42 = (($41) - ($40))|0; - $43 = ($42|0)<($$063|0); - if ($43) { - label = 20; - break; - } - $44 = (($$070) + ($$064)|0); - $45 = HEAP32[$7>>2]|0; - $46 = ($44>>>0)>($45>>>0); - if ($46) { - $47 = (_stbi__zexpand($0,$$070,$$064)|0); - $48 = ($47|0)==(0); - if ($48) { - $$3$ph = 0; - label = 28; - break; - } - $49 = HEAP32[$1>>2]|0; - $$272 = $49; - } else { - $$272 = $$070; - } - $50 = (0 - ($$063))|0; - $9 = (($$272) + ($50)|0); - $51 = ($$063|0)==(1); - $52 = ($$064|0)!=(0); - if ($51) { - if (!($52)) { - $$070 = $$272; - continue; - } - $8 = HEAP8[$9>>0]|0; - _memset(($$272|0),($8|0),($$064|0))|0; - $scevgep92 = (($$272) + ($$064)|0); - $$070 = $scevgep92; - continue; - } - if ($52) { - $$067 = $9;$$266 = $$064;$$5 = $$272; - } else { - $$070 = $$272; - continue; - } - while(1) { - $53 = ((($$067)) + 1|0); - $54 = HEAP8[$$067>>0]|0; - $55 = ((($$5)) + 1|0); - HEAP8[$$5>>0] = $54; - $56 = (($$266) + -1)|0; - $57 = ($56|0)==(0); - if ($57) { - break; - } else { - $$067 = $53;$$266 = $56;$$5 = $55; - } - } - $scevgep = (($$272) + ($$064)|0); - $$070 = $scevgep; - } - if ((label|0) == 6) { - _stbi__err(7795); - $$3$ph = 0; - return ($$3$ph|0); - } - else if ((label|0) == 12) { - HEAP32[$1>>2] = $$070; - $$3$ph = 1; - return ($$3$ph|0); - } - else if ((label|0) == 16) { - _stbi__err(7795); - $$3$ph = 0; - return ($$3$ph|0); - } - else if ((label|0) == 20) { - _stbi__err(7812); - $$3$ph = 0; - return ($$3$ph|0); - } - else if ((label|0) == 28) { - return ($$3$ph|0); - } - return (0)|0; -} -function _stbi__zhuffman_decode($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 8|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)<(16); - if ($4) { - _stbi__fill_bits($0); - } - $5 = ((($0)) + 12|0); - $6 = HEAP32[$5>>2]|0; - $7 = $6 & 511; - $8 = (($1) + ($7<<1)|0); - $9 = HEAP16[$8>>1]|0; - $10 = $9&65535; - $11 = ($9<<16>>16)==(0); - if ($11) { - $17 = (_stbi__zhuffman_decode_slowpath($0,$1)|0); - $$0 = $17; - return ($$0|0); - } else { - $12 = $10 >>> 9; - $13 = $6 >>> $12; - HEAP32[$5>>2] = $13; - $14 = HEAP32[$2>>2]|0; - $15 = (($14) - ($12))|0; - HEAP32[$2>>2] = $15; - $16 = $10 & 511; - $$0 = $16; - return ($$0|0); - } - return (0)|0; -} -function _stbi__zexpand($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$029 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($0)) + 16|0); - HEAP32[$3>>2] = $1; - $4 = ((($0)) + 28|0); - $5 = HEAP32[$4>>2]|0; - $6 = ($5|0)==(0); - if ($6) { - _stbi__err(7821); - $$0 = 0; - return ($$0|0); - } - $7 = ((($0)) + 20|0); - $8 = HEAP32[$7>>2]|0; - $9 = $1; - $10 = $8; - $11 = (($9) - ($10))|0; - $12 = ((($0)) + 24|0); - $13 = HEAP32[$12>>2]|0; - $14 = (($13) - ($10))|0; - $15 = (($11) + ($2))|0; - $$029 = $14; - while(1) { - $16 = ($15|0)>($$029|0); - $17 = $$029 << 1; - if ($16) { - $$029 = $17; - } else { - break; - } - } - $18 = (_realloc($8,$$029)|0); - $19 = ($18|0)==(0|0); - if ($19) { - _stbi__err(6741); - $$0 = 0; - return ($$0|0); - } else { - HEAP32[$7>>2] = $18; - $20 = (($18) + ($11)|0); - HEAP32[$3>>2] = $20; - $21 = (($18) + ($$029)|0); - HEAP32[$12>>2] = $21; - $$0 = 1; - return ($$0|0); - } - return (0)|0; -} -function _stbi__fill_bits($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 12|0); - $2 = ((($0)) + 8|0); - while(1) { - $3 = HEAP32[$1>>2]|0; - $4 = HEAP32[$2>>2]|0; - $5 = 1 << $4; - $6 = ($3>>>0)<($5>>>0); - if (!($6)) { - label = 3; - break; - } - $7 = (_stbi__zget8($0)|0); - $8 = $7&255; - $9 = HEAP32[$2>>2]|0; - $10 = $8 << $9; - $11 = HEAP32[$1>>2]|0; - $12 = $11 | $10; - HEAP32[$1>>2] = $12; - $13 = (($9) + 8)|0; - HEAP32[$2>>2] = $13; - $14 = ($13|0)<(25); - if (!($14)) { - label = 5; - break; - } - } - if ((label|0) == 3) { - ___assert_fail((7917|0),(6776|0),3848,(7954|0)); - // unreachable; - } - else if ((label|0) == 5) { - return; - } -} -function _stbi__zhuffman_decode_slowpath($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$025 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 12|0); - $3 = HEAP32[$2>>2]|0; - $4 = (_stbi__bit_reverse($3,16)|0); - $$025 = 10; - while(1) { - $5 = (((($1)) + 1056|0) + ($$025<<2)|0); - $6 = HEAP32[$5>>2]|0; - $7 = ($4|0)<($6|0); - $8 = (($$025) + 1)|0; - if ($7) { - break; - } else { - $$025 = $8; - } - } - $9 = ($$025|0)==(16); - if ($9) { - $$0 = -1; - return ($$0|0); - } - $10 = (16 - ($$025))|0; - $11 = $4 >> $10; - $12 = (((($1)) + 1024|0) + ($$025<<1)|0); - $13 = HEAP16[$12>>1]|0; - $14 = $13&65535; - $15 = (($11) - ($14))|0; - $16 = (((($1)) + 1124|0) + ($$025<<1)|0); - $17 = HEAP16[$16>>1]|0; - $18 = $17&65535; - $19 = (($15) + ($18))|0; - $20 = (((($1)) + 1156|0) + ($19)|0); - $21 = HEAP8[$20>>0]|0; - $22 = $21&255; - $23 = ($22|0)==($$025|0); - if (!($23)) { - ___assert_fail((7841|0),(6776|0),3876,(7857|0)); - // unreachable; - } - $24 = HEAP32[$2>>2]|0; - $25 = $24 >>> $$025; - HEAP32[$2>>2] = $25; - $26 = ((($0)) + 8|0); - $27 = HEAP32[$26>>2]|0; - $28 = (($27) - ($$025))|0; - HEAP32[$26>>2] = $28; - $29 = (((($1)) + 1444|0) + ($19<<1)|0); - $30 = HEAP16[$29>>1]|0; - $31 = $30&65535; - $$0 = $31; - return ($$0|0); -} -function _stbi__bit_reverse($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)<(17); - if ($2) { - $3 = (_stbi__bitreverse16($0)|0); - $4 = (16 - ($1))|0; - $5 = $3 >> $4; - return ($5|0); - } else { - ___assert_fail((7888|0),(6776|0),3766,(7899|0)); - // unreachable; - } - return (0)|0; -} -function _stbi__bitreverse16($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $1 = $0 >>> 1; - $2 = $1 & 21845; - $3 = $0 << 1; - $4 = $3 & 43690; - $5 = $2 | $4; - $6 = $5 >>> 2; - $7 = $6 & 13107; - $8 = $5 << 2; - $9 = $8 & 52428; - $10 = $7 | $9; - $11 = $10 >>> 4; - $12 = $11 & 3855; - $13 = $10 << 4; - $14 = $13 & 61680; - $15 = $12 | $14; - $16 = $15 >>> 8; - $17 = $15 << 8; - $18 = $17 & 65280; - $19 = $18 | $16; - return ($19|0); -} -function _stbi__zget8($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - $2 = ((($0)) + 4|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($1>>>0)<($3>>>0); - if (!($4)) { - $$0 = 0; - return ($$0|0); - } - $5 = ((($1)) + 1|0); - HEAP32[$0>>2] = $5; - $6 = HEAP8[$1>>0]|0; - $$0 = $6; - return ($$0|0); -} -function _stbi__refill_buffer($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 16|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 28|0); - $4 = HEAP32[$3>>2]|0; - $5 = ((($0)) + 40|0); - $6 = ((($0)) + 36|0); - $7 = HEAP32[$6>>2]|0; - $8 = (FUNCTION_TABLE_iiii[$2 & 15]($4,$5,$7)|0); - $9 = ($8|0)==(0); - if ($9) { - $10 = ((($0)) + 32|0); - HEAP32[$10>>2] = 0; - $11 = ((($0)) + 168|0); - HEAP32[$11>>2] = $5; - $12 = ((($0)) + 41|0); - $13 = ((($0)) + 172|0); - HEAP32[$13>>2] = $12; - HEAP8[$5>>0] = 0; - return; - } else { - $14 = ((($0)) + 168|0); - HEAP32[$14>>2] = $5; - $15 = (((($0)) + 40|0) + ($8)|0); - $16 = ((($0)) + 172|0); - HEAP32[$16>>2] = $15; - return; - } -} -function _stbi__rewind($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 176|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 168|0); - HEAP32[$3>>2] = $2; - $4 = ((($0)) + 180|0); - $5 = HEAP32[$4>>2]|0; - $6 = ((($0)) + 172|0); - HEAP32[$6>>2] = $5; - return; -} -function _stbi__hdr_gettoken($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$014 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $$014 = 0; - while(1) { - $2 = (_stbi__get8($0)|0); - $3 = (_stbi__at_eof($0)|0); - $4 = ($3|0)!=(0); - $5 = ($2<<24>>24)==(10); - $or$cond = $5 | $4; - if ($or$cond) { - $$1 = $$014; - break; - } - $6 = (($$014) + 1)|0; - $7 = (($1) + ($$014)|0); - HEAP8[$7>>0] = $2; - $8 = ($6|0)==(1023); - if ($8) { - label = 4; - break; - } else { - $$014 = $6; - } - } - L4: do { - if ((label|0) == 4) { - while(1) { - label = 0; - $9 = (_stbi__at_eof($0)|0); - $10 = ($9|0)==(0); - if (!($10)) { - $$1 = $6; - break L4; - } - $11 = (_stbi__get8($0)|0); - $12 = ($11<<24>>24)==(10); - if ($12) { - $$1 = $6; - break; - } else { - label = 4; - } - } - } - } while(0); - $13 = (($1) + ($$1)|0); - HEAP8[$13>>0] = 0; - return ($1|0); -} -function _stbi__hdr_convert($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$sink = 0.0, $$sink1 = 0, $$sink30 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0; - var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0; - var $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($1)) + 3|0); - $4 = HEAP8[$3>>0]|0; - $5 = ($4<<24>>24)==(0); - if ($5) { - switch ($2|0) { - case 4: { - $38 = ((($0)) + 12|0); - HEAPF32[$38>>2] = 1.0; - label = 10; - break; - } - case 3: { - label = 10; - break; - } - case 2: { - $$sink30 = 1.0; - label = 11; - break; - } - case 1: { - break; - } - default: { - return; - } - } - if ((label|0) == 10) { - $39 = ((($0)) + 8|0); - HEAPF32[$39>>2] = 0.0; - $$sink30 = 0.0; - label = 11; - } - if ((label|0) == 11) { - $40 = ((($0)) + 4|0); - HEAPF32[$40>>2] = $$sink30; - } - HEAPF32[$0>>2] = 0.0; - return; - } - $6 = $4&255; - $7 = (($6) + -136)|0; - $8 = (+_ldexp(1.0,$7)); - $9 = $8; - $10 = ($2|0)<(3); - $11 = HEAP8[$1>>0]|0; - if ($10) { - $12 = $11&255; - $13 = ((($1)) + 1|0); - $14 = HEAP8[$13>>0]|0; - $15 = $14&255; - $16 = (($15) + ($12))|0; - $17 = ((($1)) + 2|0); - $18 = HEAP8[$17>>0]|0; - $19 = $18&255; - $20 = (($16) + ($19))|0; - $21 = (+($20|0)); - $22 = $9 * $21; - $23 = $22 / 3.0; - $$sink = $23;$$sink1 = $0; - } else { - $24 = (+($11&255)); - $25 = $9 * $24; - HEAPF32[$0>>2] = $25; - $26 = ((($1)) + 1|0); - $27 = HEAP8[$26>>0]|0; - $28 = (+($27&255)); - $29 = $9 * $28; - $30 = ((($0)) + 4|0); - HEAPF32[$30>>2] = $29; - $31 = ((($1)) + 2|0); - $32 = HEAP8[$31>>0]|0; - $33 = (+($32&255)); - $34 = $9 * $33; - $35 = ((($0)) + 8|0); - $$sink = $34;$$sink1 = $35; - } - HEAPF32[$$sink1>>2] = $$sink; - switch ($2|0) { - case 2: { - $36 = ((($0)) + 4|0); - HEAPF32[$36>>2] = 1.0; - return; - break; - } - case 4: { - $37 = ((($0)) + 12|0); - HEAPF32[$37>>2] = 1.0; - return; - break; - } - default: { - return; - } - } -} -function _stbi__at_eof($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 16|0); - $2 = HEAP32[$1>>2]|0; - $3 = ($2|0)==(0|0); - if (!($3)) { - $4 = ((($0)) + 24|0); - $5 = HEAP32[$4>>2]|0; - $6 = ((($0)) + 28|0); - $7 = HEAP32[$6>>2]|0; - $8 = (FUNCTION_TABLE_ii[$5 & 15]($7)|0); - $9 = ($8|0)==(0); - if ($9) { - $$0 = 0; - return ($$0|0); - } - $10 = ((($0)) + 32|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($11|0)==(0); - if ($12) { - $$0 = 1; - return ($$0|0); - } - } - $13 = ((($0)) + 168|0); - $14 = HEAP32[$13>>2]|0; - $15 = ((($0)) + 172|0); - $16 = HEAP32[$15>>2]|0; - $17 = ($14>>>0)>=($16>>>0); - $18 = $17&1; - $$0 = $18; - return ($$0|0); -} -function _stbi__hdr_test_core($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$07 = 0, $$08 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = ($2<<24>>24)==(0); - L1: do { - if (!($3)) { - $$08 = 0;$11 = $1; - while(1) { - $8 = (_stbi__get8($0)|0); - $9 = $8&255; - $10 = HEAP8[$11>>0]|0; - $12 = $10 << 24 >> 24; - $13 = ($9|0)==($12|0); - $5 = (($$08) + 1)|0; - if (!($13)) { - $$07 = 0; - break; - } - $4 = (($1) + ($5)|0); - $6 = HEAP8[$4>>0]|0; - $7 = ($6<<24>>24)==(0); - if ($7) { - break L1; - } else { - $$08 = $5;$11 = $4; - } - } - return ($$07|0); - } - } while(0); - _stbi__rewind($0); - $$07 = 1; - return ($$07|0); -} -function _stbi__start_callbacks($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($0)) + 16|0); - ;HEAP32[$3>>2]=HEAP32[$1>>2]|0;HEAP32[$3+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$1+8>>2]|0; - $4 = ((($0)) + 28|0); - HEAP32[$4>>2] = $2; - $5 = ((($0)) + 36|0); - HEAP32[$5>>2] = 128; - $6 = ((($0)) + 32|0); - HEAP32[$6>>2] = 1; - $7 = ((($0)) + 40|0); - $8 = ((($0)) + 176|0); - HEAP32[$8>>2] = $7; - _stbi__refill_buffer($0); - $9 = ((($0)) + 172|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($0)) + 180|0); - HEAP32[$11>>2] = $10; - return; -} -function _stbi__stdio_read($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (_fread($1,1,$2,$0)|0); - return ($3|0); -} -function _stbi__stdio_skip($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - (_fseek($0,$1,1)|0); - return; -} -function _stbi__stdio_eof($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (_feof($0)|0); - return ($1|0); -} -function _ImageCopy($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$sroa$6$0 = 0, $$sroa$6$0$$sroa_idx11 = 0, $$sroa$7$0 = 0, $$sroa$7$0$$sroa_idx13 = 0, $$sroa$8$0 = 0, $$sroa$8$0$$sroa_idx15 = 0, $$sroa$9$0 = 0, $$sroa$9$0$$sroa_idx17 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; - var $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $2 = ((($1)) + 4|0); - $3 = HEAP32[$2>>2]|0; - $4 = ((($1)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = Math_imul($5, $3)|0; - $7 = ((($1)) + 16|0); - $8 = HEAP32[$7>>2]|0; - switch ($8|0) { - case 18: case 15: case 12: case 11: case 1: { - $$0 = $6; - break; - } - case 6: case 5: case 3: case 2: { - $9 = $6 << 1; - $$0 = $9; - break; - } - case 4: { - $10 = ($6*3)|0; - $$0 = $10; - break; - } - case 7: { - $11 = $6 << 2; - $$0 = $11; - break; - } - case 8: { - $12 = ($6*12)|0; - $$0 = $12; - break; - } - case 17: case 16: case 14: case 13: case 10: case 9: { - $13 = (($6|0) / 2)&-1; - $$0 = $13; - break; - } - case 19: { - $14 = (($6|0) / 4)&-1; - $$0 = $14; - break; - } - default: { - _TraceLog(1,8845,$vararg_buffer); - $$0 = $6; - } - } - $15 = (_malloc($$0)|0); - $16 = ($15|0)==(0|0); - if ($16) { - $$sroa$6$0 = 0;$$sroa$7$0 = 0;$$sroa$8$0 = 0;$$sroa$9$0 = 0; - } else { - $17 = HEAP32[$1>>2]|0; - _memcpy(($15|0),($17|0),($$0|0))|0; - $18 = HEAP32[$2>>2]|0; - $19 = HEAP32[$4>>2]|0; - $20 = ((($1)) + 12|0); - $21 = HEAP32[$20>>2]|0; - $22 = HEAP32[$7>>2]|0; - $$sroa$6$0 = $18;$$sroa$7$0 = $19;$$sroa$8$0 = $21;$$sroa$9$0 = $22; - } - HEAP32[$0>>2] = $15; - $$sroa$6$0$$sroa_idx11 = ((($0)) + 4|0); - HEAP32[$$sroa$6$0$$sroa_idx11>>2] = $$sroa$6$0; - $$sroa$7$0$$sroa_idx13 = ((($0)) + 8|0); - HEAP32[$$sroa$7$0$$sroa_idx13>>2] = $$sroa$7$0; - $$sroa$8$0$$sroa_idx15 = ((($0)) + 12|0); - HEAP32[$$sroa$8$0$$sroa_idx15>>2] = $$sroa$8$0; - $$sroa$9$0$$sroa_idx17 = ((($0)) + 16|0); - HEAP32[$$sroa$9$0$$sroa_idx17>>2] = $$sroa$9$0; - STACKTOP = sp;return; -} -function _ImageAlphaMask($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$031 = 0, $$032 = 0, $$033 = 0, $$byval_copy3 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $$byval_copy3 = sp + 32|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 12|0; - $3 = ((($0)) + 4|0); - $4 = HEAP32[$3>>2]|0; - $5 = ((($1)) + 4|0); - $6 = HEAP32[$5>>2]|0; - $7 = ($4|0)==($6|0); - if ($7) { - $8 = ((($0)) + 8|0); - $9 = HEAP32[$8>>2]|0; - $10 = ((($1)) + 8|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($9|0)==($11|0); - if ($12) { - $13 = ((($0)) + 16|0); - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)>(8); - if ($15) { - _TraceLog(1,8788,$vararg_buffer1); - STACKTOP = sp;return; - } - ;HEAP32[$$byval_copy3>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$$byval_copy3+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[$$byval_copy3+16>>2]=HEAP32[$1+16>>2]|0; - _ImageCopy($2,$$byval_copy3); - $16 = ((($2)) + 16|0); - $17 = HEAP32[$16>>2]|0; - $18 = ($17|0)==(1); - if (!($18)) { - _ImageFormat($2,1); - } - $19 = HEAP32[$13>>2]|0; - L11: do { - switch ($19|0) { - case 1: { - _ImageFormat($0,2); - $20 = ((($2)) + 4|0); - $21 = HEAP32[$20>>2]|0; - $22 = ((($2)) + 8|0); - $23 = HEAP32[$22>>2]|0; - $24 = Math_imul($23, $21)|0; - $25 = HEAP32[$2>>2]|0; - $$032 = 1;$$033 = 0; - while(1) { - $26 = ($$033|0)<($24|0); - if (!($26)) { - $27 = HEAP32[$3>>2]|0; - $28 = HEAP32[$8>>2]|0; - $29 = Math_imul($28, $27)|0; - $30 = ($$033|0)<($29|0); - if (!($30)) { - break L11; - } - } - $31 = (($25) + ($$033)|0); - $32 = HEAP8[$31>>0]|0; - $33 = HEAP32[$0>>2]|0; - $34 = (($33) + ($$032)|0); - HEAP8[$34>>0] = $32; - $35 = (($$033) + 1)|0; - $36 = (($$032) + 2)|0; - $$032 = $36;$$033 = $35; - } - break; - } - case 7: { - label = 14; - break; - } - default: { - _ImageFormat($0,7); - label = 14; - } - } - } while(0); - L19: do { - if ((label|0) == 14) { - $37 = ((($2)) + 4|0); - $38 = HEAP32[$37>>2]|0; - $39 = ((($2)) + 8|0); - $40 = HEAP32[$39>>2]|0; - $41 = Math_imul($40, $38)|0; - $42 = HEAP32[$2>>2]|0; - $$0 = 3;$$031 = 0; - while(1) { - $43 = ($$031|0)<($41|0); - if (!($43)) { - $44 = HEAP32[$3>>2]|0; - $45 = HEAP32[$8>>2]|0; - $46 = Math_imul($45, $44)|0; - $47 = ($$031|0)<($46|0); - if (!($47)) { - break L19; - } - } - $48 = (($42) + ($$031)|0); - $49 = HEAP8[$48>>0]|0; - $50 = HEAP32[$0>>2]|0; - $51 = (($50) + ($$0)|0); - HEAP8[$51>>0] = $49; - $52 = (($$031) + 1)|0; - $53 = (($$0) + 4)|0; - $$0 = $53;$$031 = $52; - } - } - } while(0); - ;HEAP32[$$byval_copy3>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$byval_copy3+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$byval_copy3+16>>2]=HEAP32[$2+16>>2]|0; - _UnloadImage($$byval_copy3); - STACKTOP = sp;return; - } - } - _TraceLog(1,8750,$vararg_buffer); - STACKTOP = sp;return; -} -function _UnloadSpriteFont($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $$byval_copy = sp + 40|0; - $vararg_buffer = sp; - $1 = sp + 8|0; - $2 = HEAP32[$0>>2]|0; - _GetDefaultFont($1); - $3 = HEAP32[$1>>2]|0; - $4 = ($2|0)==($3|0); - if ($4) { - STACKTOP = sp;return; - } - ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; - _UnloadTexture($$byval_copy); - $5 = ((($0)) + 28|0); - $6 = HEAP32[$5>>2]|0; - _free($6); - _TraceLog(3,8724,$vararg_buffer); - STACKTOP = sp;return; -} -function _LoadTTF($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0124130 = 0, $$0125129 = 0, $$0128 = 0, $$byval_copy9 = 0, $$sroa$0 = 0, $$sroa$10$0$$sroa_idx58 = 0, $$sroa$10$0$$sroa_idx59 = 0, $$sroa$6$0$$sroa_idx49 = 0, $$sroa$6$0$$sroa_idx50 = 0, $$sroa$7$0$$sroa_idx53 = 0, $$sroa$7$0$$sroa_idx54 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0; - var $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; - var $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; - var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0.0, $70 = 0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0; - var $76 = 0, $77 = 0, $78 = 0, $79 = 0.0, $8 = 0.0, $80 = 0, $81 = 0, $82 = 0, $9 = 0.0, $exitcond = 0, $exp2 = 0.0, $vararg_buffer2 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $$byval_copy9 = sp + 48|0; - $vararg_buffer7 = sp + 40|0; - $vararg_buffer5 = sp + 32|0; - $vararg_buffer2 = sp + 24|0; - $$sroa$0 = sp; - $5 = sp + 68|0; - $6 = sp + 88|0; - $7 = (+($2|0)); - $8 = $7 * 3.0; - $9 = $8 * 0.25; - $10 = (+Math_ceil((+$9))); - $11 = (+($3|0)); - $12 = (+Math_sqrt((+$11))); - $13 = (+Math_ceil((+$12))); - $14 = $10 * $13; - $15 = (+Math_log((+$14))); - $16 = $15 / 0.69314718246459961; - $17 = (+Math_ceil((+$16))); - $exp2 = (+_llvm_exp2_f32((+$17))); - $18 = (~~(($exp2))); - HEAP32[$$byval_copy9>>2] = $18; - $vararg_ptr1 = ((($$byval_copy9)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $18; - _TraceLog(0,8932,$$byval_copy9); - $19 = (_malloc(16777216)|0); - $20 = Math_imul($18, $18)|0; - $21 = (_malloc($20)|0); - $22 = ($3*20)|0; - $23 = (_malloc($22)|0); - ;HEAP32[$$sroa$0>>2]=0|0;HEAP32[$$sroa$0+4>>2]=0|0;HEAP32[$$sroa$0+8>>2]=0|0;HEAP32[$$sroa$0+12>>2]=0|0;HEAP32[$$sroa$0+16>>2]=0|0; - $24 = (_fopen($1,8986)|0); - $25 = ($24|0)==(0|0); - if ($25) { - HEAP32[$vararg_buffer2>>2] = $1; - _TraceLog(1,8989,$vararg_buffer2); - ;HEAP32[$0>>2]=HEAP32[$$sroa$0>>2]|0;HEAP32[$0+4>>2]=HEAP32[$$sroa$0+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$$sroa$0+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$$sroa$0+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$$sroa$0+16>>2]|0; - $$sroa$6$0$$sroa_idx49 = ((($0)) + 20|0); - HEAP32[$$sroa$6$0$$sroa_idx49>>2] = 0; - $$sroa$7$0$$sroa_idx53 = ((($0)) + 24|0); - HEAP32[$$sroa$7$0$$sroa_idx53>>2] = 0; - $$sroa$10$0$$sroa_idx58 = ((($0)) + 28|0); - HEAP32[$$sroa$10$0$$sroa_idx58>>2] = 0; - STACKTOP = sp;return; - } - (_fread($19,1,16777216,$24)|0); - $26 = HEAP32[$4>>2]|0; - $27 = ($26|0)==(32); - if (!($27)) { - _TraceLog(1,9023,$vararg_buffer5); - } - $28 = HEAP32[$4>>2]|0; - $29 = (_stbtt_BakeFontBitmap($19,$7,$21,$18,$18,$28,$3,$23)|0); - $30 = ($29|0)<(0); - if ($30) { - _TraceLog(1,9090,$vararg_buffer7); - } - _free($19); - $31 = $20 << 1; - $32 = (_malloc($31)|0); - $33 = ($20|0)==(0); - if (!($33)) { - $$0124130 = 0;$$0125129 = 0; - while(1) { - $41 = (($32) + ($$0124130)|0); - HEAP8[$41>>0] = -1; - $42 = (($21) + ($$0125129)|0); - $43 = HEAP8[$42>>0]|0; - $44 = $$0124130 | 1; - $45 = (($32) + ($44)|0); - HEAP8[$45>>0] = $43; - $46 = (($$0125129) + 1)|0; - $47 = (($$0124130) + 2)|0; - $48 = ($46|0)<($20|0); - if ($48) { - $$0124130 = $47;$$0125129 = $46; - } else { - break; - } - } - } - _free($21); - $34 = ((($5)) + 4|0); - HEAP32[$34>>2] = $18; - $35 = ((($5)) + 8|0); - HEAP32[$35>>2] = $18; - $36 = ((($5)) + 12|0); - HEAP32[$36>>2] = 1; - $37 = ((($5)) + 16|0); - HEAP32[$37>>2] = 2; - HEAP32[$5>>2] = $32; - ;HEAP32[$$byval_copy9>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy9+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy9+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$$byval_copy9+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$$byval_copy9+16>>2]=HEAP32[$5+16>>2]|0; - _LoadTextureFromImage($6,$$byval_copy9); - ;HEAP32[$$sroa$0>>2]=HEAP32[$6>>2]|0;HEAP32[$$sroa$0+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$sroa$0+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$sroa$0+12>>2]=HEAP32[$6+12>>2]|0;HEAP32[$$sroa$0+16>>2]=HEAP32[$6+16>>2]|0; - ;HEAP32[$$byval_copy9>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy9+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy9+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$$byval_copy9+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$$byval_copy9+16>>2]=HEAP32[$5+16>>2]|0; - _UnloadImage($$byval_copy9); - $38 = $3 << 5; - $39 = (_malloc($38)|0); - $40 = ($3|0)>(0); - if ($40) { - $$0128 = 0; - while(1) { - $49 = (($4) + ($$0128<<2)|0); - $50 = HEAP32[$49>>2]|0; - $51 = (($39) + ($$0128<<5)|0); - HEAP32[$51>>2] = $50; - $52 = (($23) + (($$0128*20)|0)|0); - $53 = HEAP16[$52>>1]|0; - $54 = $53&65535; - $55 = (((($39) + ($$0128<<5)|0)) + 4|0); - HEAP32[$55>>2] = $54; - $56 = (((($23) + (($$0128*20)|0)|0)) + 2|0); - $57 = HEAP16[$56>>1]|0; - $58 = $57&65535; - $59 = (((($39) + ($$0128<<5)|0)) + 8|0); - HEAP32[$59>>2] = $58; - $60 = (((($23) + (($$0128*20)|0)|0)) + 4|0); - $61 = HEAP16[$60>>1]|0; - $62 = $61&65535; - $63 = (($62) - ($54))|0; - $64 = (((($39) + ($$0128<<5)|0)) + 12|0); - HEAP32[$64>>2] = $63; - $65 = (((($23) + (($$0128*20)|0)|0)) + 6|0); - $66 = HEAP16[$65>>1]|0; - $67 = $66&65535; - $68 = (($67) - ($58))|0; - $69 = (((($39) + ($$0128<<5)|0)) + 16|0); - HEAP32[$69>>2] = $68; - $70 = (((($23) + (($$0128*20)|0)|0)) + 8|0); - $71 = +HEAPF32[$70>>2]; - $72 = (~~(($71))); - $73 = (((($39) + ($$0128<<5)|0)) + 20|0); - HEAP32[$73>>2] = $72; - $74 = (((($23) + (($$0128*20)|0)|0)) + 12|0); - $75 = +HEAPF32[$74>>2]; - $76 = (~~(($75))); - $77 = (((($39) + ($$0128<<5)|0)) + 24|0); - HEAP32[$77>>2] = $76; - $78 = (((($23) + (($$0128*20)|0)|0)) + 16|0); - $79 = +HEAPF32[$78>>2]; - $80 = (~~(($79))); - $81 = (((($39) + ($$0128<<5)|0)) + 28|0); - HEAP32[$81>>2] = $80; - $82 = (($$0128) + 1)|0; - $exitcond = ($82|0)==($3|0); - if ($exitcond) { - break; - } else { - $$0128 = $82; - } - } - } - _free($23); - ;HEAP32[$0>>2]=HEAP32[$$sroa$0>>2]|0;HEAP32[$0+4>>2]=HEAP32[$$sroa$0+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$$sroa$0+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$$sroa$0+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$$sroa$0+16>>2]|0; - $$sroa$6$0$$sroa_idx50 = ((($0)) + 20|0); - HEAP32[$$sroa$6$0$$sroa_idx50>>2] = $2; - $$sroa$7$0$$sroa_idx54 = ((($0)) + 24|0); - HEAP32[$$sroa$7$0$$sroa_idx54>>2] = $3; - $$sroa$10$0$$sroa_idx59 = ((($0)) + 28|0); - HEAP32[$$sroa$10$0$$sroa_idx59>>2] = $39; - STACKTOP = sp;return; -} -function _stbtt_BakeFontBitmap($0,$1,$2,$3,$4,$5,$6,$7) { - $0 = $0|0; - $1 = +$1; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - $6 = $6|0; - $7 = $7|0; - var $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $8 = (_stbtt_BakeFontBitmap_internal($0,$1,$2,$3,$4,$5,$6,$7)|0); - return ($8|0); -} -function _stbtt_BakeFontBitmap_internal($0,$1,$2,$3,$4,$5,$6,$7) { - $0 = $0|0; - $1 = +$1; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - $6 = $6|0; - $7 = $7|0; - var $$05 = 0, $$084$ = 0, $$0844 = 0, $$087$$091 = 0, $$0873 = 0, $$089 = 0, $$0902 = 0, $$091$ = 0, $$0911 = 0, $$1 = 0, $$2 = 0, $$286 = 0, $$293 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; - var $17 = 0, $18 = 0.0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0; - var $57 = 0, $58 = 0.0, $59 = 0, $60 = 0, $61 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $8 = sp + 24|0; - $9 = sp + 20|0; - $10 = sp + 16|0; - $11 = sp + 12|0; - $12 = sp + 8|0; - $13 = sp + 4|0; - $14 = sp; - HEAP32[$8>>2] = 0; - $15 = (_stbtt_InitFont($8,$0)|0); - $16 = ($15|0)==(0); - if ($16) { - $$2 = -1; - STACKTOP = sp;return ($$2|0); - } - $17 = Math_imul($4, $3)|0; - _memset(($2|0),0,($17|0))|0; - $18 = (+_stbtt_ScaleForPixelHeight($8,$1)); - $19 = ($6|0)>(0); - if (!($19)) { - $$2 = 1; - STACKTOP = sp;return ($$2|0); - } - $$05 = 0;$$0844 = 1;$$0873 = 1;$$0902 = 0;$$0911 = 1; - while(1) { - $22 = (($$0902) + ($5))|0; - $23 = (_stbtt_FindGlyphIndex($8,$22)|0); - _stbtt_GetGlyphHMetrics($8,$23,$9,$10); - _stbtt_GetGlyphBitmapBox($8,$23,$18,$18,$11,$12,$13,$14); - $24 = HEAP32[$13>>2]|0; - $25 = HEAP32[$11>>2]|0; - $26 = (($24) - ($25))|0; - $27 = HEAP32[$14>>2]|0; - $28 = HEAP32[$12>>2]|0; - $29 = (($27) - ($28))|0; - $30 = (($$0844) + 1)|0; - $31 = (($30) + ($26))|0; - $32 = ($31|0)<($3|0); - $$087$$091 = $32 ? $$0873 : $$0911; - $$084$ = $32 ? $$0844 : 1; - $33 = (($$087$$091) + ($29))|0; - $34 = (($33) + 1)|0; - $35 = ($34|0)<($4|0); - if ($35) { - $37 = (($$084$) + ($26))|0; - $38 = ($37|0)<($3|0); - if (!($38)) { - label = 8; - break; - } - $39 = (($2) + ($$084$)|0); - $40 = Math_imul($$087$$091, $3)|0; - $41 = (($39) + ($40)|0); - _stbtt_MakeGlyphBitmap($8,$41,$26,$29,$3,$18,$18,$23); - $42 = $$084$&65535; - $43 = (($7) + (($$0902*20)|0)|0); - HEAP16[$43>>1] = $42; - $44 = $$087$$091&65535; - $45 = (((($7) + (($$0902*20)|0)|0)) + 2|0); - HEAP16[$45>>1] = $44; - $46 = $37&65535; - $47 = (((($7) + (($$0902*20)|0)|0)) + 4|0); - HEAP16[$47>>1] = $46; - $48 = $33&65535; - $49 = (((($7) + (($$0902*20)|0)|0)) + 6|0); - HEAP16[$49>>1] = $48; - $50 = HEAP32[$9>>2]|0; - $51 = (+($50|0)); - $52 = $18 * $51; - $53 = (((($7) + (($$0902*20)|0)|0)) + 16|0); - HEAPF32[$53>>2] = $52; - $54 = HEAP32[$11>>2]|0; - $55 = (+($54|0)); - $56 = (((($7) + (($$0902*20)|0)|0)) + 8|0); - HEAPF32[$56>>2] = $55; - $57 = HEAP32[$12>>2]|0; - $58 = (+($57|0)); - $59 = (((($7) + (($$0902*20)|0)|0)) + 12|0); - HEAPF32[$59>>2] = $58; - $60 = (($37) + 1)|0; - $61 = ($33|0)<($$0911|0); - $$091$ = $61 ? $$0911 : $34; - $$089 = 1;$$1 = $$05;$$286 = $60;$$293 = $$091$; - } else { - $36 = (0 - ($$0902))|0; - $$089 = 0;$$1 = $36;$$286 = $$084$;$$293 = $$0911; - } - $21 = (($$0902) + 1)|0; - if (!($$089)) { - $$2 = $$1; - label = 11; - break; - } - $20 = ($21|0)<($6|0); - if ($20) { - $$05 = $$1;$$0844 = $$286;$$0873 = $$087$$091;$$0902 = $21;$$0911 = $$293; - } else { - $$2 = $$293; - label = 11; - break; - } - } - if ((label|0) == 8) { - ___assert_fail((9153|0),(9163|0),3371,(9189|0)); - // unreachable; - } - else if ((label|0) == 11) { - STACKTOP = sp;return ($$2|0); - } - return (0)|0; -} -function _stbtt_InitFont($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (_stbtt_InitFont_internal($0,$1)|0); - return ($2|0); -} -function _stbtt_ScaleForPixelHeight($0,$1) { - $0 = $0|0; - $1 = +$1; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 4|0); - $3 = HEAP32[$2>>2]|0; - $4 = ((($0)) + 28|0); - $5 = HEAP32[$4>>2]|0; - $6 = (($3) + ($5)|0); - $7 = ((($6)) + 4|0); - $8 = (_ttSHORT($7)|0); - $9 = $8 << 16 >> 16; - $10 = ((($6)) + 6|0); - $11 = (_ttSHORT($10)|0); - $12 = $11 << 16 >> 16; - $13 = (($9) - ($12))|0; - $14 = (+($13|0)); - $15 = $1 / $14; - return (+$15); -} -function _stbtt_FindGlyphIndex($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$ = 0, $$$1172 = 0, $$0163180 = 0, $$0164179 = 0, $$0165 = 0, $$0165$ph = 0, $$0168$ph = 0, $$1172$lcssa = 0, $$1172178 = 0, $$2 = 0, $$2$shrunk = 0, $$5 = 0, $$8 = 0, $$neg = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0; - var $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0; - var $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; - var $switch = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 4|0); - $3 = HEAP32[$2>>2]|0; - $4 = ((($0)) + 40|0); - $5 = HEAP32[$4>>2]|0; - $6 = (($3) + ($5)|0); - $7 = (_ttUSHORT($6)|0); - switch ($7<<16>>16) { - case 0: { - $8 = ((($6)) + 2|0); - $9 = (_ttUSHORT($8)|0); - $10 = $9&65535; - $11 = (($10) + -6)|0; - $12 = ($11|0)>($1|0); - if (!($12)) { - $$8 = 0; - return ($$8|0); - } - $13 = ((($6)) + 6|0); - $14 = (($13) + ($1)|0); - $15 = HEAP8[$14>>0]|0; - $16 = $15&255; - $$8 = $16; - return ($$8|0); - break; - } - case 6: { - $17 = ((($6)) + 6|0); - $18 = (_ttUSHORT($17)|0); - $19 = $18&65535; - $20 = ($19>>>0)>($1>>>0); - if ($20) { - $$8 = 0; - return ($$8|0); - } - $21 = ((($6)) + 8|0); - $22 = (_ttUSHORT($21)|0); - $23 = $22&65535; - $24 = (($23) + ($19))|0; - $25 = ($24>>>0)>($1>>>0); - if (!($25)) { - $$8 = 0; - return ($$8|0); - } - $26 = ((($6)) + 10|0); - $27 = (($1) - ($19))|0; - $28 = $27 << 1; - $29 = (($26) + ($28)|0); - $30 = (_ttUSHORT($29)|0); - $31 = $30&65535; - $$8 = $31; - return ($$8|0); - break; - } - case 2: { - ___assert_fail((9623|0),(9163|0),1434,(9965|0)); - // unreachable; - break; - } - case 4: { - $32 = ((($6)) + 6|0); - $33 = (_ttUSHORT($32)|0); - $34 = ($33&65535) >>> 1; - $35 = ($1|0)>(65535); - if ($35) { - $$8 = 0; - return ($$8|0); - } - $36 = (($5) + 14)|0; - $37 = ((($6)) + 12|0); - $38 = (_ttUSHORT($37)|0); - $39 = ((($6)) + 10|0); - $40 = (_ttUSHORT($39)|0); - $41 = $38 & -2; - $42 = (($3) + ($36)|0); - $43 = $41&65535; - $44 = (($42) + ($43)|0); - $45 = (_ttUSHORT($44)|0); - $46 = $45&65535; - $47 = ($46|0)>($1|0); - $48 = $47 ? 0 : $43; - $$ = (($5) + 12)|0; - $49 = (($$) + ($48))|0; - $50 = ($40<<16>>16)==(0); - if ($50) { - $$1172$lcssa = $49; - } else { - $51 = ((($6)) + 8|0); - $52 = (_ttUSHORT($51)|0); - $53 = ($52&65535) >>> 1; - $$0163180 = $53;$$0164179 = $40;$$1172178 = $49; - while(1) { - $54 = ($$0163180&65535) >>> 1; - $55 = (($3) + ($$1172178)|0); - $56 = ($54 << 1)&65535; - $57 = $56&65535; - $58 = (($55) + ($57)|0); - $59 = (_ttUSHORT($58)|0); - $60 = $59&65535; - $61 = ($60|0)<($1|0); - $62 = $61 ? $57 : 0; - $$$1172 = (($62) + ($$1172178))|0; - $63 = (($$0164179) + -1)<<16>>16; - $64 = ($63<<16>>16)==(0); - if ($64) { - $$1172$lcssa = $$$1172; - break; - } else { - $$0163180 = $54;$$0164179 = $63;$$1172178 = $$$1172; - } - } - } - $$neg = (-14 - ($5))|0; - $65 = (($$neg) + 2)|0; - $66 = (($65) + ($$1172$lcssa))|0; - $67 = $66 & 131070; - $68 = (($42) + ($67)|0); - $69 = (_ttUSHORT($68)|0); - $70 = $69&65535; - $71 = ($70|0)<($1|0); - if ($71) { - ___assert_fail((9986|0),(9163|0),1470,(9965|0)); - // unreachable; - } - $72 = ((($6)) + 14|0); - $73 = $34&65535; - $74 = ($34 << 1)&65535; - $75 = $74&65535; - $76 = (($72) + ($75)|0); - $77 = ((($76)) + 2|0); - $78 = (($77) + ($67)|0); - $79 = (_ttUSHORT($78)|0); - $80 = $79&65535; - $81 = ($80|0)>($1|0); - do { - if ($81) { - $$2$shrunk = 0; - } else { - $82 = ($73*6)|0; - $83 = (($72) + ($82)|0); - $84 = ((($83)) + 2|0); - $85 = (($84) + ($67)|0); - $86 = (_ttUSHORT($85)|0); - $87 = ($86<<16>>16)==(0); - if ($87) { - $88 = $73 << 2; - $89 = (($72) + ($88)|0); - $90 = ((($89)) + 2|0); - $91 = (($90) + ($67)|0); - $92 = (_ttSHORT($91)|0); - $93 = $92&65535; - $94 = (($93) + ($1))|0; - $95 = $94&65535; - $$2$shrunk = $95; - break; - } else { - $96 = $86&65535; - $97 = (($3) + ($96)|0); - $98 = (($1) - ($80))|0; - $99 = $98 << 1; - $100 = (($97) + ($99)|0); - $101 = (($100) + ($5)|0); - $102 = ((($101)) + 14|0); - $103 = (($102) + ($82)|0); - $104 = ((($103)) + 2|0); - $105 = (($104) + ($67)|0); - $106 = (_ttUSHORT($105)|0); - $$2$shrunk = $106; - break; - } - } - } while(0); - $$2 = $$2$shrunk&65535; - $$8 = $$2; - return ($$8|0); - break; - } - default: { - $107 = ($7<<16>>16)==(12); - $108 = $7 & -2; - $switch = ($108<<16>>16)==(12); - if (!($switch)) { - ___assert_fail((9623|0),(9163|0),1505,(9965|0)); - // unreachable; - } - $109 = ((($6)) + 12|0); - $110 = (_ttULONG($109)|0); - $111 = ((($6)) + 16|0); - $$0165$ph = $110;$$0168$ph = 0; - L6: while(1) { - $$0165 = $$0165$ph; - while(1) { - $112 = ($$0165|0)>($$0168$ph|0); - if (!($112)) { - $$8 = 0; - label = 27; - break L6; - } - $113 = (($$0165) - ($$0168$ph))|0; - $114 = $113 >> 1; - $115 = (($114) + ($$0168$ph))|0; - $116 = ($115*12)|0; - $117 = (($111) + ($116)|0); - $118 = (_ttULONG($117)|0); - $119 = ($118>>>0)>($1>>>0); - if ($119) { - $$0165 = $115; - } else { - break; - } - } - $120 = ((($117)) + 4|0); - $121 = (_ttULONG($120)|0); - $122 = ($121>>>0)<($1>>>0); - $123 = (($115) + 1)|0; - if ($122) { - $$0165$ph = $$0165;$$0168$ph = $123; - } else { - break; - } - } - if ((label|0) == 27) { - return ($$8|0); - } - $124 = ((($117)) + 8|0); - $125 = (_ttULONG($124)|0); - $126 = (($1) - ($118))|0; - $127 = $107 ? $126 : 0; - $$5 = (($125) + ($127))|0; - $$8 = $$5; - return ($$8|0); - } - } - return (0)|0; -} -function _stbtt_GetGlyphHMetrics($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ((($0)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = ((($0)) + 28|0); - $7 = HEAP32[$6>>2]|0; - $8 = (($5) + ($7)|0); - $9 = ((($8)) + 34|0); - $10 = (_ttUSHORT($9)|0); - $11 = $10&65535; - $12 = ($11|0)>($1|0); - $13 = ($2|0)!=(0|0); - if ($12) { - if ($13) { - $14 = ((($0)) + 32|0); - $15 = HEAP32[$14>>2]|0; - $16 = (($5) + ($15)|0); - $17 = $1 << 2; - $18 = (($16) + ($17)|0); - $19 = (_ttSHORT($18)|0); - $20 = $19 << 16 >> 16; - HEAP32[$2>>2] = $20; - } - $21 = ($3|0)==(0|0); - if ($21) { - return; - } - $22 = HEAP32[$4>>2]|0; - $23 = ((($0)) + 32|0); - $24 = HEAP32[$23>>2]|0; - $25 = (($22) + ($24)|0); - $26 = $1 << 2; - $27 = (($25) + ($26)|0); - $28 = ((($27)) + 2|0); - $29 = (_ttSHORT($28)|0); - $30 = $29 << 16 >> 16; - HEAP32[$3>>2] = $30; - return; - } else { - if ($13) { - $31 = ((($0)) + 32|0); - $32 = HEAP32[$31>>2]|0; - $33 = (($5) + ($32)|0); - $34 = $11 << 2; - $35 = (($34) + -4)|0; - $36 = (($33) + ($35)|0); - $37 = (_ttSHORT($36)|0); - $38 = $37 << 16 >> 16; - HEAP32[$2>>2] = $38; - } - $39 = ($3|0)==(0|0); - if ($39) { - return; - } - $40 = HEAP32[$4>>2]|0; - $41 = ((($0)) + 32|0); - $42 = HEAP32[$41>>2]|0; - $43 = (($40) + ($42)|0); - $44 = $11 << 2; - $45 = (($43) + ($44)|0); - $46 = (($1) - ($11))|0; - $47 = $46 << 1; - $48 = (($45) + ($47)|0); - $49 = (_ttSHORT($48)|0); - $50 = $49 << 16 >> 16; - HEAP32[$3>>2] = $50; - return; - } -} -function _stbtt_GetGlyphBitmapBox($0,$1,$2,$3,$4,$5,$6,$7) { - $0 = $0|0; - $1 = $1|0; - $2 = +$2; - $3 = +$3; - $4 = $4|0; - $5 = $5|0; - $6 = $6|0; - $7 = $7|0; - var label = 0, sp = 0; - sp = STACKTOP; - _stbtt_GetGlyphBitmapBoxSubpixel($0,$1,$2,$3,$4,$5,$6,$7); - return; -} -function _stbtt_MakeGlyphBitmap($0,$1,$2,$3,$4,$5,$6,$7) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = +$5; - $6 = +$6; - $7 = $7|0; - var label = 0, sp = 0; - sp = STACKTOP; - _stbtt_MakeGlyphBitmapSubpixel($0,$1,$2,$3,$4,$5,$6,$7); - return; -} -function _stbtt_MakeGlyphBitmapSubpixel($0,$1,$2,$3,$4,$5,$6,$7) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = +$5; - $6 = +$6; - $7 = $7|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $8 = sp + 24|0; - $9 = sp + 20|0; - $10 = sp + 16|0; - $11 = sp; - $12 = (_stbtt_GetGlyphShape($0,$7,$10)|0); - _stbtt_GetGlyphBitmapBoxSubpixel($0,$7,$5,$6,$8,$9,0,0); - $13 = ((($11)) + 12|0); - HEAP32[$13>>2] = $1; - HEAP32[$11>>2] = $2; - $14 = ((($11)) + 4|0); - HEAP32[$14>>2] = $3; - $15 = ((($11)) + 8|0); - HEAP32[$15>>2] = $4; - $16 = ($2|0)==(0); - $17 = ($3|0)==(0); - $or$cond = $16 | $17; - if ($or$cond) { - $21 = HEAP32[$10>>2]|0; - _free($21); - STACKTOP = sp;return; - } - $18 = HEAP32[$10>>2]|0; - $19 = HEAP32[$8>>2]|0; - $20 = HEAP32[$9>>2]|0; - _stbtt_Rasterize($11,$18,$12,$5,$6,$19,$20); - $21 = HEAP32[$10>>2]|0; - _free($21); - STACKTOP = sp;return; -} -function _stbtt_GetGlyphShape($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($0)) + 56|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)==(0); - if ($5) { - $6 = (_stbtt__GetGlyphShapeTT($0,$1,$2)|0); - $$0 = $6; - return ($$0|0); - } else { - $7 = (_stbtt__GetGlyphShapeT2($0,$1,$2)|0); - $$0 = $7; - return ($$0|0); - } - return (0)|0; -} -function _stbtt_GetGlyphBitmapBoxSubpixel($0,$1,$2,$3,$4,$5,$6,$7) { - $0 = $0|0; - $1 = $1|0; - $2 = +$2; - $3 = +$3; - $4 = $4|0; - $5 = $5|0; - $6 = $6|0; - $7 = $7|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $8 = 0, $9 = 0, $ceilf = 0.0, $ceilf1 = 0.0, $floorf = 0.0, $floorf2 = 0.0, label = 0; - var sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $8 = sp + 12|0; - $9 = sp + 8|0; - $10 = sp + 4|0; - $11 = sp; - HEAP32[$8>>2] = 0; - HEAP32[$9>>2] = 0; - $12 = (_stbtt_GetGlyphBox($0,$1,$8,$9,$10,$11)|0); - $13 = ($12|0)==(0); - $14 = ($4|0)!=(0|0); - if ($13) { - if ($14) { - HEAP32[$4>>2] = 0; - } - $15 = ($5|0)==(0|0); - if (!($15)) { - HEAP32[$5>>2] = 0; - } - $16 = ($6|0)==(0|0); - if (!($16)) { - HEAP32[$6>>2] = 0; - } - $17 = ($7|0)==(0|0); - if ($17) { - STACKTOP = sp;return; - } - HEAP32[$7>>2] = 0; - STACKTOP = sp;return; - } else { - if ($14) { - $18 = HEAP32[$8>>2]|0; - $19 = (+($18|0)); - $20 = $19 * $2; - $21 = $20 + 0.0; - $floorf2 = (+Math_floor((+$21))); - $22 = (~~(($floorf2))); - HEAP32[$4>>2] = $22; - } - $23 = ($5|0)==(0|0); - if (!($23)) { - $24 = HEAP32[$11>>2]|0; - $25 = (0 - ($24))|0; - $26 = (+($25|0)); - $27 = $26 * $3; - $28 = $27 + 0.0; - $floorf = (+Math_floor((+$28))); - $29 = (~~(($floorf))); - HEAP32[$5>>2] = $29; - } - $30 = ($6|0)==(0|0); - if (!($30)) { - $31 = HEAP32[$10>>2]|0; - $32 = (+($31|0)); - $33 = $32 * $2; - $34 = $33 + 0.0; - $ceilf1 = (+Math_ceil((+$34))); - $35 = (~~(($ceilf1))); - HEAP32[$6>>2] = $35; - } - $36 = ($7|0)==(0|0); - if ($36) { - STACKTOP = sp;return; - } - $37 = HEAP32[$9>>2]|0; - $38 = (0 - ($37))|0; - $39 = (+($38|0)); - $40 = $39 * $3; - $41 = $40 + 0.0; - $ceilf = (+Math_ceil((+$41))); - $42 = (~~(($ceilf))); - HEAP32[$7>>2] = $42; - STACKTOP = sp;return; - } -} -function _stbtt_Rasterize($0,$1,$2,$3,$4,$5,$6) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = +$3; - $4 = +$4; - $5 = $5|0; - $6 = $6|0; - var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $7 = sp + 4|0; - $8 = sp; - $9 = $3 > $4; - $10 = $9 ? $4 : $3; - $11 = 0.34999999403953552 / $10; - $12 = (_stbtt_FlattenCurves($1,$2,$11,$8,$7)|0); - $13 = ($12|0)==(0|0); - if ($13) { - STACKTOP = sp;return; - } - $14 = HEAP32[$8>>2]|0; - $15 = HEAP32[$7>>2]|0; - _stbtt__rasterize($0,$12,$14,$15,$3,$4,$5,$6); - _free($14); - _free($12); - STACKTOP = sp;return; -} -function _stbtt_FlattenCurves($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = +$2; - $3 = $3|0; - $4 = $4|0; - var $$$0113 = 0, $$010 = 0.0, $$01079 = 0.0, $$011014 = 0, $$011113 = 0, $$011316 = 0, $$011715 = 0, $$0119 = 0, $$012012 = 0, $$1 = 0.0, $$1108 = 0.0, $$1112$lcssa = 0, $$11128 = 0, $$11185 = 0, $$1121 = 0, $$2 = 0, $$2115$lcssa = 0, $$21157 = 0, $$3116 = 0, $10 = 0; - var $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0, $37 = 0.0, $38 = 0, $39 = 0, $40 = 0.0, $41 = 0, $42 = 0, $43 = 0.0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0, $5 = 0; - var $50 = 0, $51 = 0.0, $52 = 0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0.0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0, $65 = 0, $66 = 0.0, $67 = 0, $68 = 0; - var $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0.0, $73 = 0, $74 = 0.0, $75 = 0, $76 = 0, $77 = 0.0, $78 = 0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0; - var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $exitcond = 0, $exitcond21 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $5 = sp; - HEAP32[$5>>2] = 0; - $6 = $2 * $2; - $7 = ($1|0)>(0); - if ($7) { - $$011316 = 0;$$011715 = 0; - } else { - HEAP32[$4>>2] = 0; - $$0119 = 0; - STACKTOP = sp;return ($$0119|0); - } - while(1) { - $8 = (((($0) + (($$011715*14)|0)|0)) + 12|0); - $9 = HEAP8[$8>>0]|0; - $10 = ($9<<24>>24)==(1); - $11 = $10&1; - $$$0113 = (($11) + ($$011316))|0; - $12 = (($$011715) + 1)|0; - $exitcond21 = ($12|0)==($1|0); - if ($exitcond21) { - break; - } else { - $$011316 = $$$0113;$$011715 = $12; - } - } - HEAP32[$4>>2] = $$$0113; - $13 = ($$$0113|0)==(0); - if ($13) { - $$0119 = 0; - STACKTOP = sp;return ($$0119|0); - } - $14 = $$$0113 << 2; - $15 = (_malloc($14)|0); - HEAP32[$3>>2] = $15; - $16 = ($15|0)==(0|0); - if ($16) { - HEAP32[$4>>2] = 0; - $$0119 = 0; - STACKTOP = sp;return ($$0119|0); - } - $17 = ($1|0)>(0); - $$011014 = 0;$$011113 = 0;$$012012 = 0; - while(1) { - $18 = ($$011014|0)==(1); - if ($18) { - $19 = HEAP32[$5>>2]|0; - $20 = $19 << 3; - $21 = (_malloc($20)|0); - $22 = ($21|0)==(0|0); - if ($22) { - break; - } else { - $$1121 = $21; - } - } else { - $$1121 = $$012012; - } - HEAP32[$5>>2] = 0; - L19: do { - if ($17) { - $$010 = 0.0;$$01079 = 0.0;$$11128 = $$011113;$$11185 = 0;$$21157 = -1; - while(1) { - $23 = (($0) + (($$11185*14)|0)|0); - $24 = (((($0) + (($$11185*14)|0)|0)) + 12|0); - $25 = HEAP8[$24>>0]|0; - switch ($25<<24>>24) { - case 1: { - $26 = ($$21157|0)>(-1); - if ($26) { - $27 = HEAP32[$5>>2]|0; - $28 = (($27) - ($$11128))|0; - $29 = HEAP32[$3>>2]|0; - $30 = (($29) + ($$21157<<2)|0); - HEAP32[$30>>2] = $28; - } - $31 = (($$21157) + 1)|0; - $32 = HEAP32[$5>>2]|0; - $33 = HEAP16[$23>>1]|0; - $34 = (+($33<<16>>16)); - $35 = (((($0) + (($$11185*14)|0)|0)) + 2|0); - $36 = HEAP16[$35>>1]|0; - $37 = (+($36<<16>>16)); - $38 = (($32) + 1)|0; - HEAP32[$5>>2] = $38; - _stbtt__add_point($$1121,$32,$34,$37); - $$1 = $37;$$1108 = $34;$$2 = $32;$$3116 = $31; - break; - } - case 2: { - $39 = HEAP16[$23>>1]|0; - $40 = (+($39<<16>>16)); - $41 = (((($0) + (($$11185*14)|0)|0)) + 2|0); - $42 = HEAP16[$41>>1]|0; - $43 = (+($42<<16>>16)); - $44 = HEAP32[$5>>2]|0; - $45 = (($44) + 1)|0; - HEAP32[$5>>2] = $45; - _stbtt__add_point($$1121,$44,$40,$43); - $$1 = $43;$$1108 = $40;$$2 = $$11128;$$3116 = $$21157; - break; - } - case 3: { - $46 = (((($0) + (($$11185*14)|0)|0)) + 4|0); - $47 = HEAP16[$46>>1]|0; - $48 = (+($47<<16>>16)); - $49 = (((($0) + (($$11185*14)|0)|0)) + 6|0); - $50 = HEAP16[$49>>1]|0; - $51 = (+($50<<16>>16)); - $52 = HEAP16[$23>>1]|0; - $53 = (+($52<<16>>16)); - $54 = (((($0) + (($$11185*14)|0)|0)) + 2|0); - $55 = HEAP16[$54>>1]|0; - $56 = (+($55<<16>>16)); - _stbtt__tesselate_curve($$1121,$5,$$01079,$$010,$48,$51,$53,$56,$6,0); - $57 = HEAP16[$23>>1]|0; - $58 = (+($57<<16>>16)); - $59 = HEAP16[$54>>1]|0; - $60 = (+($59<<16>>16)); - $$1 = $60;$$1108 = $58;$$2 = $$11128;$$3116 = $$21157; - break; - } - case 4: { - $61 = (((($0) + (($$11185*14)|0)|0)) + 4|0); - $62 = HEAP16[$61>>1]|0; - $63 = (+($62<<16>>16)); - $64 = (((($0) + (($$11185*14)|0)|0)) + 6|0); - $65 = HEAP16[$64>>1]|0; - $66 = (+($65<<16>>16)); - $67 = (((($0) + (($$11185*14)|0)|0)) + 8|0); - $68 = HEAP16[$67>>1]|0; - $69 = (+($68<<16>>16)); - $70 = (((($0) + (($$11185*14)|0)|0)) + 10|0); - $71 = HEAP16[$70>>1]|0; - $72 = (+($71<<16>>16)); - $73 = HEAP16[$23>>1]|0; - $74 = (+($73<<16>>16)); - $75 = (((($0) + (($$11185*14)|0)|0)) + 2|0); - $76 = HEAP16[$75>>1]|0; - $77 = (+($76<<16>>16)); - _stbtt__tesselate_cubic($$1121,$5,$$01079,$$010,$63,$66,$69,$72,$74,$77,$6,0); - $78 = HEAP16[$23>>1]|0; - $79 = (+($78<<16>>16)); - $80 = HEAP16[$75>>1]|0; - $81 = (+($80<<16>>16)); - $$1 = $81;$$1108 = $79;$$2 = $$11128;$$3116 = $$21157; - break; - } - default: { - $$1 = $$010;$$1108 = $$01079;$$2 = $$11128;$$3116 = $$21157; - } - } - $82 = (($$11185) + 1)|0; - $exitcond = ($82|0)==($1|0); - if ($exitcond) { - $$1112$lcssa = $$2;$$2115$lcssa = $$3116; - break L19; - } else { - $$010 = $$1;$$01079 = $$1108;$$11128 = $$2;$$11185 = $82;$$21157 = $$3116; - } - } - } else { - $$1112$lcssa = $$011113;$$2115$lcssa = -1; - } - } while(0); - $83 = HEAP32[$5>>2]|0; - $84 = (($83) - ($$1112$lcssa))|0; - $85 = HEAP32[$3>>2]|0; - $86 = (($85) + ($$2115$lcssa<<2)|0); - HEAP32[$86>>2] = $84; - $87 = (($$011014) + 1)|0; - $88 = ($87|0)<(2); - if ($88) { - $$011014 = $87;$$011113 = $$1112$lcssa;$$012012 = $$1121; - } else { - $$0119 = $$1121; - label = 21; - break; - } - } - if ((label|0) == 21) { - STACKTOP = sp;return ($$0119|0); - } - $89 = HEAP32[$3>>2]|0; - _free($89); - HEAP32[$3>>2] = 0; - HEAP32[$4>>2] = 0; - $$0119 = 0; - STACKTOP = sp;return ($$0119|0); -} -function _stbtt__rasterize($0,$1,$2,$3,$4,$5,$6,$7) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = +$4; - $5 = +$5; - $6 = $6|0; - $7 = $7|0; - var $$0 = 0, $$0101 = 0, $$0102$lcssa = 0, $$010211 = 0, $$010410 = 0, $$01064 = 0, $$01072 = 0, $$01081 = 0, $$01081$phi = 0, $$1$lcssa = 0, $$11055 = 0, $$16 = 0, $$2$lcssa = 0, $$23 = 0, $$3 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0, $29 = 0.0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0.0; - var $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0; - var $55 = 0, $56 = 0, $8 = 0.0, $9 = 0, $exitcond = 0, $exitcond16 = 0, $phitmp = 0, $phitmp17 = 0, $storemerge = 0, label = 0, sp = 0; - sp = STACKTOP; - $8 = -$5; - $9 = ($3|0)>(0); - if ($9) { - $$010211 = 0;$$010410 = 0; - while(1) { - $10 = (($2) + ($$010410<<2)|0); - $11 = HEAP32[$10>>2]|0; - $12 = (($11) + ($$010211))|0; - $13 = (($$010410) + 1)|0; - $exitcond16 = ($13|0)==($3|0); - if ($exitcond16) { - break; - } else { - $$010211 = $12;$$010410 = $13; - } - } - $phitmp = ($12*20)|0; - $phitmp17 = (($phitmp) + 20)|0; - $$0102$lcssa = $phitmp17; - } else { - $$0102$lcssa = 20; - } - $14 = (_malloc($$0102$lcssa)|0); - $15 = ($14|0)==(0|0); - if ($15) { - return; - } - $16 = ($3|0)>(0); - if ($16) { - $$01064 = 0;$$11055 = 0;$$16 = 0; - while(1) { - $17 = (($1) + ($$01064<<3)|0); - $18 = (($2) + ($$11055<<2)|0); - $19 = HEAP32[$18>>2]|0; - $20 = (($19) + ($$01064))|0; - $21 = ($19|0)>(0); - if ($21) { - $22 = (($19) + -1)|0; - $23 = HEAP32[$18>>2]|0; - $$01072 = 0;$$01081 = $22;$$23 = $$16; - while(1) { - $24 = (($17) + ($$01081<<3)|0); - $25 = ((($24)) + 4|0); - $26 = +HEAPF32[$25>>2]; - $27 = (($17) + ($$01072<<3)|0); - $28 = ((($27)) + 4|0); - $29 = +HEAPF32[$28>>2]; - $30 = $26 == $29; - if ($30) { - $$3 = $$23; - } else { - $31 = (((($14) + (($$23*20)|0)|0)) + 16|0); - $32 = $26 > $29; - $storemerge = $32&1; - $$0101 = $32 ? $$01081 : $$01072; - $$0 = $32 ? $$01072 : $$01081; - HEAP32[$31>>2] = $storemerge; - $33 = (($17) + ($$0101<<3)|0); - $34 = +HEAPF32[$33>>2]; - $35 = $34 * $4; - $36 = $35 + 0.0; - $37 = (($14) + (($$23*20)|0)|0); - HEAPF32[$37>>2] = $36; - $38 = ((($33)) + 4|0); - $39 = +HEAPF32[$38>>2]; - $40 = $39 * $8; - $41 = $40 + 0.0; - $42 = (((($14) + (($$23*20)|0)|0)) + 4|0); - HEAPF32[$42>>2] = $41; - $43 = (($17) + ($$0<<3)|0); - $44 = +HEAPF32[$43>>2]; - $45 = $44 * $4; - $46 = $45 + 0.0; - $47 = (((($14) + (($$23*20)|0)|0)) + 8|0); - HEAPF32[$47>>2] = $46; - $48 = ((($43)) + 4|0); - $49 = +HEAPF32[$48>>2]; - $50 = $49 * $8; - $51 = $50 + 0.0; - $52 = (((($14) + (($$23*20)|0)|0)) + 12|0); - HEAPF32[$52>>2] = $51; - $53 = (($$23) + 1)|0; - $$3 = $53; - } - $54 = (($$01072) + 1)|0; - $55 = ($54|0)<($23|0); - if ($55) { - $$01081$phi = $$01072;$$01072 = $54;$$23 = $$3;$$01081 = $$01081$phi; - } else { - $$2$lcssa = $$3; - break; - } - } - } else { - $$2$lcssa = $$16; - } - $56 = (($$11055) + 1)|0; - $exitcond = ($56|0)==($3|0); - if ($exitcond) { - $$1$lcssa = $$2$lcssa; - break; - } else { - $$01064 = $20;$$11055 = $56;$$16 = $$2$lcssa; - } - } - } else { - $$1$lcssa = 0; - } - _stbtt__sort_edges($14,$$1$lcssa); - _stbtt__rasterize_sorted_edges($0,$14,$$1$lcssa,$6,$7); - _free($14); - return; -} -function _stbtt__sort_edges($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - _stbtt__sort_edges_quicksort($0,$1); - _stbtt__sort_edges_ins_sort($0,$1); - return; -} -function _stbtt__rasterize_sorted_edges($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$ = 0, $$010025 = 0, $$010123 = 0, $$010219 = 0.0, $$010318 = 0, $$0104 = 0, $$0105$ph15 = 0, $$026 = 0, $$1$lcssa = 0, $$116 = 0, $$sroa$0 = 0, $$sroa$0$0$$sroa$0$0$$0$1 = 0, $$sroa$0$0$$sroa$0$0$$0$1079 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; - var $17 = 0.0, $18 = 0.0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0.0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0.0, $38 = 0, $39 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0, $5 = 0, $50 = 0.0, $51 = 0, $52 = 0, $53 = 0, $54 = 0.0, $55 = 0; - var $56 = 0, $57 = 0, $58 = 0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0.0, $73 = 0.0; - var $74 = 0.0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0.0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0.0; - var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $fabsf = 0.0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 544|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(544|0); - $5 = sp + 520|0; - $$sroa$0 = sp + 516|0; - $6 = sp; - ;HEAP32[$5>>2]=0|0;HEAP32[$5+4>>2]=0|0;HEAP32[$5+8>>2]=0|0; - HEAP32[$$sroa$0>>2] = 0; - $7 = HEAP32[$0>>2]|0; - $8 = ($7|0)>(64); - if ($8) { - $9 = $7 << 3; - $10 = $9 | 4; - $11 = (_malloc($10)|0); - $$0104 = $11; - } else { - $$0104 = $6; - } - $12 = HEAP32[$0>>2]|0; - $13 = (($$0104) + ($12<<2)|0); - $14 = ((($0)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = (($15) + ($4))|0; - $17 = (+($16|0)); - $18 = $17 + 1.0; - $19 = (((($1) + (($2*20)|0)|0)) + 4|0); - HEAPF32[$19>>2] = $18; - $20 = HEAP32[$14>>2]|0; - $21 = ($20|0)>(0); - L5: do { - if ($21) { - $22 = ((($13)) + 4|0); - $23 = ((($0)) + 12|0); - $24 = ((($0)) + 8|0); - $$010025 = $4;$$010123 = 0;$$026 = $1; - L7: while(1) { - $25 = (+($$010025|0)); - $26 = $25 + 1.0; - $27 = HEAP32[$0>>2]|0; - $28 = $27 << 2; - _memset(($$0104|0),0,($28|0))|0; - $29 = (($28) + 4)|0; - _memset(($13|0),0,($29|0))|0; - $30 = HEAP32[$$sroa$0>>2]|0; - $31 = ($30|0)==(0|0); - L9: do { - if (!($31)) { - $$0105$ph15 = $$sroa$0;$99 = $30; - while(1) { - $36 = $99; - while(1) { - $35 = ((($36)) + 24|0); - $37 = +HEAPF32[$35>>2]; - $38 = !($37 <= $25); - if ($38) { - break; - } - $39 = HEAP32[$36>>2]|0; - HEAP32[$$0105$ph15>>2] = $39; - $40 = ((($36)) + 16|0); - $41 = +HEAPF32[$40>>2]; - $42 = $41 != 0.0; - if (!($42)) { - label = 11; - break L7; - } - HEAPF32[$40>>2] = 0.0; - _stbtt__hheap_free($5,$36); - $43 = HEAP32[$$0105$ph15>>2]|0; - $44 = ($43|0)==(0|0); - if ($44) { - break L9; - } else { - $36 = $43; - } - } - $45 = HEAP32[$36>>2]|0; - $46 = ($45|0)==(0|0); - if ($46) { - break; - } else { - $$0105$ph15 = $36;$99 = $45; - } - } - } - } while(0); - $32 = ((($$026)) + 4|0); - $33 = +HEAPF32[$32>>2]; - $34 = !($33 <= $26); - if ($34) { - $$1$lcssa = $$026; - } else { - $$116 = $$026;$50 = $33; - while(1) { - $47 = ((($$116)) + 12|0); - $48 = +HEAPF32[$47>>2]; - $49 = $50 != $48; - if ($49) { - $51 = (_stbtt__new_active($5,$$116,$3,$25)|0); - $52 = ($51|0)==(0|0); - if (!($52)) { - $53 = ((($51)) + 24|0); - $54 = +HEAPF32[$53>>2]; - $55 = !($54 >= $25); - if ($55) { - label = 17; - break L7; - } - $$sroa$0$0$$sroa$0$0$$0$1 = HEAP32[$$sroa$0>>2]|0; - HEAP32[$51>>2] = $$sroa$0$0$$sroa$0$0$$0$1; - $56 = $51; - HEAP32[$$sroa$0>>2] = $56; - } - } - $57 = ((($$116)) + 20|0); - $58 = ((($$116)) + 24|0); - $59 = +HEAPF32[$58>>2]; - $60 = !($59 <= $26); - if ($60) { - $$1$lcssa = $57; - break; - } else { - $$116 = $57;$50 = $59; - } - } - } - $$sroa$0$0$$sroa$0$0$$0$1079 = HEAP32[$$sroa$0>>2]|0; - $61 = ($$sroa$0$0$$sroa$0$0$$0$1079|0)==(0|0); - if (!($61)) { - $62 = HEAP32[$0>>2]|0; - _stbtt__fill_active_edges_new($$0104,$22,$62,$$sroa$0$0$$sroa$0$0$$0$1079,$25); - } - $63 = HEAP32[$0>>2]|0; - $64 = ($63|0)>(0); - if ($64) { - $$010219 = 0.0;$$010318 = 0; - while(1) { - $67 = (($13) + ($$010318<<2)|0); - $68 = +HEAPF32[$67>>2]; - $69 = $$010219 + $68; - $70 = (($$0104) + ($$010318<<2)|0); - $71 = +HEAPF32[$70>>2]; - $72 = $71 + $69; - $fabsf = (+Math_abs((+$72))); - $73 = $fabsf * 255.0; - $74 = $73 + 0.5; - $75 = (~~(($74))); - $76 = ($75|0)<(255); - $$ = $76 ? $75 : 255; - $77 = $$&255; - $78 = HEAP32[$23>>2]|0; - $79 = HEAP32[$24>>2]|0; - $80 = Math_imul($79, $$010123)|0; - $81 = (($80) + ($$010318))|0; - $82 = (($78) + ($81)|0); - HEAP8[$82>>0] = $77; - $83 = (($$010318) + 1)|0; - $84 = HEAP32[$0>>2]|0; - $85 = ($83|0)<($84|0); - if ($85) { - $$010219 = $69;$$010318 = $83; - } else { - break; - } - } - } - $65 = HEAP32[$$sroa$0>>2]|0; - $66 = ($65|0)==(0|0); - if (!($66)) { - $87 = $65; - while(1) { - $86 = ((($87)) + 8|0); - $88 = +HEAPF32[$86>>2]; - $89 = ((($87)) + 4|0); - $90 = +HEAPF32[$89>>2]; - $91 = $88 + $90; - HEAPF32[$89>>2] = $91; - $92 = HEAP32[$87>>2]|0; - $93 = ($92|0)==(0|0); - if ($93) { - break; - } else { - $87 = $92; - } - } - } - $94 = (($$010025) + 1)|0; - $95 = (($$010123) + 1)|0; - $96 = HEAP32[$14>>2]|0; - $97 = ($95|0)<($96|0); - if ($97) { - $$010025 = $94;$$010123 = $95;$$026 = $$1$lcssa; - } else { - break L5; - } - } - if ((label|0) == 11) { - ___assert_fail((9219|0),(9163|0),2872,(9232|0)); - // unreachable; - } - else if ((label|0) == 17) { - ___assert_fail((9262|0),(9163|0),2885,(9232|0)); - // unreachable; - } - } - } while(0); - _stbtt__hheap_cleanup($5); - $98 = ($$0104|0)==($6|0); - if ($98) { - STACKTOP = sp;return; - } - _free($$0104); - STACKTOP = sp;return; -} -function _stbtt__hheap_free($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 4|0); - $3 = HEAP32[$2>>2]|0; - HEAP32[$1>>2] = $3; - HEAP32[$2>>2] = $1; - return; -} -function _stbtt__new_active($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = +$3; - var $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = (_stbtt__hheap_alloc($0)|0); - $5 = ((($1)) + 8|0); - $6 = +HEAPF32[$5>>2]; - $7 = +HEAPF32[$1>>2]; - $8 = $6 - $7; - $9 = ((($1)) + 12|0); - $10 = +HEAPF32[$9>>2]; - $11 = ((($1)) + 4|0); - $12 = +HEAPF32[$11>>2]; - $13 = $10 - $12; - $14 = $8 / $13; - $15 = ($4|0)==(0|0); - if ($15) { - ___assert_fail((9552|0),(9163|0),2472,(9568|0)); - // unreachable; - } else { - $16 = ((($4)) + 8|0); - HEAPF32[$16>>2] = $14; - $17 = $14 != 0.0; - $18 = 1.0 / $14; - $19 = $17 ? $18 : 0.0; - $20 = ((($4)) + 12|0); - HEAPF32[$20>>2] = $19; - $21 = +HEAPF32[$1>>2]; - $22 = +HEAPF32[$11>>2]; - $23 = $3 - $22; - $24 = $14 * $23; - $25 = $21 + $24; - $26 = ((($4)) + 4|0); - $27 = (+($2|0)); - $28 = $25 - $27; - HEAPF32[$26>>2] = $28; - $29 = ((($1)) + 16|0); - $30 = HEAP32[$29>>2]|0; - $31 = ($30|0)!=(0); - $32 = $31 ? 1.0 : -1.0; - $33 = ((($4)) + 16|0); - HEAPF32[$33>>2] = $32; - $34 = ((($4)) + 20|0); - HEAPF32[$34>>2] = $22; - $35 = HEAP32[$9>>2]|0; - $36 = ((($4)) + 24|0); - HEAP32[$36>>2] = $35; - HEAP32[$4>>2] = 0; - return ($4|0); - } - return (0)|0; -} -function _stbtt__fill_active_edges_new($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = +$4; - var $$0350 = 0.0, $$0351 = 0.0, $$0352 = 0.0, $$0354 = 0.0, $$0356370 = 0, $$0357 = 0.0, $$0359$lcssa = 0.0, $$0359372 = 0.0, $$0360 = 0.0, $$0361371 = 0, $$0374 = 0, $$1 = 0.0, $$1353 = 0.0, $$1355 = 0.0, $$1358 = 0.0, $10 = 0.0, $100 = 0.0, $101 = 0, $102 = 0, $103 = 0; - var $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0; - var $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0; - var $140 = 0, $141 = 0, $142 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0, $30 = 0, $31 = 0.0; - var $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0.0, $50 = 0.0; - var $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0, $65 = 0.0, $66 = 0.0, $67 = 0, $68 = 0.0, $69 = 0.0; - var $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0, $74 = 0, $75 = 0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0; - var $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0, $95 = 0.0, $96 = 0.0, $97 = 0, $98 = 0.0, $99 = 0.0, $exitcond = 0, $exitcond380 = 0, $fabsf = 0.0, $or$cond = 0, $or$cond362 = 0, $or$cond363 = 0, $or$cond364 = 0; - var $or$cond365 = 0, $or$cond366 = 0, $or$cond367 = 0, $or$cond368 = 0, $or$cond369 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = $4 + 1.0; - $6 = ($3|0)==(0|0); - if ($6) { - return; - } - $7 = (+($2|0)); - $8 = ((($1)) + -4|0); - $9 = ((($1)) + -4|0); - $10 = (+($2|0)); - $11 = ($2|0)>(0); - $$0374 = $3; - L4: while(1) { - $12 = ((($$0374)) + 24|0); - $13 = +HEAPF32[$12>>2]; - $14 = !($13 >= $4); - if ($14) { - label = 4; - break; - } - $15 = ((($$0374)) + 8|0); - $16 = +HEAPF32[$15>>2]; - $17 = $16 == 0.0; - $18 = ((($$0374)) + 4|0); - $19 = +HEAPF32[$18>>2]; - do { - if ($17) { - $20 = $19 < $7; - if ($20) { - $21 = !($19 >= 0.0); - if ($21) { - _stbtt__handle_clipped_edge($8,0,$$0374,$19,$4,$19,$5); - break; - } else { - $22 = (~~(($19))); - _stbtt__handle_clipped_edge($0,$22,$$0374,$19,$4,$19,$5); - $23 = (($22) + 1)|0; - _stbtt__handle_clipped_edge($9,$23,$$0374,$19,$4,$19,$5); - break; - } - } - } else { - $24 = $16 + $19; - $25 = ((($$0374)) + 12|0); - $26 = +HEAPF32[$25>>2]; - $27 = ((($$0374)) + 20|0); - $28 = +HEAPF32[$27>>2]; - $29 = !($28 <= $5); - if ($29) { - label = 11; - break L4; - } - $30 = $28 > $4; - $31 = $28 - $4; - $32 = $16 * $31; - $33 = $19 + $32; - $$0354 = $30 ? $28 : $4; - $$0351 = $30 ? $33 : $19; - $34 = +HEAPF32[$12>>2]; - $35 = $34 < $5; - $36 = $34 - $4; - $37 = $16 * $36; - $38 = $19 + $37; - $$0357 = $35 ? $34 : $5; - $$0352 = $35 ? $38 : $24; - $39 = $$0351 >= 0.0; - $40 = $$0352 >= 0.0; - $or$cond = $39 & $40; - if ($or$cond) { - $41 = $$0351 < $10; - $42 = $$0352 < $10; - $or$cond362 = $41 & $42; - if ($or$cond362) { - $43 = (~~(($$0351))); - $44 = (~~(($$0352))); - $45 = ($43|0)==($44|0); - if ($45) { - $46 = $$0357 - $$0354; - $47 = ($43|0)>(-1); - $48 = ($43|0)<($2|0); - $or$cond363 = $47 & $48; - if (!($or$cond363)) { - label = 17; - break L4; - } - $49 = ((($$0374)) + 16|0); - $50 = +HEAPF32[$49>>2]; - $51 = (+($43|0)); - $52 = $$0351 - $51; - $53 = $$0352 - $51; - $54 = $52 + $53; - $55 = $54 * 0.5; - $56 = 1.0 - $55; - $57 = $56 * $50; - $58 = $46 * $57; - $59 = (($0) + ($43<<2)|0); - $60 = +HEAPF32[$59>>2]; - $61 = $60 + $58; - HEAPF32[$59>>2] = $61; - $62 = +HEAPF32[$49>>2]; - $63 = $46 * $62; - $64 = (($1) + ($43<<2)|0); - $65 = +HEAPF32[$64>>2]; - $66 = $65 + $63; - HEAPF32[$64>>2] = $66; - break; - } - $67 = $$0351 > $$0352; - if ($67) { - $68 = -$26; - $69 = $$0357 - $4; - $70 = $5 - $69; - $71 = $$0354 - $4; - $72 = $5 - $71; - $$0350 = $24;$$0360 = $68;$$1 = $$0352;$$1353 = $$0351;$$1355 = $70;$$1358 = $72; - } else { - $$0350 = $19;$$0360 = $26;$$1 = $$0351;$$1353 = $$0352;$$1355 = $$0354;$$1358 = $$0357; - } - $73 = (~~(($$1))); - $74 = (~~(($$1353))); - $75 = (($73) + 1)|0; - $76 = (+($75|0)); - $77 = $76 - $$0350; - $78 = $$0360 * $77; - $79 = $78 + $4; - $80 = ((($$0374)) + 16|0); - $81 = +HEAPF32[$80>>2]; - $82 = $79 - $$1355; - $83 = $81 * $82; - $84 = (+($73|0)); - $85 = $$1 - $84; - $86 = $85 + 1.0; - $87 = $86 * 0.5; - $88 = 1.0 - $87; - $89 = $88 * $83; - $90 = (($0) + ($73<<2)|0); - $91 = +HEAPF32[$90>>2]; - $92 = $91 + $89; - HEAPF32[$90>>2] = $92; - $93 = $$0360 * $81; - $94 = ($74|0)>($75|0); - if ($94) { - $95 = $93 * 0.5; - $$0359372 = $83;$$0361371 = $75; - while(1) { - $96 = $95 + $$0359372; - $97 = (($0) + ($$0361371<<2)|0); - $98 = +HEAPF32[$97>>2]; - $99 = $96 + $98; - HEAPF32[$97>>2] = $99; - $100 = $93 + $$0359372; - $101 = (($$0361371) + 1)|0; - $exitcond380 = ($101|0)==($74|0); - if ($exitcond380) { - $$0359$lcssa = $100; - break; - } else { - $$0359372 = $100;$$0361371 = $101; - } - } - } else { - $$0359$lcssa = $83; - } - $fabsf = (+Math_abs((+$$0359$lcssa))); - $102 = !($fabsf <= 1.0099999904632568); - if ($102) { - label = 25; - break L4; - } - $103 = (($74) - ($75))|0; - $104 = (+($103|0)); - $105 = $$0360 * $104; - $106 = $105 + $79; - $107 = (+($74|0)); - $108 = $$1353 - $107; - $109 = $108 + 0.0; - $110 = $109 * 0.5; - $111 = 1.0 - $110; - $112 = $81 * $111; - $113 = $$1358 - $106; - $114 = $112 * $113; - $115 = $114 + $$0359$lcssa; - $116 = (($0) + ($74<<2)|0); - $117 = +HEAPF32[$116>>2]; - $118 = $115 + $117; - HEAPF32[$116>>2] = $118; - $119 = $$1358 - $$1355; - $120 = $119 * $81; - $121 = (($1) + ($74<<2)|0); - $122 = +HEAPF32[$121>>2]; - $123 = $120 + $122; - HEAPF32[$121>>2] = $123; - break; - } - } - if ($11) { - $$0356370 = 0; - while(1) { - $124 = (+($$0356370|0)); - $125 = (($$0356370) + 1)|0; - $126 = (+($125|0)); - $127 = $124 - $19; - $128 = $127 / $16; - $129 = $128 + $4; - $130 = $126 - $19; - $131 = $130 / $16; - $132 = $131 + $4; - $133 = $19 < $124; - $134 = $24 > $126; - $or$cond364 = $133 & $134; - do { - if ($or$cond364) { - _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$19,$4,$124,$129); - _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$124,$129,$126,$132); - _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$126,$132,$24,$5); - } else { - $135 = $24 < $124; - $136 = $19 > $126; - $or$cond365 = $135 & $136; - if ($or$cond365) { - _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$19,$4,$126,$132); - _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$126,$132,$124,$129); - _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$124,$129,$24,$5); - break; - } - $137 = $24 > $124; - $or$cond366 = $133 & $137; - if ($or$cond366) { - _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$19,$4,$124,$129); - _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$124,$129,$24,$5); - break; - } - $138 = $19 > $124; - $or$cond367 = $135 & $138; - if ($or$cond367) { - _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$19,$4,$124,$129); - _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$124,$129,$24,$5); - break; - } - $139 = $19 < $126; - $or$cond368 = $139 & $134; - if ($or$cond368) { - _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$19,$4,$126,$132); - _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$126,$132,$24,$5); - break; - } - $140 = $24 < $126; - $or$cond369 = $140 & $136; - if ($or$cond369) { - _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$19,$4,$126,$132); - _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$126,$132,$24,$5); - break; - } else { - _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$19,$4,$24,$5); - break; - } - } - } while(0); - $exitcond = ($125|0)==($2|0); - if ($exitcond) { - break; - } else { - $$0356370 = $125; - } - } - } - } - } while(0); - $141 = HEAP32[$$0374>>2]|0; - $142 = ($141|0)==(0|0); - if ($142) { - label = 42; - break; - } else { - $$0374 = $141; - } - } - if ((label|0) == 4) { - ___assert_fail((9282|0),(9163|0),2684,(9297|0)); - // unreachable; - } - else if ((label|0) == 11) { - ___assert_fail((9326|0),(9163|0),2703,(9297|0)); - // unreachable; - } - else if ((label|0) == 17) { - ___assert_fail((9362|0),(9163|0),2731,(9297|0)); - // unreachable; - } - else if ((label|0) == 25) { - ___assert_fail((9380|0),(9163|0),2768,(9297|0)); - // unreachable; - } - else if ((label|0) == 42) { - return; - } -} -function _stbtt__hheap_cleanup($0) { - $0 = $0|0; - var $$in12 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - $2 = ($1|0)==(0|0); - if ($2) { - return; - } else { - $$in12 = $1; - } - while(1) { - $3 = HEAP32[$$in12>>2]|0; - _free($$in12); - $4 = ($3|0)==(0|0); - if ($4) { - break; - } else { - $$in12 = $3; - } - } - return; -} -function _stbtt__handle_clipped_edge($0,$1,$2,$3,$4,$5,$6) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = +$3; - $4 = +$4; - $5 = +$5; - $6 = +$6; - var $$0 = 0.0, $$077 = 0.0, $$078 = 0.0, $$079 = 0.0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0; - var $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0; - var $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond80 = 0, $or$cond81 = 0, $or$cond82 = 0, $or$cond83 = 0, $or$cond84 = 0, $or$cond85 = 0, label = 0, sp = 0; - sp = STACKTOP; - $7 = $4 == $6; - if ($7) { - return; - } - $8 = $4 < $6; - if (!($8)) { - ___assert_fail((9400|0),(9163|0),2642,(9408|0)); - // unreachable; - } - $9 = ((($2)) + 20|0); - $10 = +HEAPF32[$9>>2]; - $11 = ((($2)) + 24|0); - $12 = +HEAPF32[$11>>2]; - $13 = !($10 <= $12); - if ($13) { - ___assert_fail((9435|0),(9163|0),2643,(9408|0)); - // unreachable; - } - $14 = $12 < $4; - $15 = $10 > $6; - $or$cond = $15 | $14; - if ($or$cond) { - return; - } - $16 = $10 > $4; - if ($16) { - $17 = $5 - $3; - $18 = $10 - $4; - $19 = $17 * $18; - $20 = $6 - $4; - $21 = $19 / $20; - $22 = $21 + $3; - $$078 = $10;$$079 = $22; - } else { - $$078 = $4;$$079 = $3; - } - $23 = +HEAPF32[$11>>2]; - $24 = $23 < $6; - if ($24) { - $25 = $5 - $$079; - $26 = $23 - $6; - $27 = $25 * $26; - $28 = $6 - $$078; - $29 = $27 / $28; - $30 = $29 + $5; - $$0 = $23;$$077 = $30; - } else { - $$0 = $6;$$077 = $5; - } - $31 = (+($1|0)); - $32 = $$079 == $31; - $33 = (($1) + 1)|0; - $34 = (+($33|0)); - do { - if ($32) { - $35 = !($$077 <= $34); - if ($35) { - ___assert_fail((9450|0),(9163|0),2656,(9408|0)); - // unreachable; - } - } else { - $36 = $$079 == $34; - if ($36) { - $37 = !($$077 >= $31); - if (!($37)) { - break; - } - ___assert_fail((9460|0),(9163|0),2658,(9408|0)); - // unreachable; - } - $38 = !($$079 <= $31); - if (!($38)) { - $39 = !($$077 <= $31); - if (!($39)) { - break; - } - ___assert_fail((9468|0),(9163|0),2660,(9408|0)); - // unreachable; - } - $40 = !($$079 >= $34); - if ($40) { - $42 = !($$077 >= $31); - $43 = !($$077 <= $34); - $or$cond80 = $42 | $43; - if (!($or$cond80)) { - break; - } - ___assert_fail((9486|0),(9163|0),2664,(9408|0)); - // unreachable; - } else { - $41 = !($$077 >= $34); - if (!($41)) { - break; - } - ___assert_fail((9476|0),(9163|0),2662,(9408|0)); - // unreachable; - } - } - } while(0); - $44 = !($$079 <= $31); - $45 = !($$077 <= $31); - $or$cond81 = $44 | $45; - if (!($or$cond81)) { - $46 = ((($2)) + 16|0); - $47 = +HEAPF32[$46>>2]; - $48 = $$0 - $$078; - $49 = $48 * $47; - $50 = (($0) + ($1<<2)|0); - $51 = +HEAPF32[$50>>2]; - $52 = $51 + $49; - HEAPF32[$50>>2] = $52; - return; - } - $53 = !($$079 >= $34); - $54 = !($$077 >= $34); - $or$cond82 = $53 | $54; - if (!($or$cond82)) { - return; - } - $55 = !($$079 >= $31); - $56 = !($$079 <= $34); - $or$cond83 = $55 | $56; - $57 = !($$077 >= $31); - $or$cond84 = $or$cond83 | $57; - $58 = !($$077 <= $34); - $or$cond85 = $58 | $or$cond84; - if ($or$cond85) { - ___assert_fail((9507|0),(9163|0),2671,(9408|0)); - // unreachable; - } - $59 = ((($2)) + 16|0); - $60 = +HEAPF32[$59>>2]; - $61 = $$0 - $$078; - $62 = $61 * $60; - $63 = $$079 - $31; - $64 = $$077 - $31; - $65 = $63 + $64; - $66 = $65 * 0.5; - $67 = 1.0 - $66; - $68 = $67 * $62; - $69 = (($0) + ($1<<2)|0); - $70 = +HEAPF32[$69>>2]; - $71 = $70 + $68; - HEAPF32[$69>>2] = $71; - return; -} -function _stbtt__hheap_alloc($0) { - $0 = $0|0; - var $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 4|0); - $2 = HEAP32[$1>>2]|0; - $3 = ($2|0)==(0|0); - if (!($3)) { - $4 = HEAP32[$2>>2]|0; - HEAP32[$1>>2] = $4; - $$1 = $2; - return ($$1|0); - } - $5 = ((($0)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = ($6|0)==(0); - do { - if ($7) { - $8 = (_malloc(56004)|0); - $9 = ($8|0)==(0|0); - if ($9) { - $$1 = 0; - return ($$1|0); - } else { - $10 = HEAP32[$0>>2]|0; - HEAP32[$8>>2] = $10; - HEAP32[$0>>2] = $8; - HEAP32[$5>>2] = 2000; - break; - } - } - } while(0); - $11 = HEAP32[$5>>2]|0; - $12 = (($11) + -1)|0; - HEAP32[$5>>2] = $12; - $13 = HEAP32[$0>>2]|0; - $14 = ($12*28)|0; - $15 = (($13) + ($14)|0); - $$1 = $15; - return ($$1|0); -} -function _stbtt__sort_edges_quicksort($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$079 = 0, $$081 = 0, $$08390 = 0, $$091 = 0, $$1 = 0, $$180 = 0, $$182 = 0, $$184 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0; - var $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0; - var $8 = 0, $9 = 0.0, $tmp = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $2 = sp; - $3 = ($1|0)>(12); - if (!($3)) { - STACKTOP = sp;return; - } - $$08390 = $1;$$091 = $0; - while(1) { - $4 = $$08390 >>> 1; - $5 = ((($$091)) + 4|0); - $6 = +HEAPF32[$5>>2]; - $7 = (($$091) + (($4*20)|0)|0); - $8 = (((($$091) + (($4*20)|0)|0)) + 4|0); - $9 = +HEAPF32[$8>>2]; - $10 = $6 < $9; - $11 = (($$08390) + -1)|0; - $12 = (((($$091) + (($11*20)|0)|0)) + 4|0); - $13 = +HEAPF32[$12>>2]; - $14 = $9 < $13; - $15 = $10 ^ $14; - $16 = $6 < $13; - $tmp = $16 ^ $14; - $17 = $tmp ? $11 : 0; - $18 = (($$091) + (($17*20)|0)|0); - if ($15) { - ;HEAP32[$2>>2]=HEAP32[$18>>2]|0;HEAP32[$2+4>>2]=HEAP32[$18+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$18+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$18+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$18+16>>2]|0; - ;HEAP32[$18>>2]=HEAP32[$7>>2]|0;HEAP32[$18+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$18+8>>2]=HEAP32[$7+8>>2]|0;HEAP32[$18+12>>2]=HEAP32[$7+12>>2]|0;HEAP32[$18+16>>2]=HEAP32[$7+16>>2]|0; - ;HEAP32[$7>>2]=HEAP32[$2>>2]|0;HEAP32[$7+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$7+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$7+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$7+16>>2]=HEAP32[$2+16>>2]|0; - } - ;HEAP32[$2>>2]=HEAP32[$$091>>2]|0;HEAP32[$2+4>>2]=HEAP32[$$091+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$$091+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$$091+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$$091+16>>2]|0; - ;HEAP32[$$091>>2]=HEAP32[$7>>2]|0;HEAP32[$$091+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$091+8>>2]=HEAP32[$7+8>>2]|0;HEAP32[$$091+12>>2]=HEAP32[$7+12>>2]|0;HEAP32[$$091+16>>2]=HEAP32[$7+16>>2]|0; - ;HEAP32[$7>>2]=HEAP32[$2>>2]|0;HEAP32[$7+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$7+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$7+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$7+16>>2]=HEAP32[$2+16>>2]|0; - $$079 = $11;$$081 = 1; - while(1) { - $19 = +HEAPF32[$5>>2]; - $$182 = $$081; - while(1) { - $20 = (((($$091) + (($$182*20)|0)|0)) + 4|0); - $21 = +HEAPF32[$20>>2]; - $22 = $21 < $19; - $23 = (($$182) + 1)|0; - if ($22) { - $$182 = $23; - } else { - $$180 = $$079; - break; - } - } - while(1) { - $24 = (((($$091) + (($$180*20)|0)|0)) + 4|0); - $25 = +HEAPF32[$24>>2]; - $26 = $19 < $25; - $27 = (($$180) + -1)|0; - if ($26) { - $$180 = $27; - } else { - break; - } - } - $28 = (($$091) + (($$182*20)|0)|0); - $29 = ($$182|0)<($$180|0); - if (!($29)) { - break; - } - $30 = (($$091) + (($$180*20)|0)|0); - ;HEAP32[$2>>2]=HEAP32[$28>>2]|0;HEAP32[$2+4>>2]=HEAP32[$28+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$28+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$28+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$28+16>>2]|0; - ;HEAP32[$28>>2]=HEAP32[$30>>2]|0;HEAP32[$28+4>>2]=HEAP32[$30+4>>2]|0;HEAP32[$28+8>>2]=HEAP32[$30+8>>2]|0;HEAP32[$28+12>>2]=HEAP32[$30+12>>2]|0;HEAP32[$28+16>>2]=HEAP32[$30+16>>2]|0; - ;HEAP32[$30>>2]=HEAP32[$2>>2]|0;HEAP32[$30+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$30+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$30+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$30+16>>2]=HEAP32[$2+16>>2]|0; - $31 = (($$182) + 1)|0; - $32 = (($$180) + -1)|0; - $$079 = $32;$$081 = $31; - } - $33 = (($$08390) - ($$182))|0; - $34 = ($$180|0)<($33|0); - if ($34) { - _stbtt__sort_edges_quicksort($$091,$$180); - $$1 = $28;$$184 = $33; - } else { - _stbtt__sort_edges_quicksort($28,$33); - $$1 = $$091;$$184 = $$180; - } - $35 = ($$184|0)>(12); - if ($35) { - $$08390 = $$184;$$091 = $$1; - } else { - break; - } - } - STACKTOP = sp;return; -} -function _stbtt__sort_edges_ins_sort($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$03251 = 0, $$033 = 0, $$2$ph = 0, $$sroa$0$0$copyload48 = 0, $$sroa$4$0$$sroa_idx37 = 0, $$sroa$4$0$$sroa_idx38 = 0, $$sroa$4$0$copyload = 0.0, $$sroa$5 = 0, $$sroa$5$0$$sroa_idx = 0, $$sroa$5$0$$sroa_idx42 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0; - var $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$sroa$5 = sp; - $2 = ($1|0)>(1); - if (!($2)) { - STACKTOP = sp;return; - } - $$03251 = 1; - while(1) { - $3 = (($0) + (($$03251*20)|0)|0); - $$sroa$0$0$copyload48 = HEAP32[$3>>2]|0; - $$sroa$4$0$$sroa_idx37 = (((($0) + (($$03251*20)|0)|0)) + 4|0); - $$sroa$4$0$copyload = +HEAPF32[$$sroa$4$0$$sroa_idx37>>2]; - $$sroa$5$0$$sroa_idx = (((($0) + (($$03251*20)|0)|0)) + 8|0); - ;HEAP32[$$sroa$5>>2]=HEAP32[$$sroa$5$0$$sroa_idx>>2]|0;HEAP32[$$sroa$5+4>>2]=HEAP32[$$sroa$5$0$$sroa_idx+4>>2]|0;HEAP32[$$sroa$5+8>>2]=HEAP32[$$sroa$5$0$$sroa_idx+8>>2]|0; - $$033 = $$03251; - while(1) { - $4 = (($$033) + -1)|0; - $5 = (((($0) + (($4*20)|0)|0)) + 4|0); - $6 = +HEAPF32[$5>>2]; - $7 = $$sroa$4$0$copyload < $6; - if (!($7)) { - $$2$ph = $$033; - break; - } - $8 = (($0) + (($4*20)|0)|0); - $9 = (($0) + (($$033*20)|0)|0); - ;HEAP32[$9>>2]=HEAP32[$8>>2]|0;HEAP32[$9+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[$9+8>>2]=HEAP32[$8+8>>2]|0;HEAP32[$9+12>>2]=HEAP32[$8+12>>2]|0;HEAP32[$9+16>>2]=HEAP32[$8+16>>2]|0; - $10 = ($$033|0)>(1); - if ($10) { - $$033 = $4; - } else { - $$2$ph = $4; - break; - } - } - $11 = ($$03251|0)==($$2$ph|0); - if (!($11)) { - $$sroa$5$0$$sroa_idx42 = (((($0) + (($$2$ph*20)|0)|0)) + 8|0); - $$sroa$4$0$$sroa_idx38 = (((($0) + (($$2$ph*20)|0)|0)) + 4|0); - $12 = (($0) + (($$2$ph*20)|0)|0); - HEAP32[$12>>2] = $$sroa$0$0$copyload48; - HEAPF32[$$sroa$4$0$$sroa_idx38>>2] = $$sroa$4$0$copyload; - ;HEAP32[$$sroa$5$0$$sroa_idx42>>2]=HEAP32[$$sroa$5>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx42+4>>2]=HEAP32[$$sroa$5+4>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx42+8>>2]=HEAP32[$$sroa$5+8>>2]|0; - } - $13 = (($$03251) + 1)|0; - $exitcond = ($13|0)==($1|0); - if ($exitcond) { - break; - } else { - $$03251 = $13; - } - } - STACKTOP = sp;return; -} -function _stbtt__add_point($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = +$2; - $3 = +$3; - var $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ($0|0)==(0|0); - if ($4) { - return; - } - $5 = (((($0) + ($1<<3)|0)) + 4|0); - $6 = (($0) + ($1<<3)|0); - HEAPF32[$6>>2] = $2; - HEAPF32[$5>>2] = $3; - return; -} -function _stbtt__tesselate_curve($0,$1,$2,$3,$4,$5,$6,$7,$8,$9) { - $0 = $0|0; - $1 = $1|0; - $2 = +$2; - $3 = +$3; - $4 = +$4; - $5 = +$5; - $6 = +$6; - $7 = +$7; - $8 = +$8; - $9 = $9|0; - var $$tr210 = 0.0, $$tr210$phi = 0.0, $$tr311 = 0.0, $$tr311$phi = 0.0, $$tr412 = 0.0, $$tr513 = 0.0, $$tr914 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0; - var $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0.0; - var $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, label = 0, sp = 0; - sp = STACKTOP; - $10 = $4 * 2.0; - $11 = $10 + $2; - $12 = $11 + $6; - $13 = $12 * 0.25; - $14 = $5 * 2.0; - $15 = $14 + $3; - $16 = $15 + $7; - $17 = $16 * 0.25; - $18 = ($9|0)>(16); - if ($18) { - return; - } - $19 = $7 + $3; - $20 = $19 * 0.5; - $21 = $20 - $17; - $22 = $6 + $2; - $23 = $22 * 0.5; - $24 = $23 - $13; - $$tr210 = $2;$$tr311 = $3;$$tr412 = $4;$$tr513 = $5;$$tr914 = $9;$26 = $24;$28 = $21;$36 = $13;$37 = $17; - while(1) { - $25 = $26 * $26; - $27 = $28 * $28; - $29 = $25 + $27; - $30 = $29 > $8; - if (!($30)) { - break; - } - $31 = $$tr210 + $$tr412; - $32 = $31 * 0.5; - $33 = $$tr311 + $$tr513; - $34 = $33 * 0.5; - $35 = (($$tr914) + 1)|0; - _stbtt__tesselate_curve($0,$1,$$tr210,$$tr311,$32,$34,$36,$37,$8,$35); - $38 = $$tr412 + $6; - $39 = $38 * 0.5; - $40 = $$tr513 + $7; - $41 = $40 * 0.5; - $42 = $39 * 2.0; - $43 = $36 + $42; - $44 = $43 + $6; - $45 = $44 * 0.25; - $46 = $41 * 2.0; - $47 = $37 + $46; - $48 = $47 + $7; - $49 = $48 * 0.25; - $50 = $36 + $6; - $51 = $50 * 0.5; - $52 = $51 - $45; - $53 = $37 + $7; - $54 = $53 * 0.5; - $55 = $54 - $49; - $56 = ($$tr914|0)>(15); - if ($56) { - label = 6; - break; - } else { - $$tr311$phi = $37;$$tr210$phi = $36;$$tr412 = $39;$$tr513 = $41;$$tr914 = $35;$26 = $52;$28 = $55;$36 = $45;$37 = $49;$$tr311 = $$tr311$phi;$$tr210 = $$tr210$phi; - } - } - if ((label|0) == 6) { - return; - } - $57 = HEAP32[$1>>2]|0; - _stbtt__add_point($0,$57,$6,$7); - $58 = HEAP32[$1>>2]|0; - $59 = (($58) + 1)|0; - HEAP32[$1>>2] = $59; - return; -} -function _stbtt__tesselate_cubic($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11) { - $0 = $0|0; - $1 = $1|0; - $2 = +$2; - $3 = +$3; - $4 = +$4; - $5 = +$5; - $6 = +$6; - $7 = +$7; - $8 = +$8; - $9 = +$9; - $10 = +$10; - $11 = $11|0; - var $$tr138 = 0.0, $$tr139 = 0.0, $$tr140 = 0.0, $$tr141 = 0.0, $$tr142 = 0.0, $$tr143 = 0.0, $$tr147 = 0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0; - var $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0; - var $45 = 0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0; - var $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $sqrtf = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $$tr138 = $2;$$tr139 = $3;$$tr140 = $4;$$tr141 = $5;$$tr142 = $6;$$tr143 = $7;$$tr147 = $11; - while(1) { - $12 = $$tr140 - $$tr138; - $13 = $$tr141 - $$tr139; - $14 = $$tr142 - $$tr140; - $15 = $$tr143 - $$tr141; - $16 = $8 - $$tr142; - $17 = $9 - $$tr143; - $18 = $8 - $$tr138; - $19 = $9 - $$tr139; - $20 = $12 * $12; - $21 = $13 * $13; - $22 = $20 + $21; - $23 = $22; - $24 = (+Math_sqrt((+$23))); - $25 = $14 * $14; - $26 = $15 * $15; - $27 = $25 + $26; - $28 = $27; - $29 = (+Math_sqrt((+$28))); - $30 = $24 + $29; - $31 = $16 * $16; - $32 = $17 * $17; - $33 = $31 + $32; - $34 = $33; - $35 = (+Math_sqrt((+$34))); - $36 = $30 + $35; - $37 = $36; - $38 = $18 * $18; - $39 = $19 * $19; - $40 = $38 + $39; - $sqrtf = (+Math_sqrt((+$40))); - $41 = ($$tr147|0)>(16); - if ($41) { - label = 6; - break; - } - $42 = $37 * $37; - $43 = $sqrtf * $sqrtf; - $44 = $42 - $43; - $45 = $44 > $10; - if (!($45)) { - break; - } - $46 = $$tr138 + $$tr140; - $47 = $46 * 0.5; - $48 = $$tr139 + $$tr141; - $49 = $48 * 0.5; - $50 = $$tr140 + $$tr142; - $51 = $50 * 0.5; - $52 = $$tr141 + $$tr143; - $53 = $52 * 0.5; - $54 = $$tr142 + $8; - $55 = $54 * 0.5; - $56 = $$tr143 + $9; - $57 = $56 * 0.5; - $58 = $47 + $51; - $59 = $58 * 0.5; - $60 = $49 + $53; - $61 = $60 * 0.5; - $62 = $51 + $55; - $63 = $62 * 0.5; - $64 = $53 + $57; - $65 = $64 * 0.5; - $66 = $59 + $63; - $67 = $66 * 0.5; - $68 = $61 + $65; - $69 = $68 * 0.5; - $70 = (($$tr147) + 1)|0; - _stbtt__tesselate_cubic($0,$1,$$tr138,$$tr139,$47,$49,$59,$61,$67,$69,$10,$70); - $$tr138 = $67;$$tr139 = $69;$$tr140 = $63;$$tr141 = $65;$$tr142 = $55;$$tr143 = $57;$$tr147 = $70; - } - if ((label|0) == 6) { - return; - } - $71 = HEAP32[$1>>2]|0; - _stbtt__add_point($0,$71,$8,$9); - $72 = HEAP32[$1>>2]|0; - $73 = (($72) + 1)|0; - HEAP32[$1>>2] = $73; - return; -} -function _stbtt_GetGlyphBox($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $6 = ((($0)) + 56|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)==(0); - if (!($8)) { - _stbtt__GetGlyphInfoT2($0,$1,$2,$3,$4,$5); - $$1 = 1; - return ($$1|0); - } - $9 = (_stbtt__GetGlyfOffset($0,$1)|0); - $10 = ($9|0)<(0); - if ($10) { - $$1 = 0; - return ($$1|0); - } - $11 = ($2|0)==(0|0); - if (!($11)) { - $12 = ((($0)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $14 = (($13) + ($9)|0); - $15 = ((($14)) + 2|0); - $16 = (_ttSHORT($15)|0); - $17 = $16 << 16 >> 16; - HEAP32[$2>>2] = $17; - } - $18 = ($3|0)==(0|0); - if (!($18)) { - $19 = ((($0)) + 4|0); - $20 = HEAP32[$19>>2]|0; - $21 = (($20) + ($9)|0); - $22 = ((($21)) + 4|0); - $23 = (_ttSHORT($22)|0); - $24 = $23 << 16 >> 16; - HEAP32[$3>>2] = $24; - } - $25 = ($4|0)==(0|0); - if (!($25)) { - $26 = ((($0)) + 4|0); - $27 = HEAP32[$26>>2]|0; - $28 = (($27) + ($9)|0); - $29 = ((($28)) + 6|0); - $30 = (_ttSHORT($29)|0); - $31 = $30 << 16 >> 16; - HEAP32[$4>>2] = $31; - } - $32 = ($5|0)==(0|0); - if ($32) { - $$1 = 1; - return ($$1|0); - } - $33 = ((($0)) + 4|0); - $34 = HEAP32[$33>>2]|0; - $35 = (($34) + ($9)|0); - $36 = ((($35)) + 8|0); - $37 = (_ttSHORT($36)|0); - $38 = $37 << 16 >> 16; - HEAP32[$5>>2] = $38; - $$1 = 1; - return ($$1|0); -} -function _stbtt__GetGlyphInfoT2($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0; - var stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $6 = sp; - $7 = ((($6)) + 4|0); - dest=$7; stop=dest+44|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - HEAP32[$6>>2] = 1; - $8 = (_stbtt__run_charstring($0,$1,$6)|0); - $9 = ($2|0)==(0|0); - $10 = ($8|0)!=(0); - if ($9) { - STACKTOP = sp;return; - } - $11 = ((($6)) + 24|0); - $12 = HEAP32[$11>>2]|0; - $13 = $10 ? $12 : 0; - HEAP32[$2>>2] = $13; - $14 = ((($6)) + 32|0); - $15 = HEAP32[$14>>2]|0; - $16 = $10 ? $15 : 0; - HEAP32[$3>>2] = $16; - $17 = ((($6)) + 28|0); - $18 = HEAP32[$17>>2]|0; - $19 = $10 ? $18 : 0; - HEAP32[$4>>2] = $19; - $20 = ((($6)) + 36|0); - $21 = HEAP32[$20>>2]|0; - $22 = $10 ? $21 : 0; - HEAP32[$5>>2] = $22; - STACKTOP = sp;return; -} -function _stbtt__GetGlyfOffset($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$023 = 0, $$024 = 0, $$pn = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 56|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)==(0); - if (!($4)) { - ___assert_fail((9586|0),(9163|0),1527,(9602|0)); - // unreachable; - } - $5 = ((($0)) + 12|0); - $6 = HEAP32[$5>>2]|0; - $7 = ($6|0)>($1|0); - if (!($7)) { - $$024 = -1; - return ($$024|0); - } - $8 = ((($0)) + 44|0); - $9 = HEAP32[$8>>2]|0; - $10 = ($9|0)>(1); - if ($10) { - $$024 = -1; - return ($$024|0); - } - $11 = ($9|0)==(0); - $12 = ((($0)) + 24|0); - $13 = HEAP32[$12>>2]|0; - $14 = ((($0)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = ((($0)) + 16|0); - $17 = HEAP32[$16>>2]|0; - $18 = (($15) + ($17)|0); - if ($11) { - $19 = $1 << 1; - $20 = (($18) + ($19)|0); - $21 = (_ttUSHORT($20)|0); - $22 = $21&65535; - $23 = $22 << 1; - $24 = ((($20)) + 2|0); - $25 = (_ttUSHORT($24)|0); - $26 = $25&65535; - $27 = $26 << 1; - $$pn = $23;$$sink = $27; - } else { - $28 = $1 << 2; - $29 = (($18) + ($28)|0); - $30 = (_ttULONG($29)|0); - $31 = ((($29)) + 4|0); - $32 = (_ttULONG($31)|0); - $$pn = $30;$$sink = $32; - } - $33 = (($$sink) + ($13))|0; - $$023 = (($$pn) + ($13))|0; - $34 = ($$023|0)==($33|0); - $35 = $34 ? -1 : $$023; - $$024 = $35; - return ($$024|0); -} -function _ttSHORT($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP8[$0>>0]|0; - $2 = $1&255; - $3 = $2 << 8; - $4 = ((($0)) + 1|0); - $5 = HEAP8[$4>>0]|0; - $6 = $5&255; - $7 = $3 | $6; - $8 = $7&65535; - return ($8|0); -} -function _ttUSHORT($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP8[$0>>0]|0; - $2 = $1&255; - $3 = $2 << 8; - $4 = ((($0)) + 1|0); - $5 = HEAP8[$4>>0]|0; - $6 = $5&255; - $7 = $3 | $6; - $8 = $7&65535; - return ($8|0); -} -function _ttULONG($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP8[$0>>0]|0; - $2 = $1&255; - $3 = $2 << 24; - $4 = ((($0)) + 1|0); - $5 = HEAP8[$4>>0]|0; - $6 = $5&255; - $7 = $6 << 16; - $8 = $7 | $3; - $9 = ((($0)) + 2|0); - $10 = HEAP8[$9>>0]|0; - $11 = $10&255; - $12 = $11 << 8; - $13 = $8 | $12; - $14 = ((($0)) + 3|0); - $15 = HEAP8[$14>>0]|0; - $16 = $15&255; - $17 = $13 | $16; - return ($17|0); -} -function _stbtt__run_charstring($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $$0274$be = 0, $$0274335 = 0, $$0276$be = 0, $$0276334 = 0, $$0279 = 0.0, $$0280 = 0.0, $$0282318 = 0.0, $$0285$be = 0, $$0285333 = 0, $$0288$be = 0, $$0288332 = 0, $$0290329 = 0, $$0294$be = 0, $$0294331 = 0, $$1277 = 0, $$1283 = 0.0, $$1286 = 0, $$1291 = 0, $$2292 = 0; - var $$3 = 0, $$3293 = 0, $$363 = 0.0, $$4 = 0, $$5327 = 0, $$6$lcssa = 0, $$6322 = 0, $$7$lcssa = 0, $$7319 = 0, $$8317 = 0, $$byval_copy1 = 0, $$lcssa = 0, $$lcssa316 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0, $104 = 0, $105 = 0.0; - var $106 = 0, $107 = 0.0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0.0, $113 = 0.0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0, $121 = 0.0, $122 = 0, $123 = 0; - var $124 = 0.0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0.0, $13 = 0, $130 = 0, $131 = 0.0, $132 = 0.0, $133 = 0, $134 = 0, $135 = 0, $136 = 0.0, $137 = 0, $138 = 0, $139 = 0.0, $14 = 0, $140 = 0, $141 = 0; - var $142 = 0.0, $143 = 0, $144 = 0, $145 = 0.0, $146 = 0, $147 = 0, $148 = 0.0, $149 = 0, $15 = 0, $150 = 0, $151 = 0.0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0.0, $16 = 0; - var $160 = 0, $161 = 0, $162 = 0.0, $163 = 0, $164 = 0, $165 = 0.0, $166 = 0, $167 = 0, $168 = 0.0, $169 = 0, $17 = 0, $170 = 0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0.0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; - var $179 = 0, $18 = 0, $180 = 0, $181 = 0.0, $182 = 0, $183 = 0.0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0.0, $189 = 0, $19 = 0, $190 = 0, $191 = 0.0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0; - var $197 = 0, $198 = 0.0, $199 = 0, $20 = 0, $200 = 0.0, $201 = 0, $202 = 0, $203 = 0.0, $204 = 0, $205 = 0, $206 = 0.0, $207 = 0, $208 = 0, $209 = 0.0, $21 = 0, $210 = 0, $211 = 0.0, $212 = 0, $213 = 0, $214 = 0; - var $215 = 0, $216 = 0, $217 = 0.0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0.0, $223 = 0, $224 = 0.0, $225 = 0, $226 = 0.0, $227 = 0, $228 = 0, $229 = 0.0, $23 = 0, $230 = 0, $231 = 0, $232 = 0; - var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0.0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0; - var $251 = 0, $252 = 0.0, $253 = 0.0, $254 = 0.0, $255 = 0.0, $256 = 0.0, $257 = 0.0, $258 = 0.0, $259 = 0.0, $26 = 0, $260 = 0, $261 = 0.0, $262 = 0.0, $263 = 0.0, $264 = 0.0, $265 = 0.0, $266 = 0.0, $267 = 0.0, $268 = 0.0, $269 = 0.0; - var $27 = 0, $270 = 0.0, $271 = 0.0, $272 = 0.0, $273 = 0, $274 = 0.0, $275 = 0.0, $276 = 0.0, $277 = 0.0, $278 = 0.0, $279 = 0.0, $28 = 0, $280 = 0.0, $281 = 0.0, $282 = 0.0, $283 = 0.0, $284 = 0.0, $285 = 0.0, $286 = 0, $287 = 0.0; - var $288 = 0.0, $289 = 0.0, $29 = 0, $290 = 0.0, $291 = 0.0, $292 = 0.0, $293 = 0.0, $294 = 0.0, $295 = 0.0, $296 = 0.0, $297 = 0.0, $298 = 0.0, $299 = 0.0, $3 = 0, $30 = 0, $300 = 0.0, $301 = 0.0, $302 = 0.0, $303 = 0.0, $304 = 0.0; - var $305 = 0.0, $306 = 0, $307 = 0.0, $308 = 0.0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0.0, $316 = 0.0, $317 = 0, $318 = 0, $319 = 0.0, $32 = 0, $320 = 0, $321 = 0, $322 = 0; - var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0; - var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0, $65 = 0, $66 = 0.0, $67 = 0, $68 = 0, $69 = 0; - var $7 = 0, $70 = 0.0, $71 = 0, $72 = 0, $73 = 0, $74 = 0.0, $75 = 0, $76 = 0, $77 = 0.0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0; - var $88 = 0.0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0.0, $fabsf = 0.0, $fabsf296 = 0.0, $not$ = 0, $or$cond3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 368|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(368|0); - $$byval_copy1 = sp + 352|0; - $3 = sp + 160|0; - $4 = sp + 40|0; - $5 = sp + 24|0; - $6 = sp; - $7 = sp + 12|0; - $8 = ((($0)) + 84|0); - ;HEAP32[$5>>2]=HEAP32[$8>>2]|0;HEAP32[$5+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[$5+8>>2]=HEAP32[$8+8>>2]|0; - $9 = ((($0)) + 60|0); - ;HEAP32[$$byval_copy1>>2]=HEAP32[$9>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$9+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$9+8>>2]|0; - _stbtt__cff_index_get($6,$$byval_copy1,$1); - $10 = ((($6)) + 4|0); - $11 = HEAP32[$10>>2]|0; - $12 = ((($6)) + 8|0); - $13 = HEAP32[$12>>2]|0; - $14 = ($11|0)<($13|0); - if (!($14)) { - $$3 = 0; - STACKTOP = sp;return ($$3|0); - } - $15 = ((($0)) + 116|0); - $16 = ((($0)) + 72|0); - $17 = ((($3)) + 4|0); - $18 = ((($3)) + 8|0); - $19 = ((($3)) + 12|0); - $20 = ((($3)) + 16|0); - $21 = ((($3)) + 20|0); - $22 = ((($3)) + 24|0); - $23 = ((($3)) + 4|0); - $24 = ((($3)) + 8|0); - $25 = ((($3)) + 12|0); - $26 = ((($3)) + 16|0); - $27 = ((($3)) + 20|0); - $28 = ((($3)) + 24|0); - $29 = ((($3)) + 28|0); - $30 = ((($3)) + 32|0); - $31 = ((($3)) + 36|0); - $32 = ((($3)) + 40|0); - $33 = ((($3)) + 44|0); - $34 = ((($3)) + 4|0); - $35 = ((($3)) + 8|0); - $36 = ((($3)) + 12|0); - $37 = ((($3)) + 16|0); - $38 = ((($3)) + 20|0); - $39 = ((($3)) + 24|0); - $40 = ((($3)) + 28|0); - $41 = ((($3)) + 32|0); - $42 = ((($3)) + 4|0); - $43 = ((($3)) + 8|0); - $44 = ((($3)) + 12|0); - $45 = ((($3)) + 16|0); - $46 = ((($3)) + 20|0); - $47 = ((($3)) + 24|0); - $48 = ((($3)) + 28|0); - $49 = ((($3)) + 32|0); - $50 = ((($3)) + 36|0); - $51 = ((($3)) + 40|0); - $$0274335 = 1;$$0276334 = 0;$$0285333 = 0;$$0288332 = 0;$$0294331 = 0; - L4: while(1) { - $52 = (_stbtt__buf_get8($6)|0); - L6: do { - switch ($52<<24>>24) { - case 14: { - label = 63; - break L4; - break; - } - case 20: case 19: { - $53 = ($$0274335|0)==(0); - if ($53) { - $$1277 = $$0276334; - } else { - $54 = (($$0294331|0) / 2)&-1; - $55 = (($$0276334) + ($54))|0; - $$1277 = $55; - } - $56 = (($$1277) + 7)|0; - $57 = (($56|0) / 8)&-1; - _stbtt__buf_skip($6,$57); - $$0274$be = 0;$$0276$be = $$1277;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - break; - } - case 23: case 18: case 3: case 1: { - $58 = (($$0294331|0) / 2)&-1; - $59 = (($$0276334) + ($58))|0; - $$0274$be = $$0274335;$$0276$be = $59;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - break; - } - case 21: { - $60 = ($$0294331|0)<(2); - if ($60) { - $$3 = 0; - label = 80; - break L4; - } - $61 = (($$0294331) + -2)|0; - $62 = (($3) + ($61<<2)|0); - $63 = +HEAPF32[$62>>2]; - $64 = (($$0294331) + -1)|0; - $65 = (($3) + ($64<<2)|0); - $66 = +HEAPF32[$65>>2]; - _stbtt__csctx_rmove_to($2,$63,$66); - $$0274$be = 0;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - break; - } - case 4: { - $67 = ($$0294331|0)<(1); - if ($67) { - $$3 = 0; - label = 80; - break L4; - } - $68 = (($$0294331) + -1)|0; - $69 = (($3) + ($68<<2)|0); - $70 = +HEAPF32[$69>>2]; - _stbtt__csctx_rmove_to($2,0.0,$70); - $$0274$be = 0;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - break; - } - case 22: { - $71 = ($$0294331|0)<(1); - if ($71) { - $$3 = 0; - label = 80; - break L4; - } - $72 = (($$0294331) + -1)|0; - $73 = (($3) + ($72<<2)|0); - $74 = +HEAPF32[$73>>2]; - _stbtt__csctx_rmove_to($2,$74,0.0); - $$0274$be = 0;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - break; - } - case 5: { - $75 = ($$0294331|0)<(2); - if ($75) { - $$3 = 0; - label = 80; - break L4; - } else { - $$0290329 = 0;$79 = 1; - } - while(1) { - $76 = (($3) + ($$0290329<<2)|0); - $77 = +HEAPF32[$76>>2]; - $78 = (($3) + ($79<<2)|0); - $80 = +HEAPF32[$78>>2]; - _stbtt__csctx_rline_to($2,$77,$80); - $81 = (($$0290329) + 2)|0; - $82 = $81 | 1; - $83 = ($82|0)<($$0294331|0); - if ($83) { - $$0290329 = $81;$79 = $82; - } else { - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - break; - } - } - break; - } - case 7: { - $84 = ($$0294331|0)<(1); - if ($84) { - $$3 = 0; - label = 80; - break L4; - } else { - $$2292 = 0; - label = 20; - } - break; - } - case 6: { - $85 = ($$0294331|0)<(1); - if ($85) { - $$3 = 0; - label = 80; - break L4; - } else { - $$1291 = 0; - label = 18; - } - break; - } - case 31: { - $94 = ($$0294331|0)<(4); - if ($94) { - $$3 = 0; - label = 80; - break L4; - } else { - $$4 = 0; - label = 28; - } - break; - } - case 30: { - $95 = ($$0294331|0)<(4); - if ($95) { - $$3 = 0; - label = 80; - break L4; - } else { - $$3293 = 0; - label = 24; - } - break; - } - case 8: { - $134 = ($$0294331|0)<(6); - if ($134) { - $$3 = 0; - label = 80; - break L4; - } else { - $$5327 = 0;$150 = 5; - } - while(1) { - $135 = (($3) + ($$5327<<2)|0); - $136 = +HEAPF32[$135>>2]; - $137 = $$5327 | 1; - $138 = (($3) + ($137<<2)|0); - $139 = +HEAPF32[$138>>2]; - $140 = (($$5327) + 2)|0; - $141 = (($3) + ($140<<2)|0); - $142 = +HEAPF32[$141>>2]; - $143 = (($$5327) + 3)|0; - $144 = (($3) + ($143<<2)|0); - $145 = +HEAPF32[$144>>2]; - $146 = (($$5327) + 4)|0; - $147 = (($3) + ($146<<2)|0); - $148 = +HEAPF32[$147>>2]; - $149 = (($3) + ($150<<2)|0); - $151 = +HEAPF32[$149>>2]; - _stbtt__csctx_rccurve_to($2,$136,$139,$142,$145,$148,$151); - $152 = (($$5327) + 6)|0; - $153 = (($$5327) + 11)|0; - $154 = ($153|0)<($$0294331|0); - if ($154) { - $$5327 = $152;$150 = $153; - } else { - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - break; - } - } - break; - } - case 24: { - $155 = ($$0294331|0)<(8); - if ($155) { - $$3 = 0; - label = 80; - break L4; - } - $156 = (($$0294331) + -2)|0; - $157 = ($156|0)>(5); - if ($157) { - $$6322 = 0;$161 = 1;$173 = 5; - while(1) { - $158 = (($3) + ($$6322<<2)|0); - $159 = +HEAPF32[$158>>2]; - $160 = (($3) + ($161<<2)|0); - $162 = +HEAPF32[$160>>2]; - $163 = (($$6322) + 2)|0; - $164 = (($3) + ($163<<2)|0); - $165 = +HEAPF32[$164>>2]; - $166 = (($$6322) + 3)|0; - $167 = (($3) + ($166<<2)|0); - $168 = +HEAPF32[$167>>2]; - $169 = (($$6322) + 4)|0; - $170 = (($3) + ($169<<2)|0); - $171 = +HEAPF32[$170>>2]; - $172 = (($3) + ($173<<2)|0); - $174 = +HEAPF32[$172>>2]; - _stbtt__csctx_rccurve_to($2,$159,$162,$165,$168,$171,$174); - $175 = (($$6322) + 6)|0; - $176 = (($$6322) + 11)|0; - $177 = ($176|0)<($156|0); - $178 = $175 | 1; - if ($177) { - $$6322 = $175;$161 = $178;$173 = $176; - } else { - $$6$lcssa = $175;$$lcssa316 = $178; - break; - } - } - } else { - $$6$lcssa = 0;$$lcssa316 = 1; - } - $179 = ($$lcssa316|0)<($$0294331|0); - if (!($179)) { - $$3 = 0; - label = 80; - break L4; - } - $180 = (($3) + ($$6$lcssa<<2)|0); - $181 = +HEAPF32[$180>>2]; - $182 = (($3) + ($$lcssa316<<2)|0); - $183 = +HEAPF32[$182>>2]; - _stbtt__csctx_rline_to($2,$181,$183); - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - break; - } - case 25: { - $184 = ($$0294331|0)<(8); - if ($184) { - $$3 = 0; - label = 80; - break L4; - } - $185 = (($$0294331) + -6)|0; - $186 = ($185|0)>(1); - if ($186) { - $$7319 = 0;$190 = 1; - while(1) { - $187 = (($3) + ($$7319<<2)|0); - $188 = +HEAPF32[$187>>2]; - $189 = (($3) + ($190<<2)|0); - $191 = +HEAPF32[$189>>2]; - _stbtt__csctx_rline_to($2,$188,$191); - $192 = (($$7319) + 2)|0; - $193 = $192 | 1; - $194 = ($193|0)<($185|0); - if ($194) { - $$7319 = $192;$190 = $193; - } else { - $$7$lcssa = $192;$$lcssa = $193; - break; - } - } - } else { - $$7$lcssa = 0;$$lcssa = 1; - } - $195 = (($$7$lcssa) + 5)|0; - $196 = ($195|0)<($$0294331|0); - if (!($196)) { - $$3 = 0; - label = 80; - break L4; - } - $197 = (($3) + ($$7$lcssa<<2)|0); - $198 = +HEAPF32[$197>>2]; - $199 = (($3) + ($$lcssa<<2)|0); - $200 = +HEAPF32[$199>>2]; - $201 = (($$7$lcssa) + 2)|0; - $202 = (($3) + ($201<<2)|0); - $203 = +HEAPF32[$202>>2]; - $204 = (($$7$lcssa) + 3)|0; - $205 = (($3) + ($204<<2)|0); - $206 = +HEAPF32[$205>>2]; - $207 = (($$7$lcssa) + 4)|0; - $208 = (($3) + ($207<<2)|0); - $209 = +HEAPF32[$208>>2]; - $210 = (($3) + ($195<<2)|0); - $211 = +HEAPF32[$210>>2]; - _stbtt__csctx_rccurve_to($2,$198,$200,$203,$206,$209,$211); - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - break; - } - case 27: case 26: { - $212 = ($$0294331|0)<(4); - if ($212) { - $$3 = 0; - label = 80; - break L4; - } - $213 = $$0294331 & 1; - $214 = ($213|0)==(0); - $215 = (($213) + 3)|0; - $216 = ($215|0)<($$0294331|0); - if ($216) { - $not$ = $214 ^ 1; - $$ = $not$&1; - $217 = +HEAPF32[$3>>2]; - $$363 = $214 ? 0.0 : $217; - $218 = ($52<<24>>24)==(27); - $$0282318 = $$363;$$8317 = $$;$228 = $215; - while(1) { - $219 = (($$8317) + 2)|0; - $220 = (($$8317) + 1)|0; - $221 = (($3) + ($219<<2)|0); - $222 = +HEAPF32[$221>>2]; - $223 = (($3) + ($$8317<<2)|0); - $224 = +HEAPF32[$223>>2]; - $225 = (($3) + ($220<<2)|0); - $226 = +HEAPF32[$225>>2]; - $227 = (($3) + ($228<<2)|0); - $229 = +HEAPF32[$227>>2]; - if ($218) { - _stbtt__csctx_rccurve_to($2,$224,$$0282318,$226,$222,$229,0.0); - } else { - _stbtt__csctx_rccurve_to($2,$$0282318,$224,$226,$222,0.0,$229); - } - $230 = (($$8317) + 4)|0; - $231 = (($$8317) + 7)|0; - $232 = ($231|0)<($$0294331|0); - if ($232) { - $$0282318 = 0.0;$$8317 = $230;$228 = $231; - } else { - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - break; - } - } - } else { - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - } - break; - } - case 10: { - $233 = ($$0285333|0)==(0); - if ($233) { - $234 = HEAP32[$15>>2]|0; - $235 = ($234|0)==(0); - if ($235) { - $$1286 = 1; - label = 54; - } else { - _stbtt__cid_get_glyph_subrs($5,$0,$1); - $$1286 = 1; - label = 54; - } - } else { - $$1286 = $$0285333; - label = 54; - } - break; - } - case 29: { - $$1286 = $$0285333; - label = 54; - break; - } - case 11: { - $247 = ($$0288332|0)<(1); - if ($247) { - $$3 = 0; - label = 80; - break L4; - } - $248 = (($$0288332) + -1)|0; - $249 = (($4) + (($248*12)|0)|0); - ;HEAP32[$6>>2]=HEAP32[$249>>2]|0;HEAP32[$6+4>>2]=HEAP32[$249+4>>2]|0;HEAP32[$6+8>>2]=HEAP32[$249+8>>2]|0; - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $248;$$0294$be = $$0294331; - label = 73; - break; - } - case 12: { - $250 = (_stbtt__buf_get8($6)|0); - switch ($250<<24>>24) { - case 34: { - $251 = ($$0294331|0)<(7); - if ($251) { - $$3 = 0; - label = 80; - break L4; - } - $252 = +HEAPF32[$3>>2]; - $253 = +HEAPF32[$17>>2]; - $254 = +HEAPF32[$18>>2]; - $255 = +HEAPF32[$19>>2]; - $256 = +HEAPF32[$20>>2]; - $257 = +HEAPF32[$21>>2]; - $258 = +HEAPF32[$22>>2]; - _stbtt__csctx_rccurve_to($2,$252,0.0,$253,$254,$255,0.0); - $259 = -$254; - _stbtt__csctx_rccurve_to($2,$256,0.0,$257,$259,$258,0.0); - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - break L6; - break; - } - case 35: { - $260 = ($$0294331|0)<(13); - if ($260) { - $$3 = 0; - label = 80; - break L4; - } - $261 = +HEAPF32[$3>>2]; - $262 = +HEAPF32[$23>>2]; - $263 = +HEAPF32[$24>>2]; - $264 = +HEAPF32[$25>>2]; - $265 = +HEAPF32[$26>>2]; - $266 = +HEAPF32[$27>>2]; - $267 = +HEAPF32[$28>>2]; - $268 = +HEAPF32[$29>>2]; - $269 = +HEAPF32[$30>>2]; - $270 = +HEAPF32[$31>>2]; - $271 = +HEAPF32[$32>>2]; - $272 = +HEAPF32[$33>>2]; - _stbtt__csctx_rccurve_to($2,$261,$262,$263,$264,$265,$266); - _stbtt__csctx_rccurve_to($2,$267,$268,$269,$270,$271,$272); - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - break L6; - break; - } - case 36: { - $273 = ($$0294331|0)<(9); - if ($273) { - $$3 = 0; - label = 80; - break L4; - } - $274 = +HEAPF32[$3>>2]; - $275 = +HEAPF32[$34>>2]; - $276 = +HEAPF32[$35>>2]; - $277 = +HEAPF32[$36>>2]; - $278 = +HEAPF32[$37>>2]; - $279 = +HEAPF32[$38>>2]; - $280 = +HEAPF32[$39>>2]; - $281 = +HEAPF32[$40>>2]; - $282 = +HEAPF32[$41>>2]; - _stbtt__csctx_rccurve_to($2,$274,$275,$276,$277,$278,0.0); - $283 = $275 + $277; - $284 = $283 + $281; - $285 = -$284; - _stbtt__csctx_rccurve_to($2,$279,0.0,$280,$281,$282,$285); - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - break L6; - break; - } - case 37: { - $286 = ($$0294331|0)<(11); - if ($286) { - $$3 = 0; - label = 80; - break L4; - } - $287 = +HEAPF32[$3>>2]; - $288 = +HEAPF32[$42>>2]; - $289 = +HEAPF32[$43>>2]; - $290 = +HEAPF32[$44>>2]; - $291 = +HEAPF32[$45>>2]; - $292 = +HEAPF32[$46>>2]; - $293 = +HEAPF32[$47>>2]; - $294 = +HEAPF32[$48>>2]; - $295 = +HEAPF32[$49>>2]; - $296 = +HEAPF32[$50>>2]; - $297 = +HEAPF32[$51>>2]; - $298 = $287 + $289; - $299 = $298 + $291; - $300 = $299 + $293; - $301 = $300 + $295; - $302 = $288 + $290; - $303 = $302 + $292; - $304 = $303 + $294; - $305 = $304 + $296; - $fabsf = (+Math_abs((+$301))); - $fabsf296 = (+Math_abs((+$305))); - $306 = $fabsf > $fabsf296; - $307 = -$305; - $308 = -$301; - $$0280 = $306 ? $297 : $308; - $$0279 = $306 ? $307 : $297; - _stbtt__csctx_rccurve_to($2,$287,$288,$289,$290,$291,$292); - _stbtt__csctx_rccurve_to($2,$293,$294,$295,$296,$$0280,$$0279); - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - break L6; - break; - } - default: { - $$3 = 0; - label = 80; - break L4; - } - } - break; - } - case -1: { - label = 76; - break; - } - case 28: { - label = 77; - break; - } - default: { - $312 = ($52&255)<(32); - $313 = ($52<<24>>24)==(-1); - $or$cond3 = $312 | $313; - if ($or$cond3) { - $$3 = 0; - label = 80; - break L4; - } - if ($313) { - label = 76; - } else { - label = 77; - } - } - } - } while(0); - if ((label|0) == 54) { - label = 0; - $236 = ($$0294331|0)<(1); - if ($236) { - $$3 = 0; - label = 80; - break; - } - $237 = (($$0294331) + -1)|0; - $238 = (($3) + ($237<<2)|0); - $239 = +HEAPF32[$238>>2]; - $240 = (~~(($239))); - $241 = ($$0288332|0)>(9); - if ($241) { - $$3 = 0; - label = 80; - break; - } - $242 = (($$0288332) + 1)|0; - $243 = (($4) + (($$0288332*12)|0)|0); - ;HEAP32[$243>>2]=HEAP32[$6>>2]|0;HEAP32[$243+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$243+8>>2]=HEAP32[$6+8>>2]|0; - $244 = ($52<<24>>24)==(10); - if ($244) { - ;HEAP32[$7>>2]=HEAP32[$5>>2]|0;HEAP32[$7+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$7+8>>2]=HEAP32[$5+8>>2]|0; - } else { - ;HEAP32[$7>>2]=HEAP32[$16>>2]|0;HEAP32[$7+4>>2]=HEAP32[$16+4>>2]|0;HEAP32[$7+8>>2]=HEAP32[$16+8>>2]|0; - } - ;HEAP32[$$byval_copy1>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$7+8>>2]|0; - _stbtt__get_subr($6,$$byval_copy1,$240); - $245 = HEAP32[$12>>2]|0; - $246 = ($245|0)==(0); - if ($246) { - $$3 = 0; - label = 80; - break; - } - HEAP32[$10>>2] = 0; - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$1286;$$0288$be = $242;$$0294$be = $237; - label = 73; - } - else if ((label|0) == 76) { - label = 0; - $314 = (_stbtt__buf_get($6,4)|0); - $315 = (+($314>>>0)); - $316 = $315 * 1.52587890625E-5; - $$1283 = $316; - label = 78; - } - else if ((label|0) == 77) { - label = 0; - _stbtt__buf_skip($6,-1); - $317 = (_stbtt__cff_int($6)|0); - $318 = $317&65535; - $319 = (+($318<<16>>16)); - $$1283 = $319; - label = 78; - } - if ((label|0) == 78) { - label = 0; - $320 = ($$0294331|0)>(47); - if ($320) { - $$3 = 0; - label = 80; - break; - } - $321 = (($$0294331) + 1)|0; - $322 = (($3) + ($$0294331<<2)|0); - HEAPF32[$322>>2] = $$1283; - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = $321; - label = 73; - } - while(1) { - if ((label|0) == 18) { - label = 0; - $86 = ($$1291|0)<($$0294331|0); - if (!($86)) { - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - continue; - } - $87 = (($3) + ($$1291<<2)|0); - $88 = +HEAPF32[$87>>2]; - _stbtt__csctx_rline_to($2,$88,0.0); - $89 = (($$1291) + 1)|0; - $$2292 = $89; - label = 20; - continue; - } - else if ((label|0) == 20) { - label = 0; - $90 = ($$2292|0)<($$0294331|0); - if (!($90)) { - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - continue; - } - $91 = (($3) + ($$2292<<2)|0); - $92 = +HEAPF32[$91>>2]; - _stbtt__csctx_rline_to($2,0.0,$92); - $93 = (($$2292) + 1)|0; - $$1291 = $93; - label = 18; - continue; - } - else if ((label|0) == 24) { - label = 0; - $96 = (($$3293) + 3)|0; - $97 = ($96|0)<($$0294331|0); - if (!($97)) { - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - continue; - } - $98 = (($3) + ($$3293<<2)|0); - $99 = +HEAPF32[$98>>2]; - $100 = (($$3293) + 1)|0; - $101 = (($3) + ($100<<2)|0); - $102 = +HEAPF32[$101>>2]; - $103 = (($$3293) + 2)|0; - $104 = (($3) + ($103<<2)|0); - $105 = +HEAPF32[$104>>2]; - $106 = (($3) + ($96<<2)|0); - $107 = +HEAPF32[$106>>2]; - $108 = (($$0294331) - ($$3293))|0; - $109 = ($108|0)==(5); - if ($109) { - $110 = (($$3293) + 4)|0; - $111 = (($3) + ($110<<2)|0); - $112 = +HEAPF32[$111>>2]; - $113 = $112; - } else { - $113 = 0.0; - } - _stbtt__csctx_rccurve_to($2,0.0,$99,$102,$105,$107,$113); - $114 = (($$3293) + 4)|0; - $$4 = $114; - label = 28; - continue; - } - else if ((label|0) == 28) { - label = 0; - $115 = (($$4) + 3)|0; - $116 = ($115|0)<($$0294331|0); - if (!($116)) { - $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0; - label = 73; - continue; - } - $117 = (($3) + ($$4<<2)|0); - $118 = +HEAPF32[$117>>2]; - $119 = (($$4) + 1)|0; - $120 = (($3) + ($119<<2)|0); - $121 = +HEAPF32[$120>>2]; - $122 = (($$4) + 2)|0; - $123 = (($3) + ($122<<2)|0); - $124 = +HEAPF32[$123>>2]; - $125 = (($$0294331) - ($$4))|0; - $126 = ($125|0)==(5); - if ($126) { - $127 = (($$4) + 4)|0; - $128 = (($3) + ($127<<2)|0); - $129 = +HEAPF32[$128>>2]; - $132 = $129; - } else { - $132 = 0.0; - } - $130 = (($3) + ($115<<2)|0); - $131 = +HEAPF32[$130>>2]; - _stbtt__csctx_rccurve_to($2,$118,0.0,$121,$124,$132,$131); - $133 = (($$4) + 4)|0; - $$3293 = $133; - label = 24; - continue; - } - else if ((label|0) == 73) { - label = 0; - $309 = HEAP32[$10>>2]|0; - $310 = HEAP32[$12>>2]|0; - $311 = ($309|0)<($310|0); - if ($311) { - $$0274335 = $$0274$be;$$0276334 = $$0276$be;$$0285333 = $$0285$be;$$0288332 = $$0288$be;$$0294331 = $$0294$be; - continue L4; - } else { - $$3 = 0; - label = 80; - break L4; - } - } - } - } - if ((label|0) == 63) { - _stbtt__csctx_close_shape($2); - $$3 = 1; - STACKTOP = sp;return ($$3|0); - } - else if ((label|0) == 80) { - STACKTOP = sp;return ($$3|0); - } - return (0)|0; -} -function _stbtt__cff_index_get($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$off = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - _stbtt__buf_seek($1,0); - $3 = (_stbtt__buf_get($1,2)|0); - $4 = (_stbtt__buf_get8($1)|0); - $5 = $4&255; - $6 = ($2|0)>(-1); - $7 = ($3|0)>($2|0); - $or$cond = $6 & $7; - if (!($or$cond)) { - ___assert_fail((9828|0),(9163|0),1205,(9848|0)); - // unreachable; - } - $$off = (($4) + -1)<<24>>24; - $8 = ($$off&255)<(4); - if ($8) { - $9 = Math_imul($5, $2)|0; - _stbtt__buf_skip($1,$9); - $10 = (_stbtt__buf_get($1,$5)|0); - $11 = (_stbtt__buf_get($1,$5)|0); - $12 = (($3) + 1)|0; - $13 = Math_imul($5, $12)|0; - $14 = (($13) + 2)|0; - $15 = (($14) + ($10))|0; - $16 = (($11) - ($10))|0; - _stbtt__buf_range($0,$1,$15,$16); - return; - } else { - ___assert_fail((9745|0),(9163|0),1206,(9848|0)); - // unreachable; - } -} -function _stbtt__buf_get8($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 4|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 8|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($2|0)<($4|0); - if (!($5)) { - $$0 = 0; - return ($$0|0); - } - $6 = (($2) + 1)|0; - $7 = HEAP32[$0>>2]|0; - HEAP32[$1>>2] = $6; - $8 = (($7) + ($2)|0); - $9 = HEAP8[$8>>0]|0; - $$0 = $9; - return ($$0|0); -} -function _stbtt__buf_skip($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 4|0); - $3 = HEAP32[$2>>2]|0; - $4 = (($3) + ($1))|0; - _stbtt__buf_seek($0,$4); - return; -} -function _stbtt__csctx_rmove_to($0,$1,$2) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - var $10 = 0, $11 = 0.0, $12 = 0, $13 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - _stbtt__csctx_close_shape($0); - $3 = ((($0)) + 16|0); - $4 = +HEAPF32[$3>>2]; - $5 = $4 + $1; - HEAPF32[$3>>2] = $5; - $6 = ((($0)) + 8|0); - HEAPF32[$6>>2] = $5; - $7 = ((($0)) + 20|0); - $8 = +HEAPF32[$7>>2]; - $9 = $8 + $2; - HEAPF32[$7>>2] = $9; - $10 = ((($0)) + 12|0); - HEAPF32[$10>>2] = $9; - $11 = +HEAPF32[$3>>2]; - $12 = (~~(($11))); - $13 = (~~(($9))); - _stbtt__csctx_v($0,1,$12,$13,0,0,0,0); - return; -} -function _stbtt__csctx_rline_to($0,$1,$2) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - var $10 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($0)) + 16|0); - $4 = +HEAPF32[$3>>2]; - $5 = $4 + $1; - HEAPF32[$3>>2] = $5; - $6 = ((($0)) + 20|0); - $7 = +HEAPF32[$6>>2]; - $8 = $7 + $2; - HEAPF32[$6>>2] = $8; - $9 = (~~(($5))); - $10 = (~~(($8))); - _stbtt__csctx_v($0,2,$9,$10,0,0,0,0); - return; -} -function _stbtt__csctx_rccurve_to($0,$1,$2,$3,$4,$5,$6) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - $4 = +$4; - $5 = +$5; - $6 = +$6; - var $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $7 = ((($0)) + 16|0); - $8 = +HEAPF32[$7>>2]; - $9 = $8 + $1; - $10 = ((($0)) + 20|0); - $11 = +HEAPF32[$10>>2]; - $12 = $11 + $2; - $13 = $9 + $3; - $14 = $12 + $4; - $15 = $13 + $5; - HEAPF32[$7>>2] = $15; - $16 = $14 + $6; - HEAPF32[$10>>2] = $16; - $17 = (~~(($15))); - $18 = (~~(($16))); - $19 = (~~(($9))); - $20 = (~~(($12))); - $21 = (~~(($13))); - $22 = (~~(($14))); - _stbtt__csctx_v($0,4,$17,$18,$19,$20,$21,$22); - return; -} -function _stbtt__cid_get_glyph_subrs($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$02931 = 0, $$03034 = 0, $$035 = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $$byval_copy2 = sp + 36|0; - $$byval_copy1 = sp + 24|0; - $3 = sp; - $4 = sp + 12|0; - $5 = ((($1)) + 108|0); - ;HEAP32[$3>>2]=HEAP32[$5>>2]|0;HEAP32[$3+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$5+8>>2]|0; - _stbtt__buf_seek($3,0); - $6 = (_stbtt__buf_get8($3)|0); - L1: do { - switch ($6<<24>>24) { - case 0: { - _stbtt__buf_skip($3,$2); - $7 = (_stbtt__buf_get8($3)|0); - $8 = $7&255; - $$02931 = $8; - break; - } - case 3: { - $9 = (_stbtt__buf_get($3,2)|0); - $10 = (_stbtt__buf_get($3,2)|0); - $11 = ($9|0)>(0); - if ($11) { - $$03034 = $10;$$035 = 0; - while(1) { - $14 = (_stbtt__buf_get8($3)|0); - $15 = (_stbtt__buf_get($3,2)|0); - $16 = ($$03034|0)<=($2|0); - $17 = ($15|0)>($2|0); - $or$cond = $16 & $17; - $13 = (($$035) + 1)|0; - if ($or$cond) { - break; - } - $12 = ($13|0)<($9|0); - if ($12) { - $$03034 = $15;$$035 = $13; - } else { - label = 6; - break L1; - } - } - $18 = $14&255; - $$02931 = $18; - } else { - label = 6; - } - break; - } - default: { - label = 6; - } - } - } while(0); - if ((label|0) == 6) { - _stbtt__new_buf($$byval_copy2,0,0); - $$02931 = -1; - } - $19 = ((($1)) + 48|0); - $20 = ((($1)) + 96|0); - ;HEAP32[$$byval_copy2>>2]=HEAP32[$20>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$20+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$20+8>>2]|0; - _stbtt__cff_index_get($4,$$byval_copy2,$$02931); - ;HEAP32[$$byval_copy1>>2]=HEAP32[$19>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$19+8>>2]|0; - ;HEAP32[$$byval_copy2>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$4+8>>2]|0; - _stbtt__get_subrs($0,$$byval_copy1,$$byval_copy2); - STACKTOP = sp;return; -} -function _stbtt__get_subr($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $$0 = 0, $$byval_copy = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp; - $3 = (_stbtt__cff_index_count($1)|0); - $4 = ($3|0)>(33899); - $5 = ($3|0)>(1239); - $$ = $5 ? 1131 : 107; - $$0 = $4 ? 32768 : $$; - $6 = (($$0) + ($2))|0; - $7 = ($6|0)>(-1); - $8 = ($6|0)<($3|0); - $or$cond = $7 & $8; - if ($or$cond) { - ;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0; - _stbtt__cff_index_get($0,$$byval_copy,$6); - STACKTOP = sp;return; - } else { - _stbtt__new_buf($0,0,0); - STACKTOP = sp;return; - } -} -function _stbtt__csctx_close_shape($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 8|0); - $2 = +HEAPF32[$1>>2]; - $3 = ((($0)) + 16|0); - $4 = +HEAPF32[$3>>2]; - $5 = $2 != $4; - $6 = ((($0)) + 12|0); - $7 = +HEAPF32[$6>>2]; - if (!($5)) { - $8 = ((($0)) + 20|0); - $9 = +HEAPF32[$8>>2]; - $10 = $7 != $9; - if (!($10)) { - return; - } - } - $11 = (~~(($2))); - $12 = (~~(($7))); - _stbtt__csctx_v($0,2,$11,$12,0,0,0,0); - return; -} -function _stbtt__buf_get($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$01011 = 0, $$012 = 0, $$off = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $exitcond = 0, label = 0, sp = 0; - sp = STACKTOP; - $$off = (($1) + -1)|0; - $2 = ($$off>>>0)<(4); - if ($2) { - $$01011 = 0;$$012 = 0; - } else { - ___assert_fail((9640|0),(9163|0),1101,(9657|0)); - // unreachable; - } - while(1) { - $3 = $$01011 << 8; - $4 = (_stbtt__buf_get8($0)|0); - $5 = $4&255; - $6 = $5 | $3; - $7 = (($$012) + 1)|0; - $exitcond = ($7|0)==($1|0); - if ($exitcond) { - break; - } else { - $$01011 = $6;$$012 = $7; - } - } - return ($6|0); -} -function _stbtt__cff_int($0) { - $0 = $0|0; - var $$0 = 0, $$off = 0, $$off19 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (_stbtt__buf_get8($0)|0); - $2 = $1&255; - $$off = (($1) + -32)<<24>>24; - $3 = ($$off&255)<(215); - if ($3) { - $4 = (($2) + -139)|0; - $$0 = $4; - return ($$0|0); - } - $$off19 = (($1) + 9)<<24>>24; - $5 = ($$off19&255)<(4); - if ($5) { - $6 = $2 << 8; - $7 = (($6) + -63232)|0; - $8 = (_stbtt__buf_get8($0)|0); - $9 = $8&255; - $10 = $9 | $7; - $11 = (($10) + 108)|0; - $$0 = $11; - return ($$0|0); - } - $12 = ($1&255)>(250); - $13 = ($1<<24>>24)!=(-1); - $or$cond5 = $12 & $13; - if ($or$cond5) { - $14 = (251 - ($2))|0; - $15 = $14 << 8; - $16 = (_stbtt__buf_get8($0)|0); - $17 = $16&255; - $18 = (($15) + -108)|0; - $19 = (($18) - ($17))|0; - $$0 = $19; - return ($$0|0); - } - switch ($1<<24>>24) { - case 28: { - $20 = (_stbtt__buf_get($0,2)|0); - $$0 = $20; - return ($$0|0); - break; - } - case 29: { - $21 = (_stbtt__buf_get($0,4)|0); - $$0 = $21; - return ($$0|0); - break; - } - default: { - ___assert_fail((9623|0),(9163|0),1151,(9625|0)); - // unreachable; - } - } - return (0)|0; -} -function _stbtt__csctx_v($0,$1,$2,$3,$4,$5,$6,$7) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - $6 = $6|0; - $7 = $7|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $8 = 0, $9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $8 = HEAP32[$0>>2]|0; - $9 = ($8|0)==(0); - if ($9) { - $11 = ((($0)) + 40|0); - $12 = HEAP32[$11>>2]|0; - $13 = ((($0)) + 44|0); - $14 = HEAP32[$13>>2]|0; - $15 = (($12) + (($14*14)|0)|0); - _stbtt_setvertex($15,$1,$2,$3,$4,$5); - $16 = $6&65535; - $17 = HEAP32[$11>>2]|0; - $18 = HEAP32[$13>>2]|0; - $19 = (((($17) + (($18*14)|0)|0)) + 8|0); - HEAP16[$19>>1] = $16; - $20 = $7&65535; - $21 = HEAP32[$11>>2]|0; - $22 = HEAP32[$13>>2]|0; - $23 = (((($21) + (($22*14)|0)|0)) + 10|0); - HEAP16[$23>>1] = $20; - } else { - _stbtt__track_vertex($0,$2,$3); - $10 = ($1<<24>>24)==(4); - if ($10) { - _stbtt__track_vertex($0,$4,$5); - _stbtt__track_vertex($0,$6,$7); - } - } - $24 = ((($0)) + 44|0); - $25 = HEAP32[$24>>2]|0; - $26 = (($25) + 1)|0; - HEAP32[$24>>2] = $26; - return; -} -function _stbtt__track_vertex($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($0)) + 28|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)<($1|0); - if ($5) { - label = 3; - } else { - $6 = ((($0)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)==(0); - if ($8) { - label = 3; - } - } - if ((label|0) == 3) { - HEAP32[$3>>2] = $1; - } - $9 = ((($0)) + 36|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)<($2|0); - if ($11) { - label = 6; - } else { - $12 = ((($0)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $14 = ($13|0)==(0); - if ($14) { - label = 6; - } - } - if ((label|0) == 6) { - HEAP32[$9>>2] = $2; - } - $15 = ((($0)) + 24|0); - $16 = HEAP32[$15>>2]|0; - $17 = ($16|0)>($1|0); - if ($17) { - label = 9; - } else { - $18 = ((($0)) + 4|0); - $19 = HEAP32[$18>>2]|0; - $20 = ($19|0)==(0); - if ($20) { - label = 9; - } - } - if ((label|0) == 9) { - HEAP32[$15>>2] = $1; - } - $21 = ((($0)) + 32|0); - $22 = HEAP32[$21>>2]|0; - $23 = ($22|0)>($2|0); - if (!($23)) { - $24 = ((($0)) + 4|0); - $25 = HEAP32[$24>>2]|0; - $26 = ($25|0)==(0); - if (!($26)) { - $27 = ((($0)) + 4|0); - HEAP32[$27>>2] = 1; - return; - } - } - HEAP32[$21>>2] = $2; - $27 = ((($0)) + 4|0); - HEAP32[$27>>2] = 1; - return; -} -function _stbtt_setvertex($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $6 = ((($0)) + 12|0); - HEAP8[$6>>0] = $1; - $7 = $2&65535; - HEAP16[$0>>1] = $7; - $8 = $3&65535; - $9 = ((($0)) + 2|0); - HEAP16[$9>>1] = $8; - $10 = $4&65535; - $11 = ((($0)) + 4|0); - HEAP16[$11>>1] = $10; - $12 = $5&65535; - $13 = ((($0)) + 6|0); - HEAP16[$13>>1] = $12; - return; -} -function _stbtt__cff_index_count($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - _stbtt__buf_seek($0,0); - $1 = (_stbtt__buf_get($0,2)|0); - return ($1|0); -} -function _stbtt__new_buf($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($2>>>0)<(1073741824); - if ($3) { - HEAP32[$0>>2] = $1; - $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); - HEAP32[$$sroa$4$0$$sroa_idx2>>2] = 0; - $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); - HEAP32[$$sroa$5$0$$sroa_idx4>>2] = $2; - return; - } else { - ___assert_fail((9672|0),(9163|0),1110,(9690|0)); - // unreachable; - } -} -function _stbtt__buf_seek($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 8|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)<($1|0); - $5 = ($1|0)<(0); - $or$cond = $5 | $4; - if ($or$cond) { - ___assert_fail((9705|0),(9163|0),1088,(9729|0)); - // unreachable; - } else { - $6 = ((($0)) + 4|0); - HEAP32[$6>>2] = $1; - return; - } -} -function _stbtt__get_subrs($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $3 = sp + 20|0; - $4 = sp; - $5 = sp + 8|0; - HEAP32[$3>>2] = 0; - $6 = $4; - $7 = $6; - HEAP32[$7>>2] = 0; - $8 = (($6) + 4)|0; - $9 = $8; - HEAP32[$9>>2] = 0; - _stbtt__dict_get_ints($2,18,2,$4); - $10 = ((($4)) + 4|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($11|0)==(0); - if (!($12)) { - $13 = HEAP32[$4>>2]|0; - $14 = ($13|0)==(0); - if (!($14)) { - _stbtt__buf_range($5,$1,$11,$13); - _stbtt__dict_get_ints($5,19,1,$3); - $15 = HEAP32[$3>>2]|0; - $16 = ($15|0)==(0); - if ($16) { - _stbtt__new_buf($0,0,0); - STACKTOP = sp;return; - } else { - $17 = HEAP32[$10>>2]|0; - $18 = (($17) + ($15))|0; - _stbtt__buf_seek($1,$18); - _stbtt__cff_get_index($0,$1); - STACKTOP = sp;return; - } - } - } - _stbtt__new_buf($0,0,0); - STACKTOP = sp;return; -} -function _stbtt__dict_get_ints($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$07 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = sp; - _stbtt__dict_get($4,$0,$1); - $5 = ((($4)) + 4|0); - $6 = ($2|0)>(0); - if (!($6)) { - STACKTOP = sp;return; - } - $7 = ((($4)) + 8|0); - $$07 = 0; - while(1) { - $8 = HEAP32[$5>>2]|0; - $9 = HEAP32[$7>>2]|0; - $10 = ($8|0)<($9|0); - if (!($10)) { - label = 5; - break; - } - $11 = (_stbtt__cff_int($4)|0); - $12 = (($3) + ($$07<<2)|0); - HEAP32[$12>>2] = $11; - $13 = (($$07) + 1)|0; - $14 = ($13|0)<($2|0); - if ($14) { - $$07 = $13; - } else { - label = 5; - break; - } - } - if ((label|0) == 5) { - STACKTOP = sp;return; - } -} -function _stbtt__buf_range($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = sp; - _stbtt__new_buf($4,0,0); - $5 = $3 | $2; - $6 = ($5|0)<(0); - if (!($6)) { - $7 = ((($1)) + 8|0); - $8 = HEAP32[$7>>2]|0; - $9 = ($8|0)<($2|0); - $10 = (($8) - ($2))|0; - $11 = ($10|0)<($3|0); - $or$cond = $9 | $11; - if (!($or$cond)) { - $12 = HEAP32[$1>>2]|0; - $13 = (($12) + ($2)|0); - HEAP32[$4>>2] = $13; - $14 = ((($4)) + 8|0); - HEAP32[$14>>2] = $3; - ;HEAP32[$0>>2]=HEAP32[$4>>2]|0;HEAP32[$0+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$4+8>>2]|0; - STACKTOP = sp;return; - } - } - ;HEAP32[$0>>2]=HEAP32[$4>>2]|0;HEAP32[$0+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$4+8>>2]|0; - STACKTOP = sp;return; -} -function _stbtt__cff_get_index($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$off = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($1)) + 4|0); - $3 = HEAP32[$2>>2]|0; - $4 = (_stbtt__buf_get($1,2)|0); - $5 = ($4|0)==(0); - if ($5) { - $12 = HEAP32[$2>>2]|0; - $13 = (($12) - ($3))|0; - _stbtt__buf_range($0,$1,$3,$13); - return; - } - $6 = (_stbtt__buf_get8($1)|0); - $7 = $6&255; - $$off = (($6) + -1)<<24>>24; - $8 = ($$off&255)<(4); - if (!($8)) { - ___assert_fail((9745|0),(9163|0),1136,(9774|0)); - // unreachable; - } - $9 = Math_imul($7, $4)|0; - _stbtt__buf_skip($1,$9); - $10 = (_stbtt__buf_get($1,$7)|0); - $11 = (($10) + -1)|0; - _stbtt__buf_skip($1,$11); - $12 = HEAP32[$2>>2]|0; - $13 = (($12) - ($3))|0; - _stbtt__buf_range($0,$1,$3,$13); - return; -} -function _stbtt__dict_get($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$021 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - _stbtt__buf_seek($1,0); - $3 = ((($1)) + 4|0); - $4 = ((($1)) + 8|0); - while(1) { - $5 = HEAP32[$3>>2]|0; - $6 = HEAP32[$4>>2]|0; - $7 = ($5|0)<($6|0); - if (!($7)) { - label = 9; - break; - } - $8 = (_stbtt__buf_peek8($1)|0); - $9 = ($8&255)>(27); - if ($9) { - while(1) { - _stbtt__cff_skip_operand($1); - $10 = (_stbtt__buf_peek8($1)|0); - $11 = ($10&255)>(27); - if (!($11)) { - break; - } - } - } - $12 = HEAP32[$3>>2]|0; - $13 = (_stbtt__buf_get8($1)|0); - $14 = $13&255; - $15 = ($13<<24>>24)==(12); - if ($15) { - $16 = (_stbtt__buf_get8($1)|0); - $17 = $16&255; - $18 = $17 | 256; - $$021 = $18; - } else { - $$021 = $14; - } - $19 = ($$021|0)==($2|0); - if ($19) { - label = 8; - break; - } - } - if ((label|0) == 8) { - $20 = (($12) - ($5))|0; - _stbtt__buf_range($0,$1,$5,$20); - return; - } - else if ((label|0) == 9) { - _stbtt__buf_range($0,$1,0,0); - return; - } -} -function _stbtt__buf_peek8($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 4|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 8|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($2|0)<($4|0); - if (!($5)) { - $$0 = 0; - return ($$0|0); - } - $6 = HEAP32[$0>>2]|0; - $7 = (($6) + ($2)|0); - $8 = HEAP8[$7>>0]|0; - $$0 = $8; - return ($$0|0); -} -function _stbtt__cff_skip_operand($0) { - $0 = $0|0; - var $$mask = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (_stbtt__buf_peek8($0)|0); - $2 = ($1&255)>(27); - if (!($2)) { - ___assert_fail((9795|0),(9163|0),1157,(9804|0)); - // unreachable; - } - $3 = ($1<<24>>24)==(30); - if (!($3)) { - (_stbtt__cff_int($0)|0); - return; - } - _stbtt__buf_skip($0,1); - $4 = ((($0)) + 4|0); - $5 = ((($0)) + 8|0); - while(1) { - $6 = HEAP32[$4>>2]|0; - $7 = HEAP32[$5>>2]|0; - $8 = ($6|0)<($7|0); - if (!($8)) { - label = 8; - break; - } - $9 = (_stbtt__buf_get8($0)|0); - $10 = $9&255; - $11 = $10 & 15; - $12 = ($11|0)==(15); - $$mask = $10 & 240; - $13 = ($$mask|0)==(240); - $or$cond = $12 | $13; - if ($or$cond) { - label = 8; - break; - } - } - if ((label|0) == 8) { - return; - } -} -function _stbtt__GetGlyphShapeTT($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0348453 = 0, $$0353439 = 0, $$0361449 = 0, $$0363450 = 0, $$0364448 = 0, $$0366447 = 0, $$0372451 = 0, $$0377437 = 0, $$0379436 = 0, $$0381446 = 0, $$0387435 = 0, $$0390434 = 0, $$0393433 = 0, $$0396432 = 0, $$0399431 = 0, $$0401430 = 0, $$0403440 = 0, $$0405443 = 0, $$0407429 = 0, $$0409428 = 0; - var $$1349 = 0, $$1354 = 0, $$1362 = 0, $$1365 = 0, $$1367445 = 0, $$1378 = 0, $$1380 = 0, $$1382 = 0, $$1388 = 0, $$1391 = 0, $$1394 = 0, $$1397 = 0, $$1400 = 0, $$1402 = 0, $$1404 = 0, $$1406 = 0, $$1408 = 0, $$1410 = 0, $$2368442 = 0, $$2374 = 0; - var $$2383444 = 0, $$2389 = 0, $$2392 = 0, $$2395 = 0, $$2398 = 0, $$3356 = 0, $$3369438 = 0, $$3384 = 0, $$4 = 0, $$4352 = 0, $$4370 = 0, $$4385441 = 0, $$5371 = 0, $$5386 = 0, $$5452 = 0, $$6 = 0, $$9 = 0, $$sink = 0, $$sroa$0$0 = 0.0, $$sroa$10$0 = 0.0; - var $$sroa$17$0 = 0.0, $$sroa$24$0 = 0.0, $$sroa$31$0 = 0.0, $$sroa$35$0 = 0.0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; - var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; - var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0; - var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0.0, $155 = 0, $156 = 0, $157 = 0.0, $158 = 0, $159 = 0.0, $16 = 0, $160 = 0, $161 = 0, $162 = 0.0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0.0, $168 = 0.0; - var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0.0, $174 = 0.0, $175 = 0, $176 = 0, $177 = 0.0, $178 = 0.0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0.0, $184 = 0.0, $185 = 0, $186 = 0; - var $187 = 0.0, $188 = 0.0, $189 = 0, $19 = 0, $190 = 0, $191 = 0.0, $192 = 0.0, $193 = 0, $194 = 0, $195 = 0.0, $196 = 0.0, $197 = 0, $198 = 0.0, $199 = 0.0, $20 = 0, $200 = 0.0, $201 = 0.0, $202 = 0.0, $203 = 0.0, $204 = 0; - var $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0.0, $213 = 0.0, $214 = 0.0, $215 = 0.0, $216 = 0.0, $217 = 0.0, $218 = 0.0, $219 = 0, $22 = 0, $220 = 0.0, $221 = 0.0, $222 = 0.0; - var $223 = 0.0, $224 = 0.0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0.0, $234 = 0.0, $235 = 0.0, $236 = 0.0, $237 = 0, $238 = 0.0, $239 = 0.0, $24 = 0, $240 = 0.0; - var $241 = 0.0, $242 = 0.0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0; - var $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; - var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; - var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; - var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond458 = 0, $exitcond459 = 0, $exitcond460 = 0, $sext = 0, $sext412 = 0, $sqrtf = 0.0, $sqrtf411 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = sp; - $4 = ((($0)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = (_stbtt__GetGlyfOffset($0,$1)|0); - HEAP32[$2>>2] = 0; - $7 = ($6|0)<(0); - if ($7) { - $$4 = 0; - STACKTOP = sp;return ($$4|0); - } - $8 = (($5) + ($6)|0); - $9 = (_ttSHORT($8)|0); - $10 = ($9<<16>>16)>(0); - L4: do { - if ($10) { - $11 = $9 << 16 >> 16; - $12 = ((($8)) + 10|0); - $13 = $11 << 1; - $14 = (($12) + ($13)|0); - $15 = (_ttUSHORT($14)|0); - $16 = ((($14)) + -2|0); - $17 = (_ttUSHORT($16)|0); - $18 = $17&65535; - $19 = $13 | 1; - $20 = (($19) + ($18))|0; - $21 = ($20*14)|0; - $22 = (_malloc($21)|0); - $23 = ($22|0)==(0|0); - if ($23) { - $$4 = 0; - STACKTOP = sp;return ($$4|0); - } - $24 = ((($14)) + 2|0); - $25 = $15&65535; - $26 = (($24) + ($25)|0); - $$0361449 = 0;$$0364448 = 0;$$0366447 = 0;$$0381446 = $26; - while(1) { - $27 = ($$0364448<<24>>24)==(0); - if ($27) { - $28 = ((($$0381446)) + 1|0); - $29 = HEAP8[$$0381446>>0]|0; - $30 = $29 & 8; - $31 = ($30<<24>>24)==(0); - if ($31) { - $$1362 = $29;$$1365 = 0;$$1382 = $28; - } else { - $32 = ((($$0381446)) + 2|0); - $33 = HEAP8[$28>>0]|0; - $$1362 = $29;$$1365 = $33;$$1382 = $32; - } - } else { - $34 = (($$0364448) + -1)<<24>>24; - $$1362 = $$0361449;$$1365 = $34;$$1382 = $$0381446; - } - $35 = (($$0366447) + ($13))|0; - $36 = (((($22) + (($35*14)|0)|0)) + 12|0); - HEAP8[$36>>0] = $$1362; - $37 = (($$0366447) + 1)|0; - $exitcond459 = ($$0366447|0)==($18|0); - if ($exitcond459) { - $$0405443 = 0;$$1367445 = 0;$$2383444 = $$1382; - break; - } else { - $$0361449 = $$1362;$$0364448 = $$1365;$$0366447 = $37;$$0381446 = $$1382; - } - } - while(1) { - $38 = (($$1367445) + ($13))|0; - $39 = (((($22) + (($38*14)|0)|0)) + 12|0); - $40 = HEAP8[$39>>0]|0; - $41 = $40&255; - $42 = $41 & 2; - $43 = ($42|0)==(0); - $44 = $41 & 16; - $45 = ($44|0)!=(0); - if ($43) { - if ($45) { - $$1406 = $$0405443;$$3384 = $$2383444; - } else { - $52 = HEAP8[$$2383444>>0]|0; - $53 = $52&255; - $54 = $53 << 8; - $55 = ((($$2383444)) + 1|0); - $56 = HEAP8[$55>>0]|0; - $57 = $56&255; - $58 = $54 | $57; - $sext412 = $58 << 16; - $59 = $sext412 >> 16; - $60 = (($59) + ($$0405443))|0; - $61 = ((($$2383444)) + 2|0); - $$1406 = $60;$$3384 = $61; - } - } else { - $46 = ((($$2383444)) + 1|0); - $47 = HEAP8[$$2383444>>0]|0; - $48 = $47&255; - $49 = (0 - ($48))|0; - $50 = $45 ? $48 : $49; - $51 = (($50) + ($$0405443))|0; - $$1406 = $51;$$3384 = $46; - } - $62 = $$1406&65535; - $63 = (($22) + (($38*14)|0)|0); - HEAP16[$63>>1] = $62; - $64 = (($$1367445) + 1)|0; - $exitcond458 = ($$1367445|0)==($18|0); - if ($exitcond458) { - $$0403440 = 0;$$2368442 = 0;$$4385441 = $$3384; - break; - } else { - $$0405443 = $$1406;$$1367445 = $64;$$2383444 = $$3384; - } - } - while(1) { - $65 = (($$2368442) + ($13))|0; - $66 = (((($22) + (($65*14)|0)|0)) + 12|0); - $67 = HEAP8[$66>>0]|0; - $68 = $67&255; - $69 = $68 & 4; - $70 = ($69|0)==(0); - $71 = $68 & 32; - $72 = ($71|0)!=(0); - if ($70) { - if ($72) { - $$1404 = $$0403440;$$5386 = $$4385441; - } else { - $79 = HEAP8[$$4385441>>0]|0; - $80 = $79&255; - $81 = $80 << 8; - $82 = ((($$4385441)) + 1|0); - $83 = HEAP8[$82>>0]|0; - $84 = $83&255; - $85 = $81 | $84; - $sext = $85 << 16; - $86 = $sext >> 16; - $87 = (($86) + ($$0403440))|0; - $88 = ((($$4385441)) + 2|0); - $$1404 = $87;$$5386 = $88; - } - } else { - $73 = ((($$4385441)) + 1|0); - $74 = HEAP8[$$4385441>>0]|0; - $75 = $74&255; - $76 = (0 - ($75))|0; - $77 = $72 ? $75 : $76; - $78 = (($77) + ($$0403440))|0; - $$1404 = $78;$$5386 = $73; - } - $89 = $$1404&65535; - $90 = (((($22) + (($65*14)|0)|0)) + 2|0); - HEAP16[$90>>1] = $89; - $91 = (($$2368442) + 1)|0; - $exitcond = ($$2368442|0)==($18|0); - if ($exitcond) { - $$0353439 = 0;$$0377437 = 0;$$0379436 = 0;$$0387435 = 0;$$0390434 = 0;$$0393433 = 0;$$0396432 = 0;$$0399431 = 0;$$0401430 = 0;$$0407429 = 0;$$0409428 = 0;$$3369438 = 0; - break; - } else { - $$0403440 = $$1404;$$2368442 = $91;$$4385441 = $$5386; - } - } - while(1) { - $92 = (($$3369438) + ($13))|0; - $93 = (((($22) + (($92*14)|0)|0)) + 12|0); - $94 = HEAP8[$93>>0]|0; - $95 = (($22) + (($92*14)|0)|0); - $96 = HEAP16[$95>>1]|0; - $97 = $96 << 16 >> 16; - $98 = (((($22) + (($92*14)|0)|0)) + 2|0); - $99 = HEAP16[$98>>1]|0; - $100 = $99 << 16 >> 16; - $101 = ($$0379436|0)==($$3369438|0); - $102 = $94 & 1; - $103 = ($102<<24>>24)!=(0); - do { - if ($101) { - $104 = ($$3369438|0)==(0); - if ($104) { - $$1354 = $$0353439; - } else { - $105 = (_stbtt__close_shape($22,$$0353439,$$0409428,$$0407429,$$0396432,$$0393433,$$0390434,$$0387435,$$0401430,$$0399431)|0); - $$1354 = $105; - } - $106 = $103 ^ 1; - $107 = $106&1; - do { - if ($103) { - $$1388 = $$0387435;$$1391 = $$0390434;$$1394 = $100;$$1397 = $97;$$4370 = $$3369438; - } else { - $108 = (($92) + 1)|0; - $109 = (((($22) + (($108*14)|0)|0)) + 12|0); - $110 = HEAP8[$109>>0]|0; - $111 = $110 & 1; - $112 = ($111<<24>>24)==(0); - $113 = (((($22) + (($108*14)|0)|0)) + 2|0); - $114 = HEAP16[$113>>1]|0; - $115 = (($22) + (($108*14)|0)|0); - $116 = HEAP16[$115>>1]|0; - $117 = $114 << 16 >> 16; - $118 = $116 << 16 >> 16; - if ($112) { - $119 = (($118) + ($97))|0; - $120 = $119 >> 1; - $121 = (($117) + ($100))|0; - $122 = $121 >> 1; - $$1388 = $100;$$1391 = $97;$$1394 = $122;$$1397 = $120;$$4370 = $$3369438; - break; - } else { - $123 = (($$3369438) + 1)|0; - $$1388 = $100;$$1391 = $97;$$1394 = $117;$$1397 = $118;$$4370 = $123; - break; - } - } - } while(0); - $124 = (($$1354) + 1)|0; - $125 = (($22) + (($$1354*14)|0)|0); - _stbtt_setvertex($125,1,$$1397,$$1394,0,0); - $126 = $$0377437 << 1; - $127 = (($12) + ($126)|0); - $128 = (_ttUSHORT($127)|0); - $129 = $128&65535; - $130 = (($129) + 1)|0; - $131 = (($$0377437) + 1)|0; - $$1378 = $131;$$1380 = $130;$$1400 = $$0399431;$$1402 = $$0401430;$$1408 = $107;$$1410 = 0;$$2389 = $$1388;$$2392 = $$1391;$$2395 = $$1394;$$2398 = $$1397;$$3356 = $124;$$5371 = $$4370; - } else { - $132 = ($$0409428|0)!=(0); - $133 = (($$0353439) + 1)|0; - $134 = (($22) + (($$0353439*14)|0)|0); - if (!($103)) { - if (!($132)) { - $$1378 = $$0377437;$$1380 = $$0379436;$$1400 = $100;$$1402 = $97;$$1408 = $$0407429;$$1410 = 1;$$2389 = $$0387435;$$2392 = $$0390434;$$2395 = $$0393433;$$2398 = $$0396432;$$3356 = $$0353439;$$5371 = $$3369438; - break; - } - $135 = (($100) + ($$0399431))|0; - $136 = $135 >> 1; - $137 = (($97) + ($$0401430))|0; - $138 = $137 >> 1; - _stbtt_setvertex($134,3,$138,$136,$$0401430,$$0399431); - $$1378 = $$0377437;$$1380 = $$0379436;$$1400 = $100;$$1402 = $97;$$1408 = $$0407429;$$1410 = 1;$$2389 = $$0387435;$$2392 = $$0390434;$$2395 = $$0393433;$$2398 = $$0396432;$$3356 = $133;$$5371 = $$3369438; - break; - } - if ($132) { - _stbtt_setvertex($134,3,$97,$100,$$0401430,$$0399431); - $$1378 = $$0377437;$$1380 = $$0379436;$$1400 = $$0399431;$$1402 = $$0401430;$$1408 = $$0407429;$$1410 = 0;$$2389 = $$0387435;$$2392 = $$0390434;$$2395 = $$0393433;$$2398 = $$0396432;$$3356 = $133;$$5371 = $$3369438; - break; - } else { - _stbtt_setvertex($134,2,$97,$100,0,0); - $$1378 = $$0377437;$$1380 = $$0379436;$$1400 = $$0399431;$$1402 = $$0401430;$$1408 = $$0407429;$$1410 = 0;$$2389 = $$0387435;$$2392 = $$0390434;$$2395 = $$0393433;$$2398 = $$0396432;$$3356 = $133;$$5371 = $$3369438; - break; - } - } - } while(0); - $139 = (($$5371) + 1)|0; - $140 = ($$5371|0)<($18|0); - if ($140) { - $$0353439 = $$3356;$$0377437 = $$1378;$$0379436 = $$1380;$$0387435 = $$2389;$$0390434 = $$2392;$$0393433 = $$2395;$$0396432 = $$2398;$$0399431 = $$1400;$$0401430 = $$1402;$$0407429 = $$1408;$$0409428 = $$1410;$$3369438 = $139; - } else { - break; - } - } - $141 = (_stbtt__close_shape($22,$$3356,$$1410,$$1408,$$2398,$$2395,$$2392,$$2389,$$1402,$$1400)|0); - $$4352 = $22;$$9 = $141; - } else { - $142 = ($9<<16>>16)==(-1); - if (!($142)) { - $264 = ($9<<16>>16)<(0); - if (!($264)) { - $$4352 = 0;$$9 = 0; - break; - } - ___assert_fail((9623|0),(9163|0),1811,(9942|0)); - // unreachable; - } - $143 = ((($8)) + 10|0); - $$0348453 = 0;$$0372451 = $143;$$5452 = 0;$250 = 0;$255 = 0;$260 = 0; - while(1) { - HEAP32[$3>>2] = 0; - $144 = (_ttSHORT($$0372451)|0); - $145 = ((($$0372451)) + 2|0); - $146 = (_ttSHORT($145)|0); - $147 = ((($$0372451)) + 4|0); - $148 = $144&65535; - $149 = $148 & 2; - $150 = ($149|0)==(0); - if ($150) { - label = 42; - break; - } - $151 = $148 & 1; - $152 = ($151|0)==(0); - if ($152) { - $158 = HEAP8[$147>>0]|0; - $159 = (+($158<<24>>24)); - $160 = ((($$0372451)) + 5|0); - $161 = HEAP8[$160>>0]|0; - $162 = (+($161<<24>>24)); - $$sink = 6;$$sroa$31$0 = $159;$$sroa$35$0 = $162; - } else { - $153 = (_ttSHORT($147)|0); - $154 = (+($153<<16>>16)); - $155 = ((($$0372451)) + 6|0); - $156 = (_ttSHORT($155)|0); - $157 = (+($156<<16>>16)); - $$sink = 8;$$sroa$31$0 = $154;$$sroa$35$0 = $157; - } - $163 = (($$0372451) + ($$sink)|0); - $164 = $148 & 8; - $165 = ($164|0)==(0); - do { - if ($165) { - $170 = $148 & 64; - $171 = ($170|0)==(0); - if (!($171)) { - $172 = (_ttSHORT($163)|0); - $173 = (+($172<<16>>16)); - $174 = $173 * 6.103515625E-5; - $175 = ((($163)) + 2|0); - $176 = (_ttSHORT($175)|0); - $177 = (+($176<<16>>16)); - $178 = $177 * 6.103515625E-5; - $179 = ((($163)) + 4|0); - $$2374 = $179;$$sroa$0$0 = $174;$$sroa$10$0 = 0.0;$$sroa$17$0 = 0.0;$$sroa$24$0 = $178; - break; - } - $180 = $148 & 128; - $181 = ($180|0)==(0); - if ($181) { - $$2374 = $163;$$sroa$0$0 = 1.0;$$sroa$10$0 = 0.0;$$sroa$17$0 = 0.0;$$sroa$24$0 = 1.0; - } else { - $182 = (_ttSHORT($163)|0); - $183 = (+($182<<16>>16)); - $184 = $183 * 6.103515625E-5; - $185 = ((($163)) + 2|0); - $186 = (_ttSHORT($185)|0); - $187 = (+($186<<16>>16)); - $188 = $187 * 6.103515625E-5; - $189 = ((($163)) + 4|0); - $190 = (_ttSHORT($189)|0); - $191 = (+($190<<16>>16)); - $192 = $191 * 6.103515625E-5; - $193 = ((($163)) + 6|0); - $194 = (_ttSHORT($193)|0); - $195 = (+($194<<16>>16)); - $196 = $195 * 6.103515625E-5; - $197 = ((($163)) + 8|0); - $$2374 = $197;$$sroa$0$0 = $184;$$sroa$10$0 = $188;$$sroa$17$0 = $192;$$sroa$24$0 = $196; - } - } else { - $166 = (_ttSHORT($163)|0); - $167 = (+($166<<16>>16)); - $168 = $167 * 6.103515625E-5; - $169 = ((($163)) + 2|0); - $$2374 = $169;$$sroa$0$0 = $168;$$sroa$10$0 = 0.0;$$sroa$17$0 = 0.0;$$sroa$24$0 = $168; - } - } while(0); - $198 = $$sroa$0$0 * $$sroa$0$0; - $199 = $$sroa$10$0 * $$sroa$10$0; - $200 = $199 + $198; - $sqrtf = (+Math_sqrt((+$200))); - $201 = $$sroa$17$0 * $$sroa$17$0; - $202 = $$sroa$24$0 * $$sroa$24$0; - $203 = $202 + $201; - $sqrtf411 = (+Math_sqrt((+$203))); - $204 = $146&65535; - $205 = (_stbtt_GetGlyphShape($0,$204,$3)|0); - $206 = ($205|0)>(0); - if ($206) { - $207 = HEAP32[$3>>2]|0; - $$0363450 = 0; - while(1) { - $208 = (($207) + (($$0363450*14)|0)|0); - $209 = HEAP16[$208>>1]|0; - $210 = (((($207) + (($$0363450*14)|0)|0)) + 2|0); - $211 = HEAP16[$210>>1]|0; - $212 = (+($209<<16>>16)); - $213 = $$sroa$0$0 * $212; - $214 = (+($211<<16>>16)); - $215 = $$sroa$17$0 * $214; - $216 = $213 + $215; - $217 = $$sroa$31$0 + $216; - $218 = $sqrtf * $217; - $219 = (~~(($218))); - HEAP16[$208>>1] = $219; - $220 = $$sroa$10$0 * $212; - $221 = $$sroa$24$0 * $214; - $222 = $220 + $221; - $223 = $$sroa$35$0 + $222; - $224 = $sqrtf411 * $223; - $225 = (~~(($224))); - HEAP16[$210>>1] = $225; - $226 = (((($207) + (($$0363450*14)|0)|0)) + 4|0); - $227 = HEAP16[$226>>1]|0; - $228 = (((($207) + (($$0363450*14)|0)|0)) + 6|0); - $229 = HEAP16[$228>>1]|0; - $230 = (+($227<<16>>16)); - $231 = $$sroa$0$0 * $230; - $232 = (+($229<<16>>16)); - $233 = $$sroa$17$0 * $232; - $234 = $231 + $233; - $235 = $$sroa$31$0 + $234; - $236 = $sqrtf * $235; - $237 = (~~(($236))); - HEAP16[$226>>1] = $237; - $238 = $$sroa$10$0 * $230; - $239 = $$sroa$24$0 * $232; - $240 = $238 + $239; - $241 = $$sroa$35$0 + $240; - $242 = $sqrtf411 * $241; - $243 = (~~(($242))); - HEAP16[$228>>1] = $243; - $244 = (($$0363450) + 1)|0; - $exitcond460 = ($244|0)==($205|0); - if ($exitcond460) { - break; - } else { - $$0363450 = $244; - } - } - $245 = (($205) + ($$5452))|0; - $246 = ($245*14)|0; - $247 = (_malloc($246)|0); - $248 = ($247|0)==(0|0); - if ($248) { - break; - } - $253 = ($$5452|0)>(0); - if ($253) { - $254 = ($$5452*14)|0; - _memcpy(($247|0),($255|0),($254|0))|0; - } - $256 = (($247) + (($$5452*14)|0)|0); - $257 = HEAP32[$3>>2]|0; - $258 = ($205*14)|0; - _memcpy(($256|0),($257|0),($258|0))|0; - $259 = ($$0348453|0)==(0|0); - if (!($259)) { - _free($260); - } - $261 = HEAP32[$3>>2]|0; - _free($261); - $$1349 = $247;$$6 = $245;$265 = $247;$266 = $247;$267 = $247; - } else { - $$1349 = $$0348453;$$6 = $$5452;$265 = $250;$266 = $260;$267 = $255; - } - $262 = $148 & 32; - $263 = ($262|0)==(0); - if ($263) { - $$4352 = $$1349;$$9 = $$6; - break L4; - } else { - $$0348453 = $$1349;$$0372451 = $$2374;$$5452 = $$6;$250 = $265;$255 = $267;$260 = $266; - } - } - if ((label|0) == 42) { - ___assert_fail((9623|0),(9163|0),1758,(9942|0)); - // unreachable; - } - $249 = ($$0348453|0)==(0|0); - if (!($249)) { - _free($250); - } - $251 = HEAP32[$3>>2]|0; - $252 = ($251|0)==(0|0); - if (!($252)) { - _free($251); - } - $$4 = 0; - STACKTOP = sp;return ($$4|0); - } - } while(0); - HEAP32[$2>>2] = $$4352; - $$4 = $$9; - STACKTOP = sp;return ($$4|0); -} -function _stbtt__GetGlyphShapeT2($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0; - var stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); - $3 = sp + 48|0; - $4 = sp; - $5 = ((($3)) + 4|0); - dest=$5; stop=dest+44|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - HEAP32[$3>>2] = 1; - dest=$4; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - $6 = (_stbtt__run_charstring($0,$1,$3)|0); - $7 = ($6|0)==(0); - if (!($7)) { - $8 = ((($3)) + 44|0); - $9 = HEAP32[$8>>2]|0; - $10 = ($9*14)|0; - $11 = (_malloc($10)|0); - HEAP32[$2>>2] = $11; - $12 = ((($4)) + 40|0); - HEAP32[$12>>2] = $11; - $13 = (_stbtt__run_charstring($0,$1,$4)|0); - $14 = ($13|0)==(0); - if (!($14)) { - $15 = ((($4)) + 44|0); - $16 = HEAP32[$15>>2]|0; - $17 = HEAP32[$8>>2]|0; - $18 = ($16|0)==($17|0); - if ($18) { - $$0 = $16; - STACKTOP = sp;return ($$0|0); - } else { - ___assert_fail((9869|0),(9163|0),2201,(9919|0)); - // unreachable; - } - } - } - HEAP32[$2>>2] = 0; - $$0 = 0; - STACKTOP = sp;return ($$0|0); -} -function _stbtt__close_shape($0,$1,$2,$3,$4,$5,$6,$7,$8,$9) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - $6 = $6|0; - $7 = $7|0; - $8 = $8|0; - $9 = $9|0; - var $$0 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, label = 0, sp = 0; - sp = STACKTOP; - $10 = ($3|0)==(0); - $11 = ($2|0)!=(0); - $12 = (($1) + 1)|0; - $13 = (($0) + (($1*14)|0)|0); - if (!($10)) { - if ($11) { - $14 = (($9) + ($7))|0; - $15 = $14 >> 1; - $16 = (($8) + ($6))|0; - $17 = $16 >> 1; - _stbtt_setvertex($13,3,$17,$15,$8,$9); - $$0 = $12; - } else { - $$0 = $1; - } - $18 = (($$0) + 1)|0; - $19 = (($0) + (($$0*14)|0)|0); - _stbtt_setvertex($19,3,$4,$5,$6,$7); - $$1 = $18; - return ($$1|0); - } - if ($11) { - _stbtt_setvertex($13,3,$4,$5,$8,$9); - $$1 = $12; - return ($$1|0); - } else { - _stbtt_setvertex($13,2,$4,$5,0,0); - $$1 = $12; - return ($$1|0); - } - return (0)|0; -} -function _stbtt_InitFont_internal($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0902 = 0, $$1 = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$pr = 0, $$sink = 0, $10 = 0, $100 = 0, $101 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; - var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; - var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0; - var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0; - var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); - $$byval_copy2 = sp + 172|0; - $$byval_copy1 = sp + 160|0; - $2 = sp + 148|0; - $3 = sp + 136|0; - $4 = sp + 124|0; - $5 = sp + 112|0; - $6 = sp + 108|0; - $7 = sp + 104|0; - $8 = sp + 100|0; - $9 = sp + 96|0; - $10 = sp + 84|0; - $11 = sp + 72|0; - $12 = sp + 60|0; - $13 = sp + 48|0; - $14 = sp + 36|0; - $15 = sp + 24|0; - $16 = sp + 12|0; - $17 = sp; - $18 = ((($0)) + 4|0); - HEAP32[$18>>2] = $1; - $19 = ((($0)) + 8|0); - HEAP32[$19>>2] = 0; - $20 = ((($0)) + 48|0); - _stbtt__new_buf($2,0,0); - ;HEAP32[$20>>2]=HEAP32[$2>>2]|0;HEAP32[$20+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$20+8>>2]=HEAP32[$2+8>>2]|0; - $21 = (_stbtt__find_table($1,10042)|0); - $22 = (_stbtt__find_table($1,10047)|0); - $23 = ((($0)) + 16|0); - HEAP32[$23>>2] = $22; - $24 = (_stbtt__find_table($1,10052)|0); - $25 = ((($0)) + 20|0); - HEAP32[$25>>2] = $24; - $26 = (_stbtt__find_table($1,10057)|0); - $27 = ((($0)) + 24|0); - HEAP32[$27>>2] = $26; - $28 = (_stbtt__find_table($1,10062)|0); - $29 = ((($0)) + 28|0); - HEAP32[$29>>2] = $28; - $30 = (_stbtt__find_table($1,10067)|0); - $31 = ((($0)) + 32|0); - HEAP32[$31>>2] = $30; - $32 = (_stbtt__find_table($1,10072)|0); - $33 = ((($0)) + 36|0); - HEAP32[$33>>2] = $32; - $34 = ($21|0)==(0); - if ($34) { - $$1 = 0; - STACKTOP = sp;return ($$1|0); - } - $35 = HEAP32[$25>>2]|0; - $36 = ($35|0)==(0); - if ($36) { - $$1 = 0; - STACKTOP = sp;return ($$1|0); - } - $37 = HEAP32[$29>>2]|0; - $38 = ($37|0)==(0); - if ($38) { - $$1 = 0; - STACKTOP = sp;return ($$1|0); - } - $39 = HEAP32[$31>>2]|0; - $40 = ($39|0)==(0); - if ($40) { - $$1 = 0; - STACKTOP = sp;return ($$1|0); - } - $41 = HEAP32[$27>>2]|0; - $42 = ($41|0)==(0); - L13: do { - if ($42) { - HEAP32[$6>>2] = 2; - HEAP32[$7>>2] = 0; - HEAP32[$8>>2] = 0; - HEAP32[$9>>2] = 0; - $45 = (_stbtt__find_table($1,10077)|0); - $46 = ($45|0)==(0); - do { - if (!($46)) { - $47 = ((($0)) + 96|0); - _stbtt__new_buf($10,0,0); - ;HEAP32[$47>>2]=HEAP32[$10>>2]|0;HEAP32[$47+4>>2]=HEAP32[$10+4>>2]|0;HEAP32[$47+8>>2]=HEAP32[$10+8>>2]|0; - $48 = ((($0)) + 108|0); - _stbtt__new_buf($11,0,0); - ;HEAP32[$48>>2]=HEAP32[$11>>2]|0;HEAP32[$48+4>>2]=HEAP32[$11+4>>2]|0;HEAP32[$48+8>>2]=HEAP32[$11+8>>2]|0; - $49 = (($1) + ($45)|0); - _stbtt__new_buf($12,$49,536870912); - ;HEAP32[$20>>2]=HEAP32[$12>>2]|0;HEAP32[$20+4>>2]=HEAP32[$12+4>>2]|0;HEAP32[$20+8>>2]=HEAP32[$12+8>>2]|0; - ;HEAP32[$3>>2]=HEAP32[$12>>2]|0;HEAP32[$3+4>>2]=HEAP32[$12+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$12+8>>2]|0; - _stbtt__buf_skip($3,2); - $50 = (_stbtt__buf_get8($3)|0); - $51 = $50&255; - _stbtt__buf_seek($3,$51); - _stbtt__cff_get_index($$byval_copy2,$3); - _stbtt__cff_get_index($5,$3); - ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0; - _stbtt__cff_index_get($4,$$byval_copy2,0); - _stbtt__cff_get_index($$byval_copy2,$3); - $52 = ((($0)) + 72|0); - _stbtt__cff_get_index($13,$3); - ;HEAP32[$52>>2]=HEAP32[$13>>2]|0;HEAP32[$52+4>>2]=HEAP32[$13+4>>2]|0;HEAP32[$52+8>>2]=HEAP32[$13+8>>2]|0; - _stbtt__dict_get_ints($4,17,1,$7); - _stbtt__dict_get_ints($4,262,1,$6); - _stbtt__dict_get_ints($4,292,1,$8); - _stbtt__dict_get_ints($4,293,1,$9); - $53 = ((($0)) + 84|0); - ;HEAP32[$$byval_copy1>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$3+8>>2]|0; - ;HEAP32[$$byval_copy2>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$4+8>>2]|0; - _stbtt__get_subrs($14,$$byval_copy1,$$byval_copy2); - ;HEAP32[$53>>2]=HEAP32[$14>>2]|0;HEAP32[$53+4>>2]=HEAP32[$14+4>>2]|0;HEAP32[$53+8>>2]=HEAP32[$14+8>>2]|0; - $54 = HEAP32[$6>>2]|0; - $55 = ($54|0)!=(2); - $56 = HEAP32[$7>>2]|0; - $57 = ($56|0)==(0); - $or$cond = $55 | $57; - if (!($or$cond)) { - $58 = HEAP32[$8>>2]|0; - $59 = ($58|0)==(0); - if (!($59)) { - $60 = HEAP32[$9>>2]|0; - $61 = ($60|0)==(0); - if ($61) { - break; - } - _stbtt__buf_seek($3,$58); - _stbtt__cff_get_index($15,$3); - ;HEAP32[$47>>2]=HEAP32[$15>>2]|0;HEAP32[$47+4>>2]=HEAP32[$15+4>>2]|0;HEAP32[$47+8>>2]=HEAP32[$15+8>>2]|0; - $62 = HEAP32[$9>>2]|0; - $63 = ((($3)) + 8|0); - $64 = HEAP32[$63>>2]|0; - $65 = (($64) - ($62))|0; - _stbtt__buf_range($16,$3,$62,$65); - ;HEAP32[$48>>2]=HEAP32[$16>>2]|0;HEAP32[$48+4>>2]=HEAP32[$16+4>>2]|0;HEAP32[$48+8>>2]=HEAP32[$16+8>>2]|0; - } - $66 = HEAP32[$7>>2]|0; - _stbtt__buf_seek($3,$66); - $67 = ((($0)) + 60|0); - _stbtt__cff_get_index($17,$3); - ;HEAP32[$67>>2]=HEAP32[$17>>2]|0;HEAP32[$67+4>>2]=HEAP32[$17+4>>2]|0;HEAP32[$67+8>>2]=HEAP32[$17+8>>2]|0; - break L13; - } - } - } while(0); - $$1 = 0; - STACKTOP = sp;return ($$1|0); - } else { - $43 = HEAP32[$23>>2]|0; - $44 = ($43|0)==(0); - if ($44) { - $$1 = 0; - STACKTOP = sp;return ($$1|0); - } - } - } while(0); - $68 = (_stbtt__find_table($1,10082)|0); - $69 = ($68|0)==(0); - if ($69) { - $$sink = 65535; - } else { - $70 = (($1) + ($68)|0); - $71 = ((($70)) + 4|0); - $72 = (_ttUSHORT($71)|0); - $73 = $72&65535; - $$sink = $73; - } - $74 = ((($0)) + 12|0); - HEAP32[$74>>2] = $$sink; - $75 = (($1) + ($21)|0); - $76 = ((($75)) + 2|0); - $77 = (_ttUSHORT($76)|0); - $78 = $77&65535; - $79 = ((($0)) + 40|0); - HEAP32[$79>>2] = 0; - $80 = ($77<<16>>16)==(0); - if ($80) { - $$1 = 0; - STACKTOP = sp;return ($$1|0); - } - $81 = (($21) + 4)|0; - $$0902 = 0; - while(1) { - $82 = $$0902 << 3; - $83 = (($81) + ($82))|0; - $84 = (($1) + ($83)|0); - $85 = (_ttUSHORT($84)|0); - L35: do { - switch ($85<<16>>16) { - case 3: { - $86 = ((($84)) + 2|0); - $87 = (_ttUSHORT($86)|0); - switch ($87<<16>>16) { - case 10: case 1: { - break; - } - default: { - break L35; - } - } - $88 = ((($84)) + 4|0); - $89 = (_ttULONG($88)|0); - $90 = (($89) + ($21))|0; - HEAP32[$79>>2] = $90; - break; - } - case 0: { - $91 = ((($84)) + 4|0); - $92 = (_ttULONG($91)|0); - $93 = (($92) + ($21))|0; - HEAP32[$79>>2] = $93; - break; - } - default: { - } - } - } while(0); - $94 = (($$0902) + 1)|0; - $exitcond = ($94|0)==($78|0); - if ($exitcond) { - break; - } else { - $$0902 = $94; - } - } - $$pr = HEAP32[$79>>2]|0; - $95 = ($$pr|0)==(0); - if ($95) { - $$1 = 0; - STACKTOP = sp;return ($$1|0); - } - $96 = HEAP32[$25>>2]|0; - $97 = (($1) + ($96)|0); - $98 = ((($97)) + 50|0); - $99 = (_ttUSHORT($98)|0); - $100 = $99&65535; - $101 = ((($0)) + 44|0); - HEAP32[$101>>2] = $100; - $$1 = 1; - STACKTOP = sp;return ($$1|0); -} -function _stbtt__find_table($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0312 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 4|0); - $3 = (_ttUSHORT($2)|0); - $4 = $3&65535; - $5 = ($3<<16>>16)==(0); - if ($5) { - $$2 = 0; - return ($$2|0); - } - $6 = HEAP8[$1>>0]|0; - $7 = $6 << 24 >> 24; - $8 = ((($1)) + 1|0); - $9 = ((($1)) + 2|0); - $10 = ((($1)) + 3|0); - $$0312 = 0; - while(1) { - $11 = $$0312 << 4; - $12 = $11 | 12; - $13 = (($0) + ($12)|0); - $14 = HEAP8[$13>>0]|0; - $15 = $14&255; - $16 = ($15|0)==($7|0); - if ($16) { - $17 = ((($13)) + 1|0); - $18 = HEAP8[$17>>0]|0; - $19 = $18&255; - $20 = HEAP8[$8>>0]|0; - $21 = $20 << 24 >> 24; - $22 = ($19|0)==($21|0); - if ($22) { - $23 = ((($13)) + 2|0); - $24 = HEAP8[$23>>0]|0; - $25 = $24&255; - $26 = HEAP8[$9>>0]|0; - $27 = $26 << 24 >> 24; - $28 = ($25|0)==($27|0); - if ($28) { - $29 = ((($13)) + 3|0); - $30 = HEAP8[$29>>0]|0; - $31 = $30&255; - $32 = HEAP8[$10>>0]|0; - $33 = $32 << 24 >> 24; - $34 = ($31|0)==($33|0); - if ($34) { - break; - } - } - } - } - $37 = (($$0312) + 1)|0; - $38 = ($37|0)<($4|0); - if ($38) { - $$0312 = $37; - } else { - $$2 = 0; - label = 9; - break; - } - } - if ((label|0) == 9) { - return ($$2|0); - } - $35 = ((($13)) + 8|0); - $36 = (_ttULONG($35)|0); - $$2 = $36; - return ($$2|0); -} -function _DrawText($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$ = 0, $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $$byval_copy2 = sp + 112|0; - $$byval_copy1 = sp + 104|0; - $$byval_copy = sp + 72|0; - $5 = sp + 32|0; - $6 = sp + 64|0; - $7 = sp; - _GetDefaultFont($5); - $8 = HEAP32[$5>>2]|0; - $9 = ($8|0)==(0); - if ($9) { - STACKTOP = sp;return; - } - $10 = (+($1|0)); - HEAPF32[$6>>2] = $10; - $11 = ((($6)) + 4|0); - $12 = (+($2|0)); - HEAPF32[$11>>2] = $12; - $13 = ($3|0)>(10); - $$ = $13 ? $3 : 10; - $14 = (($$>>>0) / 10)&-1; - _GetDefaultFont($7); - $15 = (+($$|0)); - ;HEAP32[$$byval_copy>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$7+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$7+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$7+16>>2]|0;HEAP32[$$byval_copy+20>>2]=HEAP32[$7+20>>2]|0;HEAP32[$$byval_copy+24>>2]=HEAP32[$7+24>>2]|0;HEAP32[$$byval_copy+28>>2]=HEAP32[$7+28>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$6+4>>2]|0; - ;HEAP8[$$byval_copy2>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$4+3>>0]|0; - _DrawTextEx($$byval_copy,$0,$$byval_copy1,$15,$14,$$byval_copy2); - STACKTOP = sp;return; -} -function _DrawTextEx($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = +$3; - $4 = $4|0; - $5 = $5|0; - var $$04954 = 0, $$05153 = 0, $$055 = 0, $$1 = 0, $$150 = 0, $$152 = 0, $$2 = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $$byval_copy5 = 0, $$sink = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0; - var $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0.0, $29 = 0.0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $50 = 0.0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0; - var $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; - var $75 = 0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $$byval_copy5 = sp + 88|0; - $$byval_copy4 = sp + 80|0; - $$byval_copy3 = sp + 64|0; - $$byval_copy2 = sp + 48|0; - $$byval_copy1 = sp + 24|0; - $6 = sp + 8|0; - $7 = sp; - $8 = (_strlen($1)|0); - $9 = ((($0)) + 20|0); - $10 = HEAP32[$9>>2]|0; - $11 = (+($10|0)); - $12 = $3 / $11; - $13 = ($8|0)>(0); - if (!($13)) { - STACKTOP = sp;return; - } - $14 = ((($0)) + 28|0); - $15 = +HEAPF32[$2>>2]; - $16 = ((($6)) + 4|0); - $17 = ((($2)) + 4|0); - $18 = ((($6)) + 8|0); - $19 = ((($6)) + 12|0); - $20 = ((($7)) + 4|0); - $21 = (+($4|0)); - $$04954 = 0;$$05153 = 0;$$055 = 0; - while(1) { - $22 = (($1) + ($$055)|0); - $23 = HEAP8[$22>>0]|0; - $24 = $23&255; - switch ($23<<24>>24) { - case 10: { - $25 = HEAP32[$9>>2]|0; - $26 = (($25|0) / 2)&-1; - $27 = (($26) + ($25))|0; - $28 = (+($27|0)); - $29 = $12 * $28; - $30 = (~~(($29))); - $31 = (($30) + ($$05153))|0; - $$150 = 0;$$152 = $31;$$2 = $$055; - break; - } - case -62: { - $32 = (($$055) + 1)|0; - $33 = (($1) + ($32)|0); - $34 = HEAP8[$33>>0]|0; - $35 = $34&255; - $$1 = $32;$$sink = $35; - label = 8; - break; - } - case -61: { - $36 = (($$055) + 1)|0; - $37 = (($1) + ($36)|0); - $38 = HEAP8[$37>>0]|0; - $39 = $38&255; - $40 = (($39) + 64)|0; - $$1 = $36;$$sink = $40; - label = 8; - break; - } - default: { - $$1 = $$055;$$sink = $24; - label = 8; - } - } - do { - if ((label|0) == 8) { - label = 0; - ;HEAP32[$$byval_copy5>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy5+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy5+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$$byval_copy5+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$$byval_copy5+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[$$byval_copy5+28>>2]=HEAP32[$0+28>>2]|0; - $41 = (_GetCharIndex($$byval_copy5,$$sink)|0); - $42 = HEAP32[$14>>2]|0; - $43 = (((($42) + ($41<<5)|0)) + 4|0); - $44 = (+($$04954|0)); - $45 = $44 + $15; - $46 = (((($42) + ($41<<5)|0)) + 20|0); - $47 = HEAP32[$46>>2]|0; - $48 = (+($47|0)); - $49 = $12 * $48; - $50 = $45 + $49; - $51 = (~~(($50))); - HEAP32[$6>>2] = $51; - $52 = +HEAPF32[$17>>2]; - $53 = (+($$05153|0)); - $54 = $53 + $52; - $55 = (((($42) + ($41<<5)|0)) + 24|0); - $56 = HEAP32[$55>>2]|0; - $57 = (+($56|0)); - $58 = $12 * $57; - $59 = $54 + $58; - $60 = (~~(($59))); - HEAP32[$16>>2] = $60; - $61 = (((($42) + ($41<<5)|0)) + 12|0); - $62 = HEAP32[$61>>2]|0; - $63 = (+($62|0)); - $64 = $12 * $63; - $65 = (~~(($64))); - HEAP32[$18>>2] = $65; - $66 = (((($42) + ($41<<5)|0)) + 16|0); - $67 = HEAP32[$66>>2]|0; - $68 = (+($67|0)); - $69 = $12 * $68; - $70 = (~~(($69))); - HEAP32[$19>>2] = $70; - HEAPF32[$7>>2] = 0.0; - HEAPF32[$20>>2] = 0.0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; - ;HEAP32[$$byval_copy2>>2]=HEAP32[$43>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$43+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$43+8>>2]|0;HEAP32[$$byval_copy2+12>>2]=HEAP32[$43+12>>2]|0; - ;HEAP32[$$byval_copy3>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$byval_copy3+12>>2]=HEAP32[$6+12>>2]|0; - ;HEAP32[$$byval_copy4>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$7+4>>2]|0; - ;HEAP8[$$byval_copy5>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy5+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy5+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy5+3>>0]=HEAP8[$5+3>>0]|0; - _DrawTexturePro($$byval_copy1,$$byval_copy2,$$byval_copy3,$$byval_copy4,0.0,$$byval_copy5); - $71 = HEAP32[$14>>2]|0; - $72 = (((($71) + ($41<<5)|0)) + 28|0); - $73 = HEAP32[$72>>2]|0; - $74 = ($73|0)==(0); - if ($74) { - $75 = (((($71) + ($41<<5)|0)) + 12|0); - $76 = HEAP32[$75>>2]|0; - $77 = (+($76|0)); - $78 = $12 * $77; - $79 = $21 + $78; - $80 = (~~(($79))); - $81 = (($80) + ($$04954))|0; - $$150 = $81;$$152 = $$05153;$$2 = $$1; - break; - } else { - $82 = (+($73|0)); - $83 = $12 * $82; - $84 = $21 + $83; - $85 = (~~(($84))); - $86 = (($85) + ($$04954))|0; - $$150 = $86;$$152 = $$05153;$$2 = $$1; - break; - } - } - } while(0); - $87 = (($$2) + 1)|0; - $88 = ($87|0)<($8|0); - if ($88) { - $$04954 = $$150;$$05153 = $$152;$$055 = $87; - } else { - break; - } - } - STACKTOP = sp;return; -} -function _GetCharIndex($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$08 = 0, $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 24|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)>(0); - if (!($4)) { - $$08 = 0; - return ($$08|0); - } - $5 = ((($0)) + 28|0); - $6 = HEAP32[$5>>2]|0; - $$09 = 0; - while(1) { - $7 = (($6) + ($$09<<5)|0); - $8 = HEAP32[$7>>2]|0; - $9 = ($8|0)==($1|0); - if ($9) { - $$08 = $$09; - label = 5; - break; - } - $10 = (($$09) + 1)|0; - $11 = HEAP32[$2>>2]|0; - $12 = ($10|0)<($11|0); - if ($12) { - $$09 = $10; - } else { - $$08 = 0; - label = 5; - break; - } - } - if ((label|0) == 5) { - return ($$08|0); - } - return (0)|0; -} -function _DrawTexturePro($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = +$4; - $5 = $5|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0; - var $50 = 0, $51 = 0.0, $52 = 0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0; - var $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0, $83 = 0.0, $84 = 0, $85 = 0, $86 = 0; - var $87 = 0.0, $88 = 0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0, $92 = 0.0, $93 = 0, $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $6 = HEAP32[$0>>2]|0; - $7 = ($6|0)==(0); - if ($7) { - return; - } - $8 = ((($1)) + 8|0); - $9 = HEAP32[$8>>2]|0; - $10 = ($9|0)<(0); - if ($10) { - $11 = HEAP32[$1>>2]|0; - $12 = (($11) - ($9))|0; - HEAP32[$1>>2] = $12; - } - $13 = ((($1)) + 12|0); - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)<(0); - if ($15) { - $16 = ((($1)) + 4|0); - $17 = HEAP32[$16>>2]|0; - $18 = (($17) - ($14))|0; - HEAP32[$16>>2] = $18; - } - $19 = HEAP32[$0>>2]|0; - _rlEnableTexture($19); - _rlPushMatrix(); - $20 = HEAP32[$2>>2]|0; - $21 = (+($20|0)); - $22 = ((($2)) + 4|0); - $23 = HEAP32[$22>>2]|0; - $24 = (+($23|0)); - _rlTranslatef($21,$24,0.0); - _rlRotatef($4,0.0,0.0,1.0); - $25 = +HEAPF32[$3>>2]; - $26 = -$25; - $27 = ((($3)) + 4|0); - $28 = +HEAPF32[$27>>2]; - $29 = -$28; - _rlTranslatef($26,$29,0.0); - _rlBegin(7); - $30 = HEAP8[$5>>0]|0; - $31 = ((($5)) + 1|0); - $32 = HEAP8[$31>>0]|0; - $33 = ((($5)) + 2|0); - $34 = HEAP8[$33>>0]|0; - $35 = ((($5)) + 3|0); - $36 = HEAP8[$35>>0]|0; - _rlColor4ub($30,$32,$34,$36); - $37 = HEAP32[$1>>2]|0; - $38 = (+($37|0)); - $39 = ((($0)) + 4|0); - $40 = HEAP32[$39>>2]|0; - $41 = (+($40|0)); - $42 = $38 / $41; - $43 = ((($1)) + 4|0); - $44 = HEAP32[$43>>2]|0; - $45 = (+($44|0)); - $46 = ((($0)) + 8|0); - $47 = HEAP32[$46>>2]|0; - $48 = (+($47|0)); - $49 = $45 / $48; - _rlTexCoord2f($42,$49); - _rlVertex2f(0.0,0.0); - $50 = HEAP32[$1>>2]|0; - $51 = (+($50|0)); - $52 = HEAP32[$39>>2]|0; - $53 = (+($52|0)); - $54 = $51 / $53; - $55 = HEAP32[$43>>2]|0; - $56 = HEAP32[$13>>2]|0; - $57 = (($56) + ($55))|0; - $58 = (+($57|0)); - $59 = HEAP32[$46>>2]|0; - $60 = (+($59|0)); - $61 = $58 / $60; - _rlTexCoord2f($54,$61); - $62 = ((($2)) + 12|0); - $63 = HEAP32[$62>>2]|0; - $64 = (+($63|0)); - _rlVertex2f(0.0,$64); - $65 = HEAP32[$1>>2]|0; - $66 = HEAP32[$8>>2]|0; - $67 = (($66) + ($65))|0; - $68 = (+($67|0)); - $69 = HEAP32[$39>>2]|0; - $70 = (+($69|0)); - $71 = $68 / $70; - $72 = HEAP32[$43>>2]|0; - $73 = HEAP32[$13>>2]|0; - $74 = (($73) + ($72))|0; - $75 = (+($74|0)); - $76 = HEAP32[$46>>2]|0; - $77 = (+($76|0)); - $78 = $75 / $77; - _rlTexCoord2f($71,$78); - $79 = ((($2)) + 8|0); - $80 = HEAP32[$79>>2]|0; - $81 = (+($80|0)); - $82 = HEAP32[$62>>2]|0; - $83 = (+($82|0)); - _rlVertex2f($81,$83); - $84 = HEAP32[$1>>2]|0; - $85 = HEAP32[$8>>2]|0; - $86 = (($85) + ($84))|0; - $87 = (+($86|0)); - $88 = HEAP32[$39>>2]|0; - $89 = (+($88|0)); - $90 = $87 / $89; - $91 = HEAP32[$43>>2]|0; - $92 = (+($91|0)); - $93 = HEAP32[$46>>2]|0; - $94 = (+($93|0)); - $95 = $92 / $94; - _rlTexCoord2f($90,$95); - $96 = HEAP32[$79>>2]|0; - $97 = (+($96|0)); - _rlVertex2f($97,0.0); - _rlEnd(); - _rlPopMatrix(); - _rlDisableTexture(); - return; -} -function _rlEnableTexture($0) { - $0 = $0|0; - var $$pr = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[5144]|0; - $2 = HEAP32[5142]|0; - $3 = (($2) + -1)|0; - $4 = (((($1) + (($3*144)|0)|0)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = ($5|0)==($0|0); - if ($6) { - return; - } - $7 = (($1) + (($3*144)|0)|0); - $8 = HEAP32[$7>>2]|0; - $9 = ($8|0)>(0); - $10 = (($2) + 1)|0; - if ($9) { - HEAP32[5142] = $10; - $12 = $10; - } else { - $$pr = HEAP32[5142]|0; - $12 = $$pr; - } - $11 = ($12|0)>(255); - if ($11) { - _rlglDraw(); - HEAP32[5142] = 1; - } - $13 = HEAP32[5144]|0; - $14 = HEAP32[5142]|0; - $15 = (($14) + -1)|0; - $16 = (((($13) + (($15*144)|0)|0)) + 8|0); - HEAP32[$16>>2] = $0; - $17 = (($13) + (($15*144)|0)|0); - HEAP32[$17>>2] = 0; - return; -} -function _rlPushMatrix() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $0 = HEAP32[5330]|0; - $1 = ($0|0)==(15); - if ($1) { - HEAP32[$vararg_buffer>>2] = 16; - _TraceLog(2,10166,$vararg_buffer); - } - $2 = HEAP32[5330]|0; - $3 = (21324 + ($2<<6)|0); - $4 = HEAP32[5587]|0; - dest=$3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _rlLoadIdentity(); - $5 = HEAP32[5330]|0; - $6 = (($5) + 1)|0; - HEAP32[5330] = $6; - $7 = HEAP32[5592]|0; - $8 = ($7|0)==(5888); - if (!($8)) { - STACKTOP = sp;return; - } - HEAP32[5588] = 1; - STACKTOP = sp;return; -} -function _rlTranslatef($0,$1,$2) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy1 = sp + 192|0; - $$byval_copy = sp + 128|0; - $3 = sp + 64|0; - $4 = sp; - _MatrixTranslate($3,$0,$1,$2); - $5 = HEAP32[5587]|0; - dest=$$byval_copy; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy1; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($4,$$byval_copy,$$byval_copy1); - dest=$5; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _rlRotatef($0,$1,$2,$3) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - var $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); - $$byval_copy2 = sp + 272|0; - $$byval_copy1 = sp + 208|0; - $4 = sp + 144|0; - $5 = sp + 64|0; - $6 = sp + 80|0; - $7 = sp; - _MatrixIdentity($4); - HEAPF32[$5>>2] = $1; - $8 = ((($5)) + 4|0); - HEAPF32[$8>>2] = $2; - $9 = ((($5)) + 8|0); - HEAPF32[$9>>2] = $3; - _Vector3Normalize($5); - $10 = $0 * 0.01745329238474369; - ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0; - _MatrixRotate($6,$$byval_copy2,$10); - dest=$4; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $11 = HEAP32[5587]|0; - dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy2; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($7,$$byval_copy1,$$byval_copy2); - dest=$11; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _rlBegin($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - HEAP32[5591] = $0; - return; -} -function _rlColor4ub($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$sink37 = 0, $$sink38 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = HEAP32[5591]|0; - switch ($4|0) { - case 1: { - $$sink37 = (20588);$$sink38 = (20600); - break; - } - case 4: { - $$sink37 = (20636);$$sink38 = (20648); - break; - } - case 7: { - $$sink37 = (20396);$$sink38 = (20408); - break; - } - default: { - return; - } - } - $5 = HEAP32[$$sink38>>2]|0; - $6 = HEAP32[$$sink37>>2]|0; - $7 = $6 << 2; - $8 = (($5) + ($7)|0); - HEAP8[$8>>0] = $0; - $9 = HEAP32[$$sink38>>2]|0; - $10 = HEAP32[$$sink37>>2]|0; - $11 = $10 << 2; - $12 = $11 | 1; - $13 = (($9) + ($12)|0); - HEAP8[$13>>0] = $1; - $14 = HEAP32[$$sink38>>2]|0; - $15 = HEAP32[$$sink37>>2]|0; - $16 = $15 << 2; - $17 = $16 | 2; - $18 = (($14) + ($17)|0); - HEAP8[$18>>0] = $2; - $19 = HEAP32[$$sink38>>2]|0; - $20 = HEAP32[$$sink37>>2]|0; - $21 = $20 << 2; - $22 = $21 | 3; - $23 = (($19) + ($22)|0); - HEAP8[$23>>0] = $3; - $24 = HEAP32[$$sink37>>2]|0; - $25 = (($24) + 1)|0; - HEAP32[$$sink37>>2] = $25; - return; -} -function _rlNormal3f($0,$1,$2) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function _rlTexCoord2f($0,$1) { - $0 = +$0; - $1 = +$1; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP32[5591]|0; - $3 = ($2|0)==(7); - if (!($3)) { - return; - } - $4 = HEAP32[(20404)>>2]|0; - $5 = HEAP32[(20392)>>2]|0; - $6 = $5 << 1; - $7 = (($4) + ($6<<2)|0); - HEAPF32[$7>>2] = $0; - $8 = $6 | 1; - $9 = (($4) + ($8<<2)|0); - HEAPF32[$9>>2] = $1; - $10 = (($5) + 1)|0; - HEAP32[(20392)>>2] = $10; - return; -} -function _rlVertex2f($0,$1) { - $0 = +$0; - $1 = +$1; - var $2 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = +HEAPF32[902]; - _rlVertex3f($0,$1,$2); - return; -} -function _rlEnd() { - var $$03956 = 0, $$04052 = 0, $$04154 = 0, $$04248 = 0, $$04347 = 0, $$byval_copy = 0, $$promoted = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0; - var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0; - var $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0; - var $146 = 0, $147 = 0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond60 = 0, $exitcond63 = 0; - var $scevgep = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $$byval_copy = sp; - $0 = HEAP32[5588]|0; - $1 = ($0|0)==(0); - if (!($1)) { - $2 = HEAP32[5589]|0; - $3 = ($2|0)>(0); - if ($3) { - $$03956 = 0; - while(1) { - $6 = HEAP32[5590]|0; - $7 = (($6) + (($$03956*12)|0)|0); - $8 = HEAP32[5587]|0; - dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _Vector3Transform($7,$$byval_copy); - $9 = (($$03956) + 1)|0; - $5 = HEAP32[5589]|0; - $10 = ($9|0)<($5|0); - if ($10) { - $$03956 = $9; - } else { - break; - } - } - HEAP32[5588] = 0; - $4 = ($5|0)>(0); - if ($4) { - $$04154 = 0; - while(1) { - $11 = HEAP32[5590]|0; - $12 = (($11) + (($$04154*12)|0)|0); - $13 = +HEAPF32[$12>>2]; - $14 = (((($11) + (($$04154*12)|0)|0)) + 4|0); - $15 = +HEAPF32[$14>>2]; - $16 = (((($11) + (($$04154*12)|0)|0)) + 8|0); - $17 = +HEAPF32[$16>>2]; - _rlVertex3f($13,$15,$17); - $18 = (($$04154) + 1)|0; - $19 = HEAP32[5589]|0; - $20 = ($18|0)<($19|0); - if ($20) { - $$04154 = $18; - } else { - break; - } - } - } - } else { - HEAP32[5588] = 0; - } - HEAP32[5589] = 0; - } - $21 = HEAP32[5591]|0; - switch ($21|0) { - case 1: { - $22 = HEAP32[5145]|0; - $23 = HEAP32[(20588)>>2]|0; - $24 = ($22|0)==($23|0); - if ($24) { - $148 = +HEAPF32[902]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[902] = $149; - STACKTOP = sp;return; - } - $25 = (($22) - ($23))|0; - $26 = ($25|0)>(0); - if ($26) { - $$04347 = 0; - } else { - $148 = +HEAPF32[902]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[902] = $149; - STACKTOP = sp;return; - } - while(1) { - $27 = HEAP32[(20600)>>2]|0; - $28 = HEAP32[(20588)>>2]|0; - $29 = $28 << 2; - $30 = (($29) + -4)|0; - $31 = (($27) + ($30)|0); - $32 = HEAP8[$31>>0]|0; - $33 = (($27) + ($29)|0); - HEAP8[$33>>0] = $32; - $34 = HEAP32[(20600)>>2]|0; - $35 = HEAP32[(20588)>>2]|0; - $36 = $35 << 2; - $37 = (($36) + -3)|0; - $38 = (($34) + ($37)|0); - $39 = HEAP8[$38>>0]|0; - $40 = $36 | 1; - $41 = (($34) + ($40)|0); - HEAP8[$41>>0] = $39; - $42 = HEAP32[(20600)>>2]|0; - $43 = HEAP32[(20588)>>2]|0; - $44 = $43 << 2; - $45 = (($44) + -2)|0; - $46 = (($42) + ($45)|0); - $47 = HEAP8[$46>>0]|0; - $48 = $44 | 2; - $49 = (($42) + ($48)|0); - HEAP8[$49>>0] = $47; - $50 = HEAP32[(20600)>>2]|0; - $51 = HEAP32[(20588)>>2]|0; - $52 = $51 << 2; - $53 = (($52) + -1)|0; - $54 = (($50) + ($53)|0); - $55 = HEAP8[$54>>0]|0; - $56 = $52 | 3; - $57 = (($50) + ($56)|0); - HEAP8[$57>>0] = $55; - $58 = HEAP32[(20588)>>2]|0; - $59 = (($58) + 1)|0; - HEAP32[(20588)>>2] = $59; - $60 = (($$04347) + 1)|0; - $exitcond = ($60|0)==($25|0); - if ($exitcond) { - break; - } else { - $$04347 = $60; - } - } - $148 = +HEAPF32[902]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[902] = $149; - STACKTOP = sp;return; - break; - } - case 4: { - $61 = HEAP32[5157]|0; - $62 = HEAP32[(20636)>>2]|0; - $63 = ($61|0)==($62|0); - if ($63) { - $148 = +HEAPF32[902]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[902] = $149; - STACKTOP = sp;return; - } - $64 = (($61) - ($62))|0; - $65 = ($64|0)>(0); - if ($65) { - $$04248 = 0; - } else { - $148 = +HEAPF32[902]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[902] = $149; - STACKTOP = sp;return; - } - while(1) { - $66 = HEAP32[(20648)>>2]|0; - $67 = HEAP32[(20636)>>2]|0; - $68 = $67 << 2; - $69 = (($68) + -4)|0; - $70 = (($66) + ($69)|0); - $71 = HEAP8[$70>>0]|0; - $72 = (($66) + ($68)|0); - HEAP8[$72>>0] = $71; - $73 = HEAP32[(20648)>>2]|0; - $74 = HEAP32[(20636)>>2]|0; - $75 = $74 << 2; - $76 = (($75) + -3)|0; - $77 = (($73) + ($76)|0); - $78 = HEAP8[$77>>0]|0; - $79 = $75 | 1; - $80 = (($73) + ($79)|0); - HEAP8[$80>>0] = $78; - $81 = HEAP32[(20648)>>2]|0; - $82 = HEAP32[(20636)>>2]|0; - $83 = $82 << 2; - $84 = (($83) + -2)|0; - $85 = (($81) + ($84)|0); - $86 = HEAP8[$85>>0]|0; - $87 = $83 | 2; - $88 = (($81) + ($87)|0); - HEAP8[$88>>0] = $86; - $89 = HEAP32[(20648)>>2]|0; - $90 = HEAP32[(20636)>>2]|0; - $91 = $90 << 2; - $92 = (($91) + -1)|0; - $93 = (($89) + ($92)|0); - $94 = HEAP8[$93>>0]|0; - $95 = $91 | 3; - $96 = (($89) + ($95)|0); - HEAP8[$96>>0] = $94; - $97 = HEAP32[(20636)>>2]|0; - $98 = (($97) + 1)|0; - HEAP32[(20636)>>2] = $98; - $99 = (($$04248) + 1)|0; - $exitcond60 = ($99|0)==($64|0); - if ($exitcond60) { - break; - } else { - $$04248 = $99; - } - } - $148 = +HEAPF32[902]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[902] = $149; - STACKTOP = sp;return; - break; - } - case 7: { - $100 = HEAP32[5097]|0; - $101 = HEAP32[(20396)>>2]|0; - $102 = ($100|0)==($101|0); - if (!($102)) { - $103 = (($100) - ($101))|0; - $104 = ($103|0)>(0); - if ($104) { - $$04052 = 0; - while(1) { - $105 = HEAP32[(20408)>>2]|0; - $106 = HEAP32[(20396)>>2]|0; - $107 = $106 << 2; - $108 = (($107) + -4)|0; - $109 = (($105) + ($108)|0); - $110 = HEAP8[$109>>0]|0; - $111 = (($105) + ($107)|0); - HEAP8[$111>>0] = $110; - $112 = HEAP32[(20408)>>2]|0; - $113 = HEAP32[(20396)>>2]|0; - $114 = $113 << 2; - $115 = (($114) + -3)|0; - $116 = (($112) + ($115)|0); - $117 = HEAP8[$116>>0]|0; - $118 = $114 | 1; - $119 = (($112) + ($118)|0); - HEAP8[$119>>0] = $117; - $120 = HEAP32[(20408)>>2]|0; - $121 = HEAP32[(20396)>>2]|0; - $122 = $121 << 2; - $123 = (($122) + -2)|0; - $124 = (($120) + ($123)|0); - $125 = HEAP8[$124>>0]|0; - $126 = $122 | 2; - $127 = (($120) + ($126)|0); - HEAP8[$127>>0] = $125; - $128 = HEAP32[(20408)>>2]|0; - $129 = HEAP32[(20396)>>2]|0; - $130 = $129 << 2; - $131 = (($130) + -1)|0; - $132 = (($128) + ($131)|0); - $133 = HEAP8[$132>>0]|0; - $134 = $130 | 3; - $135 = (($128) + ($134)|0); - HEAP8[$135>>0] = $133; - $136 = HEAP32[(20396)>>2]|0; - $137 = (($136) + 1)|0; - HEAP32[(20396)>>2] = $137; - $138 = (($$04052) + 1)|0; - $exitcond63 = ($138|0)==($103|0); - if ($exitcond63) { - break; - } else { - $$04052 = $138; - } - } - } - } - $139 = HEAP32[5097]|0; - $140 = HEAP32[(20392)>>2]|0; - $141 = ($139|0)>($140|0); - if (!($141)) { - $148 = +HEAPF32[902]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[902] = $149; - STACKTOP = sp;return; - } - $142 = HEAP32[(20404)>>2]|0; - $$promoted = HEAP32[(20392)>>2]|0; - $143 = $$promoted << 1; - $scevgep = (($142) + ($143<<2)|0); - $144 = (($139) - ($140))|0; - $145 = $144 << 3; - _memset(($scevgep|0),0,($145|0))|0; - $146 = (($139) + ($$promoted))|0; - $147 = (($146) - ($140))|0; - HEAP32[(20392)>>2] = $147; - $148 = +HEAPF32[902]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[902] = $149; - STACKTOP = sp;return; - break; - } - default: { - $148 = +HEAPF32[902]; - $149 = $148 + 4.9999998736893758E-5; - HEAPF32[902] = $149; - STACKTOP = sp;return; - } - } -} -function _rlPopMatrix() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[5330]|0; - $1 = ($0|0)>(0); - if (!($1)) { - return; - } - $2 = HEAP32[5330]|0; - $3 = (($2) + -1)|0; - $4 = (21324 + ($3<<6)|0); - $5 = HEAP32[5587]|0; - _memmove(($5|0),($4|0),64)|0; - $6 = (($2) + -1)|0; - HEAP32[5330] = $6; - return; -} -function _rlDisableTexture() { - var $0 = 0, $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[5097]|0; - $1 = ($0|0)>(4095); - if (!($1)) { - return; - } - _rlglDraw(); - return; -} -function _rlglDraw() { - var label = 0, sp = 0; - sp = STACKTOP; - _UpdateBuffersDefault(); - _DrawBuffersDefault(); - return; -} -function _UpdateBuffersDefault() { - var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[5145]|0; - $1 = ($0|0)>(0); - if ($1) { - $2 = HEAP32[5202]|0; - $3 = ($2|0)==(0); - if (!($3)) { - $4 = HEAP32[5203]|0; - $5 = HEAP32[(20608)>>2]|0; - FUNCTION_TABLE_vi[$4 & 31]($5); - } - $6 = HEAP32[(20612)>>2]|0; - _glBindBuffer(34962,($6|0)); - $7 = HEAP32[5145]|0; - $8 = ($7*12)|0; - $9 = HEAP32[(20592)>>2]|0; - _glBufferSubData(34962,0,($8|0),($9|0)); - $10 = HEAP32[(20616)>>2]|0; - _glBindBuffer(34962,($10|0)); - $11 = HEAP32[(20588)>>2]|0; - $12 = $11 << 2; - $13 = HEAP32[(20600)>>2]|0; - _glBufferSubData(34962,0,($12|0),($13|0)); - } - $14 = HEAP32[5157]|0; - $15 = ($14|0)>(0); - if ($15) { - $16 = HEAP32[5202]|0; - $17 = ($16|0)==(0); - if (!($17)) { - $18 = HEAP32[5203]|0; - $19 = HEAP32[(20656)>>2]|0; - FUNCTION_TABLE_vi[$18 & 31]($19); - } - $20 = HEAP32[(20660)>>2]|0; - _glBindBuffer(34962,($20|0)); - $21 = HEAP32[5157]|0; - $22 = ($21*12)|0; - $23 = HEAP32[(20640)>>2]|0; - _glBufferSubData(34962,0,($22|0),($23|0)); - $24 = HEAP32[(20664)>>2]|0; - _glBindBuffer(34962,($24|0)); - $25 = HEAP32[(20636)>>2]|0; - $26 = $25 << 2; - $27 = HEAP32[(20648)>>2]|0; - _glBufferSubData(34962,0,($26|0),($27|0)); - } - $28 = HEAP32[5097]|0; - $29 = ($28|0)>(0); - if ($29) { - $30 = HEAP32[5202]|0; - $31 = ($30|0)==(0); - if (!($31)) { - $32 = HEAP32[5203]|0; - $33 = HEAP32[(20416)>>2]|0; - FUNCTION_TABLE_vi[$32 & 31]($33); - } - $34 = HEAP32[(20420)>>2]|0; - _glBindBuffer(34962,($34|0)); - $35 = HEAP32[5097]|0; - $36 = ($35*12)|0; - $37 = HEAP32[(20400)>>2]|0; - _glBufferSubData(34962,0,($36|0),($37|0)); - $38 = HEAP32[(20424)>>2]|0; - _glBindBuffer(34962,($38|0)); - $39 = HEAP32[5097]|0; - $40 = $39 << 3; - $41 = HEAP32[(20404)>>2]|0; - _glBufferSubData(34962,0,($40|0),($41|0)); - $42 = HEAP32[(20428)>>2]|0; - _glBindBuffer(34962,($42|0)); - $43 = HEAP32[5097]|0; - $44 = $43 << 2; - $45 = HEAP32[(20408)>>2]|0; - _glBufferSubData(34962,0,($44|0),($45|0)); - } - $46 = HEAP32[5202]|0; - $47 = ($46|0)==(0); - if ($47) { - return; - } - $48 = HEAP32[5203]|0; - FUNCTION_TABLE_vi[$48 & 31](0); - return; -} -function _DrawBuffersDefault() { - var $$ = 0, $$02830 = 0, $$02932 = 0, $$031 = 0, $$byval_copy2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; - var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; - var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; - var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; - var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0; - var $modelview$byval_copy = 0, $or$cond = 0, $or$cond3 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 320|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(320|0); - $$byval_copy2 = sp + 256|0; - $modelview$byval_copy = sp + 192|0; - $0 = sp + 128|0; - $1 = sp + 64|0; - $2 = sp; - dest=$0; src=20436; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$1; src=20500; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $3 = HEAP32[5141]|0; - $4 = ($3|0)!=(0); - $$ = $4 ? 2 : 1; - $$02932 = 0; - while(1) { - if ($4) { - dest=$modelview$byval_copy; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy2; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _SetStereoView($$02932,$modelview$byval_copy,$$byval_copy2); - } - $8 = HEAP32[5145]|0; - $9 = ($8|0)>(0); - $10 = HEAP32[5157]|0; - $11 = ($10|0)>(0); - $or$cond = $9 | $11; - $12 = HEAP32[5097]|0; - $13 = ($12|0)>(0); - $or$cond3 = $or$cond | $13; - if ($or$cond3) { - $14 = HEAP32[5169]|0; - _glUseProgram(($14|0)); - dest=$modelview$byval_copy; src=20500; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy2; src=20436; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($2,$modelview$byval_copy,$$byval_copy2); - $15 = HEAP32[(20704)>>2]|0; - dest=$$byval_copy2; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $16 = (_MatrixToFloat($$byval_copy2)|0); - _glUniformMatrix4fv(($15|0),1,0,($16|0)); - $17 = HEAP32[(20724)>>2]|0; - _glUniform4f(($17|0),1.0,1.0,1.0,1.0); - $18 = HEAP32[(20736)>>2]|0; - _glUniform1i(($18|0),0); - } - $19 = HEAP32[5145]|0; - $20 = ($19|0)>(0); - if ($20) { - _glActiveTexture(33984); - $21 = HEAP32[5143]|0; - _glBindTexture(3553,($21|0)); - $22 = HEAP32[5202]|0; - $23 = ($22|0)==(0); - if ($23) { - $26 = HEAP32[(20612)>>2]|0; - _glBindBuffer(34962,($26|0)); - $27 = HEAP32[(20680)>>2]|0; - _glVertexAttribPointer(($27|0),3,5126,0,0,(0|0)); - $28 = HEAP32[(20680)>>2]|0; - _glEnableVertexAttribArray(($28|0)); - $29 = HEAP32[(20616)>>2]|0; - _glBindBuffer(34962,($29|0)); - $30 = HEAP32[(20700)>>2]|0; - _glVertexAttribPointer(($30|0),4,5121,1,0,(0|0)); - $31 = HEAP32[(20700)>>2]|0; - _glEnableVertexAttribArray(($31|0)); - } else { - $24 = HEAP32[5203]|0; - $25 = HEAP32[(20608)>>2]|0; - FUNCTION_TABLE_vi[$24 & 31]($25); - } - $32 = HEAP32[5145]|0; - _glDrawArrays(1,0,($32|0)); - $33 = HEAP32[5202]|0; - $34 = ($33|0)==(0); - if ($34) { - _glBindBuffer(34962,0); - } - _glBindTexture(3553,0); - } - $35 = HEAP32[5157]|0; - $36 = ($35|0)>(0); - if ($36) { - _glActiveTexture(33984); - $37 = HEAP32[5143]|0; - _glBindTexture(3553,($37|0)); - $38 = HEAP32[5202]|0; - $39 = ($38|0)==(0); - if ($39) { - $42 = HEAP32[(20660)>>2]|0; - _glBindBuffer(34962,($42|0)); - $43 = HEAP32[(20680)>>2]|0; - _glVertexAttribPointer(($43|0),3,5126,0,0,(0|0)); - $44 = HEAP32[(20680)>>2]|0; - _glEnableVertexAttribArray(($44|0)); - $45 = HEAP32[(20664)>>2]|0; - _glBindBuffer(34962,($45|0)); - $46 = HEAP32[(20700)>>2]|0; - _glVertexAttribPointer(($46|0),4,5121,1,0,(0|0)); - $47 = HEAP32[(20700)>>2]|0; - _glEnableVertexAttribArray(($47|0)); - } else { - $40 = HEAP32[5203]|0; - $41 = HEAP32[(20656)>>2]|0; - FUNCTION_TABLE_vi[$40 & 31]($41); - } - $48 = HEAP32[5157]|0; - _glDrawArrays(4,0,($48|0)); - $49 = HEAP32[5202]|0; - $50 = ($49|0)==(0); - if ($50) { - _glBindBuffer(34962,0); - } - _glBindTexture(3553,0); - } - $51 = HEAP32[5097]|0; - $52 = ($51|0)>(0); - if ($52) { - $53 = HEAP32[5202]|0; - $54 = ($53|0)==(0); - if ($54) { - $57 = HEAP32[(20420)>>2]|0; - _glBindBuffer(34962,($57|0)); - $58 = HEAP32[(20680)>>2]|0; - _glVertexAttribPointer(($58|0),3,5126,0,0,(0|0)); - $59 = HEAP32[(20680)>>2]|0; - _glEnableVertexAttribArray(($59|0)); - $60 = HEAP32[(20424)>>2]|0; - _glBindBuffer(34962,($60|0)); - $61 = HEAP32[(20684)>>2]|0; - _glVertexAttribPointer(($61|0),2,5126,0,0,(0|0)); - $62 = HEAP32[(20684)>>2]|0; - _glEnableVertexAttribArray(($62|0)); - $63 = HEAP32[(20428)>>2]|0; - _glBindBuffer(34962,($63|0)); - $64 = HEAP32[(20700)>>2]|0; - _glVertexAttribPointer(($64|0),4,5121,1,0,(0|0)); - $65 = HEAP32[(20700)>>2]|0; - _glEnableVertexAttribArray(($65|0)); - $66 = HEAP32[(20432)>>2]|0; - _glBindBuffer(34963,($66|0)); - } else { - $55 = HEAP32[5203]|0; - $56 = HEAP32[(20416)>>2]|0; - FUNCTION_TABLE_vi[$55 & 31]($56); - } - $67 = HEAP32[5142]|0; - $68 = ($67|0)>(0); - if ($68) { - $$02830 = 0;$$031 = 0; - while(1) { - $71 = HEAP32[5144]|0; - $72 = (($71) + (($$031*144)|0)|0); - $73 = HEAP32[$72>>2]|0; - $74 = (($73|0) / 4)&-1; - $75 = ($74*6)|0; - _glActiveTexture(33984); - $76 = HEAP32[5144]|0; - $77 = (((($76) + (($$031*144)|0)|0)) + 8|0); - $78 = HEAP32[$77>>2]|0; - _glBindTexture(3553,($78|0)); - $79 = $$02830 << 1; - $80 = $79; - _glDrawElements(4,($75|0),5123,($80|0)); - $81 = HEAP32[5144]|0; - $82 = (($81) + (($$031*144)|0)|0); - $83 = HEAP32[$82>>2]|0; - $84 = (($83|0) / 4)&-1; - $85 = ($84*6)|0; - $86 = (($85) + ($$02830))|0; - $87 = (($$031) + 1)|0; - $88 = HEAP32[5142]|0; - $89 = ($87|0)<($88|0); - if ($89) { - $$02830 = $86;$$031 = $87; - } else { - break; - } - } - } - $69 = HEAP32[5202]|0; - $70 = ($69|0)==(0); - if ($70) { - _glBindBuffer(34962,0); - _glBindBuffer(34963,0); - } - _glBindTexture(3553,0); - } - $90 = HEAP32[5202]|0; - $91 = ($90|0)==(0); - if (!($91)) { - $92 = HEAP32[5203]|0; - FUNCTION_TABLE_vi[$92 & 31](0); - } - _glUseProgram(0); - $93 = (($$02932) + 1)|0; - $94 = ($93|0)<($$|0); - if ($94) { - $$02932 = $93; - } else { - break; - } - } - HEAP32[5142] = 1; - $5 = HEAP32[5143]|0; - $6 = HEAP32[5144]|0; - $7 = ((($6)) + 8|0); - HEAP32[$7>>2] = $5; - HEAP32[$6>>2] = 0; - HEAP32[5145] = 0; - HEAP32[(20588)>>2] = 0; - HEAP32[5157] = 0; - HEAP32[(20636)>>2] = 0; - HEAP32[5097] = 0; - HEAP32[(20392)>>2] = 0; - HEAP32[(20396)>>2] = 0; - HEAPF32[902] = -1.0; - dest=20436; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=20500; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _SetStereoView($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $$byval_copy3 = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy3 = sp + 192|0; - $$byval_copy = sp + 64|0; - $3 = sp; - $4 = sp + 128|0; - dest=$3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $5 = HEAP32[5220]|0; - $6 = Math_imul($5, $0)|0; - $7 = (($6|0) / 2)&-1; - $8 = (($5|0) / 2)&-1; - $9 = HEAP32[5221]|0; - _rlViewport($7,0,$8,$9); - $10 = (21192 + ($0<<6)|0); - dest=$$byval_copy; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy3; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($4,$$byval_copy,$$byval_copy3); - $11 = (21064 + ($0<<6)|0); - dest=$3; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _SetMatrixModelview($$byval_copy3); - dest=$$byval_copy3; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _SetMatrixProjection($$byval_copy3); - STACKTOP = sp;return; -} -function _MatrixMultiply($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0.0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0; - var $104 = 0.0, $105 = 0, $106 = 0.0, $107 = 0.0, $108 = 0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0; - var $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0; - var $140 = 0.0, $141 = 0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0; - var $159 = 0.0, $16 = 0.0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0; - var $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0; - var $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0; - var $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0; - var $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0; - var $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $3 = +HEAPF32[$1>>2]; - $4 = +HEAPF32[$2>>2]; - $5 = $3 * $4; - $6 = ((($1)) + 16|0); - $7 = +HEAPF32[$6>>2]; - $8 = ((($2)) + 4|0); - $9 = +HEAPF32[$8>>2]; - $10 = $7 * $9; - $11 = $5 + $10; - $12 = ((($1)) + 32|0); - $13 = +HEAPF32[$12>>2]; - $14 = ((($2)) + 8|0); - $15 = +HEAPF32[$14>>2]; - $16 = $13 * $15; - $17 = $11 + $16; - $18 = ((($1)) + 48|0); - $19 = +HEAPF32[$18>>2]; - $20 = ((($2)) + 12|0); - $21 = +HEAPF32[$20>>2]; - $22 = $19 * $21; - $23 = $17 + $22; - $24 = ((($2)) + 16|0); - $25 = +HEAPF32[$24>>2]; - $26 = $3 * $25; - $27 = ((($2)) + 20|0); - $28 = +HEAPF32[$27>>2]; - $29 = $7 * $28; - $30 = $26 + $29; - $31 = ((($2)) + 24|0); - $32 = +HEAPF32[$31>>2]; - $33 = $13 * $32; - $34 = $30 + $33; - $35 = ((($2)) + 28|0); - $36 = +HEAPF32[$35>>2]; - $37 = $19 * $36; - $38 = $34 + $37; - $39 = ((($2)) + 32|0); - $40 = +HEAPF32[$39>>2]; - $41 = $3 * $40; - $42 = ((($2)) + 36|0); - $43 = +HEAPF32[$42>>2]; - $44 = $7 * $43; - $45 = $41 + $44; - $46 = ((($2)) + 40|0); - $47 = +HEAPF32[$46>>2]; - $48 = $13 * $47; - $49 = $45 + $48; - $50 = ((($2)) + 44|0); - $51 = +HEAPF32[$50>>2]; - $52 = $19 * $51; - $53 = $49 + $52; - $54 = ((($2)) + 48|0); - $55 = +HEAPF32[$54>>2]; - $56 = $3 * $55; - $57 = ((($2)) + 52|0); - $58 = +HEAPF32[$57>>2]; - $59 = $7 * $58; - $60 = $56 + $59; - $61 = ((($2)) + 56|0); - $62 = +HEAPF32[$61>>2]; - $63 = $13 * $62; - $64 = $60 + $63; - $65 = ((($2)) + 60|0); - $66 = +HEAPF32[$65>>2]; - $67 = $19 * $66; - $68 = $64 + $67; - $69 = ((($1)) + 4|0); - $70 = +HEAPF32[$69>>2]; - $71 = $4 * $70; - $72 = ((($1)) + 20|0); - $73 = +HEAPF32[$72>>2]; - $74 = $9 * $73; - $75 = $71 + $74; - $76 = ((($1)) + 36|0); - $77 = +HEAPF32[$76>>2]; - $78 = $15 * $77; - $79 = $75 + $78; - $80 = ((($1)) + 52|0); - $81 = +HEAPF32[$80>>2]; - $82 = $21 * $81; - $83 = $79 + $82; - $84 = $25 * $70; - $85 = $28 * $73; - $86 = $84 + $85; - $87 = $32 * $77; - $88 = $86 + $87; - $89 = $36 * $81; - $90 = $88 + $89; - $91 = $40 * $70; - $92 = $43 * $73; - $93 = $91 + $92; - $94 = $47 * $77; - $95 = $93 + $94; - $96 = $51 * $81; - $97 = $95 + $96; - $98 = $55 * $70; - $99 = $58 * $73; - $100 = $98 + $99; - $101 = $62 * $77; - $102 = $100 + $101; - $103 = $66 * $81; - $104 = $102 + $103; - $105 = ((($1)) + 8|0); - $106 = +HEAPF32[$105>>2]; - $107 = $4 * $106; - $108 = ((($1)) + 24|0); - $109 = +HEAPF32[$108>>2]; - $110 = $9 * $109; - $111 = $107 + $110; - $112 = ((($1)) + 40|0); - $113 = +HEAPF32[$112>>2]; - $114 = $15 * $113; - $115 = $111 + $114; - $116 = ((($1)) + 56|0); - $117 = +HEAPF32[$116>>2]; - $118 = $21 * $117; - $119 = $115 + $118; - $120 = $25 * $106; - $121 = $28 * $109; - $122 = $120 + $121; - $123 = $32 * $113; - $124 = $122 + $123; - $125 = $36 * $117; - $126 = $124 + $125; - $127 = $40 * $106; - $128 = $43 * $109; - $129 = $127 + $128; - $130 = $47 * $113; - $131 = $129 + $130; - $132 = $51 * $117; - $133 = $131 + $132; - $134 = $55 * $106; - $135 = $58 * $109; - $136 = $134 + $135; - $137 = $62 * $113; - $138 = $136 + $137; - $139 = $66 * $117; - $140 = $138 + $139; - $141 = ((($1)) + 12|0); - $142 = +HEAPF32[$141>>2]; - $143 = $4 * $142; - $144 = ((($1)) + 28|0); - $145 = +HEAPF32[$144>>2]; - $146 = $9 * $145; - $147 = $143 + $146; - $148 = ((($1)) + 44|0); - $149 = +HEAPF32[$148>>2]; - $150 = $15 * $149; - $151 = $147 + $150; - $152 = ((($1)) + 60|0); - $153 = +HEAPF32[$152>>2]; - $154 = $21 * $153; - $155 = $151 + $154; - $156 = $25 * $142; - $157 = $28 * $145; - $158 = $156 + $157; - $159 = $32 * $149; - $160 = $158 + $159; - $161 = $36 * $153; - $162 = $160 + $161; - $163 = $40 * $142; - $164 = $43 * $145; - $165 = $163 + $164; - $166 = $47 * $149; - $167 = $165 + $166; - $168 = $51 * $153; - $169 = $167 + $168; - $170 = $55 * $142; - $171 = $58 * $145; - $172 = $170 + $171; - $173 = $62 * $149; - $174 = $172 + $173; - $175 = $66 * $153; - $176 = $174 + $175; - HEAPF32[$0>>2] = $23; - $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $83; - $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $119; - $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); - HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = $155; - $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); - HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $38; - $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); - HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $90; - $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); - HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $126; - $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); - HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = $162; - $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); - HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $53; - $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); - HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $97; - $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); - HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $133; - $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); - HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = $169; - $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); - HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $68; - $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); - HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $104; - $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); - HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $140; - $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); - HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = $176; - return; -} -function _MatrixToFloat($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - HEAP32[5204] = $1; - $2 = ((($0)) + 16|0); - $3 = HEAP32[$2>>2]|0; - HEAP32[(20820)>>2] = $3; - $4 = ((($0)) + 32|0); - $5 = HEAP32[$4>>2]|0; - HEAP32[(20824)>>2] = $5; - $6 = ((($0)) + 48|0); - $7 = HEAP32[$6>>2]|0; - HEAP32[(20828)>>2] = $7; - $8 = ((($0)) + 4|0); - $9 = HEAP32[$8>>2]|0; - HEAP32[(20832)>>2] = $9; - $10 = ((($0)) + 20|0); - $11 = HEAP32[$10>>2]|0; - HEAP32[(20836)>>2] = $11; - $12 = ((($0)) + 36|0); - $13 = HEAP32[$12>>2]|0; - HEAP32[(20840)>>2] = $13; - $14 = ((($0)) + 52|0); - $15 = HEAP32[$14>>2]|0; - HEAP32[(20844)>>2] = $15; - $16 = ((($0)) + 8|0); - $17 = HEAP32[$16>>2]|0; - HEAP32[(20848)>>2] = $17; - $18 = ((($0)) + 24|0); - $19 = HEAP32[$18>>2]|0; - HEAP32[(20852)>>2] = $19; - $20 = ((($0)) + 40|0); - $21 = HEAP32[$20>>2]|0; - HEAP32[(20856)>>2] = $21; - $22 = ((($0)) + 56|0); - $23 = HEAP32[$22>>2]|0; - HEAP32[(20860)>>2] = $23; - $24 = ((($0)) + 12|0); - $25 = HEAP32[$24>>2]|0; - HEAP32[(20864)>>2] = $25; - $26 = ((($0)) + 28|0); - $27 = HEAP32[$26>>2]|0; - HEAP32[(20868)>>2] = $27; - $28 = ((($0)) + 44|0); - $29 = HEAP32[$28>>2]|0; - HEAP32[(20872)>>2] = $29; - $30 = ((($0)) + 60|0); - $31 = HEAP32[$30>>2]|0; - HEAP32[(20876)>>2] = $31; - return (20816|0); -} -function _rlViewport($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var label = 0, sp = 0; - sp = STACKTOP; - _glViewport(($0|0),($1|0),($2|0),($3|0)); - return; -} -function _SetMatrixModelview($0) { - $0 = $0|0; - var dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - dest=20500; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - return; -} -function _SetMatrixProjection($0) { - $0 = $0|0; - var dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - dest=20436; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - return; -} -function _Vector3Transform($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0; - var $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0.0; - var $47 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = +HEAPF32[$0>>2]; - $3 = ((($0)) + 4|0); - $4 = +HEAPF32[$3>>2]; - $5 = ((($0)) + 8|0); - $6 = +HEAPF32[$5>>2]; - $7 = +HEAPF32[$1>>2]; - $8 = $2 * $7; - $9 = ((($1)) + 4|0); - $10 = +HEAPF32[$9>>2]; - $11 = $4 * $10; - $12 = $8 + $11; - $13 = ((($1)) + 8|0); - $14 = +HEAPF32[$13>>2]; - $15 = $6 * $14; - $16 = $12 + $15; - $17 = ((($1)) + 12|0); - $18 = +HEAPF32[$17>>2]; - $19 = $18 + $16; - HEAPF32[$0>>2] = $19; - $20 = ((($1)) + 16|0); - $21 = +HEAPF32[$20>>2]; - $22 = $2 * $21; - $23 = ((($1)) + 20|0); - $24 = +HEAPF32[$23>>2]; - $25 = $4 * $24; - $26 = $22 + $25; - $27 = ((($1)) + 24|0); - $28 = +HEAPF32[$27>>2]; - $29 = $6 * $28; - $30 = $26 + $29; - $31 = ((($1)) + 28|0); - $32 = +HEAPF32[$31>>2]; - $33 = $32 + $30; - HEAPF32[$3>>2] = $33; - $34 = ((($1)) + 32|0); - $35 = +HEAPF32[$34>>2]; - $36 = $2 * $35; - $37 = ((($1)) + 36|0); - $38 = +HEAPF32[$37>>2]; - $39 = $4 * $38; - $40 = $36 + $39; - $41 = ((($1)) + 40|0); - $42 = +HEAPF32[$41>>2]; - $43 = $6 * $42; - $44 = $40 + $43; - $45 = ((($1)) + 44|0); - $46 = +HEAPF32[$45>>2]; - $47 = $46 + $44; - HEAPF32[$5>>2] = $47; - return; -} -function _rlVertex3f($0,$1,$2) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $3 = HEAP32[5588]|0; - $4 = ($3|0)==(0); - if (!($4)) { - $5 = HEAP32[5590]|0; - $6 = HEAP32[5589]|0; - $7 = (($5) + (($6*12)|0)|0); - HEAPF32[$7>>2] = $0; - $8 = (((($5) + (($6*12)|0)|0)) + 4|0); - HEAPF32[$8>>2] = $1; - $9 = (((($5) + (($6*12)|0)|0)) + 8|0); - HEAPF32[$9>>2] = $2; - $10 = (($6) + 1)|0; - HEAP32[5589] = $10; - STACKTOP = sp;return; - } - $11 = HEAP32[5591]|0; - switch ($11|0) { - case 1: { - $12 = HEAP32[5145]|0; - $13 = ($12|0)<(2048); - if ($13) { - $14 = HEAP32[(20592)>>2]|0; - $15 = ($12*3)|0; - $16 = (($14) + ($15<<2)|0); - HEAPF32[$16>>2] = $0; - $17 = (($15) + 1)|0; - $18 = (($14) + ($17<<2)|0); - HEAPF32[$18>>2] = $1; - $19 = (($15) + 2)|0; - $20 = (($14) + ($19<<2)|0); - HEAPF32[$20>>2] = $2; - $21 = (($12) + 1)|0; - HEAP32[5145] = $21; - STACKTOP = sp;return; - } else { - _TraceLog(2,10087,$vararg_buffer); - STACKTOP = sp;return; - } - break; - } - case 4: { - $22 = HEAP32[5157]|0; - $23 = ($22|0)<(6144); - if ($23) { - $24 = HEAP32[(20640)>>2]|0; - $25 = ($22*3)|0; - $26 = (($24) + ($25<<2)|0); - HEAPF32[$26>>2] = $0; - $27 = (($25) + 1)|0; - $28 = (($24) + ($27<<2)|0); - HEAPF32[$28>>2] = $1; - $29 = (($25) + 2)|0; - $30 = (($24) + ($29<<2)|0); - HEAPF32[$30>>2] = $2; - $31 = (($22) + 1)|0; - HEAP32[5157] = $31; - STACKTOP = sp;return; - } else { - _TraceLog(2,10112,$vararg_buffer1); - STACKTOP = sp;return; - } - break; - } - case 7: { - $32 = HEAP32[5097]|0; - $33 = ($32|0)<(4096); - if ($33) { - $34 = HEAP32[(20400)>>2]|0; - $35 = ($32*3)|0; - $36 = (($34) + ($35<<2)|0); - HEAPF32[$36>>2] = $0; - $37 = (($35) + 1)|0; - $38 = (($34) + ($37<<2)|0); - HEAPF32[$38>>2] = $1; - $39 = (($35) + 2)|0; - $40 = (($34) + ($39<<2)|0); - HEAPF32[$40>>2] = $2; - $41 = (($32) + 1)|0; - HEAP32[5097] = $41; - $42 = HEAP32[5144]|0; - $43 = HEAP32[5142]|0; - $44 = (($43) + -1)|0; - $45 = (($42) + (($44*144)|0)|0); - $46 = HEAP32[$45>>2]|0; - $47 = (($46) + 1)|0; - HEAP32[$45>>2] = $47; - STACKTOP = sp;return; - } else { - _TraceLog(2,10141,$vararg_buffer3); - STACKTOP = sp;return; - } - break; - } - default: { - STACKTOP = sp;return; - } - } -} -function _MatrixIdentity($0) { - $0 = $0|0; - var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF32[$0>>2] = 1.0; - $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); - ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; - $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); - HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = 1.0; - $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); - ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; - $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); - HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = 1.0; - $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); - ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; - $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); - HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; - return; -} -function _Vector3Normalize($0) { - $0 = $0|0; - var $$byval_copy = 0, $$op = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp; - ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; - $1 = (+_Vector3Length($$byval_copy)); - $2 = $1 == 0.0; - $$op = 1.0 / $1; - $3 = $2 ? 1.0 : $$op; - $4 = +HEAPF32[$0>>2]; - $5 = $4 * $3; - HEAPF32[$0>>2] = $5; - $6 = ((($0)) + 4|0); - $7 = +HEAPF32[$6>>2]; - $8 = $3 * $7; - HEAPF32[$6>>2] = $8; - $9 = ((($0)) + 8|0); - $10 = +HEAPF32[$9>>2]; - $11 = $3 * $10; - HEAPF32[$9>>2] = $11; - STACKTOP = sp;return; -} -function _MatrixRotate($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = +$2; - var $$ = 0.0, $$221 = 0.0, $$222 = 0.0, $$sroa$10$0$$sroa_idx199 = 0, $$sroa$11$0$$sroa_idx201 = 0, $$sroa$12$0$$sroa_idx203 = 0, $$sroa$13$0$$sroa_idx205 = 0, $$sroa$14$0$$sroa_idx207 = 0, $$sroa$15$0$$sroa_idx209 = 0, $$sroa$16$0$$sroa_idx211 = 0, $$sroa$17$0$$sroa_idx213 = 0, $$sroa$18$0$$sroa_idx215 = 0, $$sroa$4$0$$sroa_idx187 = 0, $$sroa$5$0$$sroa_idx189 = 0, $$sroa$6$0$$sroa_idx191 = 0, $$sroa$7$0$$sroa_idx193 = 0, $$sroa$8$0$$sroa_idx195 = 0, $$sroa$9$0$$sroa_idx197 = 0, $10 = 0.0, $100 = 0.0; - var $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0; - var $12 = 0.0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0; - var $138 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0; - var $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0; - var $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0; - var $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0.0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0; - var $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $3 = sp; - _MatrixIdentity($3); - $4 = +HEAPF32[$1>>2]; - $5 = ((($1)) + 4|0); - $6 = +HEAPF32[$5>>2]; - $7 = ((($1)) + 8|0); - $8 = +HEAPF32[$7>>2]; - $9 = $4 * $4; - $10 = $6 * $6; - $11 = $9 + $10; - $12 = $8 * $8; - $13 = $11 + $12; - $14 = (+Math_sqrt((+$13))); - $15 = $14 != 1.0; - $16 = $14 != 0.0; - $or$cond = $15 & $16; - $17 = 1.0 / $14; - $18 = $4 * $17; - $19 = $6 * $17; - $20 = $8 * $17; - $$ = $or$cond ? $20 : $8; - $$221 = $or$cond ? $19 : $6; - $$222 = $or$cond ? $18 : $4; - $21 = (+Math_sin((+$2))); - $22 = (+Math_cos((+$2))); - $23 = 1.0 - $22; - $24 = +HEAPF32[$3>>2]; - $25 = ((($3)) + 16|0); - $26 = +HEAPF32[$25>>2]; - $27 = ((($3)) + 32|0); - $28 = +HEAPF32[$27>>2]; - $29 = ((($3)) + 48|0); - $30 = +HEAPF32[$29>>2]; - $31 = ((($3)) + 4|0); - $32 = +HEAPF32[$31>>2]; - $33 = ((($3)) + 20|0); - $34 = +HEAPF32[$33>>2]; - $35 = ((($3)) + 36|0); - $36 = +HEAPF32[$35>>2]; - $37 = ((($3)) + 52|0); - $38 = +HEAPF32[$37>>2]; - $39 = ((($3)) + 8|0); - $40 = +HEAPF32[$39>>2]; - $41 = ((($3)) + 24|0); - $42 = +HEAPF32[$41>>2]; - $43 = ((($3)) + 40|0); - $44 = +HEAPF32[$43>>2]; - $45 = ((($3)) + 56|0); - $46 = +HEAPF32[$45>>2]; - $47 = $$222 * $$222; - $48 = $23 * $47; - $49 = $22 + $48; - $50 = $$221 * $$222; - $51 = $23 * $50; - $52 = $21 * $$; - $53 = $52 + $51; - $54 = $$ * $$222; - $55 = $23 * $54; - $56 = $21 * $$221; - $57 = $55 - $56; - $58 = $51 - $52; - $59 = $$221 * $$221; - $60 = $23 * $59; - $61 = $22 + $60; - $62 = $$ * $$221; - $63 = $23 * $62; - $64 = $21 * $$222; - $65 = $64 + $63; - $66 = $56 + $55; - $67 = $63 - $64; - $68 = $$ * $$; - $69 = $23 * $68; - $70 = $22 + $69; - $71 = $24 * $49; - $72 = $53 * $32; - $73 = $71 + $72; - $74 = $57 * $40; - $75 = $73 + $74; - $76 = $26 * $49; - $77 = $53 * $34; - $78 = $76 + $77; - $79 = $57 * $42; - $80 = $78 + $79; - $81 = $28 * $49; - $82 = $53 * $36; - $83 = $81 + $82; - $84 = $57 * $44; - $85 = $83 + $84; - $86 = $30 * $49; - $87 = $53 * $38; - $88 = $86 + $87; - $89 = $57 * $46; - $90 = $88 + $89; - $91 = $24 * $58; - $92 = $61 * $32; - $93 = $91 + $92; - $94 = $65 * $40; - $95 = $93 + $94; - $96 = $26 * $58; - $97 = $61 * $34; - $98 = $96 + $97; - $99 = $65 * $42; - $100 = $98 + $99; - $101 = $28 * $58; - $102 = $61 * $36; - $103 = $101 + $102; - $104 = $65 * $44; - $105 = $103 + $104; - $106 = $30 * $58; - $107 = $61 * $38; - $108 = $106 + $107; - $109 = $65 * $46; - $110 = $108 + $109; - $111 = $24 * $66; - $112 = $67 * $32; - $113 = $111 + $112; - $114 = $70 * $40; - $115 = $113 + $114; - $116 = $26 * $66; - $117 = $67 * $34; - $118 = $116 + $117; - $119 = $70 * $42; - $120 = $118 + $119; - $121 = $28 * $66; - $122 = $67 * $36; - $123 = $121 + $122; - $124 = $70 * $44; - $125 = $123 + $124; - $126 = $30 * $66; - $127 = $67 * $38; - $128 = $126 + $127; - $129 = $70 * $46; - $130 = $128 + $129; - $131 = ((($3)) + 12|0); - $132 = HEAP32[$131>>2]|0; - $133 = ((($3)) + 28|0); - $134 = HEAP32[$133>>2]|0; - $135 = ((($3)) + 44|0); - $136 = HEAP32[$135>>2]|0; - $137 = ((($3)) + 60|0); - $138 = HEAP32[$137>>2]|0; - HEAPF32[$0>>2] = $75; - $$sroa$4$0$$sroa_idx187 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx187>>2] = $95; - $$sroa$5$0$$sroa_idx189 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx189>>2] = $115; - $$sroa$6$0$$sroa_idx191 = ((($0)) + 12|0); - HEAP32[$$sroa$6$0$$sroa_idx191>>2] = $132; - $$sroa$7$0$$sroa_idx193 = ((($0)) + 16|0); - HEAPF32[$$sroa$7$0$$sroa_idx193>>2] = $80; - $$sroa$8$0$$sroa_idx195 = ((($0)) + 20|0); - HEAPF32[$$sroa$8$0$$sroa_idx195>>2] = $100; - $$sroa$9$0$$sroa_idx197 = ((($0)) + 24|0); - HEAPF32[$$sroa$9$0$$sroa_idx197>>2] = $120; - $$sroa$10$0$$sroa_idx199 = ((($0)) + 28|0); - HEAP32[$$sroa$10$0$$sroa_idx199>>2] = $134; - $$sroa$11$0$$sroa_idx201 = ((($0)) + 32|0); - HEAPF32[$$sroa$11$0$$sroa_idx201>>2] = $85; - $$sroa$12$0$$sroa_idx203 = ((($0)) + 36|0); - HEAPF32[$$sroa$12$0$$sroa_idx203>>2] = $105; - $$sroa$13$0$$sroa_idx205 = ((($0)) + 40|0); - HEAPF32[$$sroa$13$0$$sroa_idx205>>2] = $125; - $$sroa$14$0$$sroa_idx207 = ((($0)) + 44|0); - HEAP32[$$sroa$14$0$$sroa_idx207>>2] = $136; - $$sroa$15$0$$sroa_idx209 = ((($0)) + 48|0); - HEAPF32[$$sroa$15$0$$sroa_idx209>>2] = $90; - $$sroa$16$0$$sroa_idx211 = ((($0)) + 52|0); - HEAPF32[$$sroa$16$0$$sroa_idx211>>2] = $110; - $$sroa$17$0$$sroa_idx213 = ((($0)) + 56|0); - HEAPF32[$$sroa$17$0$$sroa_idx213>>2] = $130; - $$sroa$18$0$$sroa_idx215 = ((($0)) + 60|0); - HEAP32[$$sroa$18$0$$sroa_idx215>>2] = $138; - STACKTOP = sp;return; -} -function _Vector3Length($0) { - $0 = $0|0; - var $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $1 = +HEAPF32[$0>>2]; - $2 = $1 * $1; - $3 = ((($0)) + 4|0); - $4 = +HEAPF32[$3>>2]; - $5 = $4 * $4; - $6 = $2 + $5; - $7 = ((($0)) + 8|0); - $8 = +HEAPF32[$7>>2]; - $9 = $8 * $8; - $10 = $6 + $9; - $11 = (+Math_sqrt((+$10))); - return (+$11); -} -function _MatrixTranslate($0,$1,$2,$3) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - var $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF32[$0>>2] = 1.0; - $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = 0.0; - $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = 0.0; - $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); - HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = $1; - $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); - HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = 0.0; - $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); - HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = 1.0; - $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); - HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = 0.0; - $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); - HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = $2; - $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); - HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = 0.0; - $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); - HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = 0.0; - $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); - HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = 1.0; - $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); - HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = $3; - $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); - HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = 0.0; - $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); - HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = 0.0; - $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); - HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = 0.0; - $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); - HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; - return; -} -function _rlLoadIdentity() { - var $0 = 0, $1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $0 = sp; - $1 = HEAP32[5587]|0; - _MatrixIdentity($0); - dest=$1; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _FormatText($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - HEAP32[$1>>2] = $varargs; - (_vsprintf(23404,$0,$1)|0); - STACKTOP = sp;return (23404|0); -} -function _rlGetVersion() { - var label = 0, sp = 0; - sp = STACKTOP; - return 4; -} -function _MatrixScale($0,$1,$2,$3) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF32[$0>>2] = $1; - $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); - ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; - $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); - HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = $2; - $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); - ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; - $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); - HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = $3; - $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); - ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; - $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); - HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; - return; -} -function _Vector2Distance($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = +HEAPF32[$0>>2]; - $3 = +HEAPF32[$1>>2]; - $4 = $2 - $3; - $5 = $4 * $4; - $6 = ((($0)) + 4|0); - $7 = +HEAPF32[$6>>2]; - $8 = ((($1)) + 4|0); - $9 = +HEAPF32[$8>>2]; - $10 = $7 - $9; - $11 = $10 * $10; - $12 = $5 + $11; - $13 = (+Math_sqrt((+$12))); - return (+$13); -} -function _Vector2Angle($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($1)) + 4|0); - $3 = +HEAPF32[$2>>2]; - $4 = ((($0)) + 4|0); - $5 = +HEAPF32[$4>>2]; - $6 = $3 - $5; - $7 = +HEAPF32[$1>>2]; - $8 = +HEAPF32[$0>>2]; - $9 = $7 - $8; - $10 = (+Math_atan2((+$6),(+$9))); - $11 = $10 * 57.2957763671875; - $12 = $11 < 0.0; - $13 = $11 + 360.0; - $$0 = $12 ? $13 : $11; - return (+$$0); -} -function _Vector3Zero($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF32[$0>>2] = 0.0; - $1 = ((($0)) + 4|0); - HEAPF32[$1>>2] = 0.0; - $2 = ((($0)) + 8|0); - HEAPF32[$2>>2] = 0.0; - return; -} -function _MatrixOrtho($0,$1,$2,$3,$4,$5,$6) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - $4 = +$4; - $5 = +$5; - $6 = +$6; - var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; - var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0; - var sp = 0; - sp = STACKTOP; - $7 = $2 - $1; - $8 = $7; - $9 = $4 - $3; - $10 = $9; - $11 = $6 - $5; - $12 = $11; - $13 = 2.0 / $8; - $14 = 2.0 / $10; - $15 = -2.0 / $12; - $16 = $1 + $2; - $17 = -$16; - $18 = $8; - $19 = $17 / $18; - $20 = $19; - $21 = $3 + $4; - $22 = -$21; - $23 = $10; - $24 = $22 / $23; - $25 = $24; - $26 = $5 + $6; - $27 = -$26; - $28 = $12; - $29 = $27 / $28; - $30 = $29; - HEAPF32[$0>>2] = $13; - $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); - HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; - $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); - HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = 0.0; - $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); - HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = $20; - $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); - HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; - $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); - HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $14; - $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); - HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = 0.0; - $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); - HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = $25; - $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); - HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; - $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); - HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; - $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); - HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $15; - $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); - HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $30; - $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); - HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; - $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); - HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; - $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); - HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = 0.0; - $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); - HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 1.0; - return; -} -function _ProcessGestureEvent($0) { - $0 = $0|0; - var $$$sink = 0, $$sink = 0, $$sink10 = 0, $$sink11 = 0, $$sink16 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0.0, $111 = 0.0; - var $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; - var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; - var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0; - var $167 = 0.0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0.0, $174 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0; - var $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $moveDownPosition$byval_copy11 = 0; - var $moveDownPosition2$byval_copy12 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $moveDownPosition2$byval_copy12 = sp + 8|0; - $moveDownPosition$byval_copy11 = sp; - $1 = ((($0)) + 4|0); - $2 = HEAP32[$1>>2]|0; - HEAP32[5629] = $2; - $3 = ($2|0)<(2); - $4 = HEAP32[$0>>2]|0; - $5 = ($4|0)==(1); - if (!($3)) { - if ($5) { - $88 = ((($0)) + 24|0); - $89 = $88; - $90 = $89; - $91 = HEAP32[$90>>2]|0; - $92 = (($89) + 4)|0; - $93 = $92; - $94 = HEAP32[$93>>2]|0; - $95 = 20136; - $96 = $95; - HEAP32[$96>>2] = $91; - $97 = (($95) + 4)|0; - $98 = $97; - HEAP32[$98>>2] = $94; - $99 = ((($0)) + 32|0); - $100 = $99; - $101 = $100; - $102 = HEAP32[$101>>2]|0; - $103 = (($100) + 4)|0; - $104 = $103; - $105 = HEAP32[$104>>2]|0; - $106 = 20176; - $107 = $106; - HEAP32[$107>>2] = $102; - $108 = (($106) + 4)|0; - $109 = $108; - HEAP32[$109>>2] = $105; - $110 = +HEAPF32[5044]; - $111 = +HEAPF32[5034]; - $112 = $110 - $111; - HEAPF32[5046] = $112; - $113 = +HEAPF32[(20180)>>2]; - $114 = +HEAPF32[(20140)>>2]; - $115 = $113 - $114; - HEAPF32[(20188)>>2] = $115; - HEAP32[5628] = 4; - STACKTOP = sp;return; - } - switch ($4|0) { - case 2: { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[20168>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[20168+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[20192>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[20192+4>>2]|0; - $116 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - HEAPF32[5634] = $116; - $117 = 20168; - $118 = $117; - $119 = HEAP32[$118>>2]|0; - $120 = (($117) + 4)|0; - $121 = $120; - $122 = HEAP32[$121>>2]|0; - $123 = 20136; - $124 = $123; - HEAP32[$124>>2] = $119; - $125 = (($123) + 4)|0; - $126 = $125; - HEAP32[$126>>2] = $122; - $127 = 20192; - $128 = $127; - $129 = HEAP32[$128>>2]|0; - $130 = (($127) + 4)|0; - $131 = $130; - $132 = HEAP32[$131>>2]|0; - $133 = 20176; - $134 = $133; - HEAP32[$134>>2] = $129; - $135 = (($133) + 4)|0; - $136 = $135; - HEAP32[$136>>2] = $132; - $137 = ((($0)) + 24|0); - $138 = $137; - $139 = $138; - $140 = HEAP32[$139>>2]|0; - $141 = (($138) + 4)|0; - $142 = $141; - $143 = HEAP32[$142>>2]|0; - $144 = 20168; - $145 = $144; - HEAP32[$145>>2] = $140; - $146 = (($144) + 4)|0; - $147 = $146; - HEAP32[$147>>2] = $143; - $148 = ((($0)) + 32|0); - $149 = $148; - $150 = $149; - $151 = HEAP32[$150>>2]|0; - $152 = (($149) + 4)|0; - $153 = $152; - $154 = HEAP32[$153>>2]|0; - $155 = 20192; - $156 = $155; - HEAP32[$156>>2] = $151; - $157 = (($155) + 4)|0; - $158 = $157; - HEAP32[$158>>2] = $154; - $159 = +HEAPF32[5048]; - $160 = +HEAPF32[5042]; - $161 = $159 - $160; - HEAPF32[5046] = $161; - $162 = +HEAPF32[(20196)>>2]; - $163 = +HEAPF32[(20172)>>2]; - $164 = $162 - $163; - HEAPF32[(20188)>>2] = $164; - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[20136>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[20136+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[20168>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[20168+4>>2]|0; - $165 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $166 = !($165 >= 0.004999999888241291); - if ($166) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[20176>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[20176+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[20192>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[20192+4>>2]|0; - $167 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $168 = !($167 >= 0.004999999888241291); - if ($168) { - $$sink16 = 4; - } else { - label = 29; - } - } else { - label = 29; - } - if ((label|0) == 29) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[20168>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[20168+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[20192>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[20192+4>>2]|0; - $169 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $170 = +HEAPF32[5634]; - $171 = $169 - $170; - $172 = $171 < 0.0; - $$sink11 = $172 ? 256 : 512; - $$sink16 = $$sink11; - } - HEAP32[5628] = $$sink16; - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[20168>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[20168+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[20192>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[20192+4>>2]|0; - $173 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $174 = 360.0 - $173; - HEAPF32[5635] = $174; - STACKTOP = sp;return; - break; - } - case 0: { - HEAPF32[5634] = 0.0; - HEAPF32[5635] = 0.0; - HEAPF32[5046] = 0.0; - HEAPF32[(20188)>>2] = 0.0; - HEAP32[5629] = 0; - HEAP32[5628] = 0; - STACKTOP = sp;return; - break; - } - default: { - STACKTOP = sp;return; - } - } - } - if ($5) { - $6 = HEAP32[5630]|0; - $7 = (($6) + 1)|0; - HEAP32[5630] = $7; - $8 = HEAP32[5628]|0; - $9 = ($8|0)==(0); - $10 = ($6|0)>(0); - $or$cond = $10 & $9; - if ($or$cond) { - $11 = ((($0)) + 24|0); - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[20136>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[20136+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[$11>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[$11+4>>2]|0; - $12 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $13 = $12 < 0.029999999329447746; - if ($13) { - HEAP32[5628] = 2; - HEAP32[5630] = 0; - } else { - label = 6; - } - } else { - label = 6; - } - if ((label|0) == 6) { - HEAP32[5630] = 1; - HEAP32[5628] = 1; - } - $14 = ((($0)) + 24|0); - $15 = $14; - $16 = $15; - $17 = HEAP32[$16>>2]|0; - $18 = (($15) + 4)|0; - $19 = $18; - $20 = HEAP32[$19>>2]|0; - $21 = 20136; - $22 = $21; - HEAP32[$22>>2] = $17; - $23 = (($21) + 4)|0; - $24 = $23; - HEAP32[$24>>2] = $20; - $25 = 20144; - $26 = $25; - HEAP32[$26>>2] = $17; - $27 = (($25) + 4)|0; - $28 = $27; - HEAP32[$28>>2] = $20; - $29 = 20152; - $30 = $29; - HEAP32[$30>>2] = $17; - $31 = (($29) + 4)|0; - $32 = $31; - HEAP32[$32>>2] = $20; - $33 = ((($0)) + 8|0); - $34 = HEAP32[$33>>2]|0; - HEAP32[903] = $34; - HEAPF32[5040] = 0.0; - HEAPF32[(20164)>>2] = 0.0; - STACKTOP = sp;return; - } - switch ($4|0) { - case 0: { - $35 = HEAP32[5628]|0; - $36 = ($35|0)==(8); - if ($36) { - $37 = ((($0)) + 24|0); - $38 = $37; - $39 = $38; - $40 = HEAP32[$39>>2]|0; - $41 = (($38) + 4)|0; - $42 = $41; - $43 = HEAP32[$42>>2]|0; - $44 = 20152; - $45 = $44; - HEAP32[$45>>2] = $40; - $46 = (($44) + 4)|0; - $47 = $46; - HEAP32[$47>>2] = $43; - } - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[20136>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[20136+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[20152>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[20152+4>>2]|0; - $48 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $49 = $48 / 0.0; - HEAPF32[5631] = $49; - HEAP32[5632] = 0; - $50 = $49 > 5.0000002374872565E-4; - if ($50) { - $51 = HEAP32[903]|0; - $52 = ((($0)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ($51|0)==($53|0); - if ($54) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[20136>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[20136+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[20152>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[20152+4>>2]|0; - $55 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $56 = 360.0 - $55; - HEAPF32[5633] = $56; - $57 = $56 < 30.0; - $58 = $56 > 330.0; - $or$cond3 = $57 | $58; - if ($or$cond3) { - $$sink10 = 16; - } else { - $59 = $56 > 30.0; - $60 = $56 < 120.0; - $or$cond5 = $59 & $60; - if ($or$cond5) { - $$sink10 = 64; - } else { - $61 = $56 > 120.0; - $62 = $56 < 210.0; - $or$cond7 = $61 & $62; - $63 = $56 > 210.0; - $64 = $56 < 300.0; - $or$cond9 = $63 & $64; - $$sink = $or$cond9 ? 128 : 0; - $$$sink = $or$cond7 ? 32 : $$sink; - $$sink10 = $$$sink; - } - } - } else { - label = 16; - } - } else { - label = 16; - } - if ((label|0) == 16) { - HEAPF32[5631] = 0.0; - HEAPF32[5633] = 0.0; - $$sink10 = 0; - } - HEAP32[5628] = $$sink10; - HEAPF32[5036] = 0.0; - HEAPF32[(20148)>>2] = 0.0; - HEAP32[5629] = 0; - STACKTOP = sp;return; - break; - } - case 2: { - $65 = HEAP32[5632]|0; - $66 = ($65|0)==(0); - if ($66) { - HEAP32[5632] = 1; - } - $67 = ((($0)) + 24|0); - $68 = $67; - $69 = $68; - $70 = HEAP32[$69>>2]|0; - $71 = (($68) + 4)|0; - $72 = $71; - $73 = HEAP32[$72>>2]|0; - $74 = 20168; - $75 = $74; - HEAP32[$75>>2] = $70; - $76 = (($74) + 4)|0; - $77 = $76; - HEAP32[$77>>2] = $73; - $78 = HEAP32[5628]|0; - $79 = ($78|0)==(4); - if ($79) { - ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[20136>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[20136+4>>2]|0; - ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[20168>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[20168+4>>2]|0; - $80 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); - $81 = !($80 >= 0.014999999664723873); - if (!($81)) { - HEAP32[5628] = 8; - } - } - $82 = +HEAPF32[5042]; - $83 = +HEAPF32[5036]; - $84 = $82 - $83; - HEAPF32[5040] = $84; - $85 = +HEAPF32[(20172)>>2]; - $86 = +HEAPF32[(20148)>>2]; - $87 = $85 - $86; - HEAPF32[(20164)>>2] = $87; - STACKTOP = sp;return; - break; - } - default: { - STACKTOP = sp;return; - } - } -} -function _UpdateGestures() { - var $$off = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[5628]|0; - $$off = (($0) + -1)|0; - $1 = ($$off>>>0)<(2); - $2 = HEAP32[5629]|0; - $3 = ($2|0)<(2); - $or$cond3 = $1 & $3; - if ($or$cond3) { - HEAP32[5628] = 4; - } - $4 = HEAP32[5628]|0; - $5 = (($4) + -16)|0; - $6 = $5 >>> 4; - $7 = $5 << 28; - $8 = $6 | $7; - switch ($8|0) { - case 0: case 1: case 3: case 7: { - break; - } - default: { - return; - } - } - HEAP32[5628] = 0; - return; -} -function _GetMousePosition($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = 20200; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - $4 = (($1) + 4)|0; - $5 = $4; - $6 = HEAP32[$5>>2]|0; - $7 = $0; - $8 = $7; - HEAP32[$8>>2] = $3; - $9 = (($7) + 4)|0; - $10 = $9; - HEAP32[$10>>2] = $6; - return; -} -function _InitWindow($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - _TraceLog(0,10204,$vararg_buffer); - HEAP32[5639] = $2; - _InitGraphicsDevice($0,$1); - _LoadDefaultFont(); - _InitTimer(); - (_emscripten_set_fullscreenchange_callback((0|0),(0|0),1,(5|0))|0); - (_emscripten_set_keypress_callback((10233|0),(0|0),1,(6|0))|0); - (_emscripten_set_click_callback((10233|0),(0|0),1,(7|0))|0); - (_emscripten_set_touchstart_callback((10233|0),(0|0),1,(8|0))|0); - (_emscripten_set_touchend_callback((10233|0),(0|0),1,(8|0))|0); - (_emscripten_set_touchmove_callback((10233|0),(0|0),1,(8|0))|0); - (_emscripten_set_touchcancel_callback((10233|0),(0|0),1,(8|0))|0); - (_emscripten_set_gamepadconnected_callback((0|0),1,(9|0))|0); - (_emscripten_set_gamepaddisconnected_callback((0|0),1,(9|0))|0); - $3 = HEAP32[5640]|0; - $4 = (+($3|0)); - $5 = $4 * 0.5; - HEAPF32[5050] = $5; - $6 = HEAP32[5641]|0; - $7 = (+($6|0)); - $8 = $7 * 0.5; - HEAPF32[(20204)>>2] = $8; - $9 = HEAP32[5642]|0; - $10 = ($9|0)==(0); - if ($10) { - STACKTOP = sp;return; - } - _SetTargetFPS(60); - _LogoAnimation(); - STACKTOP = sp;return; -} -function _InitGraphicsDevice($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$015 = 0, $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0.0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer18 = 0, $vararg_buffer22 = 0, $vararg_buffer3 = 0, $vararg_buffer6 = 0, $vararg_buffer8 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr21 = 0, $vararg_ptr5 = 0, dest = 0; - var label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $vararg_buffer22 = sp + 64|0; - $vararg_buffer18 = sp + 56|0; - $vararg_buffer14 = sp + 48|0; - $vararg_buffer10 = sp + 40|0; - $vararg_buffer8 = sp + 32|0; - $vararg_buffer6 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 72|0; - $3 = sp + 140|0; - HEAP32[5640] = $0; - HEAP32[5641] = $1; - _MatrixIdentity($2); - dest=22588; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - (_glfwSetErrorCallback((2|0))|0); - $4 = (_glfwInit()|0); - $5 = ($4|0)==(0); - if ($5) { - _TraceLog(2,10428,$vararg_buffer); - } - $6 = HEAP32[5640]|0; - HEAP32[5663] = $6; - $7 = HEAP32[5641]|0; - HEAP32[5664] = $7; - _glfwDefaultWindowHints(); - $8 = HEAP8[23468]|0; - $9 = $8 & 4; - $10 = ($9<<24>>24)==(0); - if ($10) { - _glfwWindowHint(131075,0); - } else { - _glfwWindowHint(131075,1); - } - $11 = HEAP8[23468]|0; - $12 = $11 & 8; - $13 = ($12<<24>>24)==(0); - if (!($13)) { - _glfwWindowHint(131077,1); - } - $14 = HEAP8[23468]|0; - $15 = $14 & 32; - $16 = ($15<<24>>24)==(0); - if (!($16)) { - _glfwWindowHint(135181,4); - _TraceLog(0,10454,$vararg_buffer1); - } - $17 = (_rlGetVersion()|0); - $18 = ($17|0)==(2); - if ($18) { - _glfwWindowHint(139266,2); - _glfwWindowHint(139267,1); - } else { - $19 = (_rlGetVersion()|0); - $20 = ($19|0)==(3); - if ($20) { - _glfwWindowHint(139266,3); - _glfwWindowHint(139267,3); - _glfwWindowHint(139272,204801); - _glfwWindowHint(139270,0); - } - } - $21 = HEAP32[5665]|0; - $22 = ($21|0)==(0); - if ($22) { - $47 = HEAP32[5640]|0; - $48 = HEAP32[5641]|0; - $49 = HEAP32[5639]|0; - $50 = (_glfwCreateWindow(($47|0),($48|0),($49|0),(0|0),(0|0))|0); - HEAP32[5637] = $50; - $51 = HEAP32[5640]|0; - HEAP32[5666] = $51; - $52 = HEAP32[5641]|0; - HEAP32[5667] = $52; - $54 = $50; - } else { - $23 = (_glfwGetPrimaryMonitor()|0); - $24 = (_glfwGetVideoModes(($23|0),($$byval_copy|0))|0); - $25 = HEAP32[$$byval_copy>>2]|0; - $26 = ($25|0)>(0); - L22: do { - if ($26) { - $27 = HEAP32[5640]|0; - $28 = HEAP32[$$byval_copy>>2]|0; - $29 = HEAP32[5641]|0; - $$015 = 0; - while(1) { - $30 = (($24) + (($$015*24)|0)|0); - $31 = HEAP32[$30>>2]|0; - $32 = ($31|0)<($27|0); - if (!($32)) { - $33 = (((($24) + (($$015*24)|0)|0)) + 4|0); - $34 = HEAP32[$33>>2]|0; - $35 = ($34|0)<($29|0); - if (!($35)) { - break; - } - } - $36 = (($$015) + 1)|0; - $37 = ($36|0)<($28|0); - if ($37) { - $$015 = $36; - } else { - break L22; - } - } - HEAP32[5663] = $31; - HEAP32[5664] = $34; - } - } while(0); - $38 = HEAP32[5663]|0; - $39 = HEAP32[5664]|0; - HEAP32[$vararg_buffer3>>2] = $38; - $vararg_ptr5 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr5>>2] = $39; - _TraceLog(1,10479,$vararg_buffer3); - $40 = HEAP32[5663]|0; - $41 = HEAP32[5664]|0; - _SetupFramebufferSize($40,$41); - $42 = HEAP32[5663]|0; - $43 = HEAP32[5664]|0; - $44 = HEAP32[5639]|0; - $45 = (_glfwGetPrimaryMonitor()|0); - $46 = (_glfwCreateWindow(($42|0),($43|0),($44|0),($45|0),(0|0))|0); - HEAP32[5637] = $46; - $54 = $46; - } - $53 = ($54|0)==(0|0); - if ($53) { - _glfwTerminate(); - _TraceLog(2,10517,$vararg_buffer6); - } else { - _TraceLog(0,10550,$vararg_buffer8); - $55 = HEAP32[5666]|0; - $56 = HEAP32[5667]|0; - HEAP32[$vararg_buffer10>>2] = $55; - $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); - HEAP32[$vararg_ptr13>>2] = $56; - _TraceLog(0,10590,$vararg_buffer10); - $57 = HEAP32[5640]|0; - $58 = HEAP32[5641]|0; - HEAP32[$vararg_buffer14>>2] = $57; - $vararg_ptr17 = ((($vararg_buffer14)) + 4|0); - HEAP32[$vararg_ptr17>>2] = $58; - _TraceLog(0,10611,$vararg_buffer14); - $59 = HEAP32[5668]|0; - $60 = HEAP32[5669]|0; - HEAP32[$vararg_buffer18>>2] = $59; - $vararg_ptr21 = ((($vararg_buffer18)) + 4|0); - HEAP32[$vararg_ptr21>>2] = $60; - _TraceLog(0,10632,$vararg_buffer18); - } - $61 = HEAP32[5637]|0; - (_glfwSetWindowSizeCallback(($61|0),(1|0))|0); - $62 = HEAP32[5637]|0; - (_glfwSetCursorEnterCallback(($62|0),(3|0))|0); - $63 = HEAP32[5637]|0; - (_glfwSetKeyCallback(($63|0),(1|0))|0); - $64 = HEAP32[5637]|0; - (_glfwSetMouseButtonCallback(($64|0),(1|0))|0); - $65 = HEAP32[5637]|0; - (_glfwSetCursorPosCallback(($65|0),(1|0))|0); - $66 = HEAP32[5637]|0; - (_glfwSetCharCallback(($66|0),(4|0))|0); - $67 = HEAP32[5637]|0; - (_glfwSetScrollCallback(($67|0),(2|0))|0); - $68 = HEAP32[5637]|0; - (_glfwSetWindowIconifyCallback(($68|0),(5|0))|0); - $69 = HEAP32[5637]|0; - _glfwMakeContextCurrent(($69|0)); - _glfwSwapInterval(0); - $70 = HEAP8[23468]|0; - $71 = $70 & 64; - $72 = ($71<<24>>24)==(0); - if ($72) { - $73 = HEAP32[5640]|0; - $74 = HEAP32[5641]|0; - _rlglInit($73,$74); - _SetupViewport(); - _rlMatrixMode(5889); - _rlLoadIdentity(); - $75 = HEAP32[5666]|0; - $76 = HEAP32[5668]|0; - $77 = (($75) - ($76))|0; - $78 = (+($77|0)); - $79 = HEAP32[5667]|0; - $80 = HEAP32[5669]|0; - $81 = (($79) - ($80))|0; - $82 = (+($81|0)); - _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); - _rlMatrixMode(5888); - _rlLoadIdentity(); - HEAP8[$3>>0] = -11; - $83 = ((($3)) + 1|0); - HEAP8[$83>>0] = -11; - $84 = ((($3)) + 2|0); - HEAP8[$84>>0] = -11; - $85 = ((($3)) + 3|0); - HEAP8[$85>>0] = -1; - ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; - _ClearBackground($$byval_copy); - STACKTOP = sp;return; - } - _glfwSwapInterval(1); - _TraceLog(0,10657,$vararg_buffer22); - $73 = HEAP32[5640]|0; - $74 = HEAP32[5641]|0; - _rlglInit($73,$74); - _SetupViewport(); - _rlMatrixMode(5889); - _rlLoadIdentity(); - $75 = HEAP32[5666]|0; - $76 = HEAP32[5668]|0; - $77 = (($75) - ($76))|0; - $78 = (+($77|0)); - $79 = HEAP32[5667]|0; - $80 = HEAP32[5669]|0; - $81 = (($79) - ($80))|0; - $82 = (+($81|0)); - _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); - _rlMatrixMode(5888); - _rlLoadIdentity(); - HEAP8[$3>>0] = -11; - $83 = ((($3)) + 1|0); - HEAP8[$83>>0] = -11; - $84 = ((($3)) + 2|0); - HEAP8[$84>>0] = -11; - $85 = ((($3)) + 3|0); - HEAP8[$85>>0] = -1; - ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; - _ClearBackground($$byval_copy); - STACKTOP = sp;return; -} -function _InitTimer() { - var $0 = 0, $1 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_time((0|0))|0); - _srand($0); - $1 = (+_GetTime()); - HEAPF64[2529] = $1; - return; -} -function _EmscriptenFullscreenChangeCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer4 = sp + 16|0; - $vararg_buffer = sp; - $3 = HEAP32[$1>>2]|0; - $4 = ($3|0)==(0); - $5 = ((($1)) + 264|0); - $6 = HEAP32[$5>>2]|0; - $7 = ((($1)) + 268|0); - $8 = HEAP32[$7>>2]|0; - $9 = ((($1)) + 272|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($1)) + 276|0); - $12 = HEAP32[$11>>2]|0; - if ($4) { - HEAP32[$vararg_buffer4>>2] = $6; - $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); - HEAP32[$vararg_ptr7>>2] = $8; - $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); - HEAP32[$vararg_ptr8>>2] = $10; - $vararg_ptr9 = ((($vararg_buffer4)) + 12|0); - HEAP32[$vararg_ptr9>>2] = $12; - _TraceLog(0,10361,$vararg_buffer4); - STACKTOP = sp;return 0; - } else { - HEAP32[$vararg_buffer>>2] = $6; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $8; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $10; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $12; - _TraceLog(0,10292,$vararg_buffer); - STACKTOP = sp;return 0; - } - return (0)|0; -} -function _EmscriptenKeyboardCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(1); - if (!($3)) { - return 0; - } - $4 = ((($1)) + 32|0); - $5 = (_strcmp($4,10285)|0); - $6 = ($5|0)==(0); - if (!($6)) { - return 0; - } - (_emscripten_exit_pointerlock()|0); - return 0; -} -function _EmscriptenMouseCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $3 = sp; - $4 = ($0|0)==(4); - $5 = HEAP32[5636]|0; - $6 = ($5|0)!=(0); - $or$cond = $4 & $6; - if (!($or$cond)) { - STACKTOP = sp;return 0; - } - (_emscripten_get_pointerlock_status(($3|0))|0); - $7 = HEAP32[$3>>2]|0; - $8 = ($7|0)==(0); - if ($8) { - (_emscripten_request_pointerlock((0|0),1)|0); - } else { - (_emscripten_exit_pointerlock()|0); - (_emscripten_get_pointerlock_status(($3|0))|0); - } - HEAP32[5636] = 0; - STACKTOP = sp;return 0; -} -function _EmscriptenTouchCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $$sink = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$03$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx2 = 0, $$sroa$24$0$$sroa_idx5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0.0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0.0, $6 = 0; - var $60 = 0.0, $61 = 0.0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $$byval_copy = sp + 56|0; - $3 = sp; - switch ($0|0) { - case 22: { - $$sink = 1; - label = 4; - break; - } - case 23: { - $$sink = 0; - label = 4; - break; - } - case 24: { - $$sink = 2; - label = 4; - break; - } - default: { - } - } - if ((label|0) == 4) { - HEAP32[$3>>2] = $$sink; - } - $4 = HEAP32[$1>>2]|0; - $5 = ((($3)) + 4|0); - HEAP32[$5>>2] = $4; - $6 = ((($1)) + 20|0); - $7 = HEAP32[$6>>2]|0; - $8 = ((($3)) + 8|0); - HEAP32[$8>>2] = $7; - $9 = ((($1)) + 72|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($3)) + 12|0); - HEAP32[$11>>2] = $10; - $12 = ((($1)) + 56|0); - $13 = HEAP32[$12>>2]|0; - $14 = (+($13|0)); - $15 = ((($1)) + 60|0); - $16 = HEAP32[$15>>2]|0; - $17 = (+($16|0)); - $$sroa$03$0$$sroa_idx = ((($3)) + 24|0); - HEAPF32[$$sroa$03$0$$sroa_idx>>2] = $14; - $$sroa$24$0$$sroa_idx5 = ((($3)) + 28|0); - HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $17; - $18 = ((($1)) + 108|0); - $19 = HEAP32[$18>>2]|0; - $20 = (+($19|0)); - $21 = ((($1)) + 112|0); - $22 = HEAP32[$21>>2]|0; - $23 = (+($22|0)); - $$sroa$0$0$$sroa_idx = ((($3)) + 32|0); - HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $20; - $$sroa$2$0$$sroa_idx2 = ((($3)) + 36|0); - HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $23; - $24 = ((($3)) + 24|0); - $25 = $24; - $26 = $25; - $27 = HEAP32[$26>>2]|0; - $28 = (($25) + 4)|0; - $29 = $28; - $30 = HEAP32[$29>>2]|0; - $31 = 20216; - $32 = $31; - HEAP32[$32>>2] = $27; - $33 = (($31) + 4)|0; - $34 = $33; - HEAP32[$34>>2] = $30; - $35 = ((($3)) + 32|0); - $36 = $35; - $37 = $36; - $38 = HEAP32[$37>>2]|0; - $39 = (($36) + 4)|0; - $40 = $39; - $41 = HEAP32[$40>>2]|0; - $42 = (20224); - $43 = $42; - HEAP32[$43>>2] = $38; - $44 = (($42) + 4)|0; - $45 = $44; - HEAP32[$45>>2] = $41; - $46 = (_GetScreenWidth()|0); - $47 = (+($46|0)); - $48 = +HEAPF32[$24>>2]; - $49 = $48 / $47; - HEAPF32[$24>>2] = $49; - $50 = (_GetScreenHeight()|0); - $51 = (+($50|0)); - $52 = +HEAPF32[$$sroa$24$0$$sroa_idx5>>2]; - $53 = $52 / $51; - HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $53; - $54 = (_GetScreenWidth()|0); - $55 = (+($54|0)); - $56 = +HEAPF32[$35>>2]; - $57 = $56 / $55; - HEAPF32[$35>>2] = $57; - $58 = (_GetScreenHeight()|0); - $59 = (+($58|0)); - $60 = +HEAPF32[$$sroa$2$0$$sroa_idx2>>2]; - $61 = $60 / $59; - HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $61; - dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _ProcessGestureEvent($$byval_copy); - STACKTOP = sp;return 1; -} -function _EmscriptenGamepadCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$sink = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($1)) + 1296|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)==(0); - if ($5) { - label = 3; - } else { - $6 = ((($1)) + 1300|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)<(4); - if ($8) { - $$sink = 1; - } else { - label = 3; - } - } - if ((label|0) == 3) { - $$sink = 0; - } - $9 = ((($1)) + 1300|0); - $10 = HEAP32[$9>>2]|0; - $11 = (22572 + ($10<<2)|0); - HEAP32[$11>>2] = $$sink; - return 0; -} -function _SetTargetFPS($0) { - $0 = $0|0; - var $$ = 0.0, $$op = 0.0, $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = ($0|0)<(1); - $2 = (+($0|0)); - $3 = 1.0 / $2; - $$ = $1 ? 0.0 : $3; - HEAPF64[2526] = $$; - $4 = $3; - $$op = $4 * 1000.0; - $5 = $$op; - $6 = $1 ? 0.0 : $5; - HEAPF64[$vararg_buffer>>3] = $6; - _TraceLog(0,10241,$vararg_buffer); - STACKTOP = sp;return; -} -function _LogoAnimation() { - var label = 0, sp = 0; - sp = STACKTOP; - HEAP32[5642] = 0; - return; -} -function _GetScreenWidth() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[5640]|0; - return ($0|0); -} -function _GetScreenHeight() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[5641]|0; - return ($0|0); -} -function _GetTime() { - var $0 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (+_glfwGetTime()); - return (+$0); -} -function _ErrorCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - HEAP32[$vararg_buffer>>2] = $0; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $1; - _TraceLog(1,14213,$vararg_buffer); - STACKTOP = sp;return; -} -function _SetupFramebufferSize($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$sink = 0, $$sink1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0; - var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0.0; - var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, $or$cond = 0, $roundf = 0.0, $roundf38 = 0.0, $roundf39 = 0.0, $roundf40 = 0.0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr2 = 0; - var $vararg_ptr3 = 0, $vararg_ptr7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $vararg_buffer8 = sp + 24|0; - $vararg_buffer4 = sp + 16|0; - $vararg_buffer = sp; - $2 = sp + 40|0; - $3 = HEAP32[5640]|0; - $4 = ($3|0)>($0|0); - if (!($4)) { - $5 = HEAP32[5641]|0; - $6 = ($5|0)>($1|0); - if (!($6)) { - $30 = ($3|0)<($0|0); - $31 = ($5|0)<($1|0); - $or$cond = $30 | $31; - if (!($or$cond)) { - HEAP32[5666] = $3; - HEAP32[5667] = $5; - HEAP32[5668] = 0; - HEAP32[5669] = 0; - STACKTOP = sp;return; - } - HEAP32[$vararg_buffer8>>2] = $3; - $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); - HEAP32[$vararg_ptr11>>2] = $5; - $vararg_ptr12 = ((($vararg_buffer8)) + 8|0); - HEAP32[$vararg_ptr12>>2] = $0; - $vararg_ptr13 = ((($vararg_buffer8)) + 12|0); - HEAP32[$vararg_ptr13>>2] = $1; - _TraceLog(0,14147,$vararg_buffer8); - $32 = (+($0|0)); - $33 = (+($1|0)); - $34 = $32 / $33; - $35 = HEAP32[5640]|0; - $36 = (+($35|0)); - $37 = HEAP32[5641]|0; - $38 = (+($37|0)); - $39 = $36 / $38; - $40 = !($34 <= $39); - if ($40) { - $44 = $34 * $38; - $roundf = (+_roundf((+$44))); - $45 = (~~(($roundf))); - HEAP32[5666] = $45; - HEAP32[5667] = $37; - $46 = (($45) - ($35))|0; - HEAP32[5668] = $46; - $$sink1 = 0; - } else { - HEAP32[5666] = $35; - $41 = $36 / $34; - $roundf38 = (+_roundf((+$41))); - $42 = (~~(($roundf38))); - HEAP32[5667] = $42; - HEAP32[5668] = 0; - $43 = (($42) - ($37))|0; - $$sink1 = $43; - } - HEAP32[5669] = $$sink1; - STACKTOP = sp;return; - } - } - $7 = HEAP32[5641]|0; - HEAP32[$vararg_buffer>>2] = $3; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $7; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $0; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $1; - _TraceLog(1,14004,$vararg_buffer); - $8 = (+($0|0)); - $9 = HEAP32[5640]|0; - $10 = (+($9|0)); - $11 = $8 / $10; - $12 = (+($1|0)); - $13 = HEAP32[5641]|0; - $14 = (+($13|0)); - $15 = $12 / $14; - $16 = !($11 <= $15); - if ($16) { - $22 = $10 * $15; - $roundf39 = (+_roundf((+$22))); - $23 = (~~(($roundf39))); - HEAP32[5666] = $23; - HEAP32[5667] = $1; - $24 = (($0) - ($23))|0; - HEAP32[5668] = $24; - $$sink = 0; - } else { - HEAP32[5666] = $0; - $17 = HEAP32[5641]|0; - $18 = (+($17|0)); - $19 = $11 * $18; - $roundf40 = (+_roundf((+$19))); - $20 = (~~(($roundf40))); - HEAP32[5667] = $20; - HEAP32[5668] = 0; - $21 = (($1) - ($20))|0; - $$sink = $21; - } - HEAP32[5669] = $$sink; - $25 = HEAP32[5666]|0; - $26 = (+($25|0)); - $27 = HEAP32[5640]|0; - $28 = (+($27|0)); - $29 = $26 / $28; - _MatrixScale($2,$29,$29,$29); - dest=22588; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - HEAP32[5666] = $0; - HEAP32[5667] = $1; - HEAP32[$vararg_buffer4>>2] = $0; - $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); - HEAP32[$vararg_ptr7>>2] = $1; - _TraceLog(1,14082,$vararg_buffer4); - STACKTOP = sp;return; -} -function _WindowSizeCallback($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0.0, $4 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - _rlViewport(0,0,$1,$2); - _rlMatrixMode(5889); - _rlLoadIdentity(); - $3 = (+($1|0)); - $4 = (+($2|0)); - _rlOrtho(0.0,$3,$4,0.0,0.0,1.0); - _rlMatrixMode(5888); - _rlLoadIdentity(); - _rlClearScreenBuffers(); - HEAP32[5640] = $1; - HEAP32[5641] = $2; - HEAP32[5666] = $1; - HEAP32[5667] = $2; - return; -} -function _CursorEnterCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function _KeyCallback($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = HEAP32[905]|0; - $6 = ($5|0)==($1|0); - $7 = ($3|0)==(1); - $or$cond = $7 & $6; - if ($or$cond) { - _glfwSetWindowShouldClose(($0|0),1); - return; - } - $8 = $3&255; - $9 = (23475 + ($1)|0); - HEAP8[$9>>0] = $8; - if (!($7)) { - return; - } - HEAP32[904] = $1; - return; -} -function _MouseButtonCallback($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0; - var $28 = 0.0, $29 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $$byval_copy = sp + 64|0; - $4 = sp + 8|0; - $5 = sp; - $6 = $2&255; - $7 = (23469 + ($1)|0); - HEAP8[$7>>0] = $6; - $8 = (_IsMouseButtonPressed(0)|0); - $9 = ($8|0)==(0); - if ($9) { - $10 = (_IsMouseButtonReleased(0)|0); - $11 = ($10|0)==(0); - if (!($11)) { - $$sink = 0; - label = 3; - } - } else { - $$sink = 1; - label = 3; - } - if ((label|0) == 3) { - HEAP32[$4>>2] = $$sink; - } - $12 = ((($4)) + 8|0); - HEAP32[$12>>2] = 0; - $13 = ((($4)) + 4|0); - HEAP32[$13>>2] = 1; - $14 = ((($4)) + 24|0); - _GetMousePosition($5); - $15 = $5; - $16 = $15; - $17 = HEAP32[$16>>2]|0; - $18 = (($15) + 4)|0; - $19 = $18; - $20 = HEAP32[$19>>2]|0; - $21 = $14; - $22 = $21; - HEAP32[$22>>2] = $17; - $23 = (($21) + 4)|0; - $24 = $23; - HEAP32[$24>>2] = $20; - $25 = (_GetScreenWidth()|0); - $26 = (+($25|0)); - $27 = +HEAPF32[$14>>2]; - $28 = $27 / $26; - HEAPF32[$14>>2] = $28; - $29 = (_GetScreenHeight()|0); - $30 = (+($29|0)); - $31 = ((($4)) + 28|0); - $32 = +HEAPF32[$31>>2]; - $33 = $32 / $30; - HEAPF32[$31>>2] = $33; - dest=$$byval_copy; src=$4; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _ProcessGestureEvent($$byval_copy); - STACKTOP = sp;return; -} -function _MouseCursorPosCallback($0,$1,$2) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - var $$byval_copy = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $$byval_copy = sp + 56|0; - $3 = sp; - HEAP32[$3>>2] = 2; - $4 = ((($3)) + 8|0); - HEAP32[$4>>2] = 0; - $5 = ((($3)) + 4|0); - HEAP32[$5>>2] = 1; - $6 = $1; - $7 = $2; - $$sroa$0$0$$sroa_idx = ((($3)) + 24|0); - HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $6; - $$sroa$2$0$$sroa_idx1 = ((($3)) + 28|0); - HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $7; - $8 = ((($3)) + 24|0); - $9 = $8; - $10 = $9; - $11 = HEAP32[$10>>2]|0; - $12 = (($9) + 4)|0; - $13 = $12; - $14 = HEAP32[$13>>2]|0; - $15 = 20216; - $16 = $15; - HEAP32[$16>>2] = $11; - $17 = (($15) + 4)|0; - $18 = $17; - HEAP32[$18>>2] = $14; - $19 = (_GetScreenWidth()|0); - $20 = (+($19|0)); - $21 = +HEAPF32[$8>>2]; - $22 = $21 / $20; - HEAPF32[$8>>2] = $22; - $23 = (_GetScreenHeight()|0); - $24 = (+($23|0)); - $25 = +HEAPF32[$$sroa$2$0$$sroa_idx1>>2]; - $26 = $25 / $24; - HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $26; - dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _ProcessGestureEvent($$byval_copy); - STACKTOP = sp;return; -} -function _CharCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - HEAP32[904] = $1; - return; -} -function _ScrollCallback($0,$1,$2) { - $0 = $0|0; - $1 = +$1; - $2 = +$2; - var $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (~~(($2))); - HEAP32[5672] = $3; - return; -} -function _WindowIconifyCallback($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$sink = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)!=(0); - $$sink = $2&1; - HEAP32[5671] = $$sink; - return; -} -function _rlglInit($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$06066 = 0, $$06167 = 0, $$06268 = 0, $$063 = 0, $$sink64 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0.0, $73 = 0.0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $9 = 0, $exitcond = 0, $exitcond70 = 0, $exitcond71 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0; - var $vararg_buffer19 = 0, $vararg_buffer21 = 0, $vararg_buffer23 = 0, $vararg_buffer25 = 0, $vararg_buffer27 = 0, $vararg_buffer29 = 0, $vararg_buffer31 = 0, $vararg_buffer34 = 0, $vararg_buffer36 = 0, $vararg_buffer39 = 0, $vararg_buffer4 = 0, $vararg_buffer41 = 0, $vararg_buffer7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 2528|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2528|0); - $vararg_buffer41 = sp + 2184|0; - $vararg_buffer39 = sp + 2176|0; - $vararg_buffer36 = sp + 2168|0; - $vararg_buffer34 = sp + 2160|0; - $vararg_buffer31 = sp + 2152|0; - $vararg_buffer29 = sp + 2144|0; - $vararg_buffer27 = sp + 2136|0; - $vararg_buffer25 = sp + 2128|0; - $vararg_buffer23 = sp + 2120|0; - $vararg_buffer21 = sp + 2112|0; - $vararg_buffer19 = sp + 2104|0; - $vararg_buffer17 = sp + 2096|0; - $vararg_buffer15 = sp + 2088|0; - $vararg_buffer13 = sp + 2080|0; - $vararg_buffer10 = sp + 2072|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer4 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 2396|0; - $3 = sp + 2384|0; - $4 = sp + 2320|0; - $5 = sp + 2256|0; - $6 = sp + 2192|0; - $7 = (_glGetString(7936)|0); - HEAP32[$vararg_buffer>>2] = $7; - _TraceLog(0,10680,$vararg_buffer); - $8 = (_glGetString(7937)|0); - HEAP32[$vararg_buffer1>>2] = $8; - _TraceLog(0,10698,$vararg_buffer1); - $9 = (_glGetString(7938)|0); - HEAP32[$vararg_buffer4>>2] = $9; - _TraceLog(0,10716,$vararg_buffer4); - $10 = (_glGetString(35724)|0); - HEAP32[$vararg_buffer7>>2] = $10; - _TraceLog(0,10734,$vararg_buffer7); - $11 = (_glGetString(7939)|0); - $12 = (_strlen($11)|0); - $13 = (($12) + 1)|0; - $14 = (_malloc($13)|0); - _memcpy(($14|0),($11|0),($13|0))|0; - $$063 = 0;$$sink64 = $14; - while(1) { - $15 = (_strtok($$sink64,10752)|0); - $16 = (($vararg_buffer7) + ($$063<<2)|0); - HEAP32[$16>>2] = $15; - $17 = ($15|0)==(0|0); - $18 = (($$063) + 1)|0; - if ($17) { - break; - } else { - $$063 = $18;$$sink64 = 0; - } - } - _free($14); - $19 = (($$063) + -1)|0; - HEAP32[$vararg_buffer10>>2] = $19; - _TraceLog(0,10754,$vararg_buffer10); - $20 = ($$063|0)>(1); - if ($20) { - $$06268 = 0; - while(1) { - $23 = (($vararg_buffer7) + ($$06268<<2)|0); - $24 = HEAP32[$23>>2]|0; - $25 = (_strcmp($24,10789)|0); - $26 = ($25|0)==(0); - if ($26) { - HEAP32[5202] = 1; - $27 = (_eglGetProcAddress((10816|0))|0); - HEAP32[5626] = $27; - $28 = (_eglGetProcAddress((10837|0))|0); - HEAP32[5203] = $28; - $29 = (_eglGetProcAddress((10858|0))|0); - HEAP32[5627] = $29; - } - $30 = (_strcmp($24,10882)|0); - $31 = ($30|0)==(0); - if ($31) { - HEAP32[5090] = 1; - } - $32 = (_strcmp($24,10902)|0); - $33 = ($32|0)==(0); - if ($33) { - HEAP32[5089] = 1; - } - $34 = (_strcmp($24,10920)|0); - $35 = ($34|0)==(0); - if ($35) { - label = 14; - } else { - $36 = HEAP32[$23>>2]|0; - $37 = (_strcmp($36,10952)|0); - $38 = ($37|0)==(0); - if ($38) { - label = 14; - } else { - $39 = (_strcmp($36,10985)|0); - $40 = ($39|0)==(0); - if ($40) { - label = 14; - } - } - } - if ((label|0) == 14) { - label = 0; - HEAP32[5084] = 1; - } - $41 = HEAP32[$23>>2]|0; - $42 = (_strcmp($41,11025)|0); - $43 = ($42|0)==(0); - if ($43) { - label = 17; - } else { - $44 = (_strcmp($41,11061)|0); - $45 = ($44|0)==(0); - if ($45) { - label = 17; - } - } - if ((label|0) == 17) { - label = 0; - HEAP32[5085] = 1; - } - $46 = (_strcmp($41,11094)|0); - $47 = ($46|0)==(0); - if ($47) { - HEAP32[5086] = 1; - } - $48 = HEAP32[$23>>2]|0; - $49 = (_strcmp($48,11119)|0); - $50 = ($49|0)==(0); - if ($50) { - HEAP32[5087] = 1; - } - $51 = (_strcmp($48,11152)|0); - $52 = ($51|0)==(0); - if ($52) { - HEAP32[5088] = 1; - } - $53 = (_strcmp($48,11188)|0); - $54 = ($53|0)==(0); - if ($54) { - HEAP32[5670] = 1; - _glGetFloatv(34047,(20368|0)); - } - $55 = (_strcmp($48,11222)|0); - $56 = ($55|0)==(0); - if ($56) { - HEAP32[5091] = 1; - } - $57 = (($$06268) + 1)|0; - $exitcond71 = ($57|0)==($19|0); - if ($exitcond71) { - break; - } else { - $$06268 = $57; - } - } - } - $21 = HEAP32[5202]|0; - $22 = ($21|0)==(0); - if ($22) { - _TraceLog(1,11325,$vararg_buffer15); - } else { - _TraceLog(0,11250,$vararg_buffer13); - } - $58 = HEAP32[5090]|0; - $59 = ($58|0)==(0); - if ($59) { - _TraceLog(1,11461,$vararg_buffer19); - } else { - _TraceLog(0,11386,$vararg_buffer17); - } - $60 = HEAP32[5084]|0; - $61 = ($60|0)==(0); - if (!($61)) { - _TraceLog(0,11553,$vararg_buffer21); - } - $62 = HEAP32[5085]|0; - $63 = ($62|0)==(0); - if (!($63)) { - _TraceLog(0,11599,$vararg_buffer23); - } - $64 = HEAP32[5086]|0; - $65 = ($64|0)==(0); - if (!($65)) { - _TraceLog(0,11646,$vararg_buffer25); - } - $66 = HEAP32[5087]|0; - $67 = ($66|0)==(0); - if (!($67)) { - _TraceLog(0,11697,$vararg_buffer27); - } - $68 = HEAP32[5088]|0; - $69 = ($68|0)==(0); - if (!($69)) { - _TraceLog(0,11744,$vararg_buffer29); - } - $70 = HEAP32[5670]|0; - $71 = ($70|0)==(0); - if (!($71)) { - $72 = +HEAPF32[5092]; - $73 = $72; - HEAPF64[$vararg_buffer31>>3] = $73; - _TraceLog(0,11791,$vararg_buffer31); - } - $74 = HEAP32[5091]|0; - $75 = ($74|0)==(0); - if (!($75)) { - _TraceLog(0,11857,$vararg_buffer34); - } - HEAP32[$vararg_buffer10>>2] = -1; - $76 = (_rlLoadTexture($vararg_buffer10,1,1,7,1)|0); - HEAP32[5143] = $76; - $77 = ($76|0)==(0); - if ($77) { - _TraceLog(1,11961,$vararg_buffer39); - } else { - HEAP32[$vararg_buffer36>>2] = $76; - _TraceLog(0,11910,$vararg_buffer36); - } - _LoadShaderDefault($2); - _memcpy((22372|0),($2|0),132)|0; - _memcpy((20676|0),($2|0),132)|0; - _LoadBuffersDefault(); - $78 = (_malloc(49152)|0); - HEAP32[5590] = $78; - $$06167 = 0; - while(1) { - $80 = HEAP32[5590]|0; - $81 = (($80) + (($$06167*12)|0)|0); - _Vector3Zero($3); - ;HEAP32[$81>>2]=HEAP32[$3>>2]|0;HEAP32[$81+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$81+8>>2]=HEAP32[$3+8>>2]|0; - $82 = (($$06167) + 1)|0; - $exitcond70 = ($82|0)==(4096); - if ($exitcond70) { - break; - } else { - $$06167 = $82; - } - } - $79 = (_malloc(36864)|0); - HEAP32[5144] = $79; - $$06066 = 0; - while(1) { - $83 = (((($79) + (($$06066*144)|0)|0)) + 8|0); - HEAP32[$83>>2] = 0; - $84 = (($79) + (($$06066*144)|0)|0); - HEAP32[$84>>2] = 0; - $85 = (($$06066) + 1)|0; - $exitcond = ($85|0)==(256); - if ($exitcond) { - break; - } else { - $$06066 = $85; - } - } - HEAP32[5142] = 1; - $86 = HEAP32[5143]|0; - $87 = ((($79)) + 8|0); - HEAP32[$87>>2] = $86; - HEAP32[5591] = 4; - _MatrixIdentity($4); - dest=21324; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(21388); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(21452); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(21516); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(21580); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(21644); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(21708); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(21772); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(21836); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(21900); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(21964); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(22028); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(22092); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(22156); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(22220); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($4); - dest=(22284); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($5); - dest=20436; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixIdentity($6); - dest=20500; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - HEAP32[5587] = 20500; - _glDepthFunc(515); - _glDisable(2929); - _glBlendFunc(770,771); - _glEnable(3042); - _glCullFace(1029); - _glFrontFace(2305); - _glEnable(2884); - _glClearColor(0.0,0.0,0.0,1.0); - _glClearDepthf(1.0); - _glClear(16640); - HEAP32[5220] = $0; - HEAP32[5221] = $1; - _TraceLog(0,12000,$vararg_buffer41); - STACKTOP = sp;return; -} -function _SetupViewport() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[5668]|0; - $1 = (($0|0) / 2)&-1; - $2 = HEAP32[5669]|0; - $3 = (($2|0) / 2)&-1; - $4 = HEAP32[5666]|0; - $5 = (($4) - ($0))|0; - $6 = HEAP32[5667]|0; - $7 = (($6) - ($2))|0; - _rlViewport($1,$3,$5,$7); - return; -} -function _rlMatrixMode($0) { - $0 = $0|0; - var $modelview$sink = 0, label = 0, sp = 0; - sp = STACKTOP; - switch ($0|0) { - case 5889: { - $modelview$sink = 20436; - label = 3; - break; - } - case 5888: { - $modelview$sink = 20500; - label = 3; - break; - } - default: { - } - } - if ((label|0) == 3) { - HEAP32[5587] = $modelview$sink; - } - HEAP32[5592] = $0; - return; -} -function _rlOrtho($0,$1,$2,$3,$4,$5) { - $0 = +$0; - $1 = +$1; - $2 = +$2; - $3 = +$3; - $4 = +$4; - $5 = +$5; - var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy1 = sp + 192|0; - $$byval_copy = sp + 128|0; - $6 = sp + 64|0; - $7 = sp; - _MatrixOrtho($6,$0,$1,$2,$3,$4,$5); - $8 = HEAP32[5587]|0; - dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($7,$$byval_copy,$$byval_copy1); - dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _ClearBackground($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP8[$0>>0]|0; - $2 = ((($0)) + 1|0); - $3 = HEAP8[$2>>0]|0; - $4 = ((($0)) + 2|0); - $5 = HEAP8[$4>>0]|0; - $6 = ((($0)) + 3|0); - $7 = HEAP8[$6>>0]|0; - _rlClearColor($1,$3,$5,$7); - return; -} -function _rlClearColor($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0.0, $11 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $4 = (+($0&255)); - $5 = $4 / 255.0; - $6 = (+($1&255)); - $7 = $6 / 255.0; - $8 = (+($2&255)); - $9 = $8 / 255.0; - $10 = (+($3&255)); - $11 = $10 / 255.0; - _glClearColor((+$5),(+$7),(+$9),(+$11)); - return; -} -function _LoadShaderDefault($0) { - $0 = $0|0; - var $$sroa$12$0 = 0, $$sroa$12$0$$sroa_idx9 = 0, $$sroa$13$0 = 0, $$sroa$13$0$$sroa_idx11 = 0, $$sroa$14 = 0, $$sroa$14$0$$sroa_idx = 0, $$sroa$1415$0 = 0, $$sroa$1415$0$$sroa_idx16 = 0, $$sroa$15$0 = 0, $$sroa$15$0$$sroa_idx18 = 0, $$sroa$16 = 0, $$sroa$16$0$$sroa_idx = 0, $$sroa$1622$0 = 0, $$sroa$1622$0$$sroa_idx23 = 0, $$sroa$1727$0 = 0, $$sroa$1727$0$$sroa_idx28 = 0, $$sroa$18 = 0, $$sroa$18$0$$sroa_idx = 0, $1 = 0, $10 = 0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1040|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1040|0); - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $$sroa$14 = sp + 96|0; - $$sroa$16 = sp + 80|0; - $$sroa$18 = sp + 12|0; - $1 = sp + 549|0; - $2 = sp + 108|0; - _memcpy(($1|0),(12576|0),483)|0; - _memcpy(($2|0),(13059|0),441)|0; - $3 = (_LoadShaderProgram($1,$2)|0); - $4 = ($3|0)==(0); - if ($4) { - HEAP32[$vararg_buffer1>>2] = $3; - _TraceLog(1,13614,$vararg_buffer1); - $$sroa$12$0 = 0;$$sroa$13$0 = 0;$$sroa$1415$0 = 0;$$sroa$15$0 = 0;$$sroa$1622$0 = 0;$$sroa$1727$0 = 0; - } else { - HEAP32[$vararg_buffer>>2] = $3; - _TraceLog(0,13500,$vararg_buffer); - $5 = (_glGetAttribLocation(($3|0),(13548|0))|0); - $6 = (_glGetAttribLocation(($3|0),(13563|0))|0); - $7 = (_glGetAttribLocation(($3|0),(13578|0))|0); - $8 = (_glGetUniformLocation(($3|0),(13590|0))|0); - $9 = (_glGetUniformLocation(($3|0),(13594|0))|0); - $10 = (_glGetUniformLocation(($3|0),(13605|0))|0); - $$sroa$12$0 = $5;$$sroa$13$0 = $6;$$sroa$1415$0 = $7;$$sroa$15$0 = $8;$$sroa$1622$0 = $9;$$sroa$1727$0 = $10; - } - HEAP32[$0>>2] = $3; - $$sroa$12$0$$sroa_idx9 = ((($0)) + 4|0); - HEAP32[$$sroa$12$0$$sroa_idx9>>2] = $$sroa$12$0; - $$sroa$13$0$$sroa_idx11 = ((($0)) + 8|0); - HEAP32[$$sroa$13$0$$sroa_idx11>>2] = $$sroa$13$0; - $$sroa$14$0$$sroa_idx = ((($0)) + 12|0); - ;HEAP32[$$sroa$14$0$$sroa_idx>>2]=HEAP32[$$sroa$14>>2]|0;HEAP32[$$sroa$14$0$$sroa_idx+4>>2]=HEAP32[$$sroa$14+4>>2]|0;HEAP32[$$sroa$14$0$$sroa_idx+8>>2]=HEAP32[$$sroa$14+8>>2]|0; - $$sroa$1415$0$$sroa_idx16 = ((($0)) + 24|0); - HEAP32[$$sroa$1415$0$$sroa_idx16>>2] = $$sroa$1415$0; - $$sroa$15$0$$sroa_idx18 = ((($0)) + 28|0); - HEAP32[$$sroa$15$0$$sroa_idx18>>2] = $$sroa$15$0; - $$sroa$16$0$$sroa_idx = ((($0)) + 32|0); - ;HEAP32[$$sroa$16$0$$sroa_idx>>2]=HEAP32[$$sroa$16>>2]|0;HEAP32[$$sroa$16$0$$sroa_idx+4>>2]=HEAP32[$$sroa$16+4>>2]|0;HEAP32[$$sroa$16$0$$sroa_idx+8>>2]=HEAP32[$$sroa$16+8>>2]|0;HEAP32[$$sroa$16$0$$sroa_idx+12>>2]=HEAP32[$$sroa$16+12>>2]|0; - $$sroa$1622$0$$sroa_idx23 = ((($0)) + 48|0); - HEAP32[$$sroa$1622$0$$sroa_idx23>>2] = $$sroa$1622$0; - $$sroa$1727$0$$sroa_idx28 = ((($0)) + 60|0); - HEAP32[$$sroa$1727$0$$sroa_idx28>>2] = $$sroa$1727$0; - $$sroa$18$0$$sroa_idx = ((($0)) + 64|0); - dest=$$sroa$18$0$$sroa_idx; src=$$sroa$18; stop=dest+68|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _LoadBuffersDefault() { - var $$05365 = 0, $$05467 = 0, $$05770 = 0, $$05972 = 0, $$066 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; - var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; - var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; - var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; - var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond75 = 0, $exitcond78 = 0, $exitcond80 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer17 = 0; - var $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, $vararg_ptr20 = 0, $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $vararg_buffer17 = sp + 48|0; - $vararg_buffer14 = sp + 40|0; - $vararg_buffer10 = sp + 32|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $0 = (_malloc(24576)|0); - HEAP32[(20592)>>2] = $0; - $1 = (_malloc(8192)|0); - HEAP32[(20600)>>2] = $1; - HEAP32[(20596)>>2] = 0; - HEAP32[(20604)>>2] = 0; - _memset(($0|0),0,24576)|0; - $$05972 = 0; - while(1) { - $2 = HEAP32[(20600)>>2]|0; - $3 = (($2) + ($$05972)|0); - HEAP8[$3>>0] = 0; - $4 = (($$05972) + 1)|0; - $exitcond80 = ($4|0)==(8192); - if ($exitcond80) { - break; - } else { - $$05972 = $4; - } - } - HEAP32[5145] = 0; - HEAP32[(20588)>>2] = 0; - HEAP32[(20584)>>2] = 0; - $5 = (_malloc(73728)|0); - HEAP32[(20640)>>2] = $5; - $6 = (_malloc(24576)|0); - HEAP32[(20648)>>2] = $6; - HEAP32[(20644)>>2] = 0; - HEAP32[(20652)>>2] = 0; - _memset(($5|0),0,73728)|0; - $$05770 = 0; - while(1) { - $7 = HEAP32[(20648)>>2]|0; - $8 = (($7) + ($$05770)|0); - HEAP8[$8>>0] = 0; - $9 = (($$05770) + 1)|0; - $exitcond78 = ($9|0)==(24576); - if ($exitcond78) { - break; - } else { - $$05770 = $9; - } - } - HEAP32[5157] = 0; - HEAP32[(20636)>>2] = 0; - HEAP32[(20632)>>2] = 0; - $10 = (_malloc(49152)|0); - HEAP32[(20400)>>2] = $10; - $11 = (_malloc(32768)|0); - HEAP32[(20404)>>2] = $11; - $12 = (_malloc(16384)|0); - HEAP32[(20408)>>2] = $12; - $13 = (_malloc(12288)|0); - HEAP32[(20412)>>2] = $13; - $14 = HEAP32[(20400)>>2]|0; - _memset(($14|0),0,49152)|0; - $15 = HEAP32[(20404)>>2]|0; - _memset(($15|0),0,32768)|0; - $$05467 = 0; - while(1) { - $17 = HEAP32[(20408)>>2]|0; - $18 = (($17) + ($$05467)|0); - HEAP8[$18>>0] = 0; - $19 = (($$05467) + 1)|0; - $exitcond75 = ($19|0)==(16384); - if ($exitcond75) { - break; - } else { - $$05467 = $19; - } - } - $16 = HEAP32[(20412)>>2]|0; - $$05365 = 0;$$066 = 0; - while(1) { - $22 = $$05365 << 2; - $23 = $22&65535; - $24 = (($16) + ($$066<<1)|0); - HEAP16[$24>>1] = $23; - $25 = $22 | 1; - $26 = $25&65535; - $27 = $$066 | 1; - $28 = (($16) + ($27<<1)|0); - HEAP16[$28>>1] = $26; - $29 = $22 | 2; - $30 = $29&65535; - $31 = (($$066) + 2)|0; - $32 = (($16) + ($31<<1)|0); - HEAP16[$32>>1] = $30; - $33 = (($$066) + 3)|0; - $34 = (($16) + ($33<<1)|0); - HEAP16[$34>>1] = $23; - $35 = (($$066) + 4)|0; - $36 = (($16) + ($35<<1)|0); - HEAP16[$36>>1] = $30; - $37 = $22 | 3; - $38 = $37&65535; - $39 = (($$066) + 5)|0; - $40 = (($16) + ($39<<1)|0); - HEAP16[$40>>1] = $38; - $41 = (($$05365) + 1)|0; - $42 = (($$066) + 6)|0; - $exitcond = ($41|0)==(1024); - if ($exitcond) { - break; - } else { - $$05365 = $41;$$066 = $42; - } - } - HEAP32[5097] = 0; - HEAP32[(20392)>>2] = 0; - HEAP32[(20396)>>2] = 0; - _TraceLog(0,12047,$vararg_buffer); - $20 = HEAP32[5202]|0; - $21 = ($20|0)==(0); - if (!($21)) { - $43 = HEAP32[5626]|0; - FUNCTION_TABLE_vii[$43 & 63](1,(20608)); - $44 = HEAP32[5203]|0; - $45 = HEAP32[(20608)>>2]|0; - FUNCTION_TABLE_vi[$44 & 31]($45); - } - _glGenBuffers(2,((20612)|0)); - $46 = HEAP32[(20612)>>2]|0; - _glBindBuffer(34962,($46|0)); - $47 = HEAP32[(20592)>>2]|0; - _glBufferData(34962,24576,($47|0),35048); - $48 = HEAP32[(20680)>>2]|0; - _glEnableVertexAttribArray(($48|0)); - $49 = HEAP32[(20680)>>2]|0; - _glVertexAttribPointer(($49|0),3,5126,0,0,(0|0)); - _glGenBuffers(2,((20616)|0)); - $50 = HEAP32[(20616)>>2]|0; - _glBindBuffer(34962,($50|0)); - $51 = HEAP32[(20600)>>2]|0; - _glBufferData(34962,8192,($51|0),35048); - $52 = HEAP32[(20700)>>2]|0; - _glEnableVertexAttribArray(($52|0)); - $53 = HEAP32[(20700)>>2]|0; - _glVertexAttribPointer(($53|0),4,5121,1,0,(0|0)); - $54 = HEAP32[5202]|0; - $55 = ($54|0)==(0); - if ($55) { - $57 = HEAP32[(20612)>>2]|0; - $58 = HEAP32[(20616)>>2]|0; - HEAP32[$vararg_buffer3>>2] = $57; - $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr6>>2] = $58; - _TraceLog(0,12185,$vararg_buffer3); - } else { - $56 = HEAP32[(20608)>>2]|0; - HEAP32[$vararg_buffer1>>2] = $56; - _TraceLog(0,12120,$vararg_buffer1); - } - $59 = HEAP32[5202]|0; - $60 = ($59|0)==(0); - if (!($60)) { - $61 = HEAP32[5626]|0; - FUNCTION_TABLE_vii[$61 & 63](1,(20656)); - $62 = HEAP32[5203]|0; - $63 = HEAP32[(20656)>>2]|0; - FUNCTION_TABLE_vi[$62 & 31]($63); - } - _glGenBuffers(1,((20660)|0)); - $64 = HEAP32[(20660)>>2]|0; - _glBindBuffer(34962,($64|0)); - $65 = HEAP32[(20640)>>2]|0; - _glBufferData(34962,73728,($65|0),35048); - $66 = HEAP32[(20680)>>2]|0; - _glEnableVertexAttribArray(($66|0)); - $67 = HEAP32[(20680)>>2]|0; - _glVertexAttribPointer(($67|0),3,5126,0,0,(0|0)); - _glGenBuffers(1,((20664)|0)); - $68 = HEAP32[(20664)>>2]|0; - _glBindBuffer(34962,($68|0)); - $69 = HEAP32[(20648)>>2]|0; - _glBufferData(34962,24576,($69|0),35048); - $70 = HEAP32[(20700)>>2]|0; - _glEnableVertexAttribArray(($70|0)); - $71 = HEAP32[(20700)>>2]|0; - _glVertexAttribPointer(($71|0),4,5121,1,0,(0|0)); - $72 = HEAP32[5202]|0; - $73 = ($72|0)==(0); - if ($73) { - $75 = HEAP32[(20660)>>2]|0; - $76 = HEAP32[(20664)>>2]|0; - HEAP32[$vararg_buffer10>>2] = $75; - $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); - HEAP32[$vararg_ptr13>>2] = $76; - _TraceLog(0,12331,$vararg_buffer10); - } else { - $74 = HEAP32[(20656)>>2]|0; - HEAP32[$vararg_buffer7>>2] = $74; - _TraceLog(0,12262,$vararg_buffer7); - } - $77 = HEAP32[5202]|0; - $78 = ($77|0)==(0); - if (!($78)) { - $79 = HEAP32[5626]|0; - FUNCTION_TABLE_vii[$79 & 63](1,(20416)); - $80 = HEAP32[5203]|0; - $81 = HEAP32[(20416)>>2]|0; - FUNCTION_TABLE_vi[$80 & 31]($81); - } - _glGenBuffers(1,((20420)|0)); - $82 = HEAP32[(20420)>>2]|0; - _glBindBuffer(34962,($82|0)); - $83 = HEAP32[(20400)>>2]|0; - _glBufferData(34962,49152,($83|0),35048); - $84 = HEAP32[(20680)>>2]|0; - _glEnableVertexAttribArray(($84|0)); - $85 = HEAP32[(20680)>>2]|0; - _glVertexAttribPointer(($85|0),3,5126,0,0,(0|0)); - _glGenBuffers(1,((20424)|0)); - $86 = HEAP32[(20424)>>2]|0; - _glBindBuffer(34962,($86|0)); - $87 = HEAP32[(20404)>>2]|0; - _glBufferData(34962,32768,($87|0),35048); - $88 = HEAP32[(20684)>>2]|0; - _glEnableVertexAttribArray(($88|0)); - $89 = HEAP32[(20684)>>2]|0; - _glVertexAttribPointer(($89|0),2,5126,0,0,(0|0)); - _glGenBuffers(1,((20428)|0)); - $90 = HEAP32[(20428)>>2]|0; - _glBindBuffer(34962,($90|0)); - $91 = HEAP32[(20408)>>2]|0; - _glBufferData(34962,16384,($91|0),35048); - $92 = HEAP32[(20700)>>2]|0; - _glEnableVertexAttribArray(($92|0)); - $93 = HEAP32[(20700)>>2]|0; - _glVertexAttribPointer(($93|0),4,5121,1,0,(0|0)); - _glGenBuffers(1,((20432)|0)); - $94 = HEAP32[(20432)>>2]|0; - _glBindBuffer(34963,($94|0)); - $95 = HEAP32[(20412)>>2]|0; - _glBufferData(34963,12288,($95|0),35044); - $96 = HEAP32[5202]|0; - $97 = ($96|0)==(0); - if ($97) { - $99 = HEAP32[(20420)>>2]|0; - $100 = HEAP32[(20424)>>2]|0; - $101 = HEAP32[(20428)>>2]|0; - $102 = HEAP32[(20432)>>2]|0; - HEAP32[$vararg_buffer17>>2] = $99; - $vararg_ptr20 = ((($vararg_buffer17)) + 4|0); - HEAP32[$vararg_ptr20>>2] = $100; - $vararg_ptr21 = ((($vararg_buffer17)) + 8|0); - HEAP32[$vararg_ptr21>>2] = $101; - $vararg_ptr22 = ((($vararg_buffer17)) + 12|0); - HEAP32[$vararg_ptr22>>2] = $102; - _TraceLog(0,12477,$vararg_buffer17); - } else { - $98 = HEAP32[(20416)>>2]|0; - HEAP32[$vararg_buffer14>>2] = $98; - _TraceLog(0,12412,$vararg_buffer14); - } - $103 = HEAP32[5202]|0; - $104 = ($103|0)==(0); - if ($104) { - STACKTOP = sp;return; - } - $105 = HEAP32[5203]|0; - FUNCTION_TABLE_vi[$105 & 31](0); - STACKTOP = sp;return; -} -function _LoadShaderProgram($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$alloca_mul = 0, $$alloca_mul34 = 0, $$alloca_mul36 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer22 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); - $vararg_buffer22 = sp + 64|0; - $vararg_buffer19 = sp + 56|0; - $vararg_buffer16 = sp + 48|0; - $vararg_buffer13 = sp + 40|0; - $vararg_buffer10 = sp + 32|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer4 = sp + 16|0; - $vararg_buffer1 = sp + 8|0; - $vararg_buffer = sp; - $2 = sp + 80|0; - $3 = sp + 76|0; - $4 = sp + 72|0; - $5 = sp + 68|0; - $6 = (_glCreateShader(35633)|0); - $7 = (_glCreateShader(35632)|0); - HEAP32[$2>>2] = $0; - HEAP32[$3>>2] = $1; - _glShaderSource(($6|0),1,($2|0),(0|0)); - _glShaderSource(($7|0),1,($3|0),(0|0)); - HEAP32[$4>>2] = 0; - _glCompileShader(($6|0)); - _glGetShaderiv(($6|0),35713,($4|0)); - $8 = HEAP32[$4>>2]|0; - $9 = ($8|0)==(1); - if ($9) { - HEAP32[$vararg_buffer4>>2] = $6; - _TraceLog(0,13714,$vararg_buffer4); - } else { - HEAP32[$vararg_buffer>>2] = $6; - _TraceLog(1,13662,$vararg_buffer); - HEAP32[$vararg_buffer>>2] = 0; - _glGetShaderiv(($6|0),35716,($vararg_buffer|0)); - $10 = HEAP32[$vararg_buffer>>2]|0; - $11 = (_llvm_stacksave()|0); - $$alloca_mul = $10; - $12 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);; - $13 = HEAP32[$vararg_buffer>>2]|0; - _glGetShaderInfoLog(($6|0),($13|0),($5|0),($12|0)); - HEAP32[$vararg_buffer1>>2] = $12; - _TraceLog(0,13711,$vararg_buffer1); - _llvm_stackrestore(($11|0)); - } - _glCompileShader(($7|0)); - _glGetShaderiv(($7|0),35713,($4|0)); - $14 = HEAP32[$4>>2]|0; - $15 = ($14|0)==(1); - if ($15) { - HEAP32[$vararg_buffer13>>2] = $7; - _TraceLog(0,13815,$vararg_buffer13); - } else { - HEAP32[$vararg_buffer7>>2] = $7; - _TraceLog(1,13764,$vararg_buffer7); - HEAP32[$vararg_buffer7>>2] = 0; - _glGetShaderiv(($7|0),35716,($vararg_buffer7|0)); - $16 = HEAP32[$vararg_buffer7>>2]|0; - $17 = (_llvm_stacksave()|0); - $$alloca_mul34 = $16; - $18 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul34)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul34)|0)+15)&-16)|0);; - $19 = HEAP32[$vararg_buffer7>>2]|0; - _glGetShaderInfoLog(($7|0),($19|0),($5|0),($18|0)); - HEAP32[$vararg_buffer10>>2] = $18; - _TraceLog(0,13711,$vararg_buffer10); - _llvm_stackrestore(($17|0)); - } - $20 = (_glCreateProgram()|0); - _glAttachShader(($20|0),($6|0)); - _glAttachShader(($20|0),($7|0)); - _glBindAttribLocation(($20|0),0,(13548|0)); - _glBindAttribLocation(($20|0),1,(13563|0)); - _glBindAttribLocation(($20|0),2,(13867|0)); - _glBindAttribLocation(($20|0),3,(13578|0)); - _glBindAttribLocation(($20|0),4,(13880|0)); - _glBindAttribLocation(($20|0),5,(13894|0)); - _glLinkProgram(($20|0)); - _glGetProgramiv(($20|0),35714,($4|0)); - $21 = HEAP32[$4>>2]|0; - $22 = ($21|0)==(0); - if ($22) { - HEAP32[$vararg_buffer16>>2] = $20; - _TraceLog(1,13910,$vararg_buffer16); - HEAP32[$vararg_buffer16>>2] = 0; - _glGetProgramiv(($20|0),35716,($vararg_buffer16|0)); - $23 = HEAP32[$vararg_buffer16>>2]|0; - $24 = (_llvm_stacksave()|0); - $$alloca_mul36 = $23; - $25 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul36)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul36)|0)+15)&-16)|0);; - $26 = HEAP32[$vararg_buffer16>>2]|0; - _glGetProgramInfoLog(($20|0),($26|0),($5|0),($25|0)); - HEAP32[$vararg_buffer19>>2] = $25; - _TraceLog(0,13711,$vararg_buffer19); - _glDeleteProgram(($20|0)); - _llvm_stackrestore(($24|0)); - $$0 = 0; - _glDeleteShader(($6|0)); - _glDeleteShader(($7|0)); - STACKTOP = sp;return ($$0|0); - } else { - HEAP32[$vararg_buffer22>>2] = $20; - _TraceLog(0,13956,$vararg_buffer22); - $$0 = $20; - _glDeleteShader(($6|0)); - _glDeleteShader(($7|0)); - STACKTOP = sp;return ($$0|0); - } - return (0)|0; -} -function _IsMouseButtonPressed($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (23469 + ($0)|0); - $2 = HEAP8[$1>>0]|0; - $3 = (23472 + ($0)|0); - $4 = HEAP8[$3>>0]|0; - $5 = ($2<<24>>24)!=($4<<24>>24); - $6 = ($2<<24>>24)==(1); - $or$cond = $6 & $5; - $$0 = $or$cond&1; - return ($$0|0); -} -function _IsMouseButtonReleased($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (23469 + ($0)|0); - $2 = HEAP8[$1>>0]|0; - $3 = (23472 + ($0)|0); - $4 = HEAP8[$3>>0]|0; - $5 = ($2<<24>>24)!=($4<<24>>24); - $6 = ($2<<24>>24)==(0); - $or$cond = $6 & $5; - $$0 = $or$cond&1; - return ($$0|0); -} -function _rlClearScreenBuffers() { - var label = 0, sp = 0; - sp = STACKTOP; - _glClear(16640); - return; -} -function _CloseWindow() { - var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - _UnloadDefaultFont(); - _rlglClose(); - $0 = HEAP32[5637]|0; - _glfwDestroyWindow(($0|0)); - _glfwTerminate(); - _TraceLog(0,14251,$vararg_buffer); - STACKTOP = sp;return; -} -function _rlglClose() { - var $0 = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - _UnloadShaderDefault(); - _UnloadBuffersDefault(); - _glDeleteTextures(1,(20572|0)); - $0 = HEAP32[5143]|0; - HEAP32[$vararg_buffer>>2] = $0; - _TraceLog(0,14278,$vararg_buffer); - $1 = HEAP32[5144]|0; - _free($1); - STACKTOP = sp;return; -} -function _UnloadShaderDefault() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - _glUseProgram(0); - $0 = HEAP32[5593]|0; - _glDeleteProgram(($0|0)); - return; -} -function _UnloadBuffersDefault() { - var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[5202]|0; - $1 = ($0|0)==(0); - if (!($1)) { - $2 = HEAP32[5203]|0; - FUNCTION_TABLE_vi[$2 & 31](0); - } - _glDisableVertexAttribArray(0); - _glDisableVertexAttribArray(1); - _glDisableVertexAttribArray(2); - _glDisableVertexAttribArray(3); - _glBindBuffer(34962,0); - _glBindBuffer(34963,0); - _glDeleteBuffers(1,((20612)|0)); - _glDeleteBuffers(1,((20616)|0)); - _glDeleteBuffers(1,((20660)|0)); - _glDeleteBuffers(1,((20664)|0)); - _glDeleteBuffers(1,((20420)|0)); - _glDeleteBuffers(1,((20424)|0)); - _glDeleteBuffers(1,((20428)|0)); - _glDeleteBuffers(1,((20432)|0)); - $3 = HEAP32[5202]|0; - $4 = ($3|0)==(0); - if (!($4)) { - $5 = HEAP32[5627]|0; - FUNCTION_TABLE_vii[$5 & 63](1,(20608)); - $6 = HEAP32[5627]|0; - FUNCTION_TABLE_vii[$6 & 63](1,(20656)); - $7 = HEAP32[5627]|0; - FUNCTION_TABLE_vii[$7 & 63](1,(20416)); - } - $8 = HEAP32[(20592)>>2]|0; - _free($8); - $9 = HEAP32[(20600)>>2]|0; - _free($9); - $10 = HEAP32[(20640)>>2]|0; - _free($10); - $11 = HEAP32[(20648)>>2]|0; - _free($11); - $12 = HEAP32[(20400)>>2]|0; - _free($12); - $13 = HEAP32[(20404)>>2]|0; - _free($13); - $14 = HEAP32[(20408)>>2]|0; - _free($14); - $15 = HEAP32[(20412)>>2]|0; - _free($15); - return; -} -function _BeginDrawing() { - var $0 = 0.0, $1 = 0.0, $2 = 0.0, $downscaleView$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $downscaleView$byval_copy = sp; - $0 = (+_GetTime()); - HEAPF64[2530] = $0; - $1 = +HEAPF64[2529]; - $2 = $0 - $1; - HEAPF64[2531] = $2; - HEAPF64[2529] = $0; - _rlClearScreenBuffers(); - _rlLoadIdentity(); - dest=$downscaleView$byval_copy; src=22588; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - (_MatrixToFloat($downscaleView$byval_copy)|0); - _rlMultMatrixf(20816); - STACKTOP = sp;return; -} -function _rlMultMatrixf($0) { - $0 = $0|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; - var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $$byval_copy1 = sp + 192|0; - $$byval_copy = sp + 128|0; - $1 = sp + 64|0; - $2 = sp; - $3 = HEAP32[$0>>2]|0; - HEAP32[$1>>2] = $3; - $4 = ((($1)) + 4|0); - $5 = ((($0)) + 16|0); - $6 = HEAP32[$5>>2]|0; - HEAP32[$4>>2] = $6; - $7 = ((($1)) + 8|0); - $8 = ((($0)) + 32|0); - $9 = HEAP32[$8>>2]|0; - HEAP32[$7>>2] = $9; - $10 = ((($1)) + 12|0); - $11 = ((($0)) + 48|0); - $12 = HEAP32[$11>>2]|0; - HEAP32[$10>>2] = $12; - $13 = ((($1)) + 16|0); - $14 = ((($0)) + 4|0); - $15 = HEAP32[$14>>2]|0; - HEAP32[$13>>2] = $15; - $16 = ((($1)) + 20|0); - $17 = ((($0)) + 20|0); - $18 = HEAP32[$17>>2]|0; - HEAP32[$16>>2] = $18; - $19 = ((($1)) + 24|0); - $20 = ((($0)) + 36|0); - $21 = HEAP32[$20>>2]|0; - HEAP32[$19>>2] = $21; - $22 = ((($1)) + 28|0); - $23 = ((($0)) + 52|0); - $24 = HEAP32[$23>>2]|0; - HEAP32[$22>>2] = $24; - $25 = ((($1)) + 32|0); - $26 = ((($0)) + 8|0); - $27 = HEAP32[$26>>2]|0; - HEAP32[$25>>2] = $27; - $28 = ((($1)) + 36|0); - $29 = ((($0)) + 24|0); - $30 = HEAP32[$29>>2]|0; - HEAP32[$28>>2] = $30; - $31 = ((($1)) + 40|0); - $32 = ((($0)) + 40|0); - $33 = HEAP32[$32>>2]|0; - HEAP32[$31>>2] = $33; - $34 = ((($1)) + 44|0); - $35 = ((($0)) + 56|0); - $36 = HEAP32[$35>>2]|0; - HEAP32[$34>>2] = $36; - $37 = ((($1)) + 48|0); - $38 = ((($0)) + 12|0); - $39 = HEAP32[$38>>2]|0; - HEAP32[$37>>2] = $39; - $40 = ((($1)) + 52|0); - $41 = ((($0)) + 28|0); - $42 = HEAP32[$41>>2]|0; - HEAP32[$40>>2] = $42; - $43 = ((($1)) + 56|0); - $44 = ((($0)) + 44|0); - $45 = HEAP32[$44>>2]|0; - HEAP32[$43>>2] = $45; - $46 = ((($1)) + 60|0); - $47 = ((($0)) + 60|0); - $48 = HEAP32[$47>>2]|0; - HEAP32[$46>>2] = $48; - $49 = HEAP32[5587]|0; - dest=$$byval_copy; src=$49; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - dest=$$byval_copy1; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - _MatrixMultiply($2,$$byval_copy,$$byval_copy1); - dest=$49; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - STACKTOP = sp;return; -} -function _EndDrawing() { - var $0 = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - _rlglDraw(); - _SwapBuffers(); - _PollInputEvents(); - $0 = (+_GetTime()); - HEAPF64[2530] = $0; - $1 = +HEAPF64[2529]; - $2 = $0 - $1; - HEAPF64[2532] = $2; - HEAPF64[2529] = $0; - $3 = +HEAPF64[2531]; - $4 = $2 + $3; - HEAPF64[2516] = $4; - $5 = +HEAPF64[2526]; - $6 = $4 < $5; - if (!($6)) { - return; - } - $7 = $5 - $4; - $8 = $7 * 1000.0; - $9 = $8; - _Wait($9); - $10 = (+_GetTime()); - HEAPF64[2530] = $10; - $11 = +HEAPF64[2529]; - $12 = $10 - $11; - HEAPF64[2529] = $10; - $13 = +HEAPF64[2516]; - $14 = $12 + $13; - HEAPF64[2516] = $14; - return; -} -function _SwapBuffers() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[5637]|0; - _glfwSwapBuffers(($0|0)); - return; -} -function _PollInputEvents() { - var $$04857 = 0, $$05160 = 0, $$058 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0.0, $40 = 0; - var $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep67 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1456|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1456|0); - $0 = sp + 1440|0; - $1 = sp + 1432|0; - $2 = sp; - _UpdateGestures(); - HEAP32[904] = -1; - HEAP32[906] = -1; - HEAP32[5673] = 0; - $3 = HEAP32[5637]|0; - _glfwGetCursorPos(($3|0),($0|0),($1|0)); - $4 = +HEAPF64[$0>>3]; - $5 = $4; - HEAPF32[5050] = $5; - $6 = +HEAPF64[$1>>3]; - $7 = $6; - HEAPF32[(20204)>>2] = $7; - _memcpy((23987|0),(23475|0),512)|0; - ;HEAP8[23472>>0]=HEAP8[23469>>0]|0;HEAP8[23472+1>>0]=HEAP8[23469+1>>0]|0;HEAP8[23472+2>>0]=HEAP8[23469+2>>0]|0; - $8 = HEAP32[5672]|0; - HEAP32[5638] = $8; - HEAP32[5672] = 0; - $9 = (_emscripten_get_num_gamepads()|0); - $10 = ($9|0)>(0); - if (!($10)) { - STACKTOP = sp;return; - } - $11 = ((($2)) + 12|0); - $12 = ((($2)) + 8|0); - $$05160 = 0; - while(1) { - $scevgep = (24499 + ($$05160<<5)|0); - $scevgep67 = (24627 + ($$05160<<5)|0); - dest=$scevgep; src=$scevgep67; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); - $13 = (_emscripten_get_gamepad_status(($$05160|0),($2|0))|0); - $14 = ($13|0)==(0); - if ($14) { - $15 = HEAP32[$11>>2]|0; - $16 = ($15|0)>(0); - if ($16) { - $17 = HEAP32[$11>>2]|0; - $$04857 = 0; - while(1) { - $21 = (((($2)) + 1040|0) + ($$04857<<2)|0); - $22 = HEAP32[$21>>2]|0; - $23 = ($22|0)==(1); - $24 = ((24627 + ($$05160<<5)|0) + ($$04857)|0); - if ($23) { - HEAP8[$24>>0] = 1; - HEAP32[906] = $$04857; - } else { - HEAP8[$24>>0] = 0; - } - $25 = (($$04857) + 1)|0; - $26 = ($25|0)<($17|0); - $27 = ($25|0)<(32); - $28 = $27 & $26; - if ($28) { - $$04857 = $25; - } else { - break; - } - } - } - $18 = HEAP32[$12>>2]|0; - $19 = ($18|0)>(0); - if ($19) { - $20 = HEAP32[$12>>2]|0; - $$058 = 0; - while(1) { - $29 = (((($2)) + 16|0) + ($$058<<3)|0); - $30 = +HEAPF64[$29>>3]; - $31 = $30; - $32 = ((22696 + ($$05160<<5)|0) + ($$058<<2)|0); - HEAPF32[$32>>2] = $31; - $33 = (($$058) + 1)|0; - $34 = ($33|0)<($20|0); - $35 = ($33|0)<(8); - $36 = $35 & $34; - if ($36) { - $$058 = $33; - } else { - $$lcssa = $20; - break; - } - } - } else { - $$lcssa = $18; - } - HEAP32[5673] = $$lcssa; - } - $37 = (($$05160) + 1)|0; - $38 = ($37|0)<($9|0); - $39 = ($37|0)<(4); - $40 = $38 & $39; - if ($40) { - $$05160 = $37; - } else { - break; - } - } - STACKTOP = sp;return; -} -function _Wait($0) { - $0 = +$0; - var $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (+_GetTime()); - $2 = 0.0 - $1; - $3 = $0 / 1000.0; - $4 = $3; - $5 = $2 < $4; - if (!($5)) { - return; - } - while(1) { - $6 = (+_GetTime()); - $7 = $6 - $1; - $8 = $7 < $4; - if (!($8)) { - break; - } - } - return; -} -function _emscripten_GetProcAddress($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; - var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; - var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; - var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; - var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; - var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; - var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0; - var $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0; - var $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0; - var $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0; - var $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0; - var $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0; - var $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0; - var $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0; - var $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0; - var $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0; - var $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0; - var $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0; - var $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0; - var $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0; - var $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0; - var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0; - var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp + 12|0; - $2 = sp + 8|0; - $3 = sp + 4|0; - $4 = sp; - HEAP32[$2>>2] = $0; - $5 = HEAP32[$2>>2]|0; - $6 = (_strlen($5)|0); - $7 = (($6) + 1)|0; - $8 = (_malloc($7)|0); - HEAP32[$3>>2] = $8; - $9 = HEAP32[$3>>2]|0; - $10 = HEAP32[$2>>2]|0; - (_strcpy($9,$10)|0); - $11 = HEAP32[$3>>2]|0; - $12 = (_strstr($11,14343)|0); - HEAP32[$4>>2] = $12; - $13 = HEAP32[$4>>2]|0; - $14 = ($13|0)!=(0|0); - if ($14) { - $15 = HEAP32[$4>>2]|0; - HEAP8[$15>>0] = 0; - } - $16 = HEAP32[$3>>2]|0; - $17 = (_strstr($16,14347)|0); - HEAP32[$4>>2] = $17; - $18 = HEAP32[$4>>2]|0; - $19 = ($18|0)!=(0|0); - if ($19) { - $20 = HEAP32[$4>>2]|0; - HEAP8[$20>>0] = 0; - } - $21 = HEAP32[$3>>2]|0; - $22 = (_strstr($21,14351)|0); - HEAP32[$4>>2] = $22; - $23 = HEAP32[$4>>2]|0; - $24 = ($23|0)!=(0|0); - if ($24) { - $25 = HEAP32[$4>>2]|0; - HEAP8[$25>>0] = 0; - } - $26 = HEAP32[$3>>2]|0; - $27 = (_strstr($26,14355)|0); - HEAP32[$4>>2] = $27; - $28 = HEAP32[$4>>2]|0; - $29 = ($28|0)!=(0|0); - if ($29) { - $30 = HEAP32[$4>>2]|0; - HEAP8[$30>>0] = 0; - } - $31 = HEAP32[$3>>2]|0; - $32 = (_strcmp($31,14361)|0); - $33 = ($32|0)!=(0); - do { - if ($33) { - $34 = HEAP32[$3>>2]|0; - $35 = (_strcmp($34,14399)|0); - $36 = ($35|0)!=(0); - if (!($36)) { - HEAP32[$3>>2] = 14418; - break; - } - $37 = HEAP32[$3>>2]|0; - $38 = (_strcmp($37,14431)|0); - $39 = ($38|0)!=(0); - if (!($39)) { - HEAP32[$3>>2] = 14452; - break; - } - $40 = HEAP32[$3>>2]|0; - $41 = (_strcmp($40,14467)|0); - $42 = ($41|0)!=(0); - if (!($42)) { - HEAP32[$3>>2] = 14482; - break; - } - $43 = HEAP32[$3>>2]|0; - $44 = (_strcmp($43,14497)|0); - $45 = ($44|0)!=(0); - if (!($45)) { - HEAP32[$3>>2] = 14512; - } - } else { - HEAP32[$3>>2] = 14383; - } - } while(0); - $46 = HEAP32[$3>>2]|0; - $47 = (_strcmp($46,14527)|0); - $48 = ($47|0)!=(0); - do { - if ($48) { - $49 = HEAP32[$3>>2]|0; - $50 = (_strcmp($49,14541)|0); - $51 = ($50|0)!=(0); - if (!($51)) { - HEAP32[$1>>2] = 3; - break; - } - $52 = HEAP32[$3>>2]|0; - $53 = (_strcmp($52,14553)|0); - $54 = ($53|0)!=(0); - if (!($54)) { - HEAP32[$1>>2] = 7; - break; - } - $55 = HEAP32[$3>>2]|0; - $56 = (_strcmp($55,14567)|0); - $57 = ($56|0)!=(0); - if (!($57)) { - HEAP32[$1>>2] = 8; - break; - } - $58 = HEAP32[$3>>2]|0; - $59 = (_strcmp($58,14579)|0); - $60 = ($59|0)!=(0); - if (!($60)) { - HEAP32[$1>>2] = 9; - break; - } - $61 = HEAP32[$3>>2]|0; - $62 = (_strcmp($61,14593)|0); - $63 = ($62|0)!=(0); - if (!($63)) { - HEAP32[$1>>2] = 10; - break; - } - $64 = HEAP32[$3>>2]|0; - $65 = (_strcmp($64,14607)|0); - $66 = ($65|0)!=(0); - if (!($66)) { - HEAP32[$1>>2] = 11; - break; - } - $67 = HEAP32[$3>>2]|0; - $68 = (_strcmp($67,14624)|0); - $69 = ($68|0)!=(0); - if (!($69)) { - HEAP32[$1>>2] = 1; - break; - } - $70 = HEAP32[$3>>2]|0; - $71 = (_strcmp($70,14647)|0); - $72 = ($71|0)!=(0); - if (!($72)) { - HEAP32[$1>>2] = 1; - break; - } - $73 = HEAP32[$3>>2]|0; - $74 = (_strcmp($73,14673)|0); - $75 = ($74|0)!=(0); - if (!($75)) { - HEAP32[$1>>2] = 2; - break; - } - $76 = HEAP32[$3>>2]|0; - $77 = (_strcmp($76,14686)|0); - $78 = ($77|0)!=(0); - if (!($78)) { - HEAP32[$1>>2] = 3; - break; - } - $79 = HEAP32[$3>>2]|0; - $80 = (_strcmp($79,14702)|0); - $81 = ($80|0)!=(0); - if (!($81)) { - HEAP32[$1>>2] = 1; - break; - } - $82 = HEAP32[$3>>2]|0; - $83 = (_strcmp($82,14715)|0); - $84 = ($83|0)!=(0); - if (!($84)) { - HEAP32[$1>>2] = 12; - break; - } - $85 = HEAP32[$3>>2]|0; - $86 = (_strcmp($85,14729)|0); - $87 = ($86|0)!=(0); - if (!($87)) { - HEAP32[$1>>2] = 2; - break; - } - $88 = HEAP32[$3>>2]|0; - $89 = (_strcmp($88,14749)|0); - $90 = ($89|0)!=(0); - if (!($90)) { - HEAP32[$1>>2] = 3; - break; - } - $91 = HEAP32[$3>>2]|0; - $92 = (_strcmp($91,14769)|0); - $93 = ($92|0)!=(0); - if (!($93)) { - HEAP32[$1>>2] = 4; - break; - } - $94 = HEAP32[$3>>2]|0; - $95 = (_strcmp($94,14786)|0); - $96 = ($95|0)!=(0); - if (!($96)) { - HEAP32[$1>>2] = 5; - break; - } - $97 = HEAP32[$3>>2]|0; - $98 = (_strcmp($97,14803)|0); - $99 = ($98|0)!=(0); - if (!($99)) { - HEAP32[$1>>2] = 4; - break; - } - $100 = HEAP32[$3>>2]|0; - $101 = (_strcmp($100,14815)|0); - $102 = ($101|0)!=(0); - if (!($102)) { - HEAP32[$1>>2] = 13; - break; - } - $103 = HEAP32[$3>>2]|0; - $104 = (_strcmp($103,14828)|0); - $105 = ($104|0)!=(0); - if (!($105)) { - HEAP32[$1>>2] = 14; - break; - } - $106 = HEAP32[$3>>2]|0; - $107 = (_strcmp($106,14844)|0); - $108 = ($107|0)!=(0); - if (!($108)) { - HEAP32[$1>>2] = 6; - break; - } - $109 = HEAP32[$3>>2]|0; - $110 = (_strcmp($109,14867)|0); - $111 = ($110|0)!=(0); - if (!($111)) { - HEAP32[$1>>2] = 2; - break; - } - $112 = HEAP32[$3>>2]|0; - $113 = (_strcmp($112,14880)|0); - $114 = ($113|0)!=(0); - if (!($114)) { - HEAP32[$1>>2] = 3; - break; - } - $115 = HEAP32[$3>>2]|0; - $116 = (_strcmp($115,14896)|0); - $117 = ($116|0)!=(0); - if (!($117)) { - HEAP32[$1>>2] = 5; - break; - } - $118 = HEAP32[$3>>2]|0; - $119 = (_strcmp($118,14907)|0); - $120 = ($119|0)!=(0); - if (!($120)) { - HEAP32[$1>>2] = 15; - break; - } - $121 = HEAP32[$3>>2]|0; - $122 = (_strcmp($121,14926)|0); - $123 = ($122|0)!=(0); - if (!($123)) { - HEAP32[$1>>2] = 16; - break; - } - $124 = HEAP32[$3>>2]|0; - $125 = (_strcmp($124,14948)|0); - $126 = ($125|0)!=(0); - if (!($126)) { - HEAP32[$1>>2] = 17; - break; - } - $127 = HEAP32[$3>>2]|0; - $128 = (_strcmp($127,14967)|0); - $129 = ($128|0)!=(0); - if (!($129)) { - HEAP32[$1>>2] = 7; - break; - } - $130 = HEAP32[$3>>2]|0; - $131 = (_strcmp($130,14996)|0); - $132 = ($131|0)!=(0); - if (!($132)) { - HEAP32[$1>>2] = 6; - break; - } - $133 = HEAP32[$3>>2]|0; - $134 = (_strcmp($133,15013)|0); - $135 = ($134|0)!=(0); - if (!($135)) { - HEAP32[$1>>2] = 8; - break; - } - $136 = HEAP32[$3>>2]|0; - $137 = (_strcmp($136,15028)|0); - $138 = ($137|0)!=(0); - if (!($138)) { - HEAP32[$1>>2] = 9; - break; - } - $139 = HEAP32[$3>>2]|0; - $140 = (_strcmp($139,15043)|0); - $141 = ($140|0)!=(0); - if (!($141)) { - HEAP32[$1>>2] = 1; - break; - } - $142 = HEAP32[$3>>2]|0; - $143 = (_strcmp($142,15064)|0); - $144 = ($143|0)!=(0); - if (!($144)) { - HEAP32[$1>>2] = 10; - break; - } - $145 = HEAP32[$3>>2]|0; - $146 = (_strcmp($145,15084)|0); - $147 = ($146|0)!=(0); - if (!($147)) { - HEAP32[$1>>2] = 11; - break; - } - $148 = HEAP32[$3>>2]|0; - $149 = (_strcmp($148,15104)|0); - $150 = ($149|0)!=(0); - if (!($150)) { - HEAP32[$1>>2] = 12; - break; - } - $151 = HEAP32[$3>>2]|0; - $152 = (_strcmp($151,15130)|0); - $153 = ($152|0)!=(0); - if (!($153)) { - HEAP32[$1>>2] = 2; - break; - } - $154 = HEAP32[$3>>2]|0; - $155 = (_strcmp($154,15149)|0); - $156 = ($155|0)!=(0); - if (!($156)) { - HEAP32[$1>>2] = 1; - break; - } - $157 = HEAP32[$3>>2]|0; - $158 = (_strcmp($157,15161)|0); - $159 = ($158|0)!=(0); - if (!($159)) { - HEAP32[$1>>2] = 3; - break; - } - $160 = HEAP32[$3>>2]|0; - $161 = (_strcmp($160,15173)|0); - $162 = ($161|0)!=(0); - if (!($162)) { - HEAP32[$1>>2] = 1; - break; - } - $163 = HEAP32[$3>>2]|0; - $164 = (_strcmp($163,15185)|0); - $165 = ($164|0)!=(0); - if (!($165)) { - HEAP32[$1>>2] = 1; - break; - } - $166 = HEAP32[$3>>2]|0; - $167 = (_strcmp($166,15197)|0); - $168 = ($167|0)!=(0); - if (!($168)) { - HEAP32[$1>>2] = 18; - break; - } - $169 = HEAP32[$3>>2]|0; - $170 = (_strcmp($169,15209)|0); - $171 = ($170|0)!=(0); - if (!($171)) { - HEAP32[$1>>2] = 13; - break; - } - $172 = HEAP32[$3>>2]|0; - $173 = (_strcmp($172,15221)|0); - $174 = ($173|0)!=(0); - if (!($174)) { - HEAP32[$1>>2] = 4; - break; - } - $175 = HEAP32[$3>>2]|0; - $176 = (_strcmp($175,15233)|0); - $177 = ($176|0)!=(0); - if (!($177)) { - HEAP32[$1>>2] = 2; - break; - } - $178 = HEAP32[$3>>2]|0; - $179 = (_strcmp($178,15245)|0); - $180 = ($179|0)!=(0); - if (!($180)) { - HEAP32[$1>>2] = 14; - break; - } - $181 = HEAP32[$3>>2]|0; - $182 = (_strcmp($181,15258)|0); - $183 = ($182|0)!=(0); - if (!($183)) { - HEAP32[$1>>2] = 15; - break; - } - $184 = HEAP32[$3>>2]|0; - $185 = (_strcmp($184,15271)|0); - $186 = ($185|0)!=(0); - if (!($186)) { - HEAP32[$1>>2] = 16; - break; - } - $187 = HEAP32[$3>>2]|0; - $188 = (_strcmp($187,15284)|0); - $189 = ($188|0)!=(0); - if (!($189)) { - HEAP32[$1>>2] = 17; - break; - } - $190 = HEAP32[$3>>2]|0; - $191 = (_strcmp($190,15297)|0); - $192 = ($191|0)!=(0); - if (!($192)) { - HEAP32[$1>>2] = 18; - break; - } - $193 = HEAP32[$3>>2]|0; - $194 = (_strcmp($193,15310)|0); - $195 = ($194|0)!=(0); - if (!($195)) { - HEAP32[$1>>2] = 19; - break; - } - $196 = HEAP32[$3>>2]|0; - $197 = (_strcmp($196,15323)|0); - $198 = ($197|0)!=(0); - if (!($198)) { - HEAP32[$1>>2] = 20; - break; - } - $199 = HEAP32[$3>>2]|0; - $200 = (_strcmp($199,15336)|0); - $201 = ($200|0)!=(0); - if (!($201)) { - HEAP32[$1>>2] = 21; - break; - } - $202 = HEAP32[$3>>2]|0; - $203 = (_strcmp($202,15349)|0); - $204 = ($203|0)!=(0); - if (!($204)) { - HEAP32[$1>>2] = 5; - break; - } - $205 = HEAP32[$3>>2]|0; - $206 = (_strcmp($205,15368)|0); - $207 = ($206|0)!=(0); - if (!($207)) { - HEAP32[$1>>2] = 6; - break; - } - $208 = HEAP32[$3>>2]|0; - $209 = (_strcmp($208,15387)|0); - $210 = ($209|0)!=(0); - if (!($210)) { - HEAP32[$1>>2] = 7; - break; - } - $211 = HEAP32[$3>>2]|0; - $212 = (_strcmp($211,15406)|0); - $213 = ($212|0)!=(0); - if (!($213)) { - HEAP32[$1>>2] = 19; - break; - } - $214 = HEAP32[$3>>2]|0; - $215 = (_strcmp($214,15419)|0); - $216 = ($215|0)!=(0); - if (!($216)) { - HEAP32[$1>>2] = 20; - break; - } - $217 = HEAP32[$3>>2]|0; - $218 = (_strcmp($217,15437)|0); - $219 = ($218|0)!=(0); - if (!($219)) { - HEAP32[$1>>2] = 21; - break; - } - $220 = HEAP32[$3>>2]|0; - $221 = (_strcmp($220,15455)|0); - $222 = ($221|0)!=(0); - if (!($222)) { - HEAP32[$1>>2] = 22; - break; - } - $223 = HEAP32[$3>>2]|0; - $224 = (_strcmp($223,15473)|0); - $225 = ($224|0)!=(0); - if (!($225)) { - HEAP32[$1>>2] = 23; - break; - } - $226 = HEAP32[$3>>2]|0; - $227 = (_strcmp($226,15491)|0); - $228 = ($227|0)!=(0); - if (!($228)) { - HEAP32[$1>>2] = 2; - break; - } - $229 = HEAP32[$3>>2]|0; - $230 = (_strcmp($229,15511)|0); - $231 = ($230|0)!=(0); - if (!($231)) { - HEAP32[$1>>2] = 3; - break; - } - $232 = HEAP32[$3>>2]|0; - $233 = (_strcmp($232,14452)|0); - $234 = ($233|0)!=(0); - if (!($234)) { - HEAP32[$1>>2] = 7; - break; - } - $235 = HEAP32[$3>>2]|0; - $236 = (_strcmp($235,15529)|0); - $237 = ($236|0)!=(0); - if (!($237)) { - HEAP32[$1>>2] = 1; - break; - } - $238 = HEAP32[$3>>2]|0; - $239 = (_strcmp($238,15544)|0); - $240 = ($239|0)!=(0); - if (!($240)) { - HEAP32[$1>>2] = 8; - break; - } - $241 = HEAP32[$3>>2]|0; - $242 = (_strcmp($241,15565)|0); - $243 = ($242|0)!=(0); - if (!($243)) { - HEAP32[$1>>2] = 9; - break; - } - $244 = HEAP32[$3>>2]|0; - $245 = (_strcmp($244,15580)|0); - $246 = ($245|0)!=(0); - if (!($246)) { - HEAP32[$1>>2] = 10; - break; - } - $247 = HEAP32[$3>>2]|0; - $248 = (_strcmp($247,15598)|0); - $249 = ($248|0)!=(0); - if (!($249)) { - HEAP32[$1>>2] = 2; - break; - } - $250 = HEAP32[$3>>2]|0; - $251 = (_strcmp($250,15614)|0); - $252 = ($251|0)!=(0); - if (!($252)) { - HEAP32[$1>>2] = 11; - break; - } - $253 = HEAP32[$3>>2]|0; - $254 = (_strcmp($253,15633)|0); - $255 = ($254|0)!=(0); - if (!($255)) { - HEAP32[$1>>2] = 22; - break; - } - $256 = HEAP32[$3>>2]|0; - $257 = (_strcmp($256,15647)|0); - $258 = ($257|0)!=(0); - if (!($258)) { - HEAP32[$1>>2] = 23; - break; - } - $259 = HEAP32[$3>>2]|0; - $260 = (_strcmp($259,15662)|0); - $261 = ($260|0)!=(0); - if (!($261)) { - HEAP32[$1>>2] = 8; - break; - } - $262 = HEAP32[$3>>2]|0; - $263 = (_strcmp($262,14383)|0); - $264 = ($263|0)!=(0); - if (!($264)) { - HEAP32[$1>>2] = 1; - break; - } - $265 = HEAP32[$3>>2]|0; - $266 = (_strcmp($265,15673)|0); - $267 = ($266|0)!=(0); - if (!($267)) { - HEAP32[$1>>2] = 3; - break; - } - $268 = HEAP32[$3>>2]|0; - $269 = (_strcmp($268,14482)|0); - $270 = ($269|0)!=(0); - if (!($270)) { - HEAP32[$1>>2] = 24; - break; - } - $271 = HEAP32[$3>>2]|0; - $272 = (_strcmp($271,14512)|0); - $273 = ($272|0)!=(0); - if (!($273)) { - HEAP32[$1>>2] = 25; - break; - } - $274 = HEAP32[$3>>2]|0; - $275 = (_strcmp($274,15689)|0); - $276 = ($275|0)!=(0); - if (!($276)) { - HEAP32[$1>>2] = 12; - break; - } - $277 = HEAP32[$3>>2]|0; - $278 = (_strcmp($277,15716)|0); - $279 = ($278|0)!=(0); - if (!($279)) { - HEAP32[$1>>2] = 4; - break; - } - $280 = HEAP32[$3>>2]|0; - $281 = (_strcmp($280,15730)|0); - $282 = ($281|0)!=(0); - if (!($282)) { - HEAP32[$1>>2] = 13; - break; - } - $283 = HEAP32[$3>>2]|0; - $284 = (_strcmp($283,14418)|0); - $285 = ($284|0)!=(0); - if (!($285)) { - HEAP32[$1>>2] = 5; - break; - } - $286 = HEAP32[$3>>2]|0; - $287 = (_strcmp($286,15750)|0); - $288 = ($287|0)!=(0); - if (!($288)) { - HEAP32[$1>>2] = 6; - break; - } - $289 = HEAP32[$3>>2]|0; - $290 = (_strcmp($289,15768)|0); - $291 = ($290|0)!=(0); - if (!($291)) { - HEAP32[$1>>2] = 9; - break; - } - $292 = HEAP32[$3>>2]|0; - $293 = (_strcmp($292,15780)|0); - $294 = ($293|0)!=(0); - if (!($294)) { - HEAP32[$1>>2] = 24; - break; - } - $295 = HEAP32[$3>>2]|0; - $296 = (_strcmp($295,15801)|0); - $297 = ($296|0)!=(0); - if (!($297)) { - HEAP32[$1>>2] = 26; - break; - } - $298 = HEAP32[$3>>2]|0; - $299 = (_strcmp($298,15819)|0); - $300 = ($299|0)!=(0); - if (!($300)) { - HEAP32[$1>>2] = 27; - break; - } - $301 = HEAP32[$3>>2]|0; - $302 = (_strcmp($301,15837)|0); - $303 = ($302|0)!=(0); - if (!($303)) { - HEAP32[$1>>2] = 28; - break; - } - $304 = HEAP32[$3>>2]|0; - $305 = (_strcmp($304,15858)|0); - $306 = ($305|0)!=(0); - if (!($306)) { - HEAP32[$1>>2] = 14; - break; - } - $307 = HEAP32[$3>>2]|0; - $308 = (_strcmp($307,15884)|0); - $309 = ($308|0)!=(0); - if (!($309)) { - HEAP32[$1>>2] = 3; - break; - } - $310 = HEAP32[$3>>2]|0; - $311 = (_strcmp($310,15907)|0); - $312 = ($311|0)!=(0); - if (!($312)) { - HEAP32[$1>>2] = 15; - break; - } - $313 = HEAP32[$3>>2]|0; - $314 = (_strcmp($313,15945)|0); - $315 = ($314|0)!=(0); - if (!($315)) { - HEAP32[$1>>2] = 10; - break; - } - $316 = HEAP32[$3>>2]|0; - $317 = (_strcmp($316,15961)|0); - $318 = ($317|0)!=(0); - if (!($318)) { - HEAP32[$1>>2] = 7; - break; - } - $319 = HEAP32[$3>>2]|0; - $320 = (_strcmp($319,15976)|0); - $321 = ($320|0)!=(0); - if (!($321)) { - HEAP32[$1>>2] = 25; - break; - } - $322 = HEAP32[$3>>2]|0; - $323 = (_strcmp($322,15999)|0); - $324 = ($323|0)!=(0); - if (!($324)) { - HEAP32[$1>>2] = 16; - break; - } - $325 = HEAP32[$3>>2]|0; - $326 = (_strcmp($325,16012)|0); - $327 = ($326|0)!=(0); - if (!($327)) { - HEAP32[$1>>2] = 29; - break; - } - $328 = HEAP32[$3>>2]|0; - $329 = (_strcmp($328,16026)|0); - $330 = ($329|0)!=(0); - if (!($330)) { - HEAP32[$1>>2] = 30; - break; - } - $331 = HEAP32[$3>>2]|0; - $332 = (_strcmp($331,16040)|0); - $333 = ($332|0)!=(0); - if (!($333)) { - HEAP32[$1>>2] = 1; - break; - } - $334 = HEAP32[$3>>2]|0; - $335 = (_strcmp($334,16060)|0); - $336 = ($335|0)!=(0); - if (!($336)) { - HEAP32[$1>>2] = 8; - break; - } - $337 = HEAP32[$3>>2]|0; - $338 = (_strcmp($337,16080)|0); - $339 = ($338|0)!=(0); - if (!($339)) { - HEAP32[$1>>2] = 17; - break; - } - $340 = HEAP32[$3>>2]|0; - $341 = (_strcmp($340,16096)|0); - $342 = ($341|0)!=(0); - if (!($342)) { - HEAP32[$1>>2] = 18; - break; - } - $343 = HEAP32[$3>>2]|0; - $344 = (_strcmp($343,16114)|0); - $345 = ($344|0)!=(0); - if (!($345)) { - HEAP32[$1>>2] = 26; - break; - } - $346 = HEAP32[$3>>2]|0; - $347 = (_strcmp($346,16130)|0); - $348 = ($347|0)!=(0); - if (!($348)) { - HEAP32[$1>>2] = 19; - break; - } - $349 = HEAP32[$3>>2]|0; - $350 = (_strcmp($349,16145)|0); - $351 = ($350|0)!=(0); - if (!($351)) { - HEAP32[$1>>2] = 9; - break; - } - $352 = HEAP32[$3>>2]|0; - $353 = (_strcmp($352,16167)|0); - $354 = ($353|0)!=(0); - if (!($354)) { - HEAP32[$1>>2] = 31; - break; - } - $355 = HEAP32[$3>>2]|0; - $356 = (_strcmp($355,16185)|0); - $357 = ($356|0)!=(0); - if (!($357)) { - HEAP32[$1>>2] = 32; - break; - } - $358 = HEAP32[$3>>2]|0; - $359 = (_strcmp($358,16206)|0); - $360 = ($359|0)!=(0); - if (!($360)) { - HEAP32[$1>>2] = 10; - break; - } - $361 = HEAP32[$3>>2]|0; - $362 = (_strcmp($361,16224)|0); - $363 = ($362|0)!=(0); - if (!($363)) { - HEAP32[$1>>2] = 11; - break; - } - $364 = HEAP32[$3>>2]|0; - $365 = (_strcmp($364,16237)|0); - $366 = ($365|0)!=(0); - if (!($366)) { - HEAP32[$1>>2] = 2; - break; - } - $367 = HEAP32[$3>>2]|0; - $368 = (_strcmp($367,16252)|0); - $369 = ($368|0)!=(0); - if (!($369)) { - HEAP32[$1>>2] = 12; - break; - } - $370 = HEAP32[$3>>2]|0; - $371 = (_strcmp($370,16266)|0); - $372 = ($371|0)!=(0); - if (!($372)) { - HEAP32[$1>>2] = 1; - break; - } - $373 = HEAP32[$3>>2]|0; - $374 = (_strcmp($373,16276)|0); - $375 = ($374|0)!=(0); - if (!($375)) { - HEAP32[$1>>2] = 1; - break; - } - $376 = HEAP32[$3>>2]|0; - $377 = (_strcmp($376,16286)|0); - $378 = ($377|0)!=(0); - if (!($378)) { - HEAP32[$1>>2] = 2; - break; - } - $379 = HEAP32[$3>>2]|0; - $380 = (_strcmp($379,16308)|0); - $381 = ($380|0)!=(0); - if (!($381)) { - HEAP32[$1>>2] = 13; - break; - } - $382 = HEAP32[$3>>2]|0; - $383 = (_strcmp($382,16334)|0); - $384 = ($383|0)!=(0); - if (!($384)) { - HEAP32[$1>>2] = 14; - break; - } - $385 = HEAP32[$3>>2]|0; - $386 = (_strcmp($385,16361)|0); - $387 = ($386|0)!=(0); - if (!($387)) { - HEAP32[$1>>2] = 27; - break; - } - $388 = HEAP32[$3>>2]|0; - $389 = (_strcmp($388,16374)|0); - $390 = ($389|0)!=(0); - if (!($390)) { - HEAP32[$1>>2] = 20; - break; - } - $391 = HEAP32[$3>>2]|0; - $392 = (_strcmp($391,16389)|0); - $393 = ($392|0)!=(0); - if (!($393)) { - HEAP32[$1>>2] = 4; - break; - } - $394 = HEAP32[$3>>2]|0; - $395 = (_strcmp($394,16404)|0); - $396 = ($395|0)!=(0); - if (!($396)) { - HEAP32[$1>>2] = 3; - break; - } - $397 = HEAP32[$3>>2]|0; - $398 = (_strcmp($397,16428)|0); - $399 = ($398|0)!=(0); - if (!($399)) { - HEAP32[$1>>2] = 2; - break; - } - $400 = HEAP32[$3>>2]|0; - $401 = (_strcmp($400,16439)|0); - $402 = ($401|0)!=(0); - if (!($402)) { - HEAP32[$1>>2] = 33; - break; - } - $403 = HEAP32[$3>>2]|0; - $404 = (_strcmp($403,16461)|0); - $405 = ($404|0)!=(0); - if (!($405)) { - HEAP32[$1>>2] = 21; - break; - } - $406 = HEAP32[$3>>2]|0; - $407 = (_strcmp($406,16483)|0); - $408 = ($407|0)!=(0); - if (!($408)) { - HEAP32[$1>>2] = 5; - break; - } - $409 = HEAP32[$3>>2]|0; - $410 = (_strcmp($409,16507)|0); - $411 = ($410|0)!=(0); - if (!($411)) { - HEAP32[$1>>2] = 4; - break; - } - $412 = HEAP32[$3>>2]|0; - $413 = (_strcmp($412,16516)|0); - $414 = ($413|0)!=(0); - if (!($414)) { - HEAP32[$1>>2] = 5; - break; - } - $415 = HEAP32[$3>>2]|0; - $416 = (_strcmp($415,16524)|0); - $417 = ($416|0)!=(0); - if (!($417)) { - HEAP32[$1>>2] = 1; - break; - } - $418 = HEAP32[$3>>2]|0; - $419 = (_strcmp($418,16537)|0); - $420 = ($419|0)!=(0); - if (!($420)) { - HEAP32[$1>>2] = 2; - break; - } - $421 = HEAP32[$3>>2]|0; - $422 = (_strcmp($421,16551)|0); - $423 = ($422|0)!=(0); - if (!($423)) { - HEAP32[$1>>2] = 15; - break; - } - $424 = HEAP32[$3>>2]|0; - $425 = (_strcmp($424,16563)|0); - $426 = ($425|0)!=(0); - if (!($426)) { - HEAP32[$1>>2] = 16; - break; - } - $427 = HEAP32[$3>>2]|0; - $428 = (_strcmp($427,16572)|0); - $429 = ($428|0)!=(0); - if (!($429)) { - HEAP32[$1>>2] = 17; - break; - } - $430 = HEAP32[$3>>2]|0; - $431 = (_strcmp($430,16582)|0); - $432 = ($431|0)!=(0); - if (!($432)) { - HEAP32[$1>>2] = 18; - break; - } - $433 = HEAP32[$3>>2]|0; - $434 = (_strcmp($433,16594)|0); - $435 = ($434|0)!=(0); - if (!($435)) { - HEAP32[$1>>2] = 19; - break; - } - $436 = HEAP32[$3>>2]|0; - $437 = (_strcmp($436,16605)|0); - $438 = ($437|0)!=(0); - if (!($438)) { - HEAP32[$1>>2] = 20; - break; - } - $439 = HEAP32[$3>>2]|0; - $440 = (_strcmp($439,16613)|0); - $441 = ($440|0)!=(0); - if (!($441)) { - HEAP32[$1>>2] = 3; - break; - } - $442 = HEAP32[$3>>2]|0; - $443 = (_strcmp($442,16625)|0); - $444 = ($443|0)!=(0); - if (!($444)) { - HEAP32[$1>>2] = 21; - break; - } - $445 = HEAP32[$3>>2]|0; - $446 = (_strcmp($445,16640)|0); - $447 = ($446|0)!=(0); - if (!($447)) { - HEAP32[$1>>2] = 22; - break; - } - $448 = HEAP32[$3>>2]|0; - $449 = (_strcmp($448,16652)|0); - $450 = ($449|0)!=(0); - if (!($450)) { - HEAP32[$1>>2] = 23; - break; - } - $451 = HEAP32[$3>>2]|0; - $452 = (_strcmp($451,16666)|0); - $453 = ($452|0)!=(0); - if (!($453)) { - HEAP32[$1>>2] = 11; - break; - } - $454 = HEAP32[$3>>2]|0; - $455 = (_strcmp($454,16691)|0); - $456 = ($455|0)!=(0); - if (!($456)) { - HEAP32[$1>>2] = 24; - break; - } - $457 = HEAP32[$3>>2]|0; - $458 = (_strcmp($457,16708)|0); - $459 = ($458|0)!=(0); - if (!($459)) { - HEAP32[$1>>2] = 25; - break; - } - $460 = HEAP32[$3>>2]|0; - $461 = (_strcmp($460,16724)|0); - $462 = ($461|0)!=(0); - if (!($462)) { - HEAP32[$1>>2] = 26; - break; - } - $463 = HEAP32[$3>>2]|0; - $464 = (_strcmp($463,16740)|0); - $465 = ($464|0)!=(0); - if (!($465)) { - HEAP32[$1>>2] = 12; - break; - } - $466 = HEAP32[$3>>2]|0; - $467 = (_strcmp($466,16752)|0); - $468 = ($467|0)!=(0); - if (!($468)) { - HEAP32[$1>>2] = 34; - break; - } - $469 = HEAP32[$3>>2]|0; - $470 = (_strcmp($469,16764)|0); - $471 = ($470|0)!=(0); - if (!($471)) { - HEAP32[$1>>2] = 35; - break; - } - $472 = HEAP32[$3>>2]|0; - $473 = (_strcmp($472,16788)|0); - $474 = ($473|0)!=(0); - if (!($474)) { - HEAP32[$1>>2] = 1; - break; - } - $475 = HEAP32[$3>>2]|0; - $476 = (_strcmp($475,16801)|0); - $477 = ($476|0)!=(0); - if (!($477)) { - HEAP32[$1>>2] = 2; - break; - } - $478 = HEAP32[$3>>2]|0; - $479 = (_strcmp($478,16815)|0); - $480 = ($479|0)!=(0); - if (!($480)) { - HEAP32[$1>>2] = 36; - break; - } - $481 = HEAP32[$3>>2]|0; - $482 = (_strcmp($481,16837)|0); - $483 = ($482|0)!=(0); - if (!($483)) { - HEAP32[$1>>2] = 37; - break; - } - $484 = HEAP32[$3>>2]|0; - $485 = (_strcmp($484,16844)|0); - $486 = ($485|0)!=(0); - if (!($486)) { - HEAP32[$1>>2] = 3; - break; - } - $487 = HEAP32[$3>>2]|0; - $488 = (_strcmp($487,16860)|0); - $489 = ($488|0)!=(0); - if (!($489)) { - HEAP32[$1>>2] = 2; - break; - } - $490 = HEAP32[$3>>2]|0; - $491 = (_strcmp($490,16877)|0); - $492 = ($491|0)!=(0); - if (!($492)) { - HEAP32[$1>>2] = 1; - break; - } - $493 = HEAP32[$3>>2]|0; - $494 = (_strcmp($493,16894)|0); - $495 = ($494|0)!=(0); - if (!($495)) { - HEAP32[$1>>2] = 28; - break; - } - $496 = HEAP32[$3>>2]|0; - $497 = (_strcmp($496,16910)|0); - $498 = ($497|0)!=(0); - if (!($498)) { - HEAP32[$1>>2] = 1; - break; - } - $499 = HEAP32[$3>>2]|0; - $500 = (_strcmp($499,16926)|0); - $501 = ($500|0)!=(0); - if (!($501)) { - HEAP32[$1>>2] = 4; - break; - } - $502 = HEAP32[$3>>2]|0; - $503 = (_strcmp($502,16943)|0); - $504 = ($503|0)!=(0); - if (!($504)) { - HEAP32[$1>>2] = 29; - break; - } - $505 = HEAP32[$3>>2]|0; - $506 = (_strcmp($505,16957)|0); - $507 = ($506|0)!=(0); - if (!($507)) { - HEAP32[$1>>2] = 30; - break; - } - $508 = HEAP32[$3>>2]|0; - $509 = (_strcmp($508,16969)|0); - $510 = ($509|0)!=(0); - if (!($510)) { - HEAP32[$1>>2] = 22; - break; - } - $511 = HEAP32[$3>>2]|0; - $512 = (_strcmp($511,16980)|0); - $513 = ($512|0)!=(0); - if (!($513)) { - HEAP32[$1>>2] = 2; - break; - } - $514 = HEAP32[$3>>2]|0; - $515 = (_strcmp($514,16993)|0); - $516 = ($515|0)!=(0); - if (!($516)) { - HEAP32[$1>>2] = 23; - break; - } - $517 = HEAP32[$3>>2]|0; - $518 = (_strcmp($517,17003)|0); - $519 = ($518|0)!=(0); - if (!($519)) { - HEAP32[$1>>2] = 2; - break; - } - $520 = HEAP32[$3>>2]|0; - $521 = (_strcmp($520,17020)|0); - $522 = ($521|0)!=(0); - if (!($522)) { - HEAP32[$1>>2] = 24; - break; - } - $523 = HEAP32[$3>>2]|0; - $524 = (_strcmp($523,17032)|0); - $525 = ($524|0)!=(0); - if (!($525)) { - HEAP32[$1>>2] = 25; - break; - } - $526 = HEAP32[$3>>2]|0; - $527 = (_strcmp($526,17054)|0); - $528 = ($527|0)!=(0); - if (!($528)) { - HEAP32[$1>>2] = 26; - break; - } - $529 = HEAP32[$3>>2]|0; - $530 = (_strcmp($529,17074)|0); - $531 = ($530|0)!=(0); - if (!($531)) { - HEAP32[$1>>2] = 3; - break; - } - $532 = HEAP32[$3>>2]|0; - $533 = (_strcmp($532,17087)|0); - $534 = ($533|0)!=(0); - if (!($534)) { - HEAP32[$1>>2] = 27; - break; - } - $535 = HEAP32[$3>>2]|0; - $536 = (_strcmp($535,17109)|0); - $537 = ($536|0)!=(0); - if (!($537)) { - HEAP32[$1>>2] = 28; - break; - } - $538 = HEAP32[$3>>2]|0; - $539 = (_strcmp($538,17129)|0); - $540 = ($539|0)!=(0); - if (!($540)) { - HEAP32[$1>>2] = 2; - break; - } - $541 = HEAP32[$3>>2]|0; - $542 = (_strcmp($541,17146)|0); - $543 = ($542|0)!=(0); - if (!($543)) { - HEAP32[$1>>2] = 2; - break; - } - $544 = HEAP32[$3>>2]|0; - $545 = (_strcmp($544,17163)|0); - $546 = ($545|0)!=(0); - if (!($546)) { - HEAP32[$1>>2] = 3; - break; - } - $547 = HEAP32[$3>>2]|0; - $548 = (_strcmp($547,17183)|0); - $549 = ($548|0)!=(0); - if ($549) { - $550 = HEAP32[$2>>2]|0; - $551 = HEAP32[$3>>2]|0; - $552 = _emscripten_asm_const_iii(0, ($550|0), ($551|0))|0; - HEAP32[$1>>2] = 0; - break; - } else { - HEAP32[$1>>2] = 38; - break; - } - } else { - HEAP32[$1>>2] = 6; - } - } while(0); - $553 = HEAP32[$1>>2]|0; - STACKTOP = sp;return ($553|0); -} -function _malloc($0) { - $0 = $0|0; - var $$$0192$i = 0, $$$0193$i = 0, $$$4236$i = 0, $$$4351$i = 0, $$$i = 0, $$0 = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i18$i = 0, $$01$i$i = 0, $$0189$i = 0, $$0192$lcssa$i = 0, $$01928$i = 0, $$0193$lcssa$i = 0, $$01937$i = 0, $$0197 = 0, $$0199 = 0, $$0206$i$i = 0, $$0207$i$i = 0, $$0211$i$i = 0; - var $$0212$i$i = 0, $$024371$i = 0, $$0287$i$i = 0, $$0288$i$i = 0, $$0289$i$i = 0, $$0295$i$i = 0, $$0296$i$i = 0, $$0342$i = 0, $$0344$i = 0, $$0345$i = 0, $$0347$i = 0, $$0353$i = 0, $$0358$i = 0, $$0359$$i = 0, $$0359$i = 0, $$0361$i = 0, $$0362$i = 0, $$0368$i = 0, $$1196$i = 0, $$1198$i = 0; - var $$124470$i = 0, $$1291$i$i = 0, $$1293$i$i = 0, $$1343$i = 0, $$1348$i = 0, $$1363$i = 0, $$1370$i = 0, $$1374$i = 0, $$2234253237$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2355$i = 0, $$3$i = 0, $$3$i$i = 0, $$3$i201 = 0, $$3350$i = 0, $$3372$i = 0, $$4$lcssa$i = 0, $$4$ph$i = 0, $$415$i = 0; - var $$4236$i = 0, $$4351$lcssa$i = 0, $$435114$i = 0, $$4357$$4$i = 0, $$4357$ph$i = 0, $$435713$i = 0, $$723948$i = 0, $$749$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i19$i = 0, $$pre$i210 = 0, $$pre$i212 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i20$iZ2D = 0, $$pre$phi$i211Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi11$i$iZ2D = 0, $$pre$phiZ2D = 0; - var $$pre10$i$i = 0, $$sink1$i = 0, $$sink1$i$i = 0, $$sink16$i = 0, $$sink2$i = 0, $$sink2$i204 = 0, $$sink3$i = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0; - var $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0; - var $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0; - var $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; - var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; - var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; - var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; - var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0; - var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0; - var $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0; - var $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0; - var $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0; - var $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0; - var $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0; - var $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0; - var $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0; - var $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0; - var $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0; - var $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0; - var $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0; - var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; - var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; - var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; - var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; - var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; - var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0; - var $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0; - var $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0; - var $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0; - var $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0; - var $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0; - var $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0; - var $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0; - var $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0; - var $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0; - var $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0; - var $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0; - var $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0; - var $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0; - var $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0; - var $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0; - var $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0; - var $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0; - var $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0; - var $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0; - var $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0; - var $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0; - var $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0; - var $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0; - var $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0; - var $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0; - var $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0; - var $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0; - var $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i208 = 0, $exitcond$i$i = 0, $not$$i = 0, $not$$i$i = 0, $not$$i17$i = 0, $not$$i209 = 0, $not$$i216 = 0, $not$1$i = 0, $not$1$i203 = 0, $not$5$i = 0, $not$7$i$i = 0, $not$8$i = 0, $not$9$i = 0; - var $or$cond$i = 0, $or$cond$i214 = 0, $or$cond1$i = 0, $or$cond10$i = 0, $or$cond11$i = 0, $or$cond11$not$i = 0, $or$cond12$i = 0, $or$cond2$i = 0, $or$cond2$i215 = 0, $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond7$i = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - $2 = ($0>>>0)<(245); - do { - if ($2) { - $3 = ($0>>>0)<(11); - $4 = (($0) + 11)|0; - $5 = $4 & -8; - $6 = $3 ? 16 : $5; - $7 = $6 >>> 3; - $8 = HEAP32[5706]|0; - $9 = $8 >>> $7; - $10 = $9 & 3; - $11 = ($10|0)==(0); - if (!($11)) { - $12 = $9 & 1; - $13 = $12 ^ 1; - $14 = (($13) + ($7))|0; - $15 = $14 << 1; - $16 = (22864 + ($15<<2)|0); - $17 = ((($16)) + 8|0); - $18 = HEAP32[$17>>2]|0; - $19 = ((($18)) + 8|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($16|0)==($20|0); - do { - if ($21) { - $22 = 1 << $14; - $23 = $22 ^ -1; - $24 = $8 & $23; - HEAP32[5706] = $24; - } else { - $25 = HEAP32[(22840)>>2]|0; - $26 = ($20>>>0)<($25>>>0); - if ($26) { - _abort(); - // unreachable; - } - $27 = ((($20)) + 12|0); - $28 = HEAP32[$27>>2]|0; - $29 = ($28|0)==($18|0); - if ($29) { - HEAP32[$27>>2] = $16; - HEAP32[$17>>2] = $20; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $30 = $14 << 3; - $31 = $30 | 3; - $32 = ((($18)) + 4|0); - HEAP32[$32>>2] = $31; - $33 = (($18) + ($30)|0); - $34 = ((($33)) + 4|0); - $35 = HEAP32[$34>>2]|0; - $36 = $35 | 1; - HEAP32[$34>>2] = $36; - $$0 = $19; - STACKTOP = sp;return ($$0|0); - } - $37 = HEAP32[(22832)>>2]|0; - $38 = ($6>>>0)>($37>>>0); - if ($38) { - $39 = ($9|0)==(0); - if (!($39)) { - $40 = $9 << $7; - $41 = 2 << $7; - $42 = (0 - ($41))|0; - $43 = $41 | $42; - $44 = $40 & $43; - $45 = (0 - ($44))|0; - $46 = $44 & $45; - $47 = (($46) + -1)|0; - $48 = $47 >>> 12; - $49 = $48 & 16; - $50 = $47 >>> $49; - $51 = $50 >>> 5; - $52 = $51 & 8; - $53 = $52 | $49; - $54 = $50 >>> $52; - $55 = $54 >>> 2; - $56 = $55 & 4; - $57 = $53 | $56; - $58 = $54 >>> $56; - $59 = $58 >>> 1; - $60 = $59 & 2; - $61 = $57 | $60; - $62 = $58 >>> $60; - $63 = $62 >>> 1; - $64 = $63 & 1; - $65 = $61 | $64; - $66 = $62 >>> $64; - $67 = (($65) + ($66))|0; - $68 = $67 << 1; - $69 = (22864 + ($68<<2)|0); - $70 = ((($69)) + 8|0); - $71 = HEAP32[$70>>2]|0; - $72 = ((($71)) + 8|0); - $73 = HEAP32[$72>>2]|0; - $74 = ($69|0)==($73|0); - do { - if ($74) { - $75 = 1 << $67; - $76 = $75 ^ -1; - $77 = $8 & $76; - HEAP32[5706] = $77; - $98 = $77; - } else { - $78 = HEAP32[(22840)>>2]|0; - $79 = ($73>>>0)<($78>>>0); - if ($79) { - _abort(); - // unreachable; - } - $80 = ((($73)) + 12|0); - $81 = HEAP32[$80>>2]|0; - $82 = ($81|0)==($71|0); - if ($82) { - HEAP32[$80>>2] = $69; - HEAP32[$70>>2] = $73; - $98 = $8; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $83 = $67 << 3; - $84 = (($83) - ($6))|0; - $85 = $6 | 3; - $86 = ((($71)) + 4|0); - HEAP32[$86>>2] = $85; - $87 = (($71) + ($6)|0); - $88 = $84 | 1; - $89 = ((($87)) + 4|0); - HEAP32[$89>>2] = $88; - $90 = (($87) + ($84)|0); - HEAP32[$90>>2] = $84; - $91 = ($37|0)==(0); - if (!($91)) { - $92 = HEAP32[(22844)>>2]|0; - $93 = $37 >>> 3; - $94 = $93 << 1; - $95 = (22864 + ($94<<2)|0); - $96 = 1 << $93; - $97 = $98 & $96; - $99 = ($97|0)==(0); - if ($99) { - $100 = $98 | $96; - HEAP32[5706] = $100; - $$pre = ((($95)) + 8|0); - $$0199 = $95;$$pre$phiZ2D = $$pre; - } else { - $101 = ((($95)) + 8|0); - $102 = HEAP32[$101>>2]|0; - $103 = HEAP32[(22840)>>2]|0; - $104 = ($102>>>0)<($103>>>0); - if ($104) { - _abort(); - // unreachable; - } else { - $$0199 = $102;$$pre$phiZ2D = $101; - } - } - HEAP32[$$pre$phiZ2D>>2] = $92; - $105 = ((($$0199)) + 12|0); - HEAP32[$105>>2] = $92; - $106 = ((($92)) + 8|0); - HEAP32[$106>>2] = $$0199; - $107 = ((($92)) + 12|0); - HEAP32[$107>>2] = $95; - } - HEAP32[(22832)>>2] = $84; - HEAP32[(22844)>>2] = $87; - $$0 = $72; - STACKTOP = sp;return ($$0|0); - } - $108 = HEAP32[(22828)>>2]|0; - $109 = ($108|0)==(0); - if ($109) { - $$0197 = $6; - } else { - $110 = (0 - ($108))|0; - $111 = $108 & $110; - $112 = (($111) + -1)|0; - $113 = $112 >>> 12; - $114 = $113 & 16; - $115 = $112 >>> $114; - $116 = $115 >>> 5; - $117 = $116 & 8; - $118 = $117 | $114; - $119 = $115 >>> $117; - $120 = $119 >>> 2; - $121 = $120 & 4; - $122 = $118 | $121; - $123 = $119 >>> $121; - $124 = $123 >>> 1; - $125 = $124 & 2; - $126 = $122 | $125; - $127 = $123 >>> $125; - $128 = $127 >>> 1; - $129 = $128 & 1; - $130 = $126 | $129; - $131 = $127 >>> $129; - $132 = (($130) + ($131))|0; - $133 = (23128 + ($132<<2)|0); - $134 = HEAP32[$133>>2]|0; - $135 = ((($134)) + 4|0); - $136 = HEAP32[$135>>2]|0; - $137 = $136 & -8; - $138 = (($137) - ($6))|0; - $139 = ((($134)) + 16|0); - $140 = HEAP32[$139>>2]|0; - $not$5$i = ($140|0)==(0|0); - $$sink16$i = $not$5$i&1; - $141 = (((($134)) + 16|0) + ($$sink16$i<<2)|0); - $142 = HEAP32[$141>>2]|0; - $143 = ($142|0)==(0|0); - if ($143) { - $$0192$lcssa$i = $134;$$0193$lcssa$i = $138; - } else { - $$01928$i = $134;$$01937$i = $138;$145 = $142; - while(1) { - $144 = ((($145)) + 4|0); - $146 = HEAP32[$144>>2]|0; - $147 = $146 & -8; - $148 = (($147) - ($6))|0; - $149 = ($148>>>0)<($$01937$i>>>0); - $$$0193$i = $149 ? $148 : $$01937$i; - $$$0192$i = $149 ? $145 : $$01928$i; - $150 = ((($145)) + 16|0); - $151 = HEAP32[$150>>2]|0; - $not$$i = ($151|0)==(0|0); - $$sink1$i = $not$$i&1; - $152 = (((($145)) + 16|0) + ($$sink1$i<<2)|0); - $153 = HEAP32[$152>>2]|0; - $154 = ($153|0)==(0|0); - if ($154) { - $$0192$lcssa$i = $$$0192$i;$$0193$lcssa$i = $$$0193$i; - break; - } else { - $$01928$i = $$$0192$i;$$01937$i = $$$0193$i;$145 = $153; - } - } - } - $155 = HEAP32[(22840)>>2]|0; - $156 = ($$0192$lcssa$i>>>0)<($155>>>0); - if ($156) { - _abort(); - // unreachable; - } - $157 = (($$0192$lcssa$i) + ($6)|0); - $158 = ($$0192$lcssa$i>>>0)<($157>>>0); - if (!($158)) { - _abort(); - // unreachable; - } - $159 = ((($$0192$lcssa$i)) + 24|0); - $160 = HEAP32[$159>>2]|0; - $161 = ((($$0192$lcssa$i)) + 12|0); - $162 = HEAP32[$161>>2]|0; - $163 = ($162|0)==($$0192$lcssa$i|0); - do { - if ($163) { - $173 = ((($$0192$lcssa$i)) + 20|0); - $174 = HEAP32[$173>>2]|0; - $175 = ($174|0)==(0|0); - if ($175) { - $176 = ((($$0192$lcssa$i)) + 16|0); - $177 = HEAP32[$176>>2]|0; - $178 = ($177|0)==(0|0); - if ($178) { - $$3$i = 0; - break; - } else { - $$1196$i = $177;$$1198$i = $176; - } - } else { - $$1196$i = $174;$$1198$i = $173; - } - while(1) { - $179 = ((($$1196$i)) + 20|0); - $180 = HEAP32[$179>>2]|0; - $181 = ($180|0)==(0|0); - if (!($181)) { - $$1196$i = $180;$$1198$i = $179; - continue; - } - $182 = ((($$1196$i)) + 16|0); - $183 = HEAP32[$182>>2]|0; - $184 = ($183|0)==(0|0); - if ($184) { - break; - } else { - $$1196$i = $183;$$1198$i = $182; - } - } - $185 = ($$1198$i>>>0)<($155>>>0); - if ($185) { - _abort(); - // unreachable; - } else { - HEAP32[$$1198$i>>2] = 0; - $$3$i = $$1196$i; - break; - } - } else { - $164 = ((($$0192$lcssa$i)) + 8|0); - $165 = HEAP32[$164>>2]|0; - $166 = ($165>>>0)<($155>>>0); - if ($166) { - _abort(); - // unreachable; - } - $167 = ((($165)) + 12|0); - $168 = HEAP32[$167>>2]|0; - $169 = ($168|0)==($$0192$lcssa$i|0); - if (!($169)) { - _abort(); - // unreachable; - } - $170 = ((($162)) + 8|0); - $171 = HEAP32[$170>>2]|0; - $172 = ($171|0)==($$0192$lcssa$i|0); - if ($172) { - HEAP32[$167>>2] = $162; - HEAP32[$170>>2] = $165; - $$3$i = $162; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $186 = ($160|0)==(0|0); - L73: do { - if (!($186)) { - $187 = ((($$0192$lcssa$i)) + 28|0); - $188 = HEAP32[$187>>2]|0; - $189 = (23128 + ($188<<2)|0); - $190 = HEAP32[$189>>2]|0; - $191 = ($$0192$lcssa$i|0)==($190|0); - do { - if ($191) { - HEAP32[$189>>2] = $$3$i; - $cond$i = ($$3$i|0)==(0|0); - if ($cond$i) { - $192 = 1 << $188; - $193 = $192 ^ -1; - $194 = $108 & $193; - HEAP32[(22828)>>2] = $194; - break L73; - } - } else { - $195 = HEAP32[(22840)>>2]|0; - $196 = ($160>>>0)<($195>>>0); - if ($196) { - _abort(); - // unreachable; - } else { - $197 = ((($160)) + 16|0); - $198 = HEAP32[$197>>2]|0; - $not$1$i = ($198|0)!=($$0192$lcssa$i|0); - $$sink2$i = $not$1$i&1; - $199 = (((($160)) + 16|0) + ($$sink2$i<<2)|0); - HEAP32[$199>>2] = $$3$i; - $200 = ($$3$i|0)==(0|0); - if ($200) { - break L73; - } else { - break; - } - } - } - } while(0); - $201 = HEAP32[(22840)>>2]|0; - $202 = ($$3$i>>>0)<($201>>>0); - if ($202) { - _abort(); - // unreachable; - } - $203 = ((($$3$i)) + 24|0); - HEAP32[$203>>2] = $160; - $204 = ((($$0192$lcssa$i)) + 16|0); - $205 = HEAP32[$204>>2]|0; - $206 = ($205|0)==(0|0); - do { - if (!($206)) { - $207 = ($205>>>0)<($201>>>0); - if ($207) { - _abort(); - // unreachable; - } else { - $208 = ((($$3$i)) + 16|0); - HEAP32[$208>>2] = $205; - $209 = ((($205)) + 24|0); - HEAP32[$209>>2] = $$3$i; - break; - } - } - } while(0); - $210 = ((($$0192$lcssa$i)) + 20|0); - $211 = HEAP32[$210>>2]|0; - $212 = ($211|0)==(0|0); - if (!($212)) { - $213 = HEAP32[(22840)>>2]|0; - $214 = ($211>>>0)<($213>>>0); - if ($214) { - _abort(); - // unreachable; - } else { - $215 = ((($$3$i)) + 20|0); - HEAP32[$215>>2] = $211; - $216 = ((($211)) + 24|0); - HEAP32[$216>>2] = $$3$i; - break; - } - } - } - } while(0); - $217 = ($$0193$lcssa$i>>>0)<(16); - if ($217) { - $218 = (($$0193$lcssa$i) + ($6))|0; - $219 = $218 | 3; - $220 = ((($$0192$lcssa$i)) + 4|0); - HEAP32[$220>>2] = $219; - $221 = (($$0192$lcssa$i) + ($218)|0); - $222 = ((($221)) + 4|0); - $223 = HEAP32[$222>>2]|0; - $224 = $223 | 1; - HEAP32[$222>>2] = $224; - } else { - $225 = $6 | 3; - $226 = ((($$0192$lcssa$i)) + 4|0); - HEAP32[$226>>2] = $225; - $227 = $$0193$lcssa$i | 1; - $228 = ((($157)) + 4|0); - HEAP32[$228>>2] = $227; - $229 = (($157) + ($$0193$lcssa$i)|0); - HEAP32[$229>>2] = $$0193$lcssa$i; - $230 = ($37|0)==(0); - if (!($230)) { - $231 = HEAP32[(22844)>>2]|0; - $232 = $37 >>> 3; - $233 = $232 << 1; - $234 = (22864 + ($233<<2)|0); - $235 = 1 << $232; - $236 = $8 & $235; - $237 = ($236|0)==(0); - if ($237) { - $238 = $8 | $235; - HEAP32[5706] = $238; - $$pre$i = ((($234)) + 8|0); - $$0189$i = $234;$$pre$phi$iZ2D = $$pre$i; - } else { - $239 = ((($234)) + 8|0); - $240 = HEAP32[$239>>2]|0; - $241 = HEAP32[(22840)>>2]|0; - $242 = ($240>>>0)<($241>>>0); - if ($242) { - _abort(); - // unreachable; - } else { - $$0189$i = $240;$$pre$phi$iZ2D = $239; - } - } - HEAP32[$$pre$phi$iZ2D>>2] = $231; - $243 = ((($$0189$i)) + 12|0); - HEAP32[$243>>2] = $231; - $244 = ((($231)) + 8|0); - HEAP32[$244>>2] = $$0189$i; - $245 = ((($231)) + 12|0); - HEAP32[$245>>2] = $234; - } - HEAP32[(22832)>>2] = $$0193$lcssa$i; - HEAP32[(22844)>>2] = $157; - } - $246 = ((($$0192$lcssa$i)) + 8|0); - $$0 = $246; - STACKTOP = sp;return ($$0|0); - } - } else { - $$0197 = $6; - } - } else { - $247 = ($0>>>0)>(4294967231); - if ($247) { - $$0197 = -1; - } else { - $248 = (($0) + 11)|0; - $249 = $248 & -8; - $250 = HEAP32[(22828)>>2]|0; - $251 = ($250|0)==(0); - if ($251) { - $$0197 = $249; - } else { - $252 = (0 - ($249))|0; - $253 = $248 >>> 8; - $254 = ($253|0)==(0); - if ($254) { - $$0358$i = 0; - } else { - $255 = ($249>>>0)>(16777215); - if ($255) { - $$0358$i = 31; - } else { - $256 = (($253) + 1048320)|0; - $257 = $256 >>> 16; - $258 = $257 & 8; - $259 = $253 << $258; - $260 = (($259) + 520192)|0; - $261 = $260 >>> 16; - $262 = $261 & 4; - $263 = $262 | $258; - $264 = $259 << $262; - $265 = (($264) + 245760)|0; - $266 = $265 >>> 16; - $267 = $266 & 2; - $268 = $263 | $267; - $269 = (14 - ($268))|0; - $270 = $264 << $267; - $271 = $270 >>> 15; - $272 = (($269) + ($271))|0; - $273 = $272 << 1; - $274 = (($272) + 7)|0; - $275 = $249 >>> $274; - $276 = $275 & 1; - $277 = $276 | $273; - $$0358$i = $277; - } - } - $278 = (23128 + ($$0358$i<<2)|0); - $279 = HEAP32[$278>>2]|0; - $280 = ($279|0)==(0|0); - L117: do { - if ($280) { - $$2355$i = 0;$$3$i201 = 0;$$3350$i = $252; - label = 81; - } else { - $281 = ($$0358$i|0)==(31); - $282 = $$0358$i >>> 1; - $283 = (25 - ($282))|0; - $284 = $281 ? 0 : $283; - $285 = $249 << $284; - $$0342$i = 0;$$0347$i = $252;$$0353$i = $279;$$0359$i = $285;$$0362$i = 0; - while(1) { - $286 = ((($$0353$i)) + 4|0); - $287 = HEAP32[$286>>2]|0; - $288 = $287 & -8; - $289 = (($288) - ($249))|0; - $290 = ($289>>>0)<($$0347$i>>>0); - if ($290) { - $291 = ($289|0)==(0); - if ($291) { - $$415$i = $$0353$i;$$435114$i = 0;$$435713$i = $$0353$i; - label = 85; - break L117; - } else { - $$1343$i = $$0353$i;$$1348$i = $289; - } - } else { - $$1343$i = $$0342$i;$$1348$i = $$0347$i; - } - $292 = ((($$0353$i)) + 20|0); - $293 = HEAP32[$292>>2]|0; - $294 = $$0359$i >>> 31; - $295 = (((($$0353$i)) + 16|0) + ($294<<2)|0); - $296 = HEAP32[$295>>2]|0; - $297 = ($293|0)==(0|0); - $298 = ($293|0)==($296|0); - $or$cond2$i = $297 | $298; - $$1363$i = $or$cond2$i ? $$0362$i : $293; - $299 = ($296|0)==(0|0); - $not$8$i = $299 ^ 1; - $300 = $not$8$i&1; - $$0359$$i = $$0359$i << $300; - if ($299) { - $$2355$i = $$1363$i;$$3$i201 = $$1343$i;$$3350$i = $$1348$i; - label = 81; - break; - } else { - $$0342$i = $$1343$i;$$0347$i = $$1348$i;$$0353$i = $296;$$0359$i = $$0359$$i;$$0362$i = $$1363$i; - } - } - } - } while(0); - if ((label|0) == 81) { - $301 = ($$2355$i|0)==(0|0); - $302 = ($$3$i201|0)==(0|0); - $or$cond$i = $301 & $302; - if ($or$cond$i) { - $303 = 2 << $$0358$i; - $304 = (0 - ($303))|0; - $305 = $303 | $304; - $306 = $250 & $305; - $307 = ($306|0)==(0); - if ($307) { - $$0197 = $249; - break; - } - $308 = (0 - ($306))|0; - $309 = $306 & $308; - $310 = (($309) + -1)|0; - $311 = $310 >>> 12; - $312 = $311 & 16; - $313 = $310 >>> $312; - $314 = $313 >>> 5; - $315 = $314 & 8; - $316 = $315 | $312; - $317 = $313 >>> $315; - $318 = $317 >>> 2; - $319 = $318 & 4; - $320 = $316 | $319; - $321 = $317 >>> $319; - $322 = $321 >>> 1; - $323 = $322 & 2; - $324 = $320 | $323; - $325 = $321 >>> $323; - $326 = $325 >>> 1; - $327 = $326 & 1; - $328 = $324 | $327; - $329 = $325 >>> $327; - $330 = (($328) + ($329))|0; - $331 = (23128 + ($330<<2)|0); - $332 = HEAP32[$331>>2]|0; - $$4$ph$i = 0;$$4357$ph$i = $332; - } else { - $$4$ph$i = $$3$i201;$$4357$ph$i = $$2355$i; - } - $333 = ($$4357$ph$i|0)==(0|0); - if ($333) { - $$4$lcssa$i = $$4$ph$i;$$4351$lcssa$i = $$3350$i; - } else { - $$415$i = $$4$ph$i;$$435114$i = $$3350$i;$$435713$i = $$4357$ph$i; - label = 85; - } - } - if ((label|0) == 85) { - while(1) { - label = 0; - $334 = ((($$435713$i)) + 4|0); - $335 = HEAP32[$334>>2]|0; - $336 = $335 & -8; - $337 = (($336) - ($249))|0; - $338 = ($337>>>0)<($$435114$i>>>0); - $$$4351$i = $338 ? $337 : $$435114$i; - $$4357$$4$i = $338 ? $$435713$i : $$415$i; - $339 = ((($$435713$i)) + 16|0); - $340 = HEAP32[$339>>2]|0; - $not$1$i203 = ($340|0)==(0|0); - $$sink2$i204 = $not$1$i203&1; - $341 = (((($$435713$i)) + 16|0) + ($$sink2$i204<<2)|0); - $342 = HEAP32[$341>>2]|0; - $343 = ($342|0)==(0|0); - if ($343) { - $$4$lcssa$i = $$4357$$4$i;$$4351$lcssa$i = $$$4351$i; - break; - } else { - $$415$i = $$4357$$4$i;$$435114$i = $$$4351$i;$$435713$i = $342; - label = 85; - } - } - } - $344 = ($$4$lcssa$i|0)==(0|0); - if ($344) { - $$0197 = $249; - } else { - $345 = HEAP32[(22832)>>2]|0; - $346 = (($345) - ($249))|0; - $347 = ($$4351$lcssa$i>>>0)<($346>>>0); - if ($347) { - $348 = HEAP32[(22840)>>2]|0; - $349 = ($$4$lcssa$i>>>0)<($348>>>0); - if ($349) { - _abort(); - // unreachable; - } - $350 = (($$4$lcssa$i) + ($249)|0); - $351 = ($$4$lcssa$i>>>0)<($350>>>0); - if (!($351)) { - _abort(); - // unreachable; - } - $352 = ((($$4$lcssa$i)) + 24|0); - $353 = HEAP32[$352>>2]|0; - $354 = ((($$4$lcssa$i)) + 12|0); - $355 = HEAP32[$354>>2]|0; - $356 = ($355|0)==($$4$lcssa$i|0); - do { - if ($356) { - $366 = ((($$4$lcssa$i)) + 20|0); - $367 = HEAP32[$366>>2]|0; - $368 = ($367|0)==(0|0); - if ($368) { - $369 = ((($$4$lcssa$i)) + 16|0); - $370 = HEAP32[$369>>2]|0; - $371 = ($370|0)==(0|0); - if ($371) { - $$3372$i = 0; - break; - } else { - $$1370$i = $370;$$1374$i = $369; - } - } else { - $$1370$i = $367;$$1374$i = $366; - } - while(1) { - $372 = ((($$1370$i)) + 20|0); - $373 = HEAP32[$372>>2]|0; - $374 = ($373|0)==(0|0); - if (!($374)) { - $$1370$i = $373;$$1374$i = $372; - continue; - } - $375 = ((($$1370$i)) + 16|0); - $376 = HEAP32[$375>>2]|0; - $377 = ($376|0)==(0|0); - if ($377) { - break; - } else { - $$1370$i = $376;$$1374$i = $375; - } - } - $378 = ($$1374$i>>>0)<($348>>>0); - if ($378) { - _abort(); - // unreachable; - } else { - HEAP32[$$1374$i>>2] = 0; - $$3372$i = $$1370$i; - break; - } - } else { - $357 = ((($$4$lcssa$i)) + 8|0); - $358 = HEAP32[$357>>2]|0; - $359 = ($358>>>0)<($348>>>0); - if ($359) { - _abort(); - // unreachable; - } - $360 = ((($358)) + 12|0); - $361 = HEAP32[$360>>2]|0; - $362 = ($361|0)==($$4$lcssa$i|0); - if (!($362)) { - _abort(); - // unreachable; - } - $363 = ((($355)) + 8|0); - $364 = HEAP32[$363>>2]|0; - $365 = ($364|0)==($$4$lcssa$i|0); - if ($365) { - HEAP32[$360>>2] = $355; - HEAP32[$363>>2] = $358; - $$3372$i = $355; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $379 = ($353|0)==(0|0); - L164: do { - if ($379) { - $470 = $250; - } else { - $380 = ((($$4$lcssa$i)) + 28|0); - $381 = HEAP32[$380>>2]|0; - $382 = (23128 + ($381<<2)|0); - $383 = HEAP32[$382>>2]|0; - $384 = ($$4$lcssa$i|0)==($383|0); - do { - if ($384) { - HEAP32[$382>>2] = $$3372$i; - $cond$i208 = ($$3372$i|0)==(0|0); - if ($cond$i208) { - $385 = 1 << $381; - $386 = $385 ^ -1; - $387 = $250 & $386; - HEAP32[(22828)>>2] = $387; - $470 = $387; - break L164; - } - } else { - $388 = HEAP32[(22840)>>2]|0; - $389 = ($353>>>0)<($388>>>0); - if ($389) { - _abort(); - // unreachable; - } else { - $390 = ((($353)) + 16|0); - $391 = HEAP32[$390>>2]|0; - $not$$i209 = ($391|0)!=($$4$lcssa$i|0); - $$sink3$i = $not$$i209&1; - $392 = (((($353)) + 16|0) + ($$sink3$i<<2)|0); - HEAP32[$392>>2] = $$3372$i; - $393 = ($$3372$i|0)==(0|0); - if ($393) { - $470 = $250; - break L164; - } else { - break; - } - } - } - } while(0); - $394 = HEAP32[(22840)>>2]|0; - $395 = ($$3372$i>>>0)<($394>>>0); - if ($395) { - _abort(); - // unreachable; - } - $396 = ((($$3372$i)) + 24|0); - HEAP32[$396>>2] = $353; - $397 = ((($$4$lcssa$i)) + 16|0); - $398 = HEAP32[$397>>2]|0; - $399 = ($398|0)==(0|0); - do { - if (!($399)) { - $400 = ($398>>>0)<($394>>>0); - if ($400) { - _abort(); - // unreachable; - } else { - $401 = ((($$3372$i)) + 16|0); - HEAP32[$401>>2] = $398; - $402 = ((($398)) + 24|0); - HEAP32[$402>>2] = $$3372$i; - break; - } - } - } while(0); - $403 = ((($$4$lcssa$i)) + 20|0); - $404 = HEAP32[$403>>2]|0; - $405 = ($404|0)==(0|0); - if ($405) { - $470 = $250; - } else { - $406 = HEAP32[(22840)>>2]|0; - $407 = ($404>>>0)<($406>>>0); - if ($407) { - _abort(); - // unreachable; - } else { - $408 = ((($$3372$i)) + 20|0); - HEAP32[$408>>2] = $404; - $409 = ((($404)) + 24|0); - HEAP32[$409>>2] = $$3372$i; - $470 = $250; - break; - } - } - } - } while(0); - $410 = ($$4351$lcssa$i>>>0)<(16); - do { - if ($410) { - $411 = (($$4351$lcssa$i) + ($249))|0; - $412 = $411 | 3; - $413 = ((($$4$lcssa$i)) + 4|0); - HEAP32[$413>>2] = $412; - $414 = (($$4$lcssa$i) + ($411)|0); - $415 = ((($414)) + 4|0); - $416 = HEAP32[$415>>2]|0; - $417 = $416 | 1; - HEAP32[$415>>2] = $417; - } else { - $418 = $249 | 3; - $419 = ((($$4$lcssa$i)) + 4|0); - HEAP32[$419>>2] = $418; - $420 = $$4351$lcssa$i | 1; - $421 = ((($350)) + 4|0); - HEAP32[$421>>2] = $420; - $422 = (($350) + ($$4351$lcssa$i)|0); - HEAP32[$422>>2] = $$4351$lcssa$i; - $423 = $$4351$lcssa$i >>> 3; - $424 = ($$4351$lcssa$i>>>0)<(256); - if ($424) { - $425 = $423 << 1; - $426 = (22864 + ($425<<2)|0); - $427 = HEAP32[5706]|0; - $428 = 1 << $423; - $429 = $427 & $428; - $430 = ($429|0)==(0); - if ($430) { - $431 = $427 | $428; - HEAP32[5706] = $431; - $$pre$i210 = ((($426)) + 8|0); - $$0368$i = $426;$$pre$phi$i211Z2D = $$pre$i210; - } else { - $432 = ((($426)) + 8|0); - $433 = HEAP32[$432>>2]|0; - $434 = HEAP32[(22840)>>2]|0; - $435 = ($433>>>0)<($434>>>0); - if ($435) { - _abort(); - // unreachable; - } else { - $$0368$i = $433;$$pre$phi$i211Z2D = $432; - } - } - HEAP32[$$pre$phi$i211Z2D>>2] = $350; - $436 = ((($$0368$i)) + 12|0); - HEAP32[$436>>2] = $350; - $437 = ((($350)) + 8|0); - HEAP32[$437>>2] = $$0368$i; - $438 = ((($350)) + 12|0); - HEAP32[$438>>2] = $426; - break; - } - $439 = $$4351$lcssa$i >>> 8; - $440 = ($439|0)==(0); - if ($440) { - $$0361$i = 0; - } else { - $441 = ($$4351$lcssa$i>>>0)>(16777215); - if ($441) { - $$0361$i = 31; - } else { - $442 = (($439) + 1048320)|0; - $443 = $442 >>> 16; - $444 = $443 & 8; - $445 = $439 << $444; - $446 = (($445) + 520192)|0; - $447 = $446 >>> 16; - $448 = $447 & 4; - $449 = $448 | $444; - $450 = $445 << $448; - $451 = (($450) + 245760)|0; - $452 = $451 >>> 16; - $453 = $452 & 2; - $454 = $449 | $453; - $455 = (14 - ($454))|0; - $456 = $450 << $453; - $457 = $456 >>> 15; - $458 = (($455) + ($457))|0; - $459 = $458 << 1; - $460 = (($458) + 7)|0; - $461 = $$4351$lcssa$i >>> $460; - $462 = $461 & 1; - $463 = $462 | $459; - $$0361$i = $463; - } - } - $464 = (23128 + ($$0361$i<<2)|0); - $465 = ((($350)) + 28|0); - HEAP32[$465>>2] = $$0361$i; - $466 = ((($350)) + 16|0); - $467 = ((($466)) + 4|0); - HEAP32[$467>>2] = 0; - HEAP32[$466>>2] = 0; - $468 = 1 << $$0361$i; - $469 = $470 & $468; - $471 = ($469|0)==(0); - if ($471) { - $472 = $470 | $468; - HEAP32[(22828)>>2] = $472; - HEAP32[$464>>2] = $350; - $473 = ((($350)) + 24|0); - HEAP32[$473>>2] = $464; - $474 = ((($350)) + 12|0); - HEAP32[$474>>2] = $350; - $475 = ((($350)) + 8|0); - HEAP32[$475>>2] = $350; - break; - } - $476 = HEAP32[$464>>2]|0; - $477 = ($$0361$i|0)==(31); - $478 = $$0361$i >>> 1; - $479 = (25 - ($478))|0; - $480 = $477 ? 0 : $479; - $481 = $$4351$lcssa$i << $480; - $$0344$i = $481;$$0345$i = $476; - while(1) { - $482 = ((($$0345$i)) + 4|0); - $483 = HEAP32[$482>>2]|0; - $484 = $483 & -8; - $485 = ($484|0)==($$4351$lcssa$i|0); - if ($485) { - label = 139; - break; - } - $486 = $$0344$i >>> 31; - $487 = (((($$0345$i)) + 16|0) + ($486<<2)|0); - $488 = $$0344$i << 1; - $489 = HEAP32[$487>>2]|0; - $490 = ($489|0)==(0|0); - if ($490) { - label = 136; - break; - } else { - $$0344$i = $488;$$0345$i = $489; - } - } - if ((label|0) == 136) { - $491 = HEAP32[(22840)>>2]|0; - $492 = ($487>>>0)<($491>>>0); - if ($492) { - _abort(); - // unreachable; - } else { - HEAP32[$487>>2] = $350; - $493 = ((($350)) + 24|0); - HEAP32[$493>>2] = $$0345$i; - $494 = ((($350)) + 12|0); - HEAP32[$494>>2] = $350; - $495 = ((($350)) + 8|0); - HEAP32[$495>>2] = $350; - break; - } - } - else if ((label|0) == 139) { - $496 = ((($$0345$i)) + 8|0); - $497 = HEAP32[$496>>2]|0; - $498 = HEAP32[(22840)>>2]|0; - $499 = ($497>>>0)>=($498>>>0); - $not$9$i = ($$0345$i>>>0)>=($498>>>0); - $500 = $499 & $not$9$i; - if ($500) { - $501 = ((($497)) + 12|0); - HEAP32[$501>>2] = $350; - HEAP32[$496>>2] = $350; - $502 = ((($350)) + 8|0); - HEAP32[$502>>2] = $497; - $503 = ((($350)) + 12|0); - HEAP32[$503>>2] = $$0345$i; - $504 = ((($350)) + 24|0); - HEAP32[$504>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } while(0); - $505 = ((($$4$lcssa$i)) + 8|0); - $$0 = $505; - STACKTOP = sp;return ($$0|0); - } else { - $$0197 = $249; - } - } - } - } - } - } while(0); - $506 = HEAP32[(22832)>>2]|0; - $507 = ($506>>>0)<($$0197>>>0); - if (!($507)) { - $508 = (($506) - ($$0197))|0; - $509 = HEAP32[(22844)>>2]|0; - $510 = ($508>>>0)>(15); - if ($510) { - $511 = (($509) + ($$0197)|0); - HEAP32[(22844)>>2] = $511; - HEAP32[(22832)>>2] = $508; - $512 = $508 | 1; - $513 = ((($511)) + 4|0); - HEAP32[$513>>2] = $512; - $514 = (($511) + ($508)|0); - HEAP32[$514>>2] = $508; - $515 = $$0197 | 3; - $516 = ((($509)) + 4|0); - HEAP32[$516>>2] = $515; - } else { - HEAP32[(22832)>>2] = 0; - HEAP32[(22844)>>2] = 0; - $517 = $506 | 3; - $518 = ((($509)) + 4|0); - HEAP32[$518>>2] = $517; - $519 = (($509) + ($506)|0); - $520 = ((($519)) + 4|0); - $521 = HEAP32[$520>>2]|0; - $522 = $521 | 1; - HEAP32[$520>>2] = $522; - } - $523 = ((($509)) + 8|0); - $$0 = $523; - STACKTOP = sp;return ($$0|0); - } - $524 = HEAP32[(22836)>>2]|0; - $525 = ($524>>>0)>($$0197>>>0); - if ($525) { - $526 = (($524) - ($$0197))|0; - HEAP32[(22836)>>2] = $526; - $527 = HEAP32[(22848)>>2]|0; - $528 = (($527) + ($$0197)|0); - HEAP32[(22848)>>2] = $528; - $529 = $526 | 1; - $530 = ((($528)) + 4|0); - HEAP32[$530>>2] = $529; - $531 = $$0197 | 3; - $532 = ((($527)) + 4|0); - HEAP32[$532>>2] = $531; - $533 = ((($527)) + 8|0); - $$0 = $533; - STACKTOP = sp;return ($$0|0); - } - $534 = HEAP32[5824]|0; - $535 = ($534|0)==(0); - if ($535) { - HEAP32[(23304)>>2] = 4096; - HEAP32[(23300)>>2] = 4096; - HEAP32[(23308)>>2] = -1; - HEAP32[(23312)>>2] = -1; - HEAP32[(23316)>>2] = 0; - HEAP32[(23268)>>2] = 0; - $536 = $1; - $537 = $536 & -16; - $538 = $537 ^ 1431655768; - HEAP32[$1>>2] = $538; - HEAP32[5824] = $538; - $542 = 4096; - } else { - $$pre$i212 = HEAP32[(23304)>>2]|0; - $542 = $$pre$i212; - } - $539 = (($$0197) + 48)|0; - $540 = (($$0197) + 47)|0; - $541 = (($542) + ($540))|0; - $543 = (0 - ($542))|0; - $544 = $541 & $543; - $545 = ($544>>>0)>($$0197>>>0); - if (!($545)) { - $$0 = 0; - STACKTOP = sp;return ($$0|0); - } - $546 = HEAP32[(23264)>>2]|0; - $547 = ($546|0)==(0); - if (!($547)) { - $548 = HEAP32[(23256)>>2]|0; - $549 = (($548) + ($544))|0; - $550 = ($549>>>0)<=($548>>>0); - $551 = ($549>>>0)>($546>>>0); - $or$cond1$i = $550 | $551; - if ($or$cond1$i) { - $$0 = 0; - STACKTOP = sp;return ($$0|0); - } - } - $552 = HEAP32[(23268)>>2]|0; - $553 = $552 & 4; - $554 = ($553|0)==(0); - L244: do { - if ($554) { - $555 = HEAP32[(22848)>>2]|0; - $556 = ($555|0)==(0|0); - L246: do { - if ($556) { - label = 163; - } else { - $$0$i$i = (23272); - while(1) { - $557 = HEAP32[$$0$i$i>>2]|0; - $558 = ($557>>>0)>($555>>>0); - if (!($558)) { - $559 = ((($$0$i$i)) + 4|0); - $560 = HEAP32[$559>>2]|0; - $561 = (($557) + ($560)|0); - $562 = ($561>>>0)>($555>>>0); - if ($562) { - break; - } - } - $563 = ((($$0$i$i)) + 8|0); - $564 = HEAP32[$563>>2]|0; - $565 = ($564|0)==(0|0); - if ($565) { - label = 163; - break L246; - } else { - $$0$i$i = $564; - } - } - $588 = (($541) - ($524))|0; - $589 = $588 & $543; - $590 = ($589>>>0)<(2147483647); - if ($590) { - $591 = (_sbrk(($589|0))|0); - $592 = HEAP32[$$0$i$i>>2]|0; - $593 = HEAP32[$559>>2]|0; - $594 = (($592) + ($593)|0); - $595 = ($591|0)==($594|0); - if ($595) { - $596 = ($591|0)==((-1)|0); - if ($596) { - $$2234253237$i = $589; - } else { - $$723948$i = $589;$$749$i = $591; - label = 180; - break L244; - } - } else { - $$2247$ph$i = $591;$$2253$ph$i = $589; - label = 171; - } - } else { - $$2234253237$i = 0; - } - } - } while(0); - do { - if ((label|0) == 163) { - $566 = (_sbrk(0)|0); - $567 = ($566|0)==((-1)|0); - if ($567) { - $$2234253237$i = 0; - } else { - $568 = $566; - $569 = HEAP32[(23300)>>2]|0; - $570 = (($569) + -1)|0; - $571 = $570 & $568; - $572 = ($571|0)==(0); - $573 = (($570) + ($568))|0; - $574 = (0 - ($569))|0; - $575 = $573 & $574; - $576 = (($575) - ($568))|0; - $577 = $572 ? 0 : $576; - $$$i = (($577) + ($544))|0; - $578 = HEAP32[(23256)>>2]|0; - $579 = (($$$i) + ($578))|0; - $580 = ($$$i>>>0)>($$0197>>>0); - $581 = ($$$i>>>0)<(2147483647); - $or$cond$i214 = $580 & $581; - if ($or$cond$i214) { - $582 = HEAP32[(23264)>>2]|0; - $583 = ($582|0)==(0); - if (!($583)) { - $584 = ($579>>>0)<=($578>>>0); - $585 = ($579>>>0)>($582>>>0); - $or$cond2$i215 = $584 | $585; - if ($or$cond2$i215) { - $$2234253237$i = 0; - break; - } - } - $586 = (_sbrk(($$$i|0))|0); - $587 = ($586|0)==($566|0); - if ($587) { - $$723948$i = $$$i;$$749$i = $566; - label = 180; - break L244; - } else { - $$2247$ph$i = $586;$$2253$ph$i = $$$i; - label = 171; - } - } else { - $$2234253237$i = 0; - } - } - } - } while(0); - do { - if ((label|0) == 171) { - $597 = (0 - ($$2253$ph$i))|0; - $598 = ($$2247$ph$i|0)!=((-1)|0); - $599 = ($$2253$ph$i>>>0)<(2147483647); - $or$cond7$i = $599 & $598; - $600 = ($539>>>0)>($$2253$ph$i>>>0); - $or$cond10$i = $600 & $or$cond7$i; - if (!($or$cond10$i)) { - $610 = ($$2247$ph$i|0)==((-1)|0); - if ($610) { - $$2234253237$i = 0; - break; - } else { - $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; - label = 180; - break L244; - } - } - $601 = HEAP32[(23304)>>2]|0; - $602 = (($540) - ($$2253$ph$i))|0; - $603 = (($602) + ($601))|0; - $604 = (0 - ($601))|0; - $605 = $603 & $604; - $606 = ($605>>>0)<(2147483647); - if (!($606)) { - $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; - label = 180; - break L244; - } - $607 = (_sbrk(($605|0))|0); - $608 = ($607|0)==((-1)|0); - if ($608) { - (_sbrk(($597|0))|0); - $$2234253237$i = 0; - break; - } else { - $609 = (($605) + ($$2253$ph$i))|0; - $$723948$i = $609;$$749$i = $$2247$ph$i; - label = 180; - break L244; - } - } - } while(0); - $611 = HEAP32[(23268)>>2]|0; - $612 = $611 | 4; - HEAP32[(23268)>>2] = $612; - $$4236$i = $$2234253237$i; - label = 178; - } else { - $$4236$i = 0; - label = 178; - } - } while(0); - if ((label|0) == 178) { - $613 = ($544>>>0)<(2147483647); - if ($613) { - $614 = (_sbrk(($544|0))|0); - $615 = (_sbrk(0)|0); - $616 = ($614|0)!=((-1)|0); - $617 = ($615|0)!=((-1)|0); - $or$cond5$i = $616 & $617; - $618 = ($614>>>0)<($615>>>0); - $or$cond11$i = $618 & $or$cond5$i; - $619 = $615; - $620 = $614; - $621 = (($619) - ($620))|0; - $622 = (($$0197) + 40)|0; - $623 = ($621>>>0)>($622>>>0); - $$$4236$i = $623 ? $621 : $$4236$i; - $or$cond11$not$i = $or$cond11$i ^ 1; - $624 = ($614|0)==((-1)|0); - $not$$i216 = $623 ^ 1; - $625 = $624 | $not$$i216; - $or$cond50$i = $625 | $or$cond11$not$i; - if (!($or$cond50$i)) { - $$723948$i = $$$4236$i;$$749$i = $614; - label = 180; - } - } - } - if ((label|0) == 180) { - $626 = HEAP32[(23256)>>2]|0; - $627 = (($626) + ($$723948$i))|0; - HEAP32[(23256)>>2] = $627; - $628 = HEAP32[(23260)>>2]|0; - $629 = ($627>>>0)>($628>>>0); - if ($629) { - HEAP32[(23260)>>2] = $627; - } - $630 = HEAP32[(22848)>>2]|0; - $631 = ($630|0)==(0|0); - do { - if ($631) { - $632 = HEAP32[(22840)>>2]|0; - $633 = ($632|0)==(0|0); - $634 = ($$749$i>>>0)<($632>>>0); - $or$cond12$i = $633 | $634; - if ($or$cond12$i) { - HEAP32[(22840)>>2] = $$749$i; - } - HEAP32[(23272)>>2] = $$749$i; - HEAP32[(23276)>>2] = $$723948$i; - HEAP32[(23284)>>2] = 0; - $635 = HEAP32[5824]|0; - HEAP32[(22860)>>2] = $635; - HEAP32[(22856)>>2] = -1; - $$01$i$i = 0; - while(1) { - $636 = $$01$i$i << 1; - $637 = (22864 + ($636<<2)|0); - $638 = ((($637)) + 12|0); - HEAP32[$638>>2] = $637; - $639 = ((($637)) + 8|0); - HEAP32[$639>>2] = $637; - $640 = (($$01$i$i) + 1)|0; - $exitcond$i$i = ($640|0)==(32); - if ($exitcond$i$i) { - break; - } else { - $$01$i$i = $640; - } - } - $641 = (($$723948$i) + -40)|0; - $642 = ((($$749$i)) + 8|0); - $643 = $642; - $644 = $643 & 7; - $645 = ($644|0)==(0); - $646 = (0 - ($643))|0; - $647 = $646 & 7; - $648 = $645 ? 0 : $647; - $649 = (($$749$i) + ($648)|0); - $650 = (($641) - ($648))|0; - HEAP32[(22848)>>2] = $649; - HEAP32[(22836)>>2] = $650; - $651 = $650 | 1; - $652 = ((($649)) + 4|0); - HEAP32[$652>>2] = $651; - $653 = (($649) + ($650)|0); - $654 = ((($653)) + 4|0); - HEAP32[$654>>2] = 40; - $655 = HEAP32[(23312)>>2]|0; - HEAP32[(22852)>>2] = $655; - } else { - $$024371$i = (23272); - while(1) { - $656 = HEAP32[$$024371$i>>2]|0; - $657 = ((($$024371$i)) + 4|0); - $658 = HEAP32[$657>>2]|0; - $659 = (($656) + ($658)|0); - $660 = ($$749$i|0)==($659|0); - if ($660) { - label = 190; - break; - } - $661 = ((($$024371$i)) + 8|0); - $662 = HEAP32[$661>>2]|0; - $663 = ($662|0)==(0|0); - if ($663) { - break; - } else { - $$024371$i = $662; - } - } - if ((label|0) == 190) { - $664 = ((($$024371$i)) + 12|0); - $665 = HEAP32[$664>>2]|0; - $666 = $665 & 8; - $667 = ($666|0)==(0); - if ($667) { - $668 = ($630>>>0)>=($656>>>0); - $669 = ($630>>>0)<($$749$i>>>0); - $or$cond51$i = $669 & $668; - if ($or$cond51$i) { - $670 = (($658) + ($$723948$i))|0; - HEAP32[$657>>2] = $670; - $671 = HEAP32[(22836)>>2]|0; - $672 = ((($630)) + 8|0); - $673 = $672; - $674 = $673 & 7; - $675 = ($674|0)==(0); - $676 = (0 - ($673))|0; - $677 = $676 & 7; - $678 = $675 ? 0 : $677; - $679 = (($630) + ($678)|0); - $680 = (($$723948$i) - ($678))|0; - $681 = (($671) + ($680))|0; - HEAP32[(22848)>>2] = $679; - HEAP32[(22836)>>2] = $681; - $682 = $681 | 1; - $683 = ((($679)) + 4|0); - HEAP32[$683>>2] = $682; - $684 = (($679) + ($681)|0); - $685 = ((($684)) + 4|0); - HEAP32[$685>>2] = 40; - $686 = HEAP32[(23312)>>2]|0; - HEAP32[(22852)>>2] = $686; - break; - } - } - } - $687 = HEAP32[(22840)>>2]|0; - $688 = ($$749$i>>>0)<($687>>>0); - if ($688) { - HEAP32[(22840)>>2] = $$749$i; - $752 = $$749$i; - } else { - $752 = $687; - } - $689 = (($$749$i) + ($$723948$i)|0); - $$124470$i = (23272); - while(1) { - $690 = HEAP32[$$124470$i>>2]|0; - $691 = ($690|0)==($689|0); - if ($691) { - label = 198; - break; - } - $692 = ((($$124470$i)) + 8|0); - $693 = HEAP32[$692>>2]|0; - $694 = ($693|0)==(0|0); - if ($694) { - break; - } else { - $$124470$i = $693; - } - } - if ((label|0) == 198) { - $695 = ((($$124470$i)) + 12|0); - $696 = HEAP32[$695>>2]|0; - $697 = $696 & 8; - $698 = ($697|0)==(0); - if ($698) { - HEAP32[$$124470$i>>2] = $$749$i; - $699 = ((($$124470$i)) + 4|0); - $700 = HEAP32[$699>>2]|0; - $701 = (($700) + ($$723948$i))|0; - HEAP32[$699>>2] = $701; - $702 = ((($$749$i)) + 8|0); - $703 = $702; - $704 = $703 & 7; - $705 = ($704|0)==(0); - $706 = (0 - ($703))|0; - $707 = $706 & 7; - $708 = $705 ? 0 : $707; - $709 = (($$749$i) + ($708)|0); - $710 = ((($689)) + 8|0); - $711 = $710; - $712 = $711 & 7; - $713 = ($712|0)==(0); - $714 = (0 - ($711))|0; - $715 = $714 & 7; - $716 = $713 ? 0 : $715; - $717 = (($689) + ($716)|0); - $718 = $717; - $719 = $709; - $720 = (($718) - ($719))|0; - $721 = (($709) + ($$0197)|0); - $722 = (($720) - ($$0197))|0; - $723 = $$0197 | 3; - $724 = ((($709)) + 4|0); - HEAP32[$724>>2] = $723; - $725 = ($717|0)==($630|0); - do { - if ($725) { - $726 = HEAP32[(22836)>>2]|0; - $727 = (($726) + ($722))|0; - HEAP32[(22836)>>2] = $727; - HEAP32[(22848)>>2] = $721; - $728 = $727 | 1; - $729 = ((($721)) + 4|0); - HEAP32[$729>>2] = $728; - } else { - $730 = HEAP32[(22844)>>2]|0; - $731 = ($717|0)==($730|0); - if ($731) { - $732 = HEAP32[(22832)>>2]|0; - $733 = (($732) + ($722))|0; - HEAP32[(22832)>>2] = $733; - HEAP32[(22844)>>2] = $721; - $734 = $733 | 1; - $735 = ((($721)) + 4|0); - HEAP32[$735>>2] = $734; - $736 = (($721) + ($733)|0); - HEAP32[$736>>2] = $733; - break; - } - $737 = ((($717)) + 4|0); - $738 = HEAP32[$737>>2]|0; - $739 = $738 & 3; - $740 = ($739|0)==(1); - if ($740) { - $741 = $738 & -8; - $742 = $738 >>> 3; - $743 = ($738>>>0)<(256); - L314: do { - if ($743) { - $744 = ((($717)) + 8|0); - $745 = HEAP32[$744>>2]|0; - $746 = ((($717)) + 12|0); - $747 = HEAP32[$746>>2]|0; - $748 = $742 << 1; - $749 = (22864 + ($748<<2)|0); - $750 = ($745|0)==($749|0); - do { - if (!($750)) { - $751 = ($745>>>0)<($752>>>0); - if ($751) { - _abort(); - // unreachable; - } - $753 = ((($745)) + 12|0); - $754 = HEAP32[$753>>2]|0; - $755 = ($754|0)==($717|0); - if ($755) { - break; - } - _abort(); - // unreachable; - } - } while(0); - $756 = ($747|0)==($745|0); - if ($756) { - $757 = 1 << $742; - $758 = $757 ^ -1; - $759 = HEAP32[5706]|0; - $760 = $759 & $758; - HEAP32[5706] = $760; - break; - } - $761 = ($747|0)==($749|0); - do { - if ($761) { - $$pre10$i$i = ((($747)) + 8|0); - $$pre$phi11$i$iZ2D = $$pre10$i$i; - } else { - $762 = ($747>>>0)<($752>>>0); - if ($762) { - _abort(); - // unreachable; - } - $763 = ((($747)) + 8|0); - $764 = HEAP32[$763>>2]|0; - $765 = ($764|0)==($717|0); - if ($765) { - $$pre$phi11$i$iZ2D = $763; - break; - } - _abort(); - // unreachable; - } - } while(0); - $766 = ((($745)) + 12|0); - HEAP32[$766>>2] = $747; - HEAP32[$$pre$phi11$i$iZ2D>>2] = $745; - } else { - $767 = ((($717)) + 24|0); - $768 = HEAP32[$767>>2]|0; - $769 = ((($717)) + 12|0); - $770 = HEAP32[$769>>2]|0; - $771 = ($770|0)==($717|0); - do { - if ($771) { - $781 = ((($717)) + 16|0); - $782 = ((($781)) + 4|0); - $783 = HEAP32[$782>>2]|0; - $784 = ($783|0)==(0|0); - if ($784) { - $785 = HEAP32[$781>>2]|0; - $786 = ($785|0)==(0|0); - if ($786) { - $$3$i$i = 0; - break; - } else { - $$1291$i$i = $785;$$1293$i$i = $781; - } - } else { - $$1291$i$i = $783;$$1293$i$i = $782; - } - while(1) { - $787 = ((($$1291$i$i)) + 20|0); - $788 = HEAP32[$787>>2]|0; - $789 = ($788|0)==(0|0); - if (!($789)) { - $$1291$i$i = $788;$$1293$i$i = $787; - continue; - } - $790 = ((($$1291$i$i)) + 16|0); - $791 = HEAP32[$790>>2]|0; - $792 = ($791|0)==(0|0); - if ($792) { - break; - } else { - $$1291$i$i = $791;$$1293$i$i = $790; - } - } - $793 = ($$1293$i$i>>>0)<($752>>>0); - if ($793) { - _abort(); - // unreachable; - } else { - HEAP32[$$1293$i$i>>2] = 0; - $$3$i$i = $$1291$i$i; - break; - } - } else { - $772 = ((($717)) + 8|0); - $773 = HEAP32[$772>>2]|0; - $774 = ($773>>>0)<($752>>>0); - if ($774) { - _abort(); - // unreachable; - } - $775 = ((($773)) + 12|0); - $776 = HEAP32[$775>>2]|0; - $777 = ($776|0)==($717|0); - if (!($777)) { - _abort(); - // unreachable; - } - $778 = ((($770)) + 8|0); - $779 = HEAP32[$778>>2]|0; - $780 = ($779|0)==($717|0); - if ($780) { - HEAP32[$775>>2] = $770; - HEAP32[$778>>2] = $773; - $$3$i$i = $770; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $794 = ($768|0)==(0|0); - if ($794) { - break; - } - $795 = ((($717)) + 28|0); - $796 = HEAP32[$795>>2]|0; - $797 = (23128 + ($796<<2)|0); - $798 = HEAP32[$797>>2]|0; - $799 = ($717|0)==($798|0); - do { - if ($799) { - HEAP32[$797>>2] = $$3$i$i; - $cond$i$i = ($$3$i$i|0)==(0|0); - if (!($cond$i$i)) { - break; - } - $800 = 1 << $796; - $801 = $800 ^ -1; - $802 = HEAP32[(22828)>>2]|0; - $803 = $802 & $801; - HEAP32[(22828)>>2] = $803; - break L314; - } else { - $804 = HEAP32[(22840)>>2]|0; - $805 = ($768>>>0)<($804>>>0); - if ($805) { - _abort(); - // unreachable; - } else { - $806 = ((($768)) + 16|0); - $807 = HEAP32[$806>>2]|0; - $not$$i17$i = ($807|0)!=($717|0); - $$sink1$i$i = $not$$i17$i&1; - $808 = (((($768)) + 16|0) + ($$sink1$i$i<<2)|0); - HEAP32[$808>>2] = $$3$i$i; - $809 = ($$3$i$i|0)==(0|0); - if ($809) { - break L314; - } else { - break; - } - } - } - } while(0); - $810 = HEAP32[(22840)>>2]|0; - $811 = ($$3$i$i>>>0)<($810>>>0); - if ($811) { - _abort(); - // unreachable; - } - $812 = ((($$3$i$i)) + 24|0); - HEAP32[$812>>2] = $768; - $813 = ((($717)) + 16|0); - $814 = HEAP32[$813>>2]|0; - $815 = ($814|0)==(0|0); - do { - if (!($815)) { - $816 = ($814>>>0)<($810>>>0); - if ($816) { - _abort(); - // unreachable; - } else { - $817 = ((($$3$i$i)) + 16|0); - HEAP32[$817>>2] = $814; - $818 = ((($814)) + 24|0); - HEAP32[$818>>2] = $$3$i$i; - break; - } - } - } while(0); - $819 = ((($813)) + 4|0); - $820 = HEAP32[$819>>2]|0; - $821 = ($820|0)==(0|0); - if ($821) { - break; - } - $822 = HEAP32[(22840)>>2]|0; - $823 = ($820>>>0)<($822>>>0); - if ($823) { - _abort(); - // unreachable; - } else { - $824 = ((($$3$i$i)) + 20|0); - HEAP32[$824>>2] = $820; - $825 = ((($820)) + 24|0); - HEAP32[$825>>2] = $$3$i$i; - break; - } - } - } while(0); - $826 = (($717) + ($741)|0); - $827 = (($741) + ($722))|0; - $$0$i18$i = $826;$$0287$i$i = $827; - } else { - $$0$i18$i = $717;$$0287$i$i = $722; - } - $828 = ((($$0$i18$i)) + 4|0); - $829 = HEAP32[$828>>2]|0; - $830 = $829 & -2; - HEAP32[$828>>2] = $830; - $831 = $$0287$i$i | 1; - $832 = ((($721)) + 4|0); - HEAP32[$832>>2] = $831; - $833 = (($721) + ($$0287$i$i)|0); - HEAP32[$833>>2] = $$0287$i$i; - $834 = $$0287$i$i >>> 3; - $835 = ($$0287$i$i>>>0)<(256); - if ($835) { - $836 = $834 << 1; - $837 = (22864 + ($836<<2)|0); - $838 = HEAP32[5706]|0; - $839 = 1 << $834; - $840 = $838 & $839; - $841 = ($840|0)==(0); - do { - if ($841) { - $842 = $838 | $839; - HEAP32[5706] = $842; - $$pre$i19$i = ((($837)) + 8|0); - $$0295$i$i = $837;$$pre$phi$i20$iZ2D = $$pre$i19$i; - } else { - $843 = ((($837)) + 8|0); - $844 = HEAP32[$843>>2]|0; - $845 = HEAP32[(22840)>>2]|0; - $846 = ($844>>>0)<($845>>>0); - if (!($846)) { - $$0295$i$i = $844;$$pre$phi$i20$iZ2D = $843; - break; - } - _abort(); - // unreachable; - } - } while(0); - HEAP32[$$pre$phi$i20$iZ2D>>2] = $721; - $847 = ((($$0295$i$i)) + 12|0); - HEAP32[$847>>2] = $721; - $848 = ((($721)) + 8|0); - HEAP32[$848>>2] = $$0295$i$i; - $849 = ((($721)) + 12|0); - HEAP32[$849>>2] = $837; - break; - } - $850 = $$0287$i$i >>> 8; - $851 = ($850|0)==(0); - do { - if ($851) { - $$0296$i$i = 0; - } else { - $852 = ($$0287$i$i>>>0)>(16777215); - if ($852) { - $$0296$i$i = 31; - break; - } - $853 = (($850) + 1048320)|0; - $854 = $853 >>> 16; - $855 = $854 & 8; - $856 = $850 << $855; - $857 = (($856) + 520192)|0; - $858 = $857 >>> 16; - $859 = $858 & 4; - $860 = $859 | $855; - $861 = $856 << $859; - $862 = (($861) + 245760)|0; - $863 = $862 >>> 16; - $864 = $863 & 2; - $865 = $860 | $864; - $866 = (14 - ($865))|0; - $867 = $861 << $864; - $868 = $867 >>> 15; - $869 = (($866) + ($868))|0; - $870 = $869 << 1; - $871 = (($869) + 7)|0; - $872 = $$0287$i$i >>> $871; - $873 = $872 & 1; - $874 = $873 | $870; - $$0296$i$i = $874; - } - } while(0); - $875 = (23128 + ($$0296$i$i<<2)|0); - $876 = ((($721)) + 28|0); - HEAP32[$876>>2] = $$0296$i$i; - $877 = ((($721)) + 16|0); - $878 = ((($877)) + 4|0); - HEAP32[$878>>2] = 0; - HEAP32[$877>>2] = 0; - $879 = HEAP32[(22828)>>2]|0; - $880 = 1 << $$0296$i$i; - $881 = $879 & $880; - $882 = ($881|0)==(0); - if ($882) { - $883 = $879 | $880; - HEAP32[(22828)>>2] = $883; - HEAP32[$875>>2] = $721; - $884 = ((($721)) + 24|0); - HEAP32[$884>>2] = $875; - $885 = ((($721)) + 12|0); - HEAP32[$885>>2] = $721; - $886 = ((($721)) + 8|0); - HEAP32[$886>>2] = $721; - break; - } - $887 = HEAP32[$875>>2]|0; - $888 = ($$0296$i$i|0)==(31); - $889 = $$0296$i$i >>> 1; - $890 = (25 - ($889))|0; - $891 = $888 ? 0 : $890; - $892 = $$0287$i$i << $891; - $$0288$i$i = $892;$$0289$i$i = $887; - while(1) { - $893 = ((($$0289$i$i)) + 4|0); - $894 = HEAP32[$893>>2]|0; - $895 = $894 & -8; - $896 = ($895|0)==($$0287$i$i|0); - if ($896) { - label = 265; - break; - } - $897 = $$0288$i$i >>> 31; - $898 = (((($$0289$i$i)) + 16|0) + ($897<<2)|0); - $899 = $$0288$i$i << 1; - $900 = HEAP32[$898>>2]|0; - $901 = ($900|0)==(0|0); - if ($901) { - label = 262; - break; - } else { - $$0288$i$i = $899;$$0289$i$i = $900; - } - } - if ((label|0) == 262) { - $902 = HEAP32[(22840)>>2]|0; - $903 = ($898>>>0)<($902>>>0); - if ($903) { - _abort(); - // unreachable; - } else { - HEAP32[$898>>2] = $721; - $904 = ((($721)) + 24|0); - HEAP32[$904>>2] = $$0289$i$i; - $905 = ((($721)) + 12|0); - HEAP32[$905>>2] = $721; - $906 = ((($721)) + 8|0); - HEAP32[$906>>2] = $721; - break; - } - } - else if ((label|0) == 265) { - $907 = ((($$0289$i$i)) + 8|0); - $908 = HEAP32[$907>>2]|0; - $909 = HEAP32[(22840)>>2]|0; - $910 = ($908>>>0)>=($909>>>0); - $not$7$i$i = ($$0289$i$i>>>0)>=($909>>>0); - $911 = $910 & $not$7$i$i; - if ($911) { - $912 = ((($908)) + 12|0); - HEAP32[$912>>2] = $721; - HEAP32[$907>>2] = $721; - $913 = ((($721)) + 8|0); - HEAP32[$913>>2] = $908; - $914 = ((($721)) + 12|0); - HEAP32[$914>>2] = $$0289$i$i; - $915 = ((($721)) + 24|0); - HEAP32[$915>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } while(0); - $1047 = ((($709)) + 8|0); - $$0 = $1047; - STACKTOP = sp;return ($$0|0); - } - } - $$0$i$i$i = (23272); - while(1) { - $916 = HEAP32[$$0$i$i$i>>2]|0; - $917 = ($916>>>0)>($630>>>0); - if (!($917)) { - $918 = ((($$0$i$i$i)) + 4|0); - $919 = HEAP32[$918>>2]|0; - $920 = (($916) + ($919)|0); - $921 = ($920>>>0)>($630>>>0); - if ($921) { - break; - } - } - $922 = ((($$0$i$i$i)) + 8|0); - $923 = HEAP32[$922>>2]|0; - $$0$i$i$i = $923; - } - $924 = ((($920)) + -47|0); - $925 = ((($924)) + 8|0); - $926 = $925; - $927 = $926 & 7; - $928 = ($927|0)==(0); - $929 = (0 - ($926))|0; - $930 = $929 & 7; - $931 = $928 ? 0 : $930; - $932 = (($924) + ($931)|0); - $933 = ((($630)) + 16|0); - $934 = ($932>>>0)<($933>>>0); - $935 = $934 ? $630 : $932; - $936 = ((($935)) + 8|0); - $937 = ((($935)) + 24|0); - $938 = (($$723948$i) + -40)|0; - $939 = ((($$749$i)) + 8|0); - $940 = $939; - $941 = $940 & 7; - $942 = ($941|0)==(0); - $943 = (0 - ($940))|0; - $944 = $943 & 7; - $945 = $942 ? 0 : $944; - $946 = (($$749$i) + ($945)|0); - $947 = (($938) - ($945))|0; - HEAP32[(22848)>>2] = $946; - HEAP32[(22836)>>2] = $947; - $948 = $947 | 1; - $949 = ((($946)) + 4|0); - HEAP32[$949>>2] = $948; - $950 = (($946) + ($947)|0); - $951 = ((($950)) + 4|0); - HEAP32[$951>>2] = 40; - $952 = HEAP32[(23312)>>2]|0; - HEAP32[(22852)>>2] = $952; - $953 = ((($935)) + 4|0); - HEAP32[$953>>2] = 27; - ;HEAP32[$936>>2]=HEAP32[(23272)>>2]|0;HEAP32[$936+4>>2]=HEAP32[(23272)+4>>2]|0;HEAP32[$936+8>>2]=HEAP32[(23272)+8>>2]|0;HEAP32[$936+12>>2]=HEAP32[(23272)+12>>2]|0; - HEAP32[(23272)>>2] = $$749$i; - HEAP32[(23276)>>2] = $$723948$i; - HEAP32[(23284)>>2] = 0; - HEAP32[(23280)>>2] = $936; - $955 = $937; - while(1) { - $954 = ((($955)) + 4|0); - HEAP32[$954>>2] = 7; - $956 = ((($955)) + 8|0); - $957 = ($956>>>0)<($920>>>0); - if ($957) { - $955 = $954; - } else { - break; - } - } - $958 = ($935|0)==($630|0); - if (!($958)) { - $959 = $935; - $960 = $630; - $961 = (($959) - ($960))|0; - $962 = HEAP32[$953>>2]|0; - $963 = $962 & -2; - HEAP32[$953>>2] = $963; - $964 = $961 | 1; - $965 = ((($630)) + 4|0); - HEAP32[$965>>2] = $964; - HEAP32[$935>>2] = $961; - $966 = $961 >>> 3; - $967 = ($961>>>0)<(256); - if ($967) { - $968 = $966 << 1; - $969 = (22864 + ($968<<2)|0); - $970 = HEAP32[5706]|0; - $971 = 1 << $966; - $972 = $970 & $971; - $973 = ($972|0)==(0); - if ($973) { - $974 = $970 | $971; - HEAP32[5706] = $974; - $$pre$i$i = ((($969)) + 8|0); - $$0211$i$i = $969;$$pre$phi$i$iZ2D = $$pre$i$i; - } else { - $975 = ((($969)) + 8|0); - $976 = HEAP32[$975>>2]|0; - $977 = HEAP32[(22840)>>2]|0; - $978 = ($976>>>0)<($977>>>0); - if ($978) { - _abort(); - // unreachable; - } else { - $$0211$i$i = $976;$$pre$phi$i$iZ2D = $975; - } - } - HEAP32[$$pre$phi$i$iZ2D>>2] = $630; - $979 = ((($$0211$i$i)) + 12|0); - HEAP32[$979>>2] = $630; - $980 = ((($630)) + 8|0); - HEAP32[$980>>2] = $$0211$i$i; - $981 = ((($630)) + 12|0); - HEAP32[$981>>2] = $969; - break; - } - $982 = $961 >>> 8; - $983 = ($982|0)==(0); - if ($983) { - $$0212$i$i = 0; - } else { - $984 = ($961>>>0)>(16777215); - if ($984) { - $$0212$i$i = 31; - } else { - $985 = (($982) + 1048320)|0; - $986 = $985 >>> 16; - $987 = $986 & 8; - $988 = $982 << $987; - $989 = (($988) + 520192)|0; - $990 = $989 >>> 16; - $991 = $990 & 4; - $992 = $991 | $987; - $993 = $988 << $991; - $994 = (($993) + 245760)|0; - $995 = $994 >>> 16; - $996 = $995 & 2; - $997 = $992 | $996; - $998 = (14 - ($997))|0; - $999 = $993 << $996; - $1000 = $999 >>> 15; - $1001 = (($998) + ($1000))|0; - $1002 = $1001 << 1; - $1003 = (($1001) + 7)|0; - $1004 = $961 >>> $1003; - $1005 = $1004 & 1; - $1006 = $1005 | $1002; - $$0212$i$i = $1006; - } - } - $1007 = (23128 + ($$0212$i$i<<2)|0); - $1008 = ((($630)) + 28|0); - HEAP32[$1008>>2] = $$0212$i$i; - $1009 = ((($630)) + 20|0); - HEAP32[$1009>>2] = 0; - HEAP32[$933>>2] = 0; - $1010 = HEAP32[(22828)>>2]|0; - $1011 = 1 << $$0212$i$i; - $1012 = $1010 & $1011; - $1013 = ($1012|0)==(0); - if ($1013) { - $1014 = $1010 | $1011; - HEAP32[(22828)>>2] = $1014; - HEAP32[$1007>>2] = $630; - $1015 = ((($630)) + 24|0); - HEAP32[$1015>>2] = $1007; - $1016 = ((($630)) + 12|0); - HEAP32[$1016>>2] = $630; - $1017 = ((($630)) + 8|0); - HEAP32[$1017>>2] = $630; - break; - } - $1018 = HEAP32[$1007>>2]|0; - $1019 = ($$0212$i$i|0)==(31); - $1020 = $$0212$i$i >>> 1; - $1021 = (25 - ($1020))|0; - $1022 = $1019 ? 0 : $1021; - $1023 = $961 << $1022; - $$0206$i$i = $1023;$$0207$i$i = $1018; - while(1) { - $1024 = ((($$0207$i$i)) + 4|0); - $1025 = HEAP32[$1024>>2]|0; - $1026 = $1025 & -8; - $1027 = ($1026|0)==($961|0); - if ($1027) { - label = 292; - break; - } - $1028 = $$0206$i$i >>> 31; - $1029 = (((($$0207$i$i)) + 16|0) + ($1028<<2)|0); - $1030 = $$0206$i$i << 1; - $1031 = HEAP32[$1029>>2]|0; - $1032 = ($1031|0)==(0|0); - if ($1032) { - label = 289; - break; - } else { - $$0206$i$i = $1030;$$0207$i$i = $1031; - } - } - if ((label|0) == 289) { - $1033 = HEAP32[(22840)>>2]|0; - $1034 = ($1029>>>0)<($1033>>>0); - if ($1034) { - _abort(); - // unreachable; - } else { - HEAP32[$1029>>2] = $630; - $1035 = ((($630)) + 24|0); - HEAP32[$1035>>2] = $$0207$i$i; - $1036 = ((($630)) + 12|0); - HEAP32[$1036>>2] = $630; - $1037 = ((($630)) + 8|0); - HEAP32[$1037>>2] = $630; - break; - } - } - else if ((label|0) == 292) { - $1038 = ((($$0207$i$i)) + 8|0); - $1039 = HEAP32[$1038>>2]|0; - $1040 = HEAP32[(22840)>>2]|0; - $1041 = ($1039>>>0)>=($1040>>>0); - $not$$i$i = ($$0207$i$i>>>0)>=($1040>>>0); - $1042 = $1041 & $not$$i$i; - if ($1042) { - $1043 = ((($1039)) + 12|0); - HEAP32[$1043>>2] = $630; - HEAP32[$1038>>2] = $630; - $1044 = ((($630)) + 8|0); - HEAP32[$1044>>2] = $1039; - $1045 = ((($630)) + 12|0); - HEAP32[$1045>>2] = $$0207$i$i; - $1046 = ((($630)) + 24|0); - HEAP32[$1046>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } - } while(0); - $1048 = HEAP32[(22836)>>2]|0; - $1049 = ($1048>>>0)>($$0197>>>0); - if ($1049) { - $1050 = (($1048) - ($$0197))|0; - HEAP32[(22836)>>2] = $1050; - $1051 = HEAP32[(22848)>>2]|0; - $1052 = (($1051) + ($$0197)|0); - HEAP32[(22848)>>2] = $1052; - $1053 = $1050 | 1; - $1054 = ((($1052)) + 4|0); - HEAP32[$1054>>2] = $1053; - $1055 = $$0197 | 3; - $1056 = ((($1051)) + 4|0); - HEAP32[$1056>>2] = $1055; - $1057 = ((($1051)) + 8|0); - $$0 = $1057; - STACKTOP = sp;return ($$0|0); - } - } - $1058 = (___errno_location()|0); - HEAP32[$1058>>2] = 12; - $$0 = 0; - STACKTOP = sp;return ($$0|0); -} -function _free($0) { - $0 = $0|0; - var $$0212$i = 0, $$0212$in$i = 0, $$0383 = 0, $$0384 = 0, $$0396 = 0, $$0403 = 0, $$1 = 0, $$1382 = 0, $$1387 = 0, $$1390 = 0, $$1398 = 0, $$1402 = 0, $$2 = 0, $$3 = 0, $$3400 = 0, $$pre = 0, $$pre$phi443Z2D = 0, $$pre$phi445Z2D = 0, $$pre$phiZ2D = 0, $$pre442 = 0; - var $$pre444 = 0, $$sink3 = 0, $$sink5 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; - var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; - var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0; - var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0; - var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0; - var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0; - var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0; - var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0; - var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0; - var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0; - var $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0; - var $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0; - var $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; - var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; - var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; - var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; - var $99 = 0, $cond421 = 0, $cond422 = 0, $not$ = 0, $not$405 = 0, $not$437 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0|0); - if ($1) { - return; - } - $2 = ((($0)) + -8|0); - $3 = HEAP32[(22840)>>2]|0; - $4 = ($2>>>0)<($3>>>0); - if ($4) { - _abort(); - // unreachable; - } - $5 = ((($0)) + -4|0); - $6 = HEAP32[$5>>2]|0; - $7 = $6 & 3; - $8 = ($7|0)==(1); - if ($8) { - _abort(); - // unreachable; - } - $9 = $6 & -8; - $10 = (($2) + ($9)|0); - $11 = $6 & 1; - $12 = ($11|0)==(0); - L10: do { - if ($12) { - $13 = HEAP32[$2>>2]|0; - $14 = ($7|0)==(0); - if ($14) { - return; - } - $15 = (0 - ($13))|0; - $16 = (($2) + ($15)|0); - $17 = (($13) + ($9))|0; - $18 = ($16>>>0)<($3>>>0); - if ($18) { - _abort(); - // unreachable; - } - $19 = HEAP32[(22844)>>2]|0; - $20 = ($16|0)==($19|0); - if ($20) { - $104 = ((($10)) + 4|0); - $105 = HEAP32[$104>>2]|0; - $106 = $105 & 3; - $107 = ($106|0)==(3); - if (!($107)) { - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - $108 = (($16) + ($17)|0); - $109 = ((($16)) + 4|0); - $110 = $17 | 1; - $111 = $105 & -2; - HEAP32[(22832)>>2] = $17; - HEAP32[$104>>2] = $111; - HEAP32[$109>>2] = $110; - HEAP32[$108>>2] = $17; - return; - } - $21 = $13 >>> 3; - $22 = ($13>>>0)<(256); - if ($22) { - $23 = ((($16)) + 8|0); - $24 = HEAP32[$23>>2]|0; - $25 = ((($16)) + 12|0); - $26 = HEAP32[$25>>2]|0; - $27 = $21 << 1; - $28 = (22864 + ($27<<2)|0); - $29 = ($24|0)==($28|0); - if (!($29)) { - $30 = ($24>>>0)<($3>>>0); - if ($30) { - _abort(); - // unreachable; - } - $31 = ((($24)) + 12|0); - $32 = HEAP32[$31>>2]|0; - $33 = ($32|0)==($16|0); - if (!($33)) { - _abort(); - // unreachable; - } - } - $34 = ($26|0)==($24|0); - if ($34) { - $35 = 1 << $21; - $36 = $35 ^ -1; - $37 = HEAP32[5706]|0; - $38 = $37 & $36; - HEAP32[5706] = $38; - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - $39 = ($26|0)==($28|0); - if ($39) { - $$pre444 = ((($26)) + 8|0); - $$pre$phi445Z2D = $$pre444; - } else { - $40 = ($26>>>0)<($3>>>0); - if ($40) { - _abort(); - // unreachable; - } - $41 = ((($26)) + 8|0); - $42 = HEAP32[$41>>2]|0; - $43 = ($42|0)==($16|0); - if ($43) { - $$pre$phi445Z2D = $41; - } else { - _abort(); - // unreachable; - } - } - $44 = ((($24)) + 12|0); - HEAP32[$44>>2] = $26; - HEAP32[$$pre$phi445Z2D>>2] = $24; - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - $45 = ((($16)) + 24|0); - $46 = HEAP32[$45>>2]|0; - $47 = ((($16)) + 12|0); - $48 = HEAP32[$47>>2]|0; - $49 = ($48|0)==($16|0); - do { - if ($49) { - $59 = ((($16)) + 16|0); - $60 = ((($59)) + 4|0); - $61 = HEAP32[$60>>2]|0; - $62 = ($61|0)==(0|0); - if ($62) { - $63 = HEAP32[$59>>2]|0; - $64 = ($63|0)==(0|0); - if ($64) { - $$3 = 0; - break; - } else { - $$1387 = $63;$$1390 = $59; - } - } else { - $$1387 = $61;$$1390 = $60; - } - while(1) { - $65 = ((($$1387)) + 20|0); - $66 = HEAP32[$65>>2]|0; - $67 = ($66|0)==(0|0); - if (!($67)) { - $$1387 = $66;$$1390 = $65; - continue; - } - $68 = ((($$1387)) + 16|0); - $69 = HEAP32[$68>>2]|0; - $70 = ($69|0)==(0|0); - if ($70) { - break; - } else { - $$1387 = $69;$$1390 = $68; - } - } - $71 = ($$1390>>>0)<($3>>>0); - if ($71) { - _abort(); - // unreachable; - } else { - HEAP32[$$1390>>2] = 0; - $$3 = $$1387; - break; - } - } else { - $50 = ((($16)) + 8|0); - $51 = HEAP32[$50>>2]|0; - $52 = ($51>>>0)<($3>>>0); - if ($52) { - _abort(); - // unreachable; - } - $53 = ((($51)) + 12|0); - $54 = HEAP32[$53>>2]|0; - $55 = ($54|0)==($16|0); - if (!($55)) { - _abort(); - // unreachable; - } - $56 = ((($48)) + 8|0); - $57 = HEAP32[$56>>2]|0; - $58 = ($57|0)==($16|0); - if ($58) { - HEAP32[$53>>2] = $48; - HEAP32[$56>>2] = $51; - $$3 = $48; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $72 = ($46|0)==(0|0); - if ($72) { - $$1 = $16;$$1382 = $17;$113 = $16; - } else { - $73 = ((($16)) + 28|0); - $74 = HEAP32[$73>>2]|0; - $75 = (23128 + ($74<<2)|0); - $76 = HEAP32[$75>>2]|0; - $77 = ($16|0)==($76|0); - do { - if ($77) { - HEAP32[$75>>2] = $$3; - $cond421 = ($$3|0)==(0|0); - if ($cond421) { - $78 = 1 << $74; - $79 = $78 ^ -1; - $80 = HEAP32[(22828)>>2]|0; - $81 = $80 & $79; - HEAP32[(22828)>>2] = $81; - $$1 = $16;$$1382 = $17;$113 = $16; - break L10; - } - } else { - $82 = HEAP32[(22840)>>2]|0; - $83 = ($46>>>0)<($82>>>0); - if ($83) { - _abort(); - // unreachable; - } else { - $84 = ((($46)) + 16|0); - $85 = HEAP32[$84>>2]|0; - $not$405 = ($85|0)!=($16|0); - $$sink3 = $not$405&1; - $86 = (((($46)) + 16|0) + ($$sink3<<2)|0); - HEAP32[$86>>2] = $$3; - $87 = ($$3|0)==(0|0); - if ($87) { - $$1 = $16;$$1382 = $17;$113 = $16; - break L10; - } else { - break; - } - } - } - } while(0); - $88 = HEAP32[(22840)>>2]|0; - $89 = ($$3>>>0)<($88>>>0); - if ($89) { - _abort(); - // unreachable; - } - $90 = ((($$3)) + 24|0); - HEAP32[$90>>2] = $46; - $91 = ((($16)) + 16|0); - $92 = HEAP32[$91>>2]|0; - $93 = ($92|0)==(0|0); - do { - if (!($93)) { - $94 = ($92>>>0)<($88>>>0); - if ($94) { - _abort(); - // unreachable; - } else { - $95 = ((($$3)) + 16|0); - HEAP32[$95>>2] = $92; - $96 = ((($92)) + 24|0); - HEAP32[$96>>2] = $$3; - break; - } - } - } while(0); - $97 = ((($91)) + 4|0); - $98 = HEAP32[$97>>2]|0; - $99 = ($98|0)==(0|0); - if ($99) { - $$1 = $16;$$1382 = $17;$113 = $16; - } else { - $100 = HEAP32[(22840)>>2]|0; - $101 = ($98>>>0)<($100>>>0); - if ($101) { - _abort(); - // unreachable; - } else { - $102 = ((($$3)) + 20|0); - HEAP32[$102>>2] = $98; - $103 = ((($98)) + 24|0); - HEAP32[$103>>2] = $$3; - $$1 = $16;$$1382 = $17;$113 = $16; - break; - } - } - } - } else { - $$1 = $2;$$1382 = $9;$113 = $2; - } - } while(0); - $112 = ($113>>>0)<($10>>>0); - if (!($112)) { - _abort(); - // unreachable; - } - $114 = ((($10)) + 4|0); - $115 = HEAP32[$114>>2]|0; - $116 = $115 & 1; - $117 = ($116|0)==(0); - if ($117) { - _abort(); - // unreachable; - } - $118 = $115 & 2; - $119 = ($118|0)==(0); - if ($119) { - $120 = HEAP32[(22848)>>2]|0; - $121 = ($10|0)==($120|0); - $122 = HEAP32[(22844)>>2]|0; - if ($121) { - $123 = HEAP32[(22836)>>2]|0; - $124 = (($123) + ($$1382))|0; - HEAP32[(22836)>>2] = $124; - HEAP32[(22848)>>2] = $$1; - $125 = $124 | 1; - $126 = ((($$1)) + 4|0); - HEAP32[$126>>2] = $125; - $127 = ($$1|0)==($122|0); - if (!($127)) { - return; - } - HEAP32[(22844)>>2] = 0; - HEAP32[(22832)>>2] = 0; - return; - } - $128 = ($10|0)==($122|0); - if ($128) { - $129 = HEAP32[(22832)>>2]|0; - $130 = (($129) + ($$1382))|0; - HEAP32[(22832)>>2] = $130; - HEAP32[(22844)>>2] = $113; - $131 = $130 | 1; - $132 = ((($$1)) + 4|0); - HEAP32[$132>>2] = $131; - $133 = (($113) + ($130)|0); - HEAP32[$133>>2] = $130; - return; - } - $134 = $115 & -8; - $135 = (($134) + ($$1382))|0; - $136 = $115 >>> 3; - $137 = ($115>>>0)<(256); - L108: do { - if ($137) { - $138 = ((($10)) + 8|0); - $139 = HEAP32[$138>>2]|0; - $140 = ((($10)) + 12|0); - $141 = HEAP32[$140>>2]|0; - $142 = $136 << 1; - $143 = (22864 + ($142<<2)|0); - $144 = ($139|0)==($143|0); - if (!($144)) { - $145 = HEAP32[(22840)>>2]|0; - $146 = ($139>>>0)<($145>>>0); - if ($146) { - _abort(); - // unreachable; - } - $147 = ((($139)) + 12|0); - $148 = HEAP32[$147>>2]|0; - $149 = ($148|0)==($10|0); - if (!($149)) { - _abort(); - // unreachable; - } - } - $150 = ($141|0)==($139|0); - if ($150) { - $151 = 1 << $136; - $152 = $151 ^ -1; - $153 = HEAP32[5706]|0; - $154 = $153 & $152; - HEAP32[5706] = $154; - break; - } - $155 = ($141|0)==($143|0); - if ($155) { - $$pre442 = ((($141)) + 8|0); - $$pre$phi443Z2D = $$pre442; - } else { - $156 = HEAP32[(22840)>>2]|0; - $157 = ($141>>>0)<($156>>>0); - if ($157) { - _abort(); - // unreachable; - } - $158 = ((($141)) + 8|0); - $159 = HEAP32[$158>>2]|0; - $160 = ($159|0)==($10|0); - if ($160) { - $$pre$phi443Z2D = $158; - } else { - _abort(); - // unreachable; - } - } - $161 = ((($139)) + 12|0); - HEAP32[$161>>2] = $141; - HEAP32[$$pre$phi443Z2D>>2] = $139; - } else { - $162 = ((($10)) + 24|0); - $163 = HEAP32[$162>>2]|0; - $164 = ((($10)) + 12|0); - $165 = HEAP32[$164>>2]|0; - $166 = ($165|0)==($10|0); - do { - if ($166) { - $177 = ((($10)) + 16|0); - $178 = ((($177)) + 4|0); - $179 = HEAP32[$178>>2]|0; - $180 = ($179|0)==(0|0); - if ($180) { - $181 = HEAP32[$177>>2]|0; - $182 = ($181|0)==(0|0); - if ($182) { - $$3400 = 0; - break; - } else { - $$1398 = $181;$$1402 = $177; - } - } else { - $$1398 = $179;$$1402 = $178; - } - while(1) { - $183 = ((($$1398)) + 20|0); - $184 = HEAP32[$183>>2]|0; - $185 = ($184|0)==(0|0); - if (!($185)) { - $$1398 = $184;$$1402 = $183; - continue; - } - $186 = ((($$1398)) + 16|0); - $187 = HEAP32[$186>>2]|0; - $188 = ($187|0)==(0|0); - if ($188) { - break; - } else { - $$1398 = $187;$$1402 = $186; - } - } - $189 = HEAP32[(22840)>>2]|0; - $190 = ($$1402>>>0)<($189>>>0); - if ($190) { - _abort(); - // unreachable; - } else { - HEAP32[$$1402>>2] = 0; - $$3400 = $$1398; - break; - } - } else { - $167 = ((($10)) + 8|0); - $168 = HEAP32[$167>>2]|0; - $169 = HEAP32[(22840)>>2]|0; - $170 = ($168>>>0)<($169>>>0); - if ($170) { - _abort(); - // unreachable; - } - $171 = ((($168)) + 12|0); - $172 = HEAP32[$171>>2]|0; - $173 = ($172|0)==($10|0); - if (!($173)) { - _abort(); - // unreachable; - } - $174 = ((($165)) + 8|0); - $175 = HEAP32[$174>>2]|0; - $176 = ($175|0)==($10|0); - if ($176) { - HEAP32[$171>>2] = $165; - HEAP32[$174>>2] = $168; - $$3400 = $165; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $191 = ($163|0)==(0|0); - if (!($191)) { - $192 = ((($10)) + 28|0); - $193 = HEAP32[$192>>2]|0; - $194 = (23128 + ($193<<2)|0); - $195 = HEAP32[$194>>2]|0; - $196 = ($10|0)==($195|0); - do { - if ($196) { - HEAP32[$194>>2] = $$3400; - $cond422 = ($$3400|0)==(0|0); - if ($cond422) { - $197 = 1 << $193; - $198 = $197 ^ -1; - $199 = HEAP32[(22828)>>2]|0; - $200 = $199 & $198; - HEAP32[(22828)>>2] = $200; - break L108; - } - } else { - $201 = HEAP32[(22840)>>2]|0; - $202 = ($163>>>0)<($201>>>0); - if ($202) { - _abort(); - // unreachable; - } else { - $203 = ((($163)) + 16|0); - $204 = HEAP32[$203>>2]|0; - $not$ = ($204|0)!=($10|0); - $$sink5 = $not$&1; - $205 = (((($163)) + 16|0) + ($$sink5<<2)|0); - HEAP32[$205>>2] = $$3400; - $206 = ($$3400|0)==(0|0); - if ($206) { - break L108; - } else { - break; - } - } - } - } while(0); - $207 = HEAP32[(22840)>>2]|0; - $208 = ($$3400>>>0)<($207>>>0); - if ($208) { - _abort(); - // unreachable; - } - $209 = ((($$3400)) + 24|0); - HEAP32[$209>>2] = $163; - $210 = ((($10)) + 16|0); - $211 = HEAP32[$210>>2]|0; - $212 = ($211|0)==(0|0); - do { - if (!($212)) { - $213 = ($211>>>0)<($207>>>0); - if ($213) { - _abort(); - // unreachable; - } else { - $214 = ((($$3400)) + 16|0); - HEAP32[$214>>2] = $211; - $215 = ((($211)) + 24|0); - HEAP32[$215>>2] = $$3400; - break; - } - } - } while(0); - $216 = ((($210)) + 4|0); - $217 = HEAP32[$216>>2]|0; - $218 = ($217|0)==(0|0); - if (!($218)) { - $219 = HEAP32[(22840)>>2]|0; - $220 = ($217>>>0)<($219>>>0); - if ($220) { - _abort(); - // unreachable; - } else { - $221 = ((($$3400)) + 20|0); - HEAP32[$221>>2] = $217; - $222 = ((($217)) + 24|0); - HEAP32[$222>>2] = $$3400; - break; - } - } - } - } - } while(0); - $223 = $135 | 1; - $224 = ((($$1)) + 4|0); - HEAP32[$224>>2] = $223; - $225 = (($113) + ($135)|0); - HEAP32[$225>>2] = $135; - $226 = HEAP32[(22844)>>2]|0; - $227 = ($$1|0)==($226|0); - if ($227) { - HEAP32[(22832)>>2] = $135; - return; - } else { - $$2 = $135; - } - } else { - $228 = $115 & -2; - HEAP32[$114>>2] = $228; - $229 = $$1382 | 1; - $230 = ((($$1)) + 4|0); - HEAP32[$230>>2] = $229; - $231 = (($113) + ($$1382)|0); - HEAP32[$231>>2] = $$1382; - $$2 = $$1382; - } - $232 = $$2 >>> 3; - $233 = ($$2>>>0)<(256); - if ($233) { - $234 = $232 << 1; - $235 = (22864 + ($234<<2)|0); - $236 = HEAP32[5706]|0; - $237 = 1 << $232; - $238 = $236 & $237; - $239 = ($238|0)==(0); - if ($239) { - $240 = $236 | $237; - HEAP32[5706] = $240; - $$pre = ((($235)) + 8|0); - $$0403 = $235;$$pre$phiZ2D = $$pre; - } else { - $241 = ((($235)) + 8|0); - $242 = HEAP32[$241>>2]|0; - $243 = HEAP32[(22840)>>2]|0; - $244 = ($242>>>0)<($243>>>0); - if ($244) { - _abort(); - // unreachable; - } else { - $$0403 = $242;$$pre$phiZ2D = $241; - } - } - HEAP32[$$pre$phiZ2D>>2] = $$1; - $245 = ((($$0403)) + 12|0); - HEAP32[$245>>2] = $$1; - $246 = ((($$1)) + 8|0); - HEAP32[$246>>2] = $$0403; - $247 = ((($$1)) + 12|0); - HEAP32[$247>>2] = $235; - return; - } - $248 = $$2 >>> 8; - $249 = ($248|0)==(0); - if ($249) { - $$0396 = 0; - } else { - $250 = ($$2>>>0)>(16777215); - if ($250) { - $$0396 = 31; - } else { - $251 = (($248) + 1048320)|0; - $252 = $251 >>> 16; - $253 = $252 & 8; - $254 = $248 << $253; - $255 = (($254) + 520192)|0; - $256 = $255 >>> 16; - $257 = $256 & 4; - $258 = $257 | $253; - $259 = $254 << $257; - $260 = (($259) + 245760)|0; - $261 = $260 >>> 16; - $262 = $261 & 2; - $263 = $258 | $262; - $264 = (14 - ($263))|0; - $265 = $259 << $262; - $266 = $265 >>> 15; - $267 = (($264) + ($266))|0; - $268 = $267 << 1; - $269 = (($267) + 7)|0; - $270 = $$2 >>> $269; - $271 = $270 & 1; - $272 = $271 | $268; - $$0396 = $272; - } - } - $273 = (23128 + ($$0396<<2)|0); - $274 = ((($$1)) + 28|0); - HEAP32[$274>>2] = $$0396; - $275 = ((($$1)) + 16|0); - $276 = ((($$1)) + 20|0); - HEAP32[$276>>2] = 0; - HEAP32[$275>>2] = 0; - $277 = HEAP32[(22828)>>2]|0; - $278 = 1 << $$0396; - $279 = $277 & $278; - $280 = ($279|0)==(0); - do { - if ($280) { - $281 = $277 | $278; - HEAP32[(22828)>>2] = $281; - HEAP32[$273>>2] = $$1; - $282 = ((($$1)) + 24|0); - HEAP32[$282>>2] = $273; - $283 = ((($$1)) + 12|0); - HEAP32[$283>>2] = $$1; - $284 = ((($$1)) + 8|0); - HEAP32[$284>>2] = $$1; - } else { - $285 = HEAP32[$273>>2]|0; - $286 = ($$0396|0)==(31); - $287 = $$0396 >>> 1; - $288 = (25 - ($287))|0; - $289 = $286 ? 0 : $288; - $290 = $$2 << $289; - $$0383 = $290;$$0384 = $285; - while(1) { - $291 = ((($$0384)) + 4|0); - $292 = HEAP32[$291>>2]|0; - $293 = $292 & -8; - $294 = ($293|0)==($$2|0); - if ($294) { - label = 124; - break; - } - $295 = $$0383 >>> 31; - $296 = (((($$0384)) + 16|0) + ($295<<2)|0); - $297 = $$0383 << 1; - $298 = HEAP32[$296>>2]|0; - $299 = ($298|0)==(0|0); - if ($299) { - label = 121; - break; - } else { - $$0383 = $297;$$0384 = $298; - } - } - if ((label|0) == 121) { - $300 = HEAP32[(22840)>>2]|0; - $301 = ($296>>>0)<($300>>>0); - if ($301) { - _abort(); - // unreachable; - } else { - HEAP32[$296>>2] = $$1; - $302 = ((($$1)) + 24|0); - HEAP32[$302>>2] = $$0384; - $303 = ((($$1)) + 12|0); - HEAP32[$303>>2] = $$1; - $304 = ((($$1)) + 8|0); - HEAP32[$304>>2] = $$1; - break; - } - } - else if ((label|0) == 124) { - $305 = ((($$0384)) + 8|0); - $306 = HEAP32[$305>>2]|0; - $307 = HEAP32[(22840)>>2]|0; - $308 = ($306>>>0)>=($307>>>0); - $not$437 = ($$0384>>>0)>=($307>>>0); - $309 = $308 & $not$437; - if ($309) { - $310 = ((($306)) + 12|0); - HEAP32[$310>>2] = $$1; - HEAP32[$305>>2] = $$1; - $311 = ((($$1)) + 8|0); - HEAP32[$311>>2] = $306; - $312 = ((($$1)) + 12|0); - HEAP32[$312>>2] = $$0384; - $313 = ((($$1)) + 24|0); - HEAP32[$313>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } while(0); - $314 = HEAP32[(22856)>>2]|0; - $315 = (($314) + -1)|0; - HEAP32[(22856)>>2] = $315; - $316 = ($315|0)==(0); - if ($316) { - $$0212$in$i = (23280); - } else { - return; - } - while(1) { - $$0212$i = HEAP32[$$0212$in$i>>2]|0; - $317 = ($$0212$i|0)==(0|0); - $318 = ((($$0212$i)) + 8|0); - if ($317) { - break; - } else { - $$0212$in$i = $318; - } - } - HEAP32[(22856)>>2] = -1; - return; -} -function _realloc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($0|0)==(0|0); - if ($2) { - $3 = (_malloc($1)|0); - $$1 = $3; - return ($$1|0); - } - $4 = ($1>>>0)>(4294967231); - if ($4) { - $5 = (___errno_location()|0); - HEAP32[$5>>2] = 12; - $$1 = 0; - return ($$1|0); - } - $6 = ($1>>>0)<(11); - $7 = (($1) + 11)|0; - $8 = $7 & -8; - $9 = $6 ? 16 : $8; - $10 = ((($0)) + -8|0); - $11 = (_try_realloc_chunk($10,$9)|0); - $12 = ($11|0)==(0|0); - if (!($12)) { - $13 = ((($11)) + 8|0); - $$1 = $13; - return ($$1|0); - } - $14 = (_malloc($1)|0); - $15 = ($14|0)==(0|0); - if ($15) { - $$1 = 0; - return ($$1|0); - } - $16 = ((($0)) + -4|0); - $17 = HEAP32[$16>>2]|0; - $18 = $17 & -8; - $19 = $17 & 3; - $20 = ($19|0)==(0); - $21 = $20 ? 8 : 4; - $22 = (($18) - ($21))|0; - $23 = ($22>>>0)<($1>>>0); - $24 = $23 ? $22 : $1; - _memcpy(($14|0),($0|0),($24|0))|0; - _free($0); - $$1 = $14; - return ($$1|0); -} -function _try_realloc_chunk($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$1272 = 0, $$1275 = 0, $$2 = 0, $$3 = 0, $$pre = 0, $$pre$phiZ2D = 0, $$sink1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; - var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; - var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; - var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; - var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; - var $cond = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond$not = 0, $or$cond3 = 0, $storemerge = 0, $storemerge1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 4|0); - $3 = HEAP32[$2>>2]|0; - $4 = $3 & -8; - $5 = (($0) + ($4)|0); - $6 = HEAP32[(22840)>>2]|0; - $7 = $3 & 3; - $notlhs = ($0>>>0)>=($6>>>0); - $notrhs = ($7|0)!=(1); - $or$cond$not = $notrhs & $notlhs; - $8 = ($0>>>0)<($5>>>0); - $or$cond3 = $or$cond$not & $8; - if (!($or$cond3)) { - _abort(); - // unreachable; - } - $9 = ((($5)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = $10 & 1; - $12 = ($11|0)==(0); - if ($12) { - _abort(); - // unreachable; - } - $13 = ($7|0)==(0); - if ($13) { - $14 = ($1>>>0)<(256); - if ($14) { - $$2 = 0; - return ($$2|0); - } - $15 = (($1) + 4)|0; - $16 = ($4>>>0)<($15>>>0); - if (!($16)) { - $17 = (($4) - ($1))|0; - $18 = HEAP32[(23304)>>2]|0; - $19 = $18 << 1; - $20 = ($17>>>0)>($19>>>0); - if (!($20)) { - $$2 = $0; - return ($$2|0); - } - } - $$2 = 0; - return ($$2|0); - } - $21 = ($4>>>0)<($1>>>0); - if (!($21)) { - $22 = (($4) - ($1))|0; - $23 = ($22>>>0)>(15); - if (!($23)) { - $$2 = $0; - return ($$2|0); - } - $24 = (($0) + ($1)|0); - $25 = $3 & 1; - $26 = $25 | $1; - $27 = $26 | 2; - HEAP32[$2>>2] = $27; - $28 = ((($24)) + 4|0); - $29 = $22 | 3; - HEAP32[$28>>2] = $29; - $30 = (($24) + ($22)|0); - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - $33 = $32 | 1; - HEAP32[$31>>2] = $33; - _dispose_chunk($24,$22); - $$2 = $0; - return ($$2|0); - } - $34 = HEAP32[(22848)>>2]|0; - $35 = ($5|0)==($34|0); - if ($35) { - $36 = HEAP32[(22836)>>2]|0; - $37 = (($36) + ($4))|0; - $38 = ($37>>>0)>($1>>>0); - $39 = (($37) - ($1))|0; - $40 = (($0) + ($1)|0); - if (!($38)) { - $$2 = 0; - return ($$2|0); - } - $41 = $39 | 1; - $42 = ((($40)) + 4|0); - $43 = $3 & 1; - $44 = $43 | $1; - $45 = $44 | 2; - HEAP32[$2>>2] = $45; - HEAP32[$42>>2] = $41; - HEAP32[(22848)>>2] = $40; - HEAP32[(22836)>>2] = $39; - $$2 = $0; - return ($$2|0); - } - $46 = HEAP32[(22844)>>2]|0; - $47 = ($5|0)==($46|0); - if ($47) { - $48 = HEAP32[(22832)>>2]|0; - $49 = (($48) + ($4))|0; - $50 = ($49>>>0)<($1>>>0); - if ($50) { - $$2 = 0; - return ($$2|0); - } - $51 = (($49) - ($1))|0; - $52 = ($51>>>0)>(15); - $53 = $3 & 1; - if ($52) { - $54 = (($0) + ($1)|0); - $55 = (($54) + ($51)|0); - $56 = $53 | $1; - $57 = $56 | 2; - HEAP32[$2>>2] = $57; - $58 = ((($54)) + 4|0); - $59 = $51 | 1; - HEAP32[$58>>2] = $59; - HEAP32[$55>>2] = $51; - $60 = ((($55)) + 4|0); - $61 = HEAP32[$60>>2]|0; - $62 = $61 & -2; - HEAP32[$60>>2] = $62; - $storemerge = $54;$storemerge1 = $51; - } else { - $63 = $53 | $49; - $64 = $63 | 2; - HEAP32[$2>>2] = $64; - $65 = (($0) + ($49)|0); - $66 = ((($65)) + 4|0); - $67 = HEAP32[$66>>2]|0; - $68 = $67 | 1; - HEAP32[$66>>2] = $68; - $storemerge = 0;$storemerge1 = 0; - } - HEAP32[(22832)>>2] = $storemerge1; - HEAP32[(22844)>>2] = $storemerge; - $$2 = $0; - return ($$2|0); - } - $69 = $10 & 2; - $70 = ($69|0)==(0); - if (!($70)) { - $$2 = 0; - return ($$2|0); - } - $71 = $10 & -8; - $72 = (($71) + ($4))|0; - $73 = ($72>>>0)<($1>>>0); - if ($73) { - $$2 = 0; - return ($$2|0); - } - $74 = (($72) - ($1))|0; - $75 = $10 >>> 3; - $76 = ($10>>>0)<(256); - L49: do { - if ($76) { - $77 = ((($5)) + 8|0); - $78 = HEAP32[$77>>2]|0; - $79 = ((($5)) + 12|0); - $80 = HEAP32[$79>>2]|0; - $81 = $75 << 1; - $82 = (22864 + ($81<<2)|0); - $83 = ($78|0)==($82|0); - if (!($83)) { - $84 = ($78>>>0)<($6>>>0); - if ($84) { - _abort(); - // unreachable; - } - $85 = ((($78)) + 12|0); - $86 = HEAP32[$85>>2]|0; - $87 = ($86|0)==($5|0); - if (!($87)) { - _abort(); - // unreachable; - } - } - $88 = ($80|0)==($78|0); - if ($88) { - $89 = 1 << $75; - $90 = $89 ^ -1; - $91 = HEAP32[5706]|0; - $92 = $91 & $90; - HEAP32[5706] = $92; - break; - } - $93 = ($80|0)==($82|0); - if ($93) { - $$pre = ((($80)) + 8|0); - $$pre$phiZ2D = $$pre; - } else { - $94 = ($80>>>0)<($6>>>0); - if ($94) { - _abort(); - // unreachable; - } - $95 = ((($80)) + 8|0); - $96 = HEAP32[$95>>2]|0; - $97 = ($96|0)==($5|0); - if ($97) { - $$pre$phiZ2D = $95; - } else { - _abort(); - // unreachable; - } - } - $98 = ((($78)) + 12|0); - HEAP32[$98>>2] = $80; - HEAP32[$$pre$phiZ2D>>2] = $78; - } else { - $99 = ((($5)) + 24|0); - $100 = HEAP32[$99>>2]|0; - $101 = ((($5)) + 12|0); - $102 = HEAP32[$101>>2]|0; - $103 = ($102|0)==($5|0); - do { - if ($103) { - $113 = ((($5)) + 16|0); - $114 = ((($113)) + 4|0); - $115 = HEAP32[$114>>2]|0; - $116 = ($115|0)==(0|0); - if ($116) { - $117 = HEAP32[$113>>2]|0; - $118 = ($117|0)==(0|0); - if ($118) { - $$3 = 0; - break; - } else { - $$1272 = $117;$$1275 = $113; - } - } else { - $$1272 = $115;$$1275 = $114; - } - while(1) { - $119 = ((($$1272)) + 20|0); - $120 = HEAP32[$119>>2]|0; - $121 = ($120|0)==(0|0); - if (!($121)) { - $$1272 = $120;$$1275 = $119; - continue; - } - $122 = ((($$1272)) + 16|0); - $123 = HEAP32[$122>>2]|0; - $124 = ($123|0)==(0|0); - if ($124) { - break; - } else { - $$1272 = $123;$$1275 = $122; - } - } - $125 = ($$1275>>>0)<($6>>>0); - if ($125) { - _abort(); - // unreachable; - } else { - HEAP32[$$1275>>2] = 0; - $$3 = $$1272; - break; - } - } else { - $104 = ((($5)) + 8|0); - $105 = HEAP32[$104>>2]|0; - $106 = ($105>>>0)<($6>>>0); - if ($106) { - _abort(); - // unreachable; - } - $107 = ((($105)) + 12|0); - $108 = HEAP32[$107>>2]|0; - $109 = ($108|0)==($5|0); - if (!($109)) { - _abort(); - // unreachable; - } - $110 = ((($102)) + 8|0); - $111 = HEAP32[$110>>2]|0; - $112 = ($111|0)==($5|0); - if ($112) { - HEAP32[$107>>2] = $102; - HEAP32[$110>>2] = $105; - $$3 = $102; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $126 = ($100|0)==(0|0); - if (!($126)) { - $127 = ((($5)) + 28|0); - $128 = HEAP32[$127>>2]|0; - $129 = (23128 + ($128<<2)|0); - $130 = HEAP32[$129>>2]|0; - $131 = ($5|0)==($130|0); - do { - if ($131) { - HEAP32[$129>>2] = $$3; - $cond = ($$3|0)==(0|0); - if ($cond) { - $132 = 1 << $128; - $133 = $132 ^ -1; - $134 = HEAP32[(22828)>>2]|0; - $135 = $134 & $133; - HEAP32[(22828)>>2] = $135; - break L49; - } - } else { - $136 = HEAP32[(22840)>>2]|0; - $137 = ($100>>>0)<($136>>>0); - if ($137) { - _abort(); - // unreachable; - } else { - $138 = ((($100)) + 16|0); - $139 = HEAP32[$138>>2]|0; - $not$ = ($139|0)!=($5|0); - $$sink1 = $not$&1; - $140 = (((($100)) + 16|0) + ($$sink1<<2)|0); - HEAP32[$140>>2] = $$3; - $141 = ($$3|0)==(0|0); - if ($141) { - break L49; - } else { - break; - } - } - } - } while(0); - $142 = HEAP32[(22840)>>2]|0; - $143 = ($$3>>>0)<($142>>>0); - if ($143) { - _abort(); - // unreachable; - } - $144 = ((($$3)) + 24|0); - HEAP32[$144>>2] = $100; - $145 = ((($5)) + 16|0); - $146 = HEAP32[$145>>2]|0; - $147 = ($146|0)==(0|0); - do { - if (!($147)) { - $148 = ($146>>>0)<($142>>>0); - if ($148) { - _abort(); - // unreachable; - } else { - $149 = ((($$3)) + 16|0); - HEAP32[$149>>2] = $146; - $150 = ((($146)) + 24|0); - HEAP32[$150>>2] = $$3; - break; - } - } - } while(0); - $151 = ((($145)) + 4|0); - $152 = HEAP32[$151>>2]|0; - $153 = ($152|0)==(0|0); - if (!($153)) { - $154 = HEAP32[(22840)>>2]|0; - $155 = ($152>>>0)<($154>>>0); - if ($155) { - _abort(); - // unreachable; - } else { - $156 = ((($$3)) + 20|0); - HEAP32[$156>>2] = $152; - $157 = ((($152)) + 24|0); - HEAP32[$157>>2] = $$3; - break; - } - } - } - } - } while(0); - $158 = ($74>>>0)<(16); - $159 = $3 & 1; - if ($158) { - $160 = $72 | $159; - $161 = $160 | 2; - HEAP32[$2>>2] = $161; - $162 = (($0) + ($72)|0); - $163 = ((($162)) + 4|0); - $164 = HEAP32[$163>>2]|0; - $165 = $164 | 1; - HEAP32[$163>>2] = $165; - $$2 = $0; - return ($$2|0); - } else { - $166 = (($0) + ($1)|0); - $167 = $159 | $1; - $168 = $167 | 2; - HEAP32[$2>>2] = $168; - $169 = ((($166)) + 4|0); - $170 = $74 | 3; - HEAP32[$169>>2] = $170; - $171 = (($166) + ($74)|0); - $172 = ((($171)) + 4|0); - $173 = HEAP32[$172>>2]|0; - $174 = $173 | 1; - HEAP32[$172>>2] = $174; - _dispose_chunk($166,$74); - $$2 = $0; - return ($$2|0); - } - return (0)|0; -} -function _dispose_chunk($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0419 = 0, $$0420 = 0, $$0431 = 0, $$0438 = 0, $$1 = 0, $$1418 = 0, $$1426 = 0, $$1429 = 0, $$1433 = 0, $$1437 = 0, $$2 = 0, $$3 = 0, $$3435 = 0, $$pre = 0, $$pre$phi24Z2D = 0, $$pre$phi26Z2D = 0, $$pre$phiZ2D = 0, $$pre23 = 0, $$pre25 = 0, $$sink2 = 0; - var $$sink4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; - var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; - var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; - var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; - var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; - var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; - var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; - var $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond17 = 0, $not$ = 0, $not$1 = 0, $not$19 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (($0) + ($1)|0); - $3 = ((($0)) + 4|0); - $4 = HEAP32[$3>>2]|0; - $5 = $4 & 1; - $6 = ($5|0)==(0); - L1: do { - if ($6) { - $7 = HEAP32[$0>>2]|0; - $8 = $4 & 3; - $9 = ($8|0)==(0); - if ($9) { - return; - } - $10 = (0 - ($7))|0; - $11 = (($0) + ($10)|0); - $12 = (($7) + ($1))|0; - $13 = HEAP32[(22840)>>2]|0; - $14 = ($11>>>0)<($13>>>0); - if ($14) { - _abort(); - // unreachable; - } - $15 = HEAP32[(22844)>>2]|0; - $16 = ($11|0)==($15|0); - if ($16) { - $100 = ((($2)) + 4|0); - $101 = HEAP32[$100>>2]|0; - $102 = $101 & 3; - $103 = ($102|0)==(3); - if (!($103)) { - $$1 = $11;$$1418 = $12; - break; - } - $104 = (($11) + ($12)|0); - $105 = ((($11)) + 4|0); - $106 = $12 | 1; - $107 = $101 & -2; - HEAP32[(22832)>>2] = $12; - HEAP32[$100>>2] = $107; - HEAP32[$105>>2] = $106; - HEAP32[$104>>2] = $12; - return; - } - $17 = $7 >>> 3; - $18 = ($7>>>0)<(256); - if ($18) { - $19 = ((($11)) + 8|0); - $20 = HEAP32[$19>>2]|0; - $21 = ((($11)) + 12|0); - $22 = HEAP32[$21>>2]|0; - $23 = $17 << 1; - $24 = (22864 + ($23<<2)|0); - $25 = ($20|0)==($24|0); - if (!($25)) { - $26 = ($20>>>0)<($13>>>0); - if ($26) { - _abort(); - // unreachable; - } - $27 = ((($20)) + 12|0); - $28 = HEAP32[$27>>2]|0; - $29 = ($28|0)==($11|0); - if (!($29)) { - _abort(); - // unreachable; - } - } - $30 = ($22|0)==($20|0); - if ($30) { - $31 = 1 << $17; - $32 = $31 ^ -1; - $33 = HEAP32[5706]|0; - $34 = $33 & $32; - HEAP32[5706] = $34; - $$1 = $11;$$1418 = $12; - break; - } - $35 = ($22|0)==($24|0); - if ($35) { - $$pre25 = ((($22)) + 8|0); - $$pre$phi26Z2D = $$pre25; - } else { - $36 = ($22>>>0)<($13>>>0); - if ($36) { - _abort(); - // unreachable; - } - $37 = ((($22)) + 8|0); - $38 = HEAP32[$37>>2]|0; - $39 = ($38|0)==($11|0); - if ($39) { - $$pre$phi26Z2D = $37; - } else { - _abort(); - // unreachable; - } - } - $40 = ((($20)) + 12|0); - HEAP32[$40>>2] = $22; - HEAP32[$$pre$phi26Z2D>>2] = $20; - $$1 = $11;$$1418 = $12; - break; - } - $41 = ((($11)) + 24|0); - $42 = HEAP32[$41>>2]|0; - $43 = ((($11)) + 12|0); - $44 = HEAP32[$43>>2]|0; - $45 = ($44|0)==($11|0); - do { - if ($45) { - $55 = ((($11)) + 16|0); - $56 = ((($55)) + 4|0); - $57 = HEAP32[$56>>2]|0; - $58 = ($57|0)==(0|0); - if ($58) { - $59 = HEAP32[$55>>2]|0; - $60 = ($59|0)==(0|0); - if ($60) { - $$3 = 0; - break; - } else { - $$1426 = $59;$$1429 = $55; - } - } else { - $$1426 = $57;$$1429 = $56; - } - while(1) { - $61 = ((($$1426)) + 20|0); - $62 = HEAP32[$61>>2]|0; - $63 = ($62|0)==(0|0); - if (!($63)) { - $$1426 = $62;$$1429 = $61; - continue; - } - $64 = ((($$1426)) + 16|0); - $65 = HEAP32[$64>>2]|0; - $66 = ($65|0)==(0|0); - if ($66) { - break; - } else { - $$1426 = $65;$$1429 = $64; - } - } - $67 = ($$1429>>>0)<($13>>>0); - if ($67) { - _abort(); - // unreachable; - } else { - HEAP32[$$1429>>2] = 0; - $$3 = $$1426; - break; - } - } else { - $46 = ((($11)) + 8|0); - $47 = HEAP32[$46>>2]|0; - $48 = ($47>>>0)<($13>>>0); - if ($48) { - _abort(); - // unreachable; - } - $49 = ((($47)) + 12|0); - $50 = HEAP32[$49>>2]|0; - $51 = ($50|0)==($11|0); - if (!($51)) { - _abort(); - // unreachable; - } - $52 = ((($44)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ($53|0)==($11|0); - if ($54) { - HEAP32[$49>>2] = $44; - HEAP32[$52>>2] = $47; - $$3 = $44; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $68 = ($42|0)==(0|0); - if ($68) { - $$1 = $11;$$1418 = $12; - } else { - $69 = ((($11)) + 28|0); - $70 = HEAP32[$69>>2]|0; - $71 = (23128 + ($70<<2)|0); - $72 = HEAP32[$71>>2]|0; - $73 = ($11|0)==($72|0); - do { - if ($73) { - HEAP32[$71>>2] = $$3; - $cond = ($$3|0)==(0|0); - if ($cond) { - $74 = 1 << $70; - $75 = $74 ^ -1; - $76 = HEAP32[(22828)>>2]|0; - $77 = $76 & $75; - HEAP32[(22828)>>2] = $77; - $$1 = $11;$$1418 = $12; - break L1; - } - } else { - $78 = HEAP32[(22840)>>2]|0; - $79 = ($42>>>0)<($78>>>0); - if ($79) { - _abort(); - // unreachable; - } else { - $80 = ((($42)) + 16|0); - $81 = HEAP32[$80>>2]|0; - $not$1 = ($81|0)!=($11|0); - $$sink2 = $not$1&1; - $82 = (((($42)) + 16|0) + ($$sink2<<2)|0); - HEAP32[$82>>2] = $$3; - $83 = ($$3|0)==(0|0); - if ($83) { - $$1 = $11;$$1418 = $12; - break L1; - } else { - break; - } - } - } - } while(0); - $84 = HEAP32[(22840)>>2]|0; - $85 = ($$3>>>0)<($84>>>0); - if ($85) { - _abort(); - // unreachable; - } - $86 = ((($$3)) + 24|0); - HEAP32[$86>>2] = $42; - $87 = ((($11)) + 16|0); - $88 = HEAP32[$87>>2]|0; - $89 = ($88|0)==(0|0); - do { - if (!($89)) { - $90 = ($88>>>0)<($84>>>0); - if ($90) { - _abort(); - // unreachable; - } else { - $91 = ((($$3)) + 16|0); - HEAP32[$91>>2] = $88; - $92 = ((($88)) + 24|0); - HEAP32[$92>>2] = $$3; - break; - } - } - } while(0); - $93 = ((($87)) + 4|0); - $94 = HEAP32[$93>>2]|0; - $95 = ($94|0)==(0|0); - if ($95) { - $$1 = $11;$$1418 = $12; - } else { - $96 = HEAP32[(22840)>>2]|0; - $97 = ($94>>>0)<($96>>>0); - if ($97) { - _abort(); - // unreachable; - } else { - $98 = ((($$3)) + 20|0); - HEAP32[$98>>2] = $94; - $99 = ((($94)) + 24|0); - HEAP32[$99>>2] = $$3; - $$1 = $11;$$1418 = $12; - break; - } - } - } - } else { - $$1 = $0;$$1418 = $1; - } - } while(0); - $108 = HEAP32[(22840)>>2]|0; - $109 = ($2>>>0)<($108>>>0); - if ($109) { - _abort(); - // unreachable; - } - $110 = ((($2)) + 4|0); - $111 = HEAP32[$110>>2]|0; - $112 = $111 & 2; - $113 = ($112|0)==(0); - if ($113) { - $114 = HEAP32[(22848)>>2]|0; - $115 = ($2|0)==($114|0); - $116 = HEAP32[(22844)>>2]|0; - if ($115) { - $117 = HEAP32[(22836)>>2]|0; - $118 = (($117) + ($$1418))|0; - HEAP32[(22836)>>2] = $118; - HEAP32[(22848)>>2] = $$1; - $119 = $118 | 1; - $120 = ((($$1)) + 4|0); - HEAP32[$120>>2] = $119; - $121 = ($$1|0)==($116|0); - if (!($121)) { - return; - } - HEAP32[(22844)>>2] = 0; - HEAP32[(22832)>>2] = 0; - return; - } - $122 = ($2|0)==($116|0); - if ($122) { - $123 = HEAP32[(22832)>>2]|0; - $124 = (($123) + ($$1418))|0; - HEAP32[(22832)>>2] = $124; - HEAP32[(22844)>>2] = $$1; - $125 = $124 | 1; - $126 = ((($$1)) + 4|0); - HEAP32[$126>>2] = $125; - $127 = (($$1) + ($124)|0); - HEAP32[$127>>2] = $124; - return; - } - $128 = $111 & -8; - $129 = (($128) + ($$1418))|0; - $130 = $111 >>> 3; - $131 = ($111>>>0)<(256); - L96: do { - if ($131) { - $132 = ((($2)) + 8|0); - $133 = HEAP32[$132>>2]|0; - $134 = ((($2)) + 12|0); - $135 = HEAP32[$134>>2]|0; - $136 = $130 << 1; - $137 = (22864 + ($136<<2)|0); - $138 = ($133|0)==($137|0); - if (!($138)) { - $139 = ($133>>>0)<($108>>>0); - if ($139) { - _abort(); - // unreachable; - } - $140 = ((($133)) + 12|0); - $141 = HEAP32[$140>>2]|0; - $142 = ($141|0)==($2|0); - if (!($142)) { - _abort(); - // unreachable; - } - } - $143 = ($135|0)==($133|0); - if ($143) { - $144 = 1 << $130; - $145 = $144 ^ -1; - $146 = HEAP32[5706]|0; - $147 = $146 & $145; - HEAP32[5706] = $147; - break; - } - $148 = ($135|0)==($137|0); - if ($148) { - $$pre23 = ((($135)) + 8|0); - $$pre$phi24Z2D = $$pre23; - } else { - $149 = ($135>>>0)<($108>>>0); - if ($149) { - _abort(); - // unreachable; - } - $150 = ((($135)) + 8|0); - $151 = HEAP32[$150>>2]|0; - $152 = ($151|0)==($2|0); - if ($152) { - $$pre$phi24Z2D = $150; - } else { - _abort(); - // unreachable; - } - } - $153 = ((($133)) + 12|0); - HEAP32[$153>>2] = $135; - HEAP32[$$pre$phi24Z2D>>2] = $133; - } else { - $154 = ((($2)) + 24|0); - $155 = HEAP32[$154>>2]|0; - $156 = ((($2)) + 12|0); - $157 = HEAP32[$156>>2]|0; - $158 = ($157|0)==($2|0); - do { - if ($158) { - $168 = ((($2)) + 16|0); - $169 = ((($168)) + 4|0); - $170 = HEAP32[$169>>2]|0; - $171 = ($170|0)==(0|0); - if ($171) { - $172 = HEAP32[$168>>2]|0; - $173 = ($172|0)==(0|0); - if ($173) { - $$3435 = 0; - break; - } else { - $$1433 = $172;$$1437 = $168; - } - } else { - $$1433 = $170;$$1437 = $169; - } - while(1) { - $174 = ((($$1433)) + 20|0); - $175 = HEAP32[$174>>2]|0; - $176 = ($175|0)==(0|0); - if (!($176)) { - $$1433 = $175;$$1437 = $174; - continue; - } - $177 = ((($$1433)) + 16|0); - $178 = HEAP32[$177>>2]|0; - $179 = ($178|0)==(0|0); - if ($179) { - break; - } else { - $$1433 = $178;$$1437 = $177; - } - } - $180 = ($$1437>>>0)<($108>>>0); - if ($180) { - _abort(); - // unreachable; - } else { - HEAP32[$$1437>>2] = 0; - $$3435 = $$1433; - break; - } - } else { - $159 = ((($2)) + 8|0); - $160 = HEAP32[$159>>2]|0; - $161 = ($160>>>0)<($108>>>0); - if ($161) { - _abort(); - // unreachable; - } - $162 = ((($160)) + 12|0); - $163 = HEAP32[$162>>2]|0; - $164 = ($163|0)==($2|0); - if (!($164)) { - _abort(); - // unreachable; - } - $165 = ((($157)) + 8|0); - $166 = HEAP32[$165>>2]|0; - $167 = ($166|0)==($2|0); - if ($167) { - HEAP32[$162>>2] = $157; - HEAP32[$165>>2] = $160; - $$3435 = $157; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $181 = ($155|0)==(0|0); - if (!($181)) { - $182 = ((($2)) + 28|0); - $183 = HEAP32[$182>>2]|0; - $184 = (23128 + ($183<<2)|0); - $185 = HEAP32[$184>>2]|0; - $186 = ($2|0)==($185|0); - do { - if ($186) { - HEAP32[$184>>2] = $$3435; - $cond17 = ($$3435|0)==(0|0); - if ($cond17) { - $187 = 1 << $183; - $188 = $187 ^ -1; - $189 = HEAP32[(22828)>>2]|0; - $190 = $189 & $188; - HEAP32[(22828)>>2] = $190; - break L96; - } - } else { - $191 = HEAP32[(22840)>>2]|0; - $192 = ($155>>>0)<($191>>>0); - if ($192) { - _abort(); - // unreachable; - } else { - $193 = ((($155)) + 16|0); - $194 = HEAP32[$193>>2]|0; - $not$ = ($194|0)!=($2|0); - $$sink4 = $not$&1; - $195 = (((($155)) + 16|0) + ($$sink4<<2)|0); - HEAP32[$195>>2] = $$3435; - $196 = ($$3435|0)==(0|0); - if ($196) { - break L96; - } else { - break; - } - } - } - } while(0); - $197 = HEAP32[(22840)>>2]|0; - $198 = ($$3435>>>0)<($197>>>0); - if ($198) { - _abort(); - // unreachable; - } - $199 = ((($$3435)) + 24|0); - HEAP32[$199>>2] = $155; - $200 = ((($2)) + 16|0); - $201 = HEAP32[$200>>2]|0; - $202 = ($201|0)==(0|0); - do { - if (!($202)) { - $203 = ($201>>>0)<($197>>>0); - if ($203) { - _abort(); - // unreachable; - } else { - $204 = ((($$3435)) + 16|0); - HEAP32[$204>>2] = $201; - $205 = ((($201)) + 24|0); - HEAP32[$205>>2] = $$3435; - break; - } - } - } while(0); - $206 = ((($200)) + 4|0); - $207 = HEAP32[$206>>2]|0; - $208 = ($207|0)==(0|0); - if (!($208)) { - $209 = HEAP32[(22840)>>2]|0; - $210 = ($207>>>0)<($209>>>0); - if ($210) { - _abort(); - // unreachable; - } else { - $211 = ((($$3435)) + 20|0); - HEAP32[$211>>2] = $207; - $212 = ((($207)) + 24|0); - HEAP32[$212>>2] = $$3435; - break; - } - } - } - } - } while(0); - $213 = $129 | 1; - $214 = ((($$1)) + 4|0); - HEAP32[$214>>2] = $213; - $215 = (($$1) + ($129)|0); - HEAP32[$215>>2] = $129; - $216 = HEAP32[(22844)>>2]|0; - $217 = ($$1|0)==($216|0); - if ($217) { - HEAP32[(22832)>>2] = $129; - return; - } else { - $$2 = $129; - } - } else { - $218 = $111 & -2; - HEAP32[$110>>2] = $218; - $219 = $$1418 | 1; - $220 = ((($$1)) + 4|0); - HEAP32[$220>>2] = $219; - $221 = (($$1) + ($$1418)|0); - HEAP32[$221>>2] = $$1418; - $$2 = $$1418; - } - $222 = $$2 >>> 3; - $223 = ($$2>>>0)<(256); - if ($223) { - $224 = $222 << 1; - $225 = (22864 + ($224<<2)|0); - $226 = HEAP32[5706]|0; - $227 = 1 << $222; - $228 = $226 & $227; - $229 = ($228|0)==(0); - if ($229) { - $230 = $226 | $227; - HEAP32[5706] = $230; - $$pre = ((($225)) + 8|0); - $$0438 = $225;$$pre$phiZ2D = $$pre; - } else { - $231 = ((($225)) + 8|0); - $232 = HEAP32[$231>>2]|0; - $233 = HEAP32[(22840)>>2]|0; - $234 = ($232>>>0)<($233>>>0); - if ($234) { - _abort(); - // unreachable; - } else { - $$0438 = $232;$$pre$phiZ2D = $231; - } - } - HEAP32[$$pre$phiZ2D>>2] = $$1; - $235 = ((($$0438)) + 12|0); - HEAP32[$235>>2] = $$1; - $236 = ((($$1)) + 8|0); - HEAP32[$236>>2] = $$0438; - $237 = ((($$1)) + 12|0); - HEAP32[$237>>2] = $225; - return; - } - $238 = $$2 >>> 8; - $239 = ($238|0)==(0); - if ($239) { - $$0431 = 0; - } else { - $240 = ($$2>>>0)>(16777215); - if ($240) { - $$0431 = 31; - } else { - $241 = (($238) + 1048320)|0; - $242 = $241 >>> 16; - $243 = $242 & 8; - $244 = $238 << $243; - $245 = (($244) + 520192)|0; - $246 = $245 >>> 16; - $247 = $246 & 4; - $248 = $247 | $243; - $249 = $244 << $247; - $250 = (($249) + 245760)|0; - $251 = $250 >>> 16; - $252 = $251 & 2; - $253 = $248 | $252; - $254 = (14 - ($253))|0; - $255 = $249 << $252; - $256 = $255 >>> 15; - $257 = (($254) + ($256))|0; - $258 = $257 << 1; - $259 = (($257) + 7)|0; - $260 = $$2 >>> $259; - $261 = $260 & 1; - $262 = $261 | $258; - $$0431 = $262; - } - } - $263 = (23128 + ($$0431<<2)|0); - $264 = ((($$1)) + 28|0); - HEAP32[$264>>2] = $$0431; - $265 = ((($$1)) + 16|0); - $266 = ((($$1)) + 20|0); - HEAP32[$266>>2] = 0; - HEAP32[$265>>2] = 0; - $267 = HEAP32[(22828)>>2]|0; - $268 = 1 << $$0431; - $269 = $267 & $268; - $270 = ($269|0)==(0); - if ($270) { - $271 = $267 | $268; - HEAP32[(22828)>>2] = $271; - HEAP32[$263>>2] = $$1; - $272 = ((($$1)) + 24|0); - HEAP32[$272>>2] = $263; - $273 = ((($$1)) + 12|0); - HEAP32[$273>>2] = $$1; - $274 = ((($$1)) + 8|0); - HEAP32[$274>>2] = $$1; - return; - } - $275 = HEAP32[$263>>2]|0; - $276 = ($$0431|0)==(31); - $277 = $$0431 >>> 1; - $278 = (25 - ($277))|0; - $279 = $276 ? 0 : $278; - $280 = $$2 << $279; - $$0419 = $280;$$0420 = $275; - while(1) { - $281 = ((($$0420)) + 4|0); - $282 = HEAP32[$281>>2]|0; - $283 = $282 & -8; - $284 = ($283|0)==($$2|0); - if ($284) { - label = 121; - break; - } - $285 = $$0419 >>> 31; - $286 = (((($$0420)) + 16|0) + ($285<<2)|0); - $287 = $$0419 << 1; - $288 = HEAP32[$286>>2]|0; - $289 = ($288|0)==(0|0); - if ($289) { - label = 118; - break; - } else { - $$0419 = $287;$$0420 = $288; - } - } - if ((label|0) == 118) { - $290 = HEAP32[(22840)>>2]|0; - $291 = ($286>>>0)<($290>>>0); - if ($291) { - _abort(); - // unreachable; - } - HEAP32[$286>>2] = $$1; - $292 = ((($$1)) + 24|0); - HEAP32[$292>>2] = $$0420; - $293 = ((($$1)) + 12|0); - HEAP32[$293>>2] = $$1; - $294 = ((($$1)) + 8|0); - HEAP32[$294>>2] = $$1; - return; - } - else if ((label|0) == 121) { - $295 = ((($$0420)) + 8|0); - $296 = HEAP32[$295>>2]|0; - $297 = HEAP32[(22840)>>2]|0; - $298 = ($296>>>0)>=($297>>>0); - $not$19 = ($$0420>>>0)>=($297>>>0); - $299 = $298 & $not$19; - if (!($299)) { - _abort(); - // unreachable; - } - $300 = ((($296)) + 12|0); - HEAP32[$300>>2] = $$1; - HEAP32[$295>>2] = $$1; - $301 = ((($$1)) + 8|0); - HEAP32[$301>>2] = $296; - $302 = ((($$1)) + 12|0); - HEAP32[$302>>2] = $$0420; - $303 = ((($$1)) + 24|0); - HEAP32[$303>>2] = 0; - return; - } -} -function _emscripten_get_global_libc() { - var label = 0, sp = 0; - sp = STACKTOP; - return (23320|0); -} -function ___stdio_close($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = ((($0)) + 60|0); - $2 = HEAP32[$1>>2]|0; - $3 = (_dummy_738($2)|0); - HEAP32[$vararg_buffer>>2] = $3; - $4 = (___syscall6(6,($vararg_buffer|0))|0); - $5 = (___syscall_ret($4)|0); - STACKTOP = sp;return ($5|0); -} -function ___stdio_write($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$04756 = 0, $$04855 = 0, $$04954 = 0, $$051 = 0, $$1 = 0, $$150 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0; - var $vararg_ptr7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $vararg_buffer3 = sp + 16|0; - $vararg_buffer = sp; - $3 = sp + 32|0; - $4 = ((($0)) + 28|0); - $5 = HEAP32[$4>>2]|0; - HEAP32[$3>>2] = $5; - $6 = ((($3)) + 4|0); - $7 = ((($0)) + 20|0); - $8 = HEAP32[$7>>2]|0; - $9 = (($8) - ($5))|0; - HEAP32[$6>>2] = $9; - $10 = ((($3)) + 8|0); - HEAP32[$10>>2] = $1; - $11 = ((($3)) + 12|0); - HEAP32[$11>>2] = $2; - $12 = (($9) + ($2))|0; - $13 = ((($0)) + 60|0); - $14 = HEAP32[$13>>2]|0; - $15 = $3; - HEAP32[$vararg_buffer>>2] = $14; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $15; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = 2; - $16 = (___syscall146(146,($vararg_buffer|0))|0); - $17 = (___syscall_ret($16)|0); - $18 = ($12|0)==($17|0); - L1: do { - if ($18) { - label = 3; - } else { - $$04756 = 2;$$04855 = $12;$$04954 = $3;$26 = $17; - while(1) { - $25 = ($26|0)<(0); - if ($25) { - break; - } - $34 = (($$04855) - ($26))|0; - $35 = ((($$04954)) + 4|0); - $36 = HEAP32[$35>>2]|0; - $37 = ($26>>>0)>($36>>>0); - $38 = ((($$04954)) + 8|0); - $$150 = $37 ? $38 : $$04954; - $39 = $37 << 31 >> 31; - $$1 = (($39) + ($$04756))|0; - $40 = $37 ? $36 : 0; - $$0 = (($26) - ($40))|0; - $41 = HEAP32[$$150>>2]|0; - $42 = (($41) + ($$0)|0); - HEAP32[$$150>>2] = $42; - $43 = ((($$150)) + 4|0); - $44 = HEAP32[$43>>2]|0; - $45 = (($44) - ($$0))|0; - HEAP32[$43>>2] = $45; - $46 = HEAP32[$13>>2]|0; - $47 = $$150; - HEAP32[$vararg_buffer3>>2] = $46; - $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr6>>2] = $47; - $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); - HEAP32[$vararg_ptr7>>2] = $$1; - $48 = (___syscall146(146,($vararg_buffer3|0))|0); - $49 = (___syscall_ret($48)|0); - $50 = ($34|0)==($49|0); - if ($50) { - label = 3; - break L1; - } else { - $$04756 = $$1;$$04855 = $34;$$04954 = $$150;$26 = $49; - } - } - $27 = ((($0)) + 16|0); - HEAP32[$27>>2] = 0; - HEAP32[$4>>2] = 0; - HEAP32[$7>>2] = 0; - $28 = HEAP32[$0>>2]|0; - $29 = $28 | 32; - HEAP32[$0>>2] = $29; - $30 = ($$04756|0)==(2); - if ($30) { - $$051 = 0; - } else { - $31 = ((($$04954)) + 4|0); - $32 = HEAP32[$31>>2]|0; - $33 = (($2) - ($32))|0; - $$051 = $33; - } - } - } while(0); - if ((label|0) == 3) { - $19 = ((($0)) + 44|0); - $20 = HEAP32[$19>>2]|0; - $21 = ((($0)) + 48|0); - $22 = HEAP32[$21>>2]|0; - $23 = (($20) + ($22)|0); - $24 = ((($0)) + 16|0); - HEAP32[$24>>2] = $23; - HEAP32[$4>>2] = $20; - HEAP32[$7>>2] = $20; - $$051 = $2; - } - STACKTOP = sp;return ($$051|0); -} -function ___stdio_seek($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$pre = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $3 = sp + 20|0; - $4 = ((($0)) + 60|0); - $5 = HEAP32[$4>>2]|0; - $6 = $3; - HEAP32[$vararg_buffer>>2] = $5; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = 0; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $1; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $6; - $vararg_ptr4 = ((($vararg_buffer)) + 16|0); - HEAP32[$vararg_ptr4>>2] = $2; - $7 = (___syscall140(140,($vararg_buffer|0))|0); - $8 = (___syscall_ret($7)|0); - $9 = ($8|0)<(0); - if ($9) { - HEAP32[$3>>2] = -1; - $10 = -1; - } else { - $$pre = HEAP32[$3>>2]|0; - $10 = $$pre; - } - STACKTOP = sp;return ($10|0); -} -function ___syscall_ret($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0>>>0)>(4294963200); - if ($1) { - $2 = (0 - ($0))|0; - $3 = (___errno_location()|0); - HEAP32[$3>>2] = $2; - $$0 = -1; - } else { - $$0 = $0; - } - return ($$0|0); -} -function ___errno_location() { - var $0 = 0, $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (___pthread_self_108()|0); - $1 = ((($0)) + 64|0); - return ($1|0); -} -function ___pthread_self_108() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function _pthread_self() { - var label = 0, sp = 0; - sp = STACKTOP; - return (3832|0); -} -function _dummy_738($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return ($0|0); -} -function ___stdio_read($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $3 = sp + 16|0; - HEAP32[$3>>2] = $1; - $4 = ((($3)) + 4|0); - $5 = ((($0)) + 48|0); - $6 = HEAP32[$5>>2]|0; - $7 = ($6|0)!=(0); - $8 = $7&1; - $9 = (($2) - ($8))|0; - HEAP32[$4>>2] = $9; - $10 = ((($3)) + 8|0); - $11 = ((($0)) + 44|0); - $12 = HEAP32[$11>>2]|0; - HEAP32[$10>>2] = $12; - $13 = ((($3)) + 12|0); - HEAP32[$13>>2] = $6; - $14 = ((($0)) + 60|0); - $15 = HEAP32[$14>>2]|0; - $16 = $3; - HEAP32[$vararg_buffer>>2] = $15; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $16; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = 2; - $17 = (___syscall145(145,($vararg_buffer|0))|0); - $18 = (___syscall_ret($17)|0); - $19 = ($18|0)<(1); - if ($19) { - $20 = $18 & 48; - $21 = $20 ^ 16; - $22 = HEAP32[$0>>2]|0; - $23 = $22 | $21; - HEAP32[$0>>2] = $23; - $$0 = $18; - } else { - $24 = HEAP32[$4>>2]|0; - $25 = ($18>>>0)>($24>>>0); - if ($25) { - $26 = (($18) - ($24))|0; - $27 = HEAP32[$11>>2]|0; - $28 = ((($0)) + 4|0); - HEAP32[$28>>2] = $27; - $29 = (($27) + ($26)|0); - $30 = ((($0)) + 8|0); - HEAP32[$30>>2] = $29; - $31 = HEAP32[$5>>2]|0; - $32 = ($31|0)==(0); - if ($32) { - $$0 = $2; - } else { - $33 = ((($27)) + 1|0); - HEAP32[$28>>2] = $33; - $34 = HEAP8[$27>>0]|0; - $35 = (($2) + -1)|0; - $36 = (($1) + ($35)|0); - HEAP8[$36>>0] = $34; - $$0 = $2; - } - } else { - $$0 = $18; - } - } - STACKTOP = sp;return ($$0|0); -} -function ___stdout_write($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $3 = sp + 16|0; - $4 = ((($0)) + 36|0); - HEAP32[$4>>2] = 10; - $5 = HEAP32[$0>>2]|0; - $6 = $5 & 64; - $7 = ($6|0)==(0); - if ($7) { - $8 = ((($0)) + 60|0); - $9 = HEAP32[$8>>2]|0; - $10 = $3; - HEAP32[$vararg_buffer>>2] = $9; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = 21523; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $10; - $11 = (___syscall54(54,($vararg_buffer|0))|0); - $12 = ($11|0)==(0); - if (!($12)) { - $13 = ((($0)) + 75|0); - HEAP8[$13>>0] = -1; - } - } - $14 = (___stdio_write($0,$1,$2)|0); - STACKTOP = sp;return ($14|0); -} -function _strtox_768($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $5 = sp; - HEAP32[$5>>2] = 0; - $6 = ((($5)) + 4|0); - HEAP32[$6>>2] = $0; - $7 = ((($5)) + 44|0); - HEAP32[$7>>2] = $0; - $8 = ($0|0)<(0|0); - $9 = ((($0)) + 2147483647|0); - $$sink = $8 ? (-1) : $9; - $10 = ((($5)) + 8|0); - HEAP32[$10>>2] = $$sink; - $11 = ((($5)) + 76|0); - HEAP32[$11>>2] = -1; - ___shlim($5,0); - $12 = (___intscan($5,$2,1,$3,$4)|0); - $13 = tempRet0; - $14 = ($1|0)==(0|0); - if (!($14)) { - $15 = ((($5)) + 108|0); - $16 = HEAP32[$15>>2]|0; - $17 = HEAP32[$6>>2]|0; - $18 = HEAP32[$10>>2]|0; - $19 = (($17) + ($16))|0; - $20 = (($19) - ($18))|0; - $21 = (($0) + ($20)|0); - HEAP32[$1>>2] = $21; - } - tempRet0 = ($13); - STACKTOP = sp;return ($12|0); -} -function ___shlim($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 104|0); - HEAP32[$2>>2] = $1; - $3 = ((($0)) + 8|0); - $4 = HEAP32[$3>>2]|0; - $5 = ((($0)) + 4|0); - $6 = HEAP32[$5>>2]|0; - $7 = $4; - $8 = $6; - $9 = (($7) - ($8))|0; - $10 = ((($0)) + 108|0); - HEAP32[$10>>2] = $9; - $11 = ($1|0)!=(0); - $12 = ($9|0)>($1|0); - $or$cond = $11 & $12; - $13 = (($6) + ($1)|0); - $$sink = $or$cond ? $13 : $4; - $14 = ((($0)) + 100|0); - HEAP32[$14>>2] = $$sink; - return; -} -function ___intscan($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0154222 = 0, $$0157 = 0, $$0157$ = 0, $$0159 = 0, $$1155192 = 0, $$1158 = 0, $$1160 = 0, $$1160169 = 0, $$1165 = 0, $$1165167 = 0, $$1165168 = 0, $$166 = 0, $$2156210 = 0, $$2161$be = 0, $$2161$lcssa = 0, $$3162$be = 0, $$3162215 = 0, $$4163$be = 0, $$4163$lcssa = 0, $$5$be = 0; - var $$6$be = 0, $$6$lcssa = 0, $$7$be = 0, $$7198 = 0, $$8 = 0, $$9$be = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0; - var $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; - var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; - var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0; - var $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0; - var $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0; - var $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0; - var $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0; - var $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0; - var $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0; - var $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0; - var $294 = 0, $295 = 0, $296 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; - var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; - var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, $or$cond12 = 0; - var $or$cond187 = 0, $or$cond5 = 0, $or$cond7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ($1>>>0)>(36); - L1: do { - if ($5) { - $8 = (___errno_location()|0); - HEAP32[$8>>2] = 22; - $289 = 0;$290 = 0; - } else { - $6 = ((($0)) + 4|0); - $7 = ((($0)) + 100|0); - while(1) { - $9 = HEAP32[$6>>2]|0; - $10 = HEAP32[$7>>2]|0; - $11 = ($9>>>0)<($10>>>0); - if ($11) { - $12 = ((($9)) + 1|0); - HEAP32[$6>>2] = $12; - $13 = HEAP8[$9>>0]|0; - $14 = $13&255; - $16 = $14; - } else { - $15 = (___shgetc($0)|0); - $16 = $15; - } - $17 = (_isspace($16)|0); - $18 = ($17|0)==(0); - if ($18) { - break; - } - } - L11: do { - switch ($16|0) { - case 43: case 45: { - $19 = ($16|0)==(45); - $20 = $19 << 31 >> 31; - $21 = HEAP32[$6>>2]|0; - $22 = HEAP32[$7>>2]|0; - $23 = ($21>>>0)<($22>>>0); - if ($23) { - $24 = ((($21)) + 1|0); - HEAP32[$6>>2] = $24; - $25 = HEAP8[$21>>0]|0; - $26 = $25&255; - $$0157 = $20;$$0159 = $26; - break L11; - } else { - $27 = (___shgetc($0)|0); - $$0157 = $20;$$0159 = $27; - break L11; - } - break; - } - default: { - $$0157 = 0;$$0159 = $16; - } - } - } while(0); - $28 = ($1|0)==(0); - $29 = $1 | 16; - $30 = ($29|0)==(16); - $31 = ($$0159|0)==(48); - $or$cond5 = $30 & $31; - do { - if ($or$cond5) { - $32 = HEAP32[$6>>2]|0; - $33 = HEAP32[$7>>2]|0; - $34 = ($32>>>0)<($33>>>0); - if ($34) { - $35 = ((($32)) + 1|0); - HEAP32[$6>>2] = $35; - $36 = HEAP8[$32>>0]|0; - $37 = $36&255; - $40 = $37; - } else { - $38 = (___shgetc($0)|0); - $40 = $38; - } - $39 = $40 | 32; - $41 = ($39|0)==(120); - if (!($41)) { - if ($28) { - $$1160169 = $40;$$1165168 = 8; - label = 46; - break; - } else { - $$1160 = $40;$$1165 = $1; - label = 32; - break; - } - } - $42 = HEAP32[$6>>2]|0; - $43 = HEAP32[$7>>2]|0; - $44 = ($42>>>0)<($43>>>0); - if ($44) { - $45 = ((($42)) + 1|0); - HEAP32[$6>>2] = $45; - $46 = HEAP8[$42>>0]|0; - $47 = $46&255; - $50 = $47; - } else { - $48 = (___shgetc($0)|0); - $50 = $48; - } - $49 = ((17295) + ($50)|0); - $51 = HEAP8[$49>>0]|0; - $52 = ($51&255)>(15); - if ($52) { - $53 = HEAP32[$7>>2]|0; - $54 = ($53|0)!=(0|0); - if ($54) { - $55 = HEAP32[$6>>2]|0; - $56 = ((($55)) + -1|0); - HEAP32[$6>>2] = $56; - } - $57 = ($2|0)==(0); - if ($57) { - ___shlim($0,0); - $289 = 0;$290 = 0; - break L1; - } - if (!($54)) { - $289 = 0;$290 = 0; - break L1; - } - $58 = HEAP32[$6>>2]|0; - $59 = ((($58)) + -1|0); - HEAP32[$6>>2] = $59; - $289 = 0;$290 = 0; - break L1; - } else { - $$1160169 = $50;$$1165168 = 16; - label = 46; - } - } else { - $$166 = $28 ? 10 : $1; - $60 = ((17295) + ($$0159)|0); - $61 = HEAP8[$60>>0]|0; - $62 = $61&255; - $63 = ($62>>>0)<($$166>>>0); - if ($63) { - $$1160 = $$0159;$$1165 = $$166; - label = 32; - } else { - $64 = HEAP32[$7>>2]|0; - $65 = ($64|0)==(0|0); - if (!($65)) { - $66 = HEAP32[$6>>2]|0; - $67 = ((($66)) + -1|0); - HEAP32[$6>>2] = $67; - } - ___shlim($0,0); - $68 = (___errno_location()|0); - HEAP32[$68>>2] = 22; - $289 = 0;$290 = 0; - break L1; - } - } - } while(0); - L43: do { - if ((label|0) == 32) { - $69 = ($$1165|0)==(10); - if ($69) { - $70 = (($$1160) + -48)|0; - $71 = ($70>>>0)<(10); - if ($71) { - $$0154222 = 0;$74 = $70; - while(1) { - $72 = ($$0154222*10)|0; - $73 = (($72) + ($74))|0; - $75 = HEAP32[$6>>2]|0; - $76 = HEAP32[$7>>2]|0; - $77 = ($75>>>0)<($76>>>0); - if ($77) { - $78 = ((($75)) + 1|0); - HEAP32[$6>>2] = $78; - $79 = HEAP8[$75>>0]|0; - $80 = $79&255; - $$2161$be = $80; - } else { - $81 = (___shgetc($0)|0); - $$2161$be = $81; - } - $82 = (($$2161$be) + -48)|0; - $83 = ($82>>>0)<(10); - $84 = ($73>>>0)<(429496729); - $85 = $83 & $84; - if ($85) { - $$0154222 = $73;$74 = $82; - } else { - break; - } - } - $$2161$lcssa = $$2161$be;$291 = $73;$292 = 0; - } else { - $$2161$lcssa = $$1160;$291 = 0;$292 = 0; - } - $86 = (($$2161$lcssa) + -48)|0; - $87 = ($86>>>0)<(10); - if ($87) { - $$3162215 = $$2161$lcssa;$88 = $291;$89 = $292;$93 = $86; - while(1) { - $90 = (___muldi3(($88|0),($89|0),10,0)|0); - $91 = tempRet0; - $92 = ($93|0)<(0); - $94 = $92 << 31 >> 31; - $95 = $93 ^ -1; - $96 = $94 ^ -1; - $97 = ($91>>>0)>($96>>>0); - $98 = ($90>>>0)>($95>>>0); - $99 = ($91|0)==($96|0); - $100 = $99 & $98; - $101 = $97 | $100; - if ($101) { - $$1165167 = 10;$$8 = $$3162215;$293 = $88;$294 = $89; - label = 72; - break L43; - } - $102 = (_i64Add(($90|0),($91|0),($93|0),($94|0))|0); - $103 = tempRet0; - $104 = HEAP32[$6>>2]|0; - $105 = HEAP32[$7>>2]|0; - $106 = ($104>>>0)<($105>>>0); - if ($106) { - $107 = ((($104)) + 1|0); - HEAP32[$6>>2] = $107; - $108 = HEAP8[$104>>0]|0; - $109 = $108&255; - $$3162$be = $109; - } else { - $110 = (___shgetc($0)|0); - $$3162$be = $110; - } - $111 = (($$3162$be) + -48)|0; - $112 = ($111>>>0)<(10); - $113 = ($103>>>0)<(429496729); - $114 = ($102>>>0)<(2576980378); - $115 = ($103|0)==(429496729); - $116 = $115 & $114; - $117 = $113 | $116; - $or$cond7 = $112 & $117; - if ($or$cond7) { - $$3162215 = $$3162$be;$88 = $102;$89 = $103;$93 = $111; - } else { - break; - } - } - $118 = ($111>>>0)>(9); - if ($118) { - $$1158 = $$0157;$263 = $103;$265 = $102; - } else { - $$1165167 = 10;$$8 = $$3162$be;$293 = $102;$294 = $103; - label = 72; - } - } else { - $$1158 = $$0157;$263 = $292;$265 = $291; - } - } else { - $$1160169 = $$1160;$$1165168 = $$1165; - label = 46; - } - } - } while(0); - L63: do { - if ((label|0) == 46) { - $119 = (($$1165168) + -1)|0; - $120 = $119 & $$1165168; - $121 = ($120|0)==(0); - if ($121) { - $126 = ($$1165168*23)|0; - $127 = $126 >>> 5; - $128 = $127 & 7; - $129 = (17551 + ($128)|0); - $130 = HEAP8[$129>>0]|0; - $131 = $130 << 24 >> 24; - $132 = ((17295) + ($$1160169)|0); - $133 = HEAP8[$132>>0]|0; - $134 = $133&255; - $135 = ($134>>>0)<($$1165168>>>0); - if ($135) { - $$1155192 = 0;$138 = $134; - while(1) { - $136 = $$1155192 << $131; - $137 = $138 | $136; - $139 = HEAP32[$6>>2]|0; - $140 = HEAP32[$7>>2]|0; - $141 = ($139>>>0)<($140>>>0); - if ($141) { - $142 = ((($139)) + 1|0); - HEAP32[$6>>2] = $142; - $143 = HEAP8[$139>>0]|0; - $144 = $143&255; - $$4163$be = $144; - } else { - $145 = (___shgetc($0)|0); - $$4163$be = $145; - } - $146 = ((17295) + ($$4163$be)|0); - $147 = HEAP8[$146>>0]|0; - $148 = $147&255; - $149 = ($148>>>0)<($$1165168>>>0); - $150 = ($137>>>0)<(134217728); - $151 = $150 & $149; - if ($151) { - $$1155192 = $137;$138 = $148; - } else { - break; - } - } - $$4163$lcssa = $$4163$be;$155 = $147;$158 = 0;$160 = $137; - } else { - $$4163$lcssa = $$1160169;$155 = $133;$158 = 0;$160 = 0; - } - $152 = (_bitshift64Lshr(-1,-1,($131|0))|0); - $153 = tempRet0; - $154 = $155&255; - $156 = ($154>>>0)>=($$1165168>>>0); - $157 = ($158>>>0)>($153>>>0); - $159 = ($160>>>0)>($152>>>0); - $161 = ($158|0)==($153|0); - $162 = $161 & $159; - $163 = $157 | $162; - $or$cond187 = $156 | $163; - if ($or$cond187) { - $$1165167 = $$1165168;$$8 = $$4163$lcssa;$293 = $160;$294 = $158; - label = 72; - break; - } else { - $164 = $160;$165 = $158;$169 = $155; - } - while(1) { - $166 = (_bitshift64Shl(($164|0),($165|0),($131|0))|0); - $167 = tempRet0; - $168 = $169&255; - $170 = $168 | $166; - $171 = HEAP32[$6>>2]|0; - $172 = HEAP32[$7>>2]|0; - $173 = ($171>>>0)<($172>>>0); - if ($173) { - $174 = ((($171)) + 1|0); - HEAP32[$6>>2] = $174; - $175 = HEAP8[$171>>0]|0; - $176 = $175&255; - $$5$be = $176; - } else { - $177 = (___shgetc($0)|0); - $$5$be = $177; - } - $178 = ((17295) + ($$5$be)|0); - $179 = HEAP8[$178>>0]|0; - $180 = $179&255; - $181 = ($180>>>0)>=($$1165168>>>0); - $182 = ($167>>>0)>($153>>>0); - $183 = ($170>>>0)>($152>>>0); - $184 = ($167|0)==($153|0); - $185 = $184 & $183; - $186 = $182 | $185; - $or$cond = $181 | $186; - if ($or$cond) { - $$1165167 = $$1165168;$$8 = $$5$be;$293 = $170;$294 = $167; - label = 72; - break L63; - } else { - $164 = $170;$165 = $167;$169 = $179; - } - } - } - $122 = ((17295) + ($$1160169)|0); - $123 = HEAP8[$122>>0]|0; - $124 = $123&255; - $125 = ($124>>>0)<($$1165168>>>0); - if ($125) { - $$2156210 = 0;$189 = $124; - while(1) { - $187 = Math_imul($$2156210, $$1165168)|0; - $188 = (($189) + ($187))|0; - $190 = HEAP32[$6>>2]|0; - $191 = HEAP32[$7>>2]|0; - $192 = ($190>>>0)<($191>>>0); - if ($192) { - $193 = ((($190)) + 1|0); - HEAP32[$6>>2] = $193; - $194 = HEAP8[$190>>0]|0; - $195 = $194&255; - $$6$be = $195; - } else { - $196 = (___shgetc($0)|0); - $$6$be = $196; - } - $197 = ((17295) + ($$6$be)|0); - $198 = HEAP8[$197>>0]|0; - $199 = $198&255; - $200 = ($199>>>0)<($$1165168>>>0); - $201 = ($188>>>0)<(119304647); - $202 = $201 & $200; - if ($202) { - $$2156210 = $188;$189 = $199; - } else { - break; - } - } - $$6$lcssa = $$6$be;$204 = $198;$295 = $188;$296 = 0; - } else { - $$6$lcssa = $$1160169;$204 = $123;$295 = 0;$296 = 0; - } - $203 = $204&255; - $205 = ($203>>>0)<($$1165168>>>0); - if ($205) { - $206 = (___udivdi3(-1,-1,($$1165168|0),0)|0); - $207 = tempRet0; - $$7198 = $$6$lcssa;$209 = $296;$211 = $295;$218 = $204; - while(1) { - $208 = ($209>>>0)>($207>>>0); - $210 = ($211>>>0)>($206>>>0); - $212 = ($209|0)==($207|0); - $213 = $212 & $210; - $214 = $208 | $213; - if ($214) { - $$1165167 = $$1165168;$$8 = $$7198;$293 = $211;$294 = $209; - label = 72; - break L63; - } - $215 = (___muldi3(($211|0),($209|0),($$1165168|0),0)|0); - $216 = tempRet0; - $217 = $218&255; - $219 = $217 ^ -1; - $220 = ($216>>>0)>(4294967295); - $221 = ($215>>>0)>($219>>>0); - $222 = ($216|0)==(-1); - $223 = $222 & $221; - $224 = $220 | $223; - if ($224) { - $$1165167 = $$1165168;$$8 = $$7198;$293 = $211;$294 = $209; - label = 72; - break L63; - } - $225 = (_i64Add(($217|0),0,($215|0),($216|0))|0); - $226 = tempRet0; - $227 = HEAP32[$6>>2]|0; - $228 = HEAP32[$7>>2]|0; - $229 = ($227>>>0)<($228>>>0); - if ($229) { - $230 = ((($227)) + 1|0); - HEAP32[$6>>2] = $230; - $231 = HEAP8[$227>>0]|0; - $232 = $231&255; - $$7$be = $232; - } else { - $233 = (___shgetc($0)|0); - $$7$be = $233; - } - $234 = ((17295) + ($$7$be)|0); - $235 = HEAP8[$234>>0]|0; - $236 = $235&255; - $237 = ($236>>>0)<($$1165168>>>0); - if ($237) { - $$7198 = $$7$be;$209 = $226;$211 = $225;$218 = $235; - } else { - $$1165167 = $$1165168;$$8 = $$7$be;$293 = $225;$294 = $226; - label = 72; - break; - } - } - } else { - $$1165167 = $$1165168;$$8 = $$6$lcssa;$293 = $295;$294 = $296; - label = 72; - } - } - } while(0); - if ((label|0) == 72) { - $238 = ((17295) + ($$8)|0); - $239 = HEAP8[$238>>0]|0; - $240 = $239&255; - $241 = ($240>>>0)<($$1165167>>>0); - if ($241) { - while(1) { - $242 = HEAP32[$6>>2]|0; - $243 = HEAP32[$7>>2]|0; - $244 = ($242>>>0)<($243>>>0); - if ($244) { - $245 = ((($242)) + 1|0); - HEAP32[$6>>2] = $245; - $246 = HEAP8[$242>>0]|0; - $247 = $246&255; - $$9$be = $247; - } else { - $248 = (___shgetc($0)|0); - $$9$be = $248; - } - $249 = ((17295) + ($$9$be)|0); - $250 = HEAP8[$249>>0]|0; - $251 = $250&255; - $252 = ($251>>>0)<($$1165167>>>0); - if (!($252)) { - break; - } - } - $253 = (___errno_location()|0); - HEAP32[$253>>2] = 34; - $254 = $3 & 1; - $255 = ($254|0)==(0); - $256 = (0)==(0); - $257 = $255 & $256; - $$0157$ = $257 ? $$0157 : 0; - $$1158 = $$0157$;$263 = $4;$265 = $3; - } else { - $$1158 = $$0157;$263 = $294;$265 = $293; - } - } - $258 = HEAP32[$7>>2]|0; - $259 = ($258|0)==(0|0); - if (!($259)) { - $260 = HEAP32[$6>>2]|0; - $261 = ((($260)) + -1|0); - HEAP32[$6>>2] = $261; - } - $262 = ($263>>>0)<($4>>>0); - $264 = ($265>>>0)<($3>>>0); - $266 = ($263|0)==($4|0); - $267 = $266 & $264; - $268 = $262 | $267; - if (!($268)) { - $269 = $3 & 1; - $270 = ($269|0)!=(0); - $271 = (0)!=(0); - $272 = $270 | $271; - $273 = ($$1158|0)!=(0); - $or$cond12 = $272 | $273; - if (!($or$cond12)) { - $274 = (___errno_location()|0); - HEAP32[$274>>2] = 34; - $275 = (_i64Add(($3|0),($4|0),-1,-1)|0); - $276 = tempRet0; - $289 = $276;$290 = $275; - break; - } - $277 = ($263>>>0)>($4>>>0); - $278 = ($265>>>0)>($3>>>0); - $279 = ($263|0)==($4|0); - $280 = $279 & $278; - $281 = $277 | $280; - if ($281) { - $282 = (___errno_location()|0); - HEAP32[$282>>2] = 34; - $289 = $4;$290 = $3; - break; - } - } - $283 = ($$1158|0)<(0); - $284 = $283 << 31 >> 31; - $285 = $265 ^ $$1158; - $286 = $263 ^ $284; - $287 = (_i64Subtract(($285|0),($286|0),($$1158|0),($284|0))|0); - $288 = tempRet0; - $289 = $288;$290 = $287; - } - } while(0); - tempRet0 = ($289); - return ($290|0); -} -function ___shgetc($0) { - $0 = $0|0; - var $$0 = 0, $$phi$trans$insert = 0, $$phi$trans$insert28$phi$trans$insert = 0, $$pre = 0, $$pre$phi34Z2D = 0, $$pre29$pre = 0, $$pre35 = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; - var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; - var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 104|0); - $2 = HEAP32[$1>>2]|0; - $3 = ($2|0)==(0); - if ($3) { - label = 3; - } else { - $4 = ((($0)) + 108|0); - $5 = HEAP32[$4>>2]|0; - $6 = ($5|0)<($2|0); - if ($6) { - label = 3; - } else { - label = 4; - } - } - if ((label|0) == 3) { - $7 = (___uflow($0)|0); - $8 = ($7|0)<(0); - if ($8) { - label = 4; - } else { - $10 = HEAP32[$1>>2]|0; - $11 = ($10|0)==(0); - $$phi$trans$insert = ((($0)) + 8|0); - if ($11) { - $$pre = HEAP32[$$phi$trans$insert>>2]|0; - $$phi$trans$insert28$phi$trans$insert = ((($0)) + 4|0); - $$pre29$pre = HEAP32[$$phi$trans$insert28$phi$trans$insert>>2]|0; - $$pre35 = ((($0)) + 108|0); - $$pre$phi34Z2D = $$pre35;$$sink = $$pre;$26 = $$pre;$29 = $$pre29$pre; - } else { - $12 = HEAP32[$$phi$trans$insert>>2]|0; - $13 = ((($0)) + 4|0); - $14 = HEAP32[$13>>2]|0; - $15 = $14; - $16 = (($12) - ($15))|0; - $17 = ((($0)) + 108|0); - $18 = HEAP32[$17>>2]|0; - $19 = (($10) - ($18))|0; - $20 = ($16|0)<($19|0); - $21 = $12; - if ($20) { - $$pre$phi34Z2D = $17;$$sink = $21;$26 = $21;$29 = $14; - } else { - $22 = (($19) + -1)|0; - $23 = (($14) + ($22)|0); - $$pre$phi34Z2D = $17;$$sink = $23;$26 = $21;$29 = $14; - } - } - $24 = ((($0)) + 100|0); - HEAP32[$24>>2] = $$sink; - $25 = ($26|0)==(0|0); - if (!($25)) { - $27 = $26; - $28 = $29; - $30 = HEAP32[$$pre$phi34Z2D>>2]|0; - $31 = (($27) + 1)|0; - $32 = (($31) - ($28))|0; - $33 = (($32) + ($30))|0; - HEAP32[$$pre$phi34Z2D>>2] = $33; - } - $34 = ((($29)) + -1|0); - $35 = HEAP8[$34>>0]|0; - $36 = $35&255; - $37 = ($36|0)==($7|0); - if ($37) { - $$0 = $7; - } else { - $38 = $7&255; - HEAP8[$34>>0] = $38; - $$0 = $7; - } - } - } - if ((label|0) == 4) { - $9 = ((($0)) + 100|0); - HEAP32[$9>>2] = 0; - $$0 = -1; - } - return ($$0|0); -} -function _isspace($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(32); - $2 = (($0) + -9)|0; - $3 = ($2>>>0)<(5); - $4 = $1 | $3; - $5 = $4&1; - return ($5|0); -} -function ___uflow($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - $2 = (___toread($0)|0); - $3 = ($2|0)==(0); - if ($3) { - $4 = ((($0)) + 32|0); - $5 = HEAP32[$4>>2]|0; - $6 = (FUNCTION_TABLE_iiii[$5 & 15]($0,$1,1)|0); - $7 = ($6|0)==(1); - if ($7) { - $8 = HEAP8[$1>>0]|0; - $9 = $8&255; - $$0 = $9; - } else { - $$0 = -1; - } - } else { - $$0 = -1; - } - STACKTOP = sp;return ($$0|0); -} -function ___toread($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $sext = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 74|0); - $2 = HEAP8[$1>>0]|0; - $3 = $2 << 24 >> 24; - $4 = (($3) + 255)|0; - $5 = $4 | $3; - $6 = $5&255; - HEAP8[$1>>0] = $6; - $7 = ((($0)) + 20|0); - $8 = HEAP32[$7>>2]|0; - $9 = ((($0)) + 28|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($8>>>0)>($10>>>0); - if ($11) { - $12 = ((($0)) + 36|0); - $13 = HEAP32[$12>>2]|0; - (FUNCTION_TABLE_iiii[$13 & 15]($0,0,0)|0); - } - $14 = ((($0)) + 16|0); - HEAP32[$14>>2] = 0; - HEAP32[$9>>2] = 0; - HEAP32[$7>>2] = 0; - $15 = HEAP32[$0>>2]|0; - $16 = $15 & 4; - $17 = ($16|0)==(0); - if ($17) { - $19 = ((($0)) + 44|0); - $20 = HEAP32[$19>>2]|0; - $21 = ((($0)) + 48|0); - $22 = HEAP32[$21>>2]|0; - $23 = (($20) + ($22)|0); - $24 = ((($0)) + 8|0); - HEAP32[$24>>2] = $23; - $25 = ((($0)) + 4|0); - HEAP32[$25>>2] = $23; - $26 = $15 << 27; - $sext = $26 >> 31; - $$0 = $sext; - } else { - $18 = $15 | 32; - HEAP32[$0>>2] = $18; - $$0 = -1; - } - return ($$0|0); -} -function _strtol($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (_strtox_768($0,$1,$2,-2147483648,0)|0); - $4 = tempRet0; - return ($3|0); -} -function _copysign($0,$1) { - $0 = +$0; - $1 = +$1; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; - $3 = HEAP32[tempDoublePtr+4>>2]|0; - HEAPF64[tempDoublePtr>>3] = $1;$4 = HEAP32[tempDoublePtr>>2]|0; - $5 = HEAP32[tempDoublePtr+4>>2]|0; - $6 = $3 & 2147483647; - $7 = $5 & -2147483648; - $8 = $7 | $6; - HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $8;$9 = +HEAPF64[tempDoublePtr>>3]; - return (+$9); -} -function _strcmp($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$011 = 0, $$0710 = 0, $$lcssa = 0, $$lcssa8 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $2 = HEAP8[$0>>0]|0; - $3 = HEAP8[$1>>0]|0; - $4 = ($2<<24>>24)!=($3<<24>>24); - $5 = ($2<<24>>24)==(0); - $or$cond9 = $5 | $4; - if ($or$cond9) { - $$lcssa = $3;$$lcssa8 = $2; - } else { - $$011 = $1;$$0710 = $0; - while(1) { - $6 = ((($$0710)) + 1|0); - $7 = ((($$011)) + 1|0); - $8 = HEAP8[$6>>0]|0; - $9 = HEAP8[$7>>0]|0; - $10 = ($8<<24>>24)!=($9<<24>>24); - $11 = ($8<<24>>24)==(0); - $or$cond = $11 | $10; - if ($or$cond) { - $$lcssa = $9;$$lcssa8 = $8; - break; - } else { - $$011 = $7;$$0710 = $6; - } - } - } - $12 = $$lcssa8&255; - $13 = $$lcssa&255; - $14 = (($12) - ($13))|0; - return ($14|0); -} -function _memcmp($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$01318 = 0, $$01417 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $14 = 0; - } else { - $$01318 = $0;$$01417 = $2;$$019 = $1; - while(1) { - $4 = HEAP8[$$01318>>0]|0; - $5 = HEAP8[$$019>>0]|0; - $6 = ($4<<24>>24)==($5<<24>>24); - if (!($6)) { - break; - } - $7 = (($$01417) + -1)|0; - $8 = ((($$01318)) + 1|0); - $9 = ((($$019)) + 1|0); - $10 = ($7|0)==(0); - if ($10) { - $14 = 0; - break L1; - } else { - $$01318 = $8;$$01417 = $7;$$019 = $9; - } - } - $11 = $4&255; - $12 = $5&255; - $13 = (($11) - ($12))|0; - $14 = $13; - } - } while(0); - return ($14|0); -} -function _strncmp($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$01824 = 0, $$01926 = 0, $$01926$in = 0, $$020 = 0, $$025 = 0, $$lcssa = 0, $$lcssa22 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond21 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($2|0)==(0); - if ($3) { - $$020 = 0; - } else { - $4 = HEAP8[$0>>0]|0; - $5 = $4&255; - $6 = ($4<<24>>24)==(0); - $7 = HEAP8[$1>>0]|0; - $8 = $7&255; - L3: do { - if ($6) { - $$lcssa = $8;$$lcssa22 = $5; - } else { - $$01824 = $0;$$01926$in = $2;$$025 = $1;$10 = $7;$13 = $4;$22 = $8;$23 = $5; - while(1) { - $$01926 = (($$01926$in) + -1)|0; - $9 = ($10<<24>>24)!=(0); - $11 = ($$01926|0)!=(0); - $or$cond = $11 & $9; - $12 = ($13<<24>>24)==($10<<24>>24); - $or$cond21 = $12 & $or$cond; - if (!($or$cond21)) { - $$lcssa = $22;$$lcssa22 = $23; - break L3; - } - $14 = ((($$01824)) + 1|0); - $15 = ((($$025)) + 1|0); - $16 = HEAP8[$14>>0]|0; - $17 = $16&255; - $18 = ($16<<24>>24)==(0); - $19 = HEAP8[$15>>0]|0; - $20 = $19&255; - if ($18) { - $$lcssa = $20;$$lcssa22 = $17; - break; - } else { - $$01824 = $14;$$01926$in = $$01926;$$025 = $15;$10 = $19;$13 = $16;$22 = $20;$23 = $17; - } - } - } - } while(0); - $21 = (($$lcssa22) - ($$lcssa))|0; - $$020 = $21; - } - return ($$020|0); -} -function _vsprintf($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (_vsnprintf($0,2147483647,$1,$2)|0); - return ($3|0); -} -function _vsnprintf($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$$015 = 0, $$0 = 0, $$014 = 0, $$015 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $4 = sp + 124|0; - $5 = sp; - dest=$5; src=4208; stop=dest+124|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); - $6 = (($1) + -1)|0; - $7 = ($6>>>0)>(2147483646); - if ($7) { - $8 = ($1|0)==(0); - if ($8) { - $$014 = $4;$$015 = 1; - label = 4; - } else { - $9 = (___errno_location()|0); - HEAP32[$9>>2] = 75; - $$0 = -1; - } - } else { - $$014 = $0;$$015 = $1; - label = 4; - } - if ((label|0) == 4) { - $10 = $$014; - $11 = (-2 - ($10))|0; - $12 = ($$015>>>0)>($11>>>0); - $$$015 = $12 ? $11 : $$015; - $13 = ((($5)) + 48|0); - HEAP32[$13>>2] = $$$015; - $14 = ((($5)) + 20|0); - HEAP32[$14>>2] = $$014; - $15 = ((($5)) + 44|0); - HEAP32[$15>>2] = $$014; - $16 = (($$014) + ($$$015)|0); - $17 = ((($5)) + 16|0); - HEAP32[$17>>2] = $16; - $18 = ((($5)) + 28|0); - HEAP32[$18>>2] = $16; - $19 = (_vfprintf($5,$2,$3)|0); - $20 = ($$$015|0)==(0); - if ($20) { - $$0 = $19; - } else { - $21 = HEAP32[$14>>2]|0; - $22 = HEAP32[$17>>2]|0; - $23 = ($21|0)==($22|0); - $24 = $23 << 31 >> 31; - $25 = (($21) + ($24)|0); - HEAP8[$25>>0] = 0; - $$0 = $19; - } - } - STACKTOP = sp;return ($$0|0); -} -function _vfprintf($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $$0 = 0, $$1 = 0, $$1$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); - $3 = sp + 120|0; - $4 = sp + 80|0; - $5 = sp; - $6 = sp + 136|0; - dest=$4; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - $vacopy_currentptr = HEAP32[$2>>2]|0; - HEAP32[$3>>2] = $vacopy_currentptr; - $7 = (_printf_core(0,$1,$3,$5,$4)|0); - $8 = ($7|0)<(0); - if ($8) { - $$0 = -1; - } else { - $9 = ((($0)) + 76|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)>(-1); - if ($11) { - $12 = (___lockfile($0)|0); - $40 = $12; - } else { - $40 = 0; - } - $13 = HEAP32[$0>>2]|0; - $14 = $13 & 32; - $15 = ((($0)) + 74|0); - $16 = HEAP8[$15>>0]|0; - $17 = ($16<<24>>24)<(1); - if ($17) { - $18 = $13 & -33; - HEAP32[$0>>2] = $18; - } - $19 = ((($0)) + 48|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($20|0)==(0); - if ($21) { - $23 = ((($0)) + 44|0); - $24 = HEAP32[$23>>2]|0; - HEAP32[$23>>2] = $6; - $25 = ((($0)) + 28|0); - HEAP32[$25>>2] = $6; - $26 = ((($0)) + 20|0); - HEAP32[$26>>2] = $6; - HEAP32[$19>>2] = 80; - $27 = ((($6)) + 80|0); - $28 = ((($0)) + 16|0); - HEAP32[$28>>2] = $27; - $29 = (_printf_core($0,$1,$3,$5,$4)|0); - $30 = ($24|0)==(0|0); - if ($30) { - $$1 = $29; - } else { - $31 = ((($0)) + 36|0); - $32 = HEAP32[$31>>2]|0; - (FUNCTION_TABLE_iiii[$32 & 15]($0,0,0)|0); - $33 = HEAP32[$26>>2]|0; - $34 = ($33|0)==(0|0); - $$ = $34 ? -1 : $29; - HEAP32[$23>>2] = $24; - HEAP32[$19>>2] = 0; - HEAP32[$28>>2] = 0; - HEAP32[$25>>2] = 0; - HEAP32[$26>>2] = 0; - $$1 = $$; - } - } else { - $22 = (_printf_core($0,$1,$3,$5,$4)|0); - $$1 = $22; - } - $35 = HEAP32[$0>>2]|0; - $36 = $35 & 32; - $37 = ($36|0)==(0); - $$1$ = $37 ? $$1 : -1; - $38 = $35 | $14; - HEAP32[$0>>2] = $38; - $39 = ($40|0)==(0); - if (!($39)) { - ___unlockfile($0); - } - $$0 = $$1$; - } - STACKTOP = sp;return ($$0|0); -} -function _printf_core($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$ = 0, $$$ = 0, $$$0259 = 0, $$$0262 = 0, $$$0269 = 0, $$$4266 = 0, $$$5 = 0, $$0 = 0, $$0228 = 0, $$0228$ = 0, $$0229322 = 0, $$0232 = 0, $$0235 = 0, $$0237 = 0, $$0240$lcssa = 0, $$0240$lcssa357 = 0, $$0240321 = 0, $$0243 = 0, $$0247 = 0, $$0249$lcssa = 0; - var $$0249306 = 0, $$0252 = 0, $$0253 = 0, $$0254 = 0, $$0254$$0254$ = 0, $$0259 = 0, $$0262$lcssa = 0, $$0262311 = 0, $$0269 = 0, $$0269$phi = 0, $$1 = 0, $$1230333 = 0, $$1233 = 0, $$1236 = 0, $$1238 = 0, $$1241332 = 0, $$1244320 = 0, $$1248 = 0, $$1250 = 0, $$1255 = 0; - var $$1260 = 0, $$1263 = 0, $$1263$ = 0, $$1270 = 0, $$2 = 0, $$2234 = 0, $$2239 = 0, $$2242305 = 0, $$2245 = 0, $$2251 = 0, $$2256 = 0, $$2256$ = 0, $$2256$$$2256 = 0, $$2261 = 0, $$2271 = 0, $$284$ = 0, $$289 = 0, $$290 = 0, $$3257 = 0, $$3265 = 0; - var $$3272 = 0, $$3303 = 0, $$377 = 0, $$4258355 = 0, $$4266 = 0, $$5 = 0, $$6268 = 0, $$lcssa295 = 0, $$pre = 0, $$pre346 = 0, $$pre347 = 0, $$pre347$pre = 0, $$pre349 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; - var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; - var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; - var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; - var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; - var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0; - var $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0; - var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0; - var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0; - var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0; - var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0; - var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0; - var $306 = 0.0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0; - var $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; - var $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0, $arglist_next3 = 0, $expanded = 0, $expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0, $expanded8 = 0, $isdigit = 0, $isdigit275 = 0, $isdigit277 = 0, $isdigittmp = 0, $isdigittmp$ = 0, $isdigittmp274 = 0; - var $isdigittmp276 = 0, $narrow = 0, $or$cond = 0, $or$cond281 = 0, $or$cond283 = 0, $or$cond286 = 0, $storemerge = 0, $storemerge273310 = 0, $storemerge278 = 0, $trunc = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $5 = sp + 16|0; - $6 = sp; - $7 = sp + 24|0; - $8 = sp + 8|0; - $9 = sp + 20|0; - HEAP32[$5>>2] = $1; - $10 = ($0|0)!=(0|0); - $11 = ((($7)) + 40|0); - $12 = $11; - $13 = ((($7)) + 39|0); - $14 = ((($8)) + 4|0); - $$0243 = 0;$$0247 = 0;$$0269 = 0;$21 = $1; - L1: while(1) { - $15 = ($$0247|0)>(-1); - do { - if ($15) { - $16 = (2147483647 - ($$0247))|0; - $17 = ($$0243|0)>($16|0); - if ($17) { - $18 = (___errno_location()|0); - HEAP32[$18>>2] = 75; - $$1248 = -1; - break; - } else { - $19 = (($$0243) + ($$0247))|0; - $$1248 = $19; - break; - } - } else { - $$1248 = $$0247; - } - } while(0); - $20 = HEAP8[$21>>0]|0; - $22 = ($20<<24>>24)==(0); - if ($22) { - label = 87; - break; - } else { - $23 = $20;$25 = $21; - } - L9: while(1) { - switch ($23<<24>>24) { - case 37: { - $$0249306 = $25;$27 = $25; - label = 9; - break L9; - break; - } - case 0: { - $$0249$lcssa = $25;$39 = $25; - break L9; - break; - } - default: { - } - } - $24 = ((($25)) + 1|0); - HEAP32[$5>>2] = $24; - $$pre = HEAP8[$24>>0]|0; - $23 = $$pre;$25 = $24; - } - L12: do { - if ((label|0) == 9) { - while(1) { - label = 0; - $26 = ((($27)) + 1|0); - $28 = HEAP8[$26>>0]|0; - $29 = ($28<<24>>24)==(37); - if (!($29)) { - $$0249$lcssa = $$0249306;$39 = $27; - break L12; - } - $30 = ((($$0249306)) + 1|0); - $31 = ((($27)) + 2|0); - HEAP32[$5>>2] = $31; - $32 = HEAP8[$31>>0]|0; - $33 = ($32<<24>>24)==(37); - if ($33) { - $$0249306 = $30;$27 = $31; - label = 9; - } else { - $$0249$lcssa = $30;$39 = $31; - break; - } - } - } - } while(0); - $34 = $$0249$lcssa; - $35 = $21; - $36 = (($34) - ($35))|0; - if ($10) { - _out($0,$21,$36); - } - $37 = ($36|0)==(0); - if (!($37)) { - $$0269$phi = $$0269;$$0243 = $36;$$0247 = $$1248;$21 = $39;$$0269 = $$0269$phi; - continue; - } - $38 = ((($39)) + 1|0); - $40 = HEAP8[$38>>0]|0; - $41 = $40 << 24 >> 24; - $isdigittmp = (($41) + -48)|0; - $isdigit = ($isdigittmp>>>0)<(10); - if ($isdigit) { - $42 = ((($39)) + 2|0); - $43 = HEAP8[$42>>0]|0; - $44 = ($43<<24>>24)==(36); - $45 = ((($39)) + 3|0); - $$377 = $44 ? $45 : $38; - $$$0269 = $44 ? 1 : $$0269; - $isdigittmp$ = $44 ? $isdigittmp : -1; - $$0253 = $isdigittmp$;$$1270 = $$$0269;$storemerge = $$377; - } else { - $$0253 = -1;$$1270 = $$0269;$storemerge = $38; - } - HEAP32[$5>>2] = $storemerge; - $46 = HEAP8[$storemerge>>0]|0; - $47 = $46 << 24 >> 24; - $48 = (($47) + -32)|0; - $49 = ($48>>>0)<(32); - L24: do { - if ($49) { - $$0262311 = 0;$329 = $46;$51 = $48;$storemerge273310 = $storemerge; - while(1) { - $50 = 1 << $51; - $52 = $50 & 75913; - $53 = ($52|0)==(0); - if ($53) { - $$0262$lcssa = $$0262311;$$lcssa295 = $329;$62 = $storemerge273310; - break L24; - } - $54 = $50 | $$0262311; - $55 = ((($storemerge273310)) + 1|0); - HEAP32[$5>>2] = $55; - $56 = HEAP8[$55>>0]|0; - $57 = $56 << 24 >> 24; - $58 = (($57) + -32)|0; - $59 = ($58>>>0)<(32); - if ($59) { - $$0262311 = $54;$329 = $56;$51 = $58;$storemerge273310 = $55; - } else { - $$0262$lcssa = $54;$$lcssa295 = $56;$62 = $55; - break; - } - } - } else { - $$0262$lcssa = 0;$$lcssa295 = $46;$62 = $storemerge; - } - } while(0); - $60 = ($$lcssa295<<24>>24)==(42); - if ($60) { - $61 = ((($62)) + 1|0); - $63 = HEAP8[$61>>0]|0; - $64 = $63 << 24 >> 24; - $isdigittmp276 = (($64) + -48)|0; - $isdigit277 = ($isdigittmp276>>>0)<(10); - if ($isdigit277) { - $65 = ((($62)) + 2|0); - $66 = HEAP8[$65>>0]|0; - $67 = ($66<<24>>24)==(36); - if ($67) { - $68 = (($4) + ($isdigittmp276<<2)|0); - HEAP32[$68>>2] = 10; - $69 = HEAP8[$61>>0]|0; - $70 = $69 << 24 >> 24; - $71 = (($70) + -48)|0; - $72 = (($3) + ($71<<3)|0); - $73 = $72; - $74 = $73; - $75 = HEAP32[$74>>2]|0; - $76 = (($73) + 4)|0; - $77 = $76; - $78 = HEAP32[$77>>2]|0; - $79 = ((($62)) + 3|0); - $$0259 = $75;$$2271 = 1;$storemerge278 = $79; - } else { - label = 23; - } - } else { - label = 23; - } - if ((label|0) == 23) { - label = 0; - $80 = ($$1270|0)==(0); - if (!($80)) { - $$0 = -1; - break; - } - if ($10) { - $arglist_current = HEAP32[$2>>2]|0; - $81 = $arglist_current; - $82 = ((0) + 4|0); - $expanded4 = $82; - $expanded = (($expanded4) - 1)|0; - $83 = (($81) + ($expanded))|0; - $84 = ((0) + 4|0); - $expanded8 = $84; - $expanded7 = (($expanded8) - 1)|0; - $expanded6 = $expanded7 ^ -1; - $85 = $83 & $expanded6; - $86 = $85; - $87 = HEAP32[$86>>2]|0; - $arglist_next = ((($86)) + 4|0); - HEAP32[$2>>2] = $arglist_next; - $$0259 = $87;$$2271 = 0;$storemerge278 = $61; - } else { - $$0259 = 0;$$2271 = 0;$storemerge278 = $61; - } - } - HEAP32[$5>>2] = $storemerge278; - $88 = ($$0259|0)<(0); - $89 = $$0262$lcssa | 8192; - $90 = (0 - ($$0259))|0; - $$$0262 = $88 ? $89 : $$0262$lcssa; - $$$0259 = $88 ? $90 : $$0259; - $$1260 = $$$0259;$$1263 = $$$0262;$$3272 = $$2271;$94 = $storemerge278; - } else { - $91 = (_getint($5)|0); - $92 = ($91|0)<(0); - if ($92) { - $$0 = -1; - break; - } - $$pre346 = HEAP32[$5>>2]|0; - $$1260 = $91;$$1263 = $$0262$lcssa;$$3272 = $$1270;$94 = $$pre346; - } - $93 = HEAP8[$94>>0]|0; - $95 = ($93<<24>>24)==(46); - do { - if ($95) { - $96 = ((($94)) + 1|0); - $97 = HEAP8[$96>>0]|0; - $98 = ($97<<24>>24)==(42); - if (!($98)) { - $125 = ((($94)) + 1|0); - HEAP32[$5>>2] = $125; - $126 = (_getint($5)|0); - $$pre347$pre = HEAP32[$5>>2]|0; - $$0254 = $126;$$pre347 = $$pre347$pre; - break; - } - $99 = ((($94)) + 2|0); - $100 = HEAP8[$99>>0]|0; - $101 = $100 << 24 >> 24; - $isdigittmp274 = (($101) + -48)|0; - $isdigit275 = ($isdigittmp274>>>0)<(10); - if ($isdigit275) { - $102 = ((($94)) + 3|0); - $103 = HEAP8[$102>>0]|0; - $104 = ($103<<24>>24)==(36); - if ($104) { - $105 = (($4) + ($isdigittmp274<<2)|0); - HEAP32[$105>>2] = 10; - $106 = HEAP8[$99>>0]|0; - $107 = $106 << 24 >> 24; - $108 = (($107) + -48)|0; - $109 = (($3) + ($108<<3)|0); - $110 = $109; - $111 = $110; - $112 = HEAP32[$111>>2]|0; - $113 = (($110) + 4)|0; - $114 = $113; - $115 = HEAP32[$114>>2]|0; - $116 = ((($94)) + 4|0); - HEAP32[$5>>2] = $116; - $$0254 = $112;$$pre347 = $116; - break; - } - } - $117 = ($$3272|0)==(0); - if (!($117)) { - $$0 = -1; - break L1; - } - if ($10) { - $arglist_current2 = HEAP32[$2>>2]|0; - $118 = $arglist_current2; - $119 = ((0) + 4|0); - $expanded11 = $119; - $expanded10 = (($expanded11) - 1)|0; - $120 = (($118) + ($expanded10))|0; - $121 = ((0) + 4|0); - $expanded15 = $121; - $expanded14 = (($expanded15) - 1)|0; - $expanded13 = $expanded14 ^ -1; - $122 = $120 & $expanded13; - $123 = $122; - $124 = HEAP32[$123>>2]|0; - $arglist_next3 = ((($123)) + 4|0); - HEAP32[$2>>2] = $arglist_next3; - $330 = $124; - } else { - $330 = 0; - } - HEAP32[$5>>2] = $99; - $$0254 = $330;$$pre347 = $99; - } else { - $$0254 = -1;$$pre347 = $94; - } - } while(0); - $$0252 = 0;$128 = $$pre347; - while(1) { - $127 = HEAP8[$128>>0]|0; - $129 = $127 << 24 >> 24; - $130 = (($129) + -65)|0; - $131 = ($130>>>0)>(57); - if ($131) { - $$0 = -1; - break L1; - } - $132 = ((($128)) + 1|0); - HEAP32[$5>>2] = $132; - $133 = HEAP8[$128>>0]|0; - $134 = $133 << 24 >> 24; - $135 = (($134) + -65)|0; - $136 = ((17560 + (($$0252*58)|0)|0) + ($135)|0); - $137 = HEAP8[$136>>0]|0; - $138 = $137&255; - $139 = (($138) + -1)|0; - $140 = ($139>>>0)<(8); - if ($140) { - $$0252 = $138;$128 = $132; - } else { - break; - } - } - $141 = ($137<<24>>24)==(0); - if ($141) { - $$0 = -1; - break; - } - $142 = ($137<<24>>24)==(19); - $143 = ($$0253|0)>(-1); - do { - if ($142) { - if ($143) { - $$0 = -1; - break L1; - } else { - label = 49; - } - } else { - if ($143) { - $144 = (($4) + ($$0253<<2)|0); - HEAP32[$144>>2] = $138; - $145 = (($3) + ($$0253<<3)|0); - $146 = $145; - $147 = $146; - $148 = HEAP32[$147>>2]|0; - $149 = (($146) + 4)|0; - $150 = $149; - $151 = HEAP32[$150>>2]|0; - $152 = $6; - $153 = $152; - HEAP32[$153>>2] = $148; - $154 = (($152) + 4)|0; - $155 = $154; - HEAP32[$155>>2] = $151; - label = 49; - break; - } - if (!($10)) { - $$0 = 0; - break L1; - } - _pop_arg($6,$138,$2); - } - } while(0); - if ((label|0) == 49) { - label = 0; - if (!($10)) { - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue; - } - } - $156 = HEAP8[$128>>0]|0; - $157 = $156 << 24 >> 24; - $158 = ($$0252|0)!=(0); - $159 = $157 & 15; - $160 = ($159|0)==(3); - $or$cond281 = $158 & $160; - $161 = $157 & -33; - $$0235 = $or$cond281 ? $161 : $157; - $162 = $$1263 & 8192; - $163 = ($162|0)==(0); - $164 = $$1263 & -65537; - $$1263$ = $163 ? $$1263 : $164; - L71: do { - switch ($$0235|0) { - case 110: { - $trunc = $$0252&255; - switch ($trunc<<24>>24) { - case 0: { - $171 = HEAP32[$6>>2]|0; - HEAP32[$171>>2] = $$1248; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 1: { - $172 = HEAP32[$6>>2]|0; - HEAP32[$172>>2] = $$1248; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 2: { - $173 = ($$1248|0)<(0); - $174 = $173 << 31 >> 31; - $175 = HEAP32[$6>>2]|0; - $176 = $175; - $177 = $176; - HEAP32[$177>>2] = $$1248; - $178 = (($176) + 4)|0; - $179 = $178; - HEAP32[$179>>2] = $174; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 3: { - $180 = $$1248&65535; - $181 = HEAP32[$6>>2]|0; - HEAP16[$181>>1] = $180; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 4: { - $182 = $$1248&255; - $183 = HEAP32[$6>>2]|0; - HEAP8[$183>>0] = $182; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 6: { - $184 = HEAP32[$6>>2]|0; - HEAP32[$184>>2] = $$1248; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - case 7: { - $185 = ($$1248|0)<(0); - $186 = $185 << 31 >> 31; - $187 = HEAP32[$6>>2]|0; - $188 = $187; - $189 = $188; - HEAP32[$189>>2] = $$1248; - $190 = (($188) + 4)|0; - $191 = $190; - HEAP32[$191>>2] = $186; - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - default: { - $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - } - } - break; - } - case 112: { - $192 = ($$0254>>>0)>(8); - $193 = $192 ? $$0254 : 8; - $194 = $$1263$ | 8; - $$1236 = 120;$$1255 = $193;$$3265 = $194; - label = 61; - break; - } - case 88: case 120: { - $$1236 = $$0235;$$1255 = $$0254;$$3265 = $$1263$; - label = 61; - break; - } - case 111: { - $210 = $6; - $211 = $210; - $212 = HEAP32[$211>>2]|0; - $213 = (($210) + 4)|0; - $214 = $213; - $215 = HEAP32[$214>>2]|0; - $216 = (_fmt_o($212,$215,$11)|0); - $217 = $$1263$ & 8; - $218 = ($217|0)==(0); - $219 = $216; - $220 = (($12) - ($219))|0; - $221 = ($$0254|0)>($220|0); - $222 = (($220) + 1)|0; - $223 = $218 | $221; - $$0254$$0254$ = $223 ? $$0254 : $222; - $$0228 = $216;$$1233 = 0;$$1238 = 18024;$$2256 = $$0254$$0254$;$$4266 = $$1263$;$248 = $212;$250 = $215; - label = 67; - break; - } - case 105: case 100: { - $224 = $6; - $225 = $224; - $226 = HEAP32[$225>>2]|0; - $227 = (($224) + 4)|0; - $228 = $227; - $229 = HEAP32[$228>>2]|0; - $230 = ($229|0)<(0); - if ($230) { - $231 = (_i64Subtract(0,0,($226|0),($229|0))|0); - $232 = tempRet0; - $233 = $6; - $234 = $233; - HEAP32[$234>>2] = $231; - $235 = (($233) + 4)|0; - $236 = $235; - HEAP32[$236>>2] = $232; - $$0232 = 1;$$0237 = 18024;$242 = $231;$243 = $232; - label = 66; - break L71; - } else { - $237 = $$1263$ & 2048; - $238 = ($237|0)==(0); - $239 = $$1263$ & 1; - $240 = ($239|0)==(0); - $$ = $240 ? 18024 : (18026); - $$$ = $238 ? $$ : (18025); - $241 = $$1263$ & 2049; - $narrow = ($241|0)!=(0); - $$284$ = $narrow&1; - $$0232 = $$284$;$$0237 = $$$;$242 = $226;$243 = $229; - label = 66; - break L71; - } - break; - } - case 117: { - $165 = $6; - $166 = $165; - $167 = HEAP32[$166>>2]|0; - $168 = (($165) + 4)|0; - $169 = $168; - $170 = HEAP32[$169>>2]|0; - $$0232 = 0;$$0237 = 18024;$242 = $167;$243 = $170; - label = 66; - break; - } - case 99: { - $259 = $6; - $260 = $259; - $261 = HEAP32[$260>>2]|0; - $262 = (($259) + 4)|0; - $263 = $262; - $264 = HEAP32[$263>>2]|0; - $265 = $261&255; - HEAP8[$13>>0] = $265; - $$2 = $13;$$2234 = 0;$$2239 = 18024;$$2251 = $11;$$5 = 1;$$6268 = $164; - break; - } - case 109: { - $266 = (___errno_location()|0); - $267 = HEAP32[$266>>2]|0; - $268 = (_strerror($267)|0); - $$1 = $268; - label = 71; - break; - } - case 115: { - $269 = HEAP32[$6>>2]|0; - $270 = ($269|0)!=(0|0); - $271 = $270 ? $269 : 18034; - $$1 = $271; - label = 71; - break; - } - case 67: { - $278 = $6; - $279 = $278; - $280 = HEAP32[$279>>2]|0; - $281 = (($278) + 4)|0; - $282 = $281; - $283 = HEAP32[$282>>2]|0; - HEAP32[$8>>2] = $280; - HEAP32[$14>>2] = 0; - HEAP32[$6>>2] = $8; - $$4258355 = -1;$331 = $8; - label = 75; - break; - } - case 83: { - $$pre349 = HEAP32[$6>>2]|0; - $284 = ($$0254|0)==(0); - if ($284) { - _pad_674($0,32,$$1260,0,$$1263$); - $$0240$lcssa357 = 0; - label = 84; - } else { - $$4258355 = $$0254;$331 = $$pre349; - label = 75; - } - break; - } - case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { - $306 = +HEAPF64[$6>>3]; - $307 = (_fmt_fp($0,$306,$$1260,$$0254,$$1263$,$$0235)|0); - $$0243 = $307;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue L1; - break; - } - default: { - $$2 = $21;$$2234 = 0;$$2239 = 18024;$$2251 = $11;$$5 = $$0254;$$6268 = $$1263$; - } - } - } while(0); - L95: do { - if ((label|0) == 61) { - label = 0; - $195 = $6; - $196 = $195; - $197 = HEAP32[$196>>2]|0; - $198 = (($195) + 4)|0; - $199 = $198; - $200 = HEAP32[$199>>2]|0; - $201 = $$1236 & 32; - $202 = (_fmt_x($197,$200,$11,$201)|0); - $203 = ($197|0)==(0); - $204 = ($200|0)==(0); - $205 = $203 & $204; - $206 = $$3265 & 8; - $207 = ($206|0)==(0); - $or$cond283 = $207 | $205; - $208 = $$1236 >> 4; - $209 = (18024 + ($208)|0); - $$289 = $or$cond283 ? 18024 : $209; - $$290 = $or$cond283 ? 0 : 2; - $$0228 = $202;$$1233 = $$290;$$1238 = $$289;$$2256 = $$1255;$$4266 = $$3265;$248 = $197;$250 = $200; - label = 67; - } - else if ((label|0) == 66) { - label = 0; - $244 = (_fmt_u($242,$243,$11)|0); - $$0228 = $244;$$1233 = $$0232;$$1238 = $$0237;$$2256 = $$0254;$$4266 = $$1263$;$248 = $242;$250 = $243; - label = 67; - } - else if ((label|0) == 71) { - label = 0; - $272 = (_memchr($$1,0,$$0254)|0); - $273 = ($272|0)==(0|0); - $274 = $272; - $275 = $$1; - $276 = (($274) - ($275))|0; - $277 = (($$1) + ($$0254)|0); - $$3257 = $273 ? $$0254 : $276; - $$1250 = $273 ? $277 : $272; - $$2 = $$1;$$2234 = 0;$$2239 = 18024;$$2251 = $$1250;$$5 = $$3257;$$6268 = $164; - } - else if ((label|0) == 75) { - label = 0; - $$0229322 = $331;$$0240321 = 0;$$1244320 = 0; - while(1) { - $285 = HEAP32[$$0229322>>2]|0; - $286 = ($285|0)==(0); - if ($286) { - $$0240$lcssa = $$0240321;$$2245 = $$1244320; - break; - } - $287 = (_wctomb($9,$285)|0); - $288 = ($287|0)<(0); - $289 = (($$4258355) - ($$0240321))|0; - $290 = ($287>>>0)>($289>>>0); - $or$cond286 = $288 | $290; - if ($or$cond286) { - $$0240$lcssa = $$0240321;$$2245 = $287; - break; - } - $291 = ((($$0229322)) + 4|0); - $292 = (($287) + ($$0240321))|0; - $293 = ($$4258355>>>0)>($292>>>0); - if ($293) { - $$0229322 = $291;$$0240321 = $292;$$1244320 = $287; - } else { - $$0240$lcssa = $292;$$2245 = $287; - break; - } - } - $294 = ($$2245|0)<(0); - if ($294) { - $$0 = -1; - break L1; - } - _pad_674($0,32,$$1260,$$0240$lcssa,$$1263$); - $295 = ($$0240$lcssa|0)==(0); - if ($295) { - $$0240$lcssa357 = 0; - label = 84; - } else { - $$1230333 = $331;$$1241332 = 0; - while(1) { - $296 = HEAP32[$$1230333>>2]|0; - $297 = ($296|0)==(0); - if ($297) { - $$0240$lcssa357 = $$0240$lcssa; - label = 84; - break L95; - } - $298 = (_wctomb($9,$296)|0); - $299 = (($298) + ($$1241332))|0; - $300 = ($299|0)>($$0240$lcssa|0); - if ($300) { - $$0240$lcssa357 = $$0240$lcssa; - label = 84; - break L95; - } - $301 = ((($$1230333)) + 4|0); - _out($0,$9,$298); - $302 = ($299>>>0)<($$0240$lcssa>>>0); - if ($302) { - $$1230333 = $301;$$1241332 = $299; - } else { - $$0240$lcssa357 = $$0240$lcssa; - label = 84; - break; - } - } - } - } - } while(0); - if ((label|0) == 67) { - label = 0; - $245 = ($$2256|0)>(-1); - $246 = $$4266 & -65537; - $$$4266 = $245 ? $246 : $$4266; - $247 = ($248|0)!=(0); - $249 = ($250|0)!=(0); - $251 = $247 | $249; - $252 = ($$2256|0)!=(0); - $or$cond = $252 | $251; - $253 = $$0228; - $254 = (($12) - ($253))|0; - $255 = $251 ^ 1; - $256 = $255&1; - $257 = (($256) + ($254))|0; - $258 = ($$2256|0)>($257|0); - $$2256$ = $258 ? $$2256 : $257; - $$2256$$$2256 = $or$cond ? $$2256$ : $$2256; - $$0228$ = $or$cond ? $$0228 : $11; - $$2 = $$0228$;$$2234 = $$1233;$$2239 = $$1238;$$2251 = $11;$$5 = $$2256$$$2256;$$6268 = $$$4266; - } - else if ((label|0) == 84) { - label = 0; - $303 = $$1263$ ^ 8192; - _pad_674($0,32,$$1260,$$0240$lcssa357,$303); - $304 = ($$1260|0)>($$0240$lcssa357|0); - $305 = $304 ? $$1260 : $$0240$lcssa357; - $$0243 = $305;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - continue; - } - $308 = $$2251; - $309 = $$2; - $310 = (($308) - ($309))|0; - $311 = ($$5|0)<($310|0); - $$$5 = $311 ? $310 : $$5; - $312 = (($$$5) + ($$2234))|0; - $313 = ($$1260|0)<($312|0); - $$2261 = $313 ? $312 : $$1260; - _pad_674($0,32,$$2261,$312,$$6268); - _out($0,$$2239,$$2234); - $314 = $$6268 ^ 65536; - _pad_674($0,48,$$2261,$312,$314); - _pad_674($0,48,$$$5,$310,0); - _out($0,$$2,$310); - $315 = $$6268 ^ 8192; - _pad_674($0,32,$$2261,$312,$315); - $$0243 = $$2261;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; - } - L114: do { - if ((label|0) == 87) { - $316 = ($0|0)==(0|0); - if ($316) { - $317 = ($$0269|0)==(0); - if ($317) { - $$0 = 0; - } else { - $$2242305 = 1; - while(1) { - $318 = (($4) + ($$2242305<<2)|0); - $319 = HEAP32[$318>>2]|0; - $320 = ($319|0)==(0); - if ($320) { - $$3303 = $$2242305; - break; - } - $321 = (($3) + ($$2242305<<3)|0); - _pop_arg($321,$319,$2); - $322 = (($$2242305) + 1)|0; - $323 = ($322|0)<(10); - if ($323) { - $$2242305 = $322; - } else { - $$0 = 1; - break L114; - } - } - while(1) { - $326 = (($4) + ($$3303<<2)|0); - $327 = HEAP32[$326>>2]|0; - $328 = ($327|0)==(0); - $325 = (($$3303) + 1)|0; - if (!($328)) { - $$0 = -1; - break L114; - } - $324 = ($325|0)<(10); - if ($324) { - $$3303 = $325; - } else { - $$0 = 1; - break; - } - } - } - } else { - $$0 = $$1248; - } - } - } while(0); - STACKTOP = sp;return ($$0|0); -} -function ___lockfile($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return 0; -} -function ___unlockfile($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function _out($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = HEAP32[$0>>2]|0; - $4 = $3 & 32; - $5 = ($4|0)==(0); - if ($5) { - (___fwritex($1,$2,$0)|0); - } - return; -} -function _getint($0) { - $0 = $0|0; - var $$0$lcssa = 0, $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $isdigit = 0, $isdigit5 = 0, $isdigittmp = 0, $isdigittmp4 = 0, $isdigittmp7 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - $2 = HEAP8[$1>>0]|0; - $3 = $2 << 24 >> 24; - $isdigittmp4 = (($3) + -48)|0; - $isdigit5 = ($isdigittmp4>>>0)<(10); - if ($isdigit5) { - $$06 = 0;$7 = $1;$isdigittmp7 = $isdigittmp4; - while(1) { - $4 = ($$06*10)|0; - $5 = (($isdigittmp7) + ($4))|0; - $6 = ((($7)) + 1|0); - HEAP32[$0>>2] = $6; - $8 = HEAP8[$6>>0]|0; - $9 = $8 << 24 >> 24; - $isdigittmp = (($9) + -48)|0; - $isdigit = ($isdigittmp>>>0)<(10); - if ($isdigit) { - $$06 = $5;$7 = $6;$isdigittmp7 = $isdigittmp; - } else { - $$0$lcssa = $5; - break; - } - } - } else { - $$0$lcssa = 0; - } - return ($$0$lcssa|0); -} -function _pop_arg($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$mask = 0, $$mask31 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0; - var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, $arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, $expanded28 = 0, $expanded30 = 0, $expanded31 = 0; - var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, $expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 = 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, $expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 = 0, $expanded58 = 0, $expanded59 = 0; - var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, $expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 = 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, $expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 = 0, $expanded86 = 0, $expanded87 = 0; - var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, $expanded94 = 0, $expanded95 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($1>>>0)>(20); - L1: do { - if (!($3)) { - do { - switch ($1|0) { - case 9: { - $arglist_current = HEAP32[$2>>2]|0; - $4 = $arglist_current; - $5 = ((0) + 4|0); - $expanded28 = $5; - $expanded = (($expanded28) - 1)|0; - $6 = (($4) + ($expanded))|0; - $7 = ((0) + 4|0); - $expanded32 = $7; - $expanded31 = (($expanded32) - 1)|0; - $expanded30 = $expanded31 ^ -1; - $8 = $6 & $expanded30; - $9 = $8; - $10 = HEAP32[$9>>2]|0; - $arglist_next = ((($9)) + 4|0); - HEAP32[$2>>2] = $arglist_next; - HEAP32[$0>>2] = $10; - break L1; - break; - } - case 10: { - $arglist_current2 = HEAP32[$2>>2]|0; - $11 = $arglist_current2; - $12 = ((0) + 4|0); - $expanded35 = $12; - $expanded34 = (($expanded35) - 1)|0; - $13 = (($11) + ($expanded34))|0; - $14 = ((0) + 4|0); - $expanded39 = $14; - $expanded38 = (($expanded39) - 1)|0; - $expanded37 = $expanded38 ^ -1; - $15 = $13 & $expanded37; - $16 = $15; - $17 = HEAP32[$16>>2]|0; - $arglist_next3 = ((($16)) + 4|0); - HEAP32[$2>>2] = $arglist_next3; - $18 = ($17|0)<(0); - $19 = $18 << 31 >> 31; - $20 = $0; - $21 = $20; - HEAP32[$21>>2] = $17; - $22 = (($20) + 4)|0; - $23 = $22; - HEAP32[$23>>2] = $19; - break L1; - break; - } - case 11: { - $arglist_current5 = HEAP32[$2>>2]|0; - $24 = $arglist_current5; - $25 = ((0) + 4|0); - $expanded42 = $25; - $expanded41 = (($expanded42) - 1)|0; - $26 = (($24) + ($expanded41))|0; - $27 = ((0) + 4|0); - $expanded46 = $27; - $expanded45 = (($expanded46) - 1)|0; - $expanded44 = $expanded45 ^ -1; - $28 = $26 & $expanded44; - $29 = $28; - $30 = HEAP32[$29>>2]|0; - $arglist_next6 = ((($29)) + 4|0); - HEAP32[$2>>2] = $arglist_next6; - $31 = $0; - $32 = $31; - HEAP32[$32>>2] = $30; - $33 = (($31) + 4)|0; - $34 = $33; - HEAP32[$34>>2] = 0; - break L1; - break; - } - case 12: { - $arglist_current8 = HEAP32[$2>>2]|0; - $35 = $arglist_current8; - $36 = ((0) + 8|0); - $expanded49 = $36; - $expanded48 = (($expanded49) - 1)|0; - $37 = (($35) + ($expanded48))|0; - $38 = ((0) + 8|0); - $expanded53 = $38; - $expanded52 = (($expanded53) - 1)|0; - $expanded51 = $expanded52 ^ -1; - $39 = $37 & $expanded51; - $40 = $39; - $41 = $40; - $42 = $41; - $43 = HEAP32[$42>>2]|0; - $44 = (($41) + 4)|0; - $45 = $44; - $46 = HEAP32[$45>>2]|0; - $arglist_next9 = ((($40)) + 8|0); - HEAP32[$2>>2] = $arglist_next9; - $47 = $0; - $48 = $47; - HEAP32[$48>>2] = $43; - $49 = (($47) + 4)|0; - $50 = $49; - HEAP32[$50>>2] = $46; - break L1; - break; - } - case 13: { - $arglist_current11 = HEAP32[$2>>2]|0; - $51 = $arglist_current11; - $52 = ((0) + 4|0); - $expanded56 = $52; - $expanded55 = (($expanded56) - 1)|0; - $53 = (($51) + ($expanded55))|0; - $54 = ((0) + 4|0); - $expanded60 = $54; - $expanded59 = (($expanded60) - 1)|0; - $expanded58 = $expanded59 ^ -1; - $55 = $53 & $expanded58; - $56 = $55; - $57 = HEAP32[$56>>2]|0; - $arglist_next12 = ((($56)) + 4|0); - HEAP32[$2>>2] = $arglist_next12; - $58 = $57&65535; - $59 = $58 << 16 >> 16; - $60 = ($59|0)<(0); - $61 = $60 << 31 >> 31; - $62 = $0; - $63 = $62; - HEAP32[$63>>2] = $59; - $64 = (($62) + 4)|0; - $65 = $64; - HEAP32[$65>>2] = $61; - break L1; - break; - } - case 14: { - $arglist_current14 = HEAP32[$2>>2]|0; - $66 = $arglist_current14; - $67 = ((0) + 4|0); - $expanded63 = $67; - $expanded62 = (($expanded63) - 1)|0; - $68 = (($66) + ($expanded62))|0; - $69 = ((0) + 4|0); - $expanded67 = $69; - $expanded66 = (($expanded67) - 1)|0; - $expanded65 = $expanded66 ^ -1; - $70 = $68 & $expanded65; - $71 = $70; - $72 = HEAP32[$71>>2]|0; - $arglist_next15 = ((($71)) + 4|0); - HEAP32[$2>>2] = $arglist_next15; - $$mask31 = $72 & 65535; - $73 = $0; - $74 = $73; - HEAP32[$74>>2] = $$mask31; - $75 = (($73) + 4)|0; - $76 = $75; - HEAP32[$76>>2] = 0; - break L1; - break; - } - case 15: { - $arglist_current17 = HEAP32[$2>>2]|0; - $77 = $arglist_current17; - $78 = ((0) + 4|0); - $expanded70 = $78; - $expanded69 = (($expanded70) - 1)|0; - $79 = (($77) + ($expanded69))|0; - $80 = ((0) + 4|0); - $expanded74 = $80; - $expanded73 = (($expanded74) - 1)|0; - $expanded72 = $expanded73 ^ -1; - $81 = $79 & $expanded72; - $82 = $81; - $83 = HEAP32[$82>>2]|0; - $arglist_next18 = ((($82)) + 4|0); - HEAP32[$2>>2] = $arglist_next18; - $84 = $83&255; - $85 = $84 << 24 >> 24; - $86 = ($85|0)<(0); - $87 = $86 << 31 >> 31; - $88 = $0; - $89 = $88; - HEAP32[$89>>2] = $85; - $90 = (($88) + 4)|0; - $91 = $90; - HEAP32[$91>>2] = $87; - break L1; - break; - } - case 16: { - $arglist_current20 = HEAP32[$2>>2]|0; - $92 = $arglist_current20; - $93 = ((0) + 4|0); - $expanded77 = $93; - $expanded76 = (($expanded77) - 1)|0; - $94 = (($92) + ($expanded76))|0; - $95 = ((0) + 4|0); - $expanded81 = $95; - $expanded80 = (($expanded81) - 1)|0; - $expanded79 = $expanded80 ^ -1; - $96 = $94 & $expanded79; - $97 = $96; - $98 = HEAP32[$97>>2]|0; - $arglist_next21 = ((($97)) + 4|0); - HEAP32[$2>>2] = $arglist_next21; - $$mask = $98 & 255; - $99 = $0; - $100 = $99; - HEAP32[$100>>2] = $$mask; - $101 = (($99) + 4)|0; - $102 = $101; - HEAP32[$102>>2] = 0; - break L1; - break; - } - case 17: { - $arglist_current23 = HEAP32[$2>>2]|0; - $103 = $arglist_current23; - $104 = ((0) + 8|0); - $expanded84 = $104; - $expanded83 = (($expanded84) - 1)|0; - $105 = (($103) + ($expanded83))|0; - $106 = ((0) + 8|0); - $expanded88 = $106; - $expanded87 = (($expanded88) - 1)|0; - $expanded86 = $expanded87 ^ -1; - $107 = $105 & $expanded86; - $108 = $107; - $109 = +HEAPF64[$108>>3]; - $arglist_next24 = ((($108)) + 8|0); - HEAP32[$2>>2] = $arglist_next24; - HEAPF64[$0>>3] = $109; - break L1; - break; - } - case 18: { - $arglist_current26 = HEAP32[$2>>2]|0; - $110 = $arglist_current26; - $111 = ((0) + 8|0); - $expanded91 = $111; - $expanded90 = (($expanded91) - 1)|0; - $112 = (($110) + ($expanded90))|0; - $113 = ((0) + 8|0); - $expanded95 = $113; - $expanded94 = (($expanded95) - 1)|0; - $expanded93 = $expanded94 ^ -1; - $114 = $112 & $expanded93; - $115 = $114; - $116 = +HEAPF64[$115>>3]; - $arglist_next27 = ((($115)) + 8|0); - HEAP32[$2>>2] = $arglist_next27; - HEAPF64[$0>>3] = $116; - break L1; - break; - } - default: { - break L1; - } - } - } while(0); - } - } while(0); - return; -} -function _fmt_x($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$05$lcssa = 0, $$056 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $4 = ($0|0)==(0); - $5 = ($1|0)==(0); - $6 = $4 & $5; - if ($6) { - $$05$lcssa = $2; - } else { - $$056 = $2;$15 = $1;$8 = $0; - while(1) { - $7 = $8 & 15; - $9 = (18072 + ($7)|0); - $10 = HEAP8[$9>>0]|0; - $11 = $10&255; - $12 = $11 | $3; - $13 = $12&255; - $14 = ((($$056)) + -1|0); - HEAP8[$14>>0] = $13; - $16 = (_bitshift64Lshr(($8|0),($15|0),4)|0); - $17 = tempRet0; - $18 = ($16|0)==(0); - $19 = ($17|0)==(0); - $20 = $18 & $19; - if ($20) { - $$05$lcssa = $14; - break; - } else { - $$056 = $14;$15 = $17;$8 = $16; - } - } - } - return ($$05$lcssa|0); -} -function _fmt_o($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0$lcssa = 0, $$06 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(0); - $4 = ($1|0)==(0); - $5 = $3 & $4; - if ($5) { - $$0$lcssa = $2; - } else { - $$06 = $2;$11 = $1;$7 = $0; - while(1) { - $6 = $7&255; - $8 = $6 & 7; - $9 = $8 | 48; - $10 = ((($$06)) + -1|0); - HEAP8[$10>>0] = $9; - $12 = (_bitshift64Lshr(($7|0),($11|0),3)|0); - $13 = tempRet0; - $14 = ($12|0)==(0); - $15 = ($13|0)==(0); - $16 = $14 & $15; - if ($16) { - $$0$lcssa = $10; - break; - } else { - $$06 = $10;$11 = $13;$7 = $12; - } - } - } - return ($$0$lcssa|0); -} -function _fmt_u($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$010$lcssa$off0 = 0, $$012 = 0, $$09$lcssa = 0, $$0914 = 0, $$1$lcssa = 0, $$111 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($1>>>0)>(0); - $4 = ($0>>>0)>(4294967295); - $5 = ($1|0)==(0); - $6 = $5 & $4; - $7 = $3 | $6; - if ($7) { - $$0914 = $2;$8 = $0;$9 = $1; - while(1) { - $10 = (___uremdi3(($8|0),($9|0),10,0)|0); - $11 = tempRet0; - $12 = $10&255; - $13 = $12 | 48; - $14 = ((($$0914)) + -1|0); - HEAP8[$14>>0] = $13; - $15 = (___udivdi3(($8|0),($9|0),10,0)|0); - $16 = tempRet0; - $17 = ($9>>>0)>(9); - $18 = ($8>>>0)>(4294967295); - $19 = ($9|0)==(9); - $20 = $19 & $18; - $21 = $17 | $20; - if ($21) { - $$0914 = $14;$8 = $15;$9 = $16; - } else { - break; - } - } - $$010$lcssa$off0 = $15;$$09$lcssa = $14; - } else { - $$010$lcssa$off0 = $0;$$09$lcssa = $2; - } - $22 = ($$010$lcssa$off0|0)==(0); - if ($22) { - $$1$lcssa = $$09$lcssa; - } else { - $$012 = $$010$lcssa$off0;$$111 = $$09$lcssa; - while(1) { - $23 = (($$012>>>0) % 10)&-1; - $24 = $23 | 48; - $25 = $24&255; - $26 = ((($$111)) + -1|0); - HEAP8[$26>>0] = $25; - $27 = (($$012>>>0) / 10)&-1; - $28 = ($$012>>>0)<(10); - if ($28) { - $$1$lcssa = $26; - break; - } else { - $$012 = $27;$$111 = $26; - } - } - } - return ($$1$lcssa|0); -} -function _strerror($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (___pthread_self_105()|0); - $2 = ((($1)) + 188|0); - $3 = HEAP32[$2>>2]|0; - $4 = (___strerror_l($0,$3)|0); - return ($4|0); -} -function _memchr($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0$lcssa = 0, $$035$lcssa = 0, $$035$lcssa65 = 0, $$03555 = 0, $$036$lcssa = 0, $$036$lcssa64 = 0, $$03654 = 0, $$046 = 0, $$137$lcssa = 0, $$13745 = 0, $$140 = 0, $$2 = 0, $$23839 = 0, $$3 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond53 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = $1 & 255; - $4 = $0; - $5 = $4 & 3; - $6 = ($5|0)!=(0); - $7 = ($2|0)!=(0); - $or$cond53 = $7 & $6; - L1: do { - if ($or$cond53) { - $8 = $1&255; - $$03555 = $0;$$03654 = $2; - while(1) { - $9 = HEAP8[$$03555>>0]|0; - $10 = ($9<<24>>24)==($8<<24>>24); - if ($10) { - $$035$lcssa65 = $$03555;$$036$lcssa64 = $$03654; - label = 6; - break L1; - } - $11 = ((($$03555)) + 1|0); - $12 = (($$03654) + -1)|0; - $13 = $11; - $14 = $13 & 3; - $15 = ($14|0)!=(0); - $16 = ($12|0)!=(0); - $or$cond = $16 & $15; - if ($or$cond) { - $$03555 = $11;$$03654 = $12; - } else { - $$035$lcssa = $11;$$036$lcssa = $12;$$lcssa = $16; - label = 5; - break; - } - } - } else { - $$035$lcssa = $0;$$036$lcssa = $2;$$lcssa = $7; - label = 5; - } - } while(0); - if ((label|0) == 5) { - if ($$lcssa) { - $$035$lcssa65 = $$035$lcssa;$$036$lcssa64 = $$036$lcssa; - label = 6; - } else { - $$2 = $$035$lcssa;$$3 = 0; - } - } - L8: do { - if ((label|0) == 6) { - $17 = HEAP8[$$035$lcssa65>>0]|0; - $18 = $1&255; - $19 = ($17<<24>>24)==($18<<24>>24); - if ($19) { - $$2 = $$035$lcssa65;$$3 = $$036$lcssa64; - } else { - $20 = Math_imul($3, 16843009)|0; - $21 = ($$036$lcssa64>>>0)>(3); - L11: do { - if ($21) { - $$046 = $$035$lcssa65;$$13745 = $$036$lcssa64; - while(1) { - $22 = HEAP32[$$046>>2]|0; - $23 = $22 ^ $20; - $24 = (($23) + -16843009)|0; - $25 = $23 & -2139062144; - $26 = $25 ^ -2139062144; - $27 = $26 & $24; - $28 = ($27|0)==(0); - if (!($28)) { - break; - } - $29 = ((($$046)) + 4|0); - $30 = (($$13745) + -4)|0; - $31 = ($30>>>0)>(3); - if ($31) { - $$046 = $29;$$13745 = $30; - } else { - $$0$lcssa = $29;$$137$lcssa = $30; - label = 11; - break L11; - } - } - $$140 = $$046;$$23839 = $$13745; - } else { - $$0$lcssa = $$035$lcssa65;$$137$lcssa = $$036$lcssa64; - label = 11; - } - } while(0); - if ((label|0) == 11) { - $32 = ($$137$lcssa|0)==(0); - if ($32) { - $$2 = $$0$lcssa;$$3 = 0; - break; - } else { - $$140 = $$0$lcssa;$$23839 = $$137$lcssa; - } - } - while(1) { - $33 = HEAP8[$$140>>0]|0; - $34 = ($33<<24>>24)==($18<<24>>24); - if ($34) { - $$2 = $$140;$$3 = $$23839; - break L8; - } - $35 = ((($$140)) + 1|0); - $36 = (($$23839) + -1)|0; - $37 = ($36|0)==(0); - if ($37) { - $$2 = $35;$$3 = 0; - break; - } else { - $$140 = $35;$$23839 = $36; - } - } - } - } - } while(0); - $38 = ($$3|0)!=(0); - $39 = $38 ? $$2 : 0; - return ($39|0); -} -function _pad_674($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0$lcssa = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $5 = sp; - $6 = $4 & 73728; - $7 = ($6|0)==(0); - $8 = ($2|0)>($3|0); - $or$cond = $8 & $7; - if ($or$cond) { - $9 = (($2) - ($3))|0; - $10 = ($9>>>0)<(256); - $11 = $10 ? $9 : 256; - _memset(($5|0),($1|0),($11|0))|0; - $12 = ($9>>>0)>(255); - if ($12) { - $13 = (($2) - ($3))|0; - $$011 = $9; - while(1) { - _out($0,$5,256); - $14 = (($$011) + -256)|0; - $15 = ($14>>>0)>(255); - if ($15) { - $$011 = $14; - } else { - break; - } - } - $16 = $13 & 255; - $$0$lcssa = $16; - } else { - $$0$lcssa = $9; - } - _out($0,$5,$$0$lcssa); - } - STACKTOP = sp;return; -} -function _wctomb($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($0|0)==(0|0); - if ($2) { - $$0 = 0; - } else { - $3 = (_wcrtomb($0,$1,0)|0); - $$0 = $3; - } - return ($$0|0); -} -function _fmt_fp($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = +$1; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $$ = 0, $$$ = 0, $$$$559 = 0.0, $$$3484 = 0, $$$3484691 = 0, $$$3484692 = 0, $$$3501 = 0, $$$4502 = 0, $$$542 = 0.0, $$$559 = 0.0, $$0 = 0, $$0463$lcssa = 0, $$0463584 = 0, $$0464594 = 0, $$0471 = 0.0, $$0479 = 0, $$0487642 = 0, $$0488 = 0, $$0488653 = 0, $$0488655 = 0; - var $$0496$$9 = 0, $$0497654 = 0, $$0498 = 0, $$0509582 = 0.0, $$0510 = 0, $$0511 = 0, $$0514637 = 0, $$0520 = 0, $$0521 = 0, $$0521$ = 0, $$0523 = 0, $$0525 = 0, $$0527 = 0, $$0527629 = 0, $$0527631 = 0, $$0530636 = 0, $$1465 = 0, $$1467 = 0.0, $$1469 = 0.0, $$1472 = 0.0; - var $$1480 = 0, $$1482$lcssa = 0, $$1482661 = 0, $$1489641 = 0, $$1499$lcssa = 0, $$1499660 = 0, $$1508583 = 0, $$1512$lcssa = 0, $$1512607 = 0, $$1515 = 0, $$1524 = 0, $$1526 = 0, $$1528614 = 0, $$1531$lcssa = 0, $$1531630 = 0, $$1598 = 0, $$2 = 0, $$2473 = 0.0, $$2476 = 0, $$2476$$547 = 0; - var $$2476$$549 = 0, $$2483$ph = 0, $$2500 = 0, $$2513 = 0, $$2516618 = 0, $$2529 = 0, $$2532617 = 0, $$3 = 0.0, $$3477 = 0, $$3484$lcssa = 0, $$3484648 = 0, $$3501$lcssa = 0, $$3501647 = 0, $$3533613 = 0, $$4 = 0.0, $$4478$lcssa = 0, $$4478590 = 0, $$4492 = 0, $$4502 = 0, $$4518 = 0; - var $$5$lcssa = 0, $$534$ = 0, $$539 = 0, $$539$ = 0, $$542 = 0.0, $$546 = 0, $$548 = 0, $$5486$lcssa = 0, $$5486623 = 0, $$5493597 = 0, $$5519$ph = 0, $$555 = 0, $$556 = 0, $$559 = 0.0, $$5602 = 0, $$6 = 0, $$6494589 = 0, $$7495601 = 0, $$7505 = 0, $$7505$ = 0; - var $$7505$ph = 0, $$8 = 0, $$9$ph = 0, $$lcssa673 = 0, $$neg = 0, $$neg567 = 0, $$pn = 0, $$pn566 = 0, $$pr = 0, $$pr564 = 0, $$pre = 0, $$pre$phi690Z2D = 0, $$pre689 = 0, $$sink545$lcssa = 0, $$sink545622 = 0, $$sink562 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0; - var $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0; - var $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0; - var $14 = 0.0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0; - var $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0; - var $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0; - var $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0; - var $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0.0, $229 = 0.0, $23 = 0; - var $230 = 0, $231 = 0.0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0; - var $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0; - var $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0; - var $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0; - var $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0; - var $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0; - var $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0.0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0; - var $358 = 0, $359 = 0, $36 = 0.0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0; - var $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0; - var $narrow = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond3$not = 0, $or$cond537 = 0, $or$cond541 = 0, $or$cond544 = 0, $or$cond554 = 0, $or$cond6 = 0, $scevgep684 = 0, $scevgep684685 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 560|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(560|0); - $6 = sp + 8|0; - $7 = sp; - $8 = sp + 524|0; - $9 = $8; - $10 = sp + 512|0; - HEAP32[$7>>2] = 0; - $11 = ((($10)) + 12|0); - (___DOUBLE_BITS_675($1)|0); - $12 = tempRet0; - $13 = ($12|0)<(0); - if ($13) { - $14 = -$1; - $$0471 = $14;$$0520 = 1;$$0521 = 18041; - } else { - $15 = $4 & 2048; - $16 = ($15|0)==(0); - $17 = $4 & 1; - $18 = ($17|0)==(0); - $$ = $18 ? (18042) : (18047); - $$$ = $16 ? $$ : (18044); - $19 = $4 & 2049; - $narrow = ($19|0)!=(0); - $$534$ = $narrow&1; - $$0471 = $1;$$0520 = $$534$;$$0521 = $$$; - } - (___DOUBLE_BITS_675($$0471)|0); - $20 = tempRet0; - $21 = $20 & 2146435072; - $22 = ($21>>>0)<(2146435072); - $23 = (0)<(0); - $24 = ($21|0)==(2146435072); - $25 = $24 & $23; - $26 = $22 | $25; - do { - if ($26) { - $35 = (+_frexpl($$0471,$7)); - $36 = $35 * 2.0; - $37 = $36 != 0.0; - if ($37) { - $38 = HEAP32[$7>>2]|0; - $39 = (($38) + -1)|0; - HEAP32[$7>>2] = $39; - } - $40 = $5 | 32; - $41 = ($40|0)==(97); - if ($41) { - $42 = $5 & 32; - $43 = ($42|0)==(0); - $44 = ((($$0521)) + 9|0); - $$0521$ = $43 ? $$0521 : $44; - $45 = $$0520 | 2; - $46 = ($3>>>0)>(11); - $47 = (12 - ($3))|0; - $48 = ($47|0)==(0); - $49 = $46 | $48; - do { - if ($49) { - $$1472 = $36; - } else { - $$0509582 = 8.0;$$1508583 = $47; - while(1) { - $50 = (($$1508583) + -1)|0; - $51 = $$0509582 * 16.0; - $52 = ($50|0)==(0); - if ($52) { - break; - } else { - $$0509582 = $51;$$1508583 = $50; - } - } - $53 = HEAP8[$$0521$>>0]|0; - $54 = ($53<<24>>24)==(45); - if ($54) { - $55 = -$36; - $56 = $55 - $51; - $57 = $51 + $56; - $58 = -$57; - $$1472 = $58; - break; - } else { - $59 = $36 + $51; - $60 = $59 - $51; - $$1472 = $60; - break; - } - } - } while(0); - $61 = HEAP32[$7>>2]|0; - $62 = ($61|0)<(0); - $63 = (0 - ($61))|0; - $64 = $62 ? $63 : $61; - $65 = ($64|0)<(0); - $66 = $65 << 31 >> 31; - $67 = (_fmt_u($64,$66,$11)|0); - $68 = ($67|0)==($11|0); - if ($68) { - $69 = ((($10)) + 11|0); - HEAP8[$69>>0] = 48; - $$0511 = $69; - } else { - $$0511 = $67; - } - $70 = $61 >> 31; - $71 = $70 & 2; - $72 = (($71) + 43)|0; - $73 = $72&255; - $74 = ((($$0511)) + -1|0); - HEAP8[$74>>0] = $73; - $75 = (($5) + 15)|0; - $76 = $75&255; - $77 = ((($$0511)) + -2|0); - HEAP8[$77>>0] = $76; - $notrhs = ($3|0)<(1); - $78 = $4 & 8; - $79 = ($78|0)==(0); - $$0523 = $8;$$2473 = $$1472; - while(1) { - $80 = (~~(($$2473))); - $81 = (18072 + ($80)|0); - $82 = HEAP8[$81>>0]|0; - $83 = $82&255; - $84 = $83 | $42; - $85 = $84&255; - $86 = ((($$0523)) + 1|0); - HEAP8[$$0523>>0] = $85; - $87 = (+($80|0)); - $88 = $$2473 - $87; - $89 = $88 * 16.0; - $90 = $86; - $91 = (($90) - ($9))|0; - $92 = ($91|0)==(1); - if ($92) { - $notlhs = $89 == 0.0; - $or$cond3$not = $notrhs & $notlhs; - $or$cond = $79 & $or$cond3$not; - if ($or$cond) { - $$1524 = $86; - } else { - $93 = ((($$0523)) + 2|0); - HEAP8[$86>>0] = 46; - $$1524 = $93; - } - } else { - $$1524 = $86; - } - $94 = $89 != 0.0; - if ($94) { - $$0523 = $$1524;$$2473 = $89; - } else { - break; - } - } - $95 = ($3|0)!=(0); - $96 = $77; - $97 = $11; - $98 = $$1524; - $99 = (($98) - ($9))|0; - $100 = (($97) - ($96))|0; - $101 = (($99) + -2)|0; - $102 = ($101|0)<($3|0); - $or$cond537 = $95 & $102; - $103 = (($3) + 2)|0; - $$pn = $or$cond537 ? $103 : $99; - $$0525 = (($100) + ($45))|0; - $104 = (($$0525) + ($$pn))|0; - _pad_674($0,32,$2,$104,$4); - _out($0,$$0521$,$45); - $105 = $4 ^ 65536; - _pad_674($0,48,$2,$104,$105); - _out($0,$8,$99); - $106 = (($$pn) - ($99))|0; - _pad_674($0,48,$106,0,0); - _out($0,$77,$100); - $107 = $4 ^ 8192; - _pad_674($0,32,$2,$104,$107); - $$sink562 = $104; - break; - } - $108 = ($3|0)<(0); - $$539 = $108 ? 6 : $3; - if ($37) { - $109 = $36 * 268435456.0; - $110 = HEAP32[$7>>2]|0; - $111 = (($110) + -28)|0; - HEAP32[$7>>2] = $111; - $$3 = $109;$$pr = $111; - } else { - $$pre = HEAP32[$7>>2]|0; - $$3 = $36;$$pr = $$pre; - } - $112 = ($$pr|0)<(0); - $113 = ((($6)) + 288|0); - $$556 = $112 ? $6 : $113; - $$0498 = $$556;$$4 = $$3; - while(1) { - $114 = (~~(($$4))>>>0); - HEAP32[$$0498>>2] = $114; - $115 = ((($$0498)) + 4|0); - $116 = (+($114>>>0)); - $117 = $$4 - $116; - $118 = $117 * 1.0E+9; - $119 = $118 != 0.0; - if ($119) { - $$0498 = $115;$$4 = $118; - } else { - break; - } - } - $120 = ($$pr|0)>(0); - if ($120) { - $$1482661 = $$556;$$1499660 = $115;$122 = $$pr; - while(1) { - $121 = ($122|0)<(29); - $123 = $121 ? $122 : 29; - $$0488653 = ((($$1499660)) + -4|0); - $124 = ($$0488653>>>0)<($$1482661>>>0); - if ($124) { - $$2483$ph = $$1482661; - } else { - $$0488655 = $$0488653;$$0497654 = 0; - while(1) { - $125 = HEAP32[$$0488655>>2]|0; - $126 = (_bitshift64Shl(($125|0),0,($123|0))|0); - $127 = tempRet0; - $128 = (_i64Add(($126|0),($127|0),($$0497654|0),0)|0); - $129 = tempRet0; - $130 = (___uremdi3(($128|0),($129|0),1000000000,0)|0); - $131 = tempRet0; - HEAP32[$$0488655>>2] = $130; - $132 = (___udivdi3(($128|0),($129|0),1000000000,0)|0); - $133 = tempRet0; - $$0488 = ((($$0488655)) + -4|0); - $134 = ($$0488>>>0)<($$1482661>>>0); - if ($134) { - break; - } else { - $$0488655 = $$0488;$$0497654 = $132; - } - } - $135 = ($132|0)==(0); - if ($135) { - $$2483$ph = $$1482661; - } else { - $136 = ((($$1482661)) + -4|0); - HEAP32[$136>>2] = $132; - $$2483$ph = $136; - } - } - $$2500 = $$1499660; - while(1) { - $137 = ($$2500>>>0)>($$2483$ph>>>0); - if (!($137)) { - break; - } - $138 = ((($$2500)) + -4|0); - $139 = HEAP32[$138>>2]|0; - $140 = ($139|0)==(0); - if ($140) { - $$2500 = $138; - } else { - break; - } - } - $141 = HEAP32[$7>>2]|0; - $142 = (($141) - ($123))|0; - HEAP32[$7>>2] = $142; - $143 = ($142|0)>(0); - if ($143) { - $$1482661 = $$2483$ph;$$1499660 = $$2500;$122 = $142; - } else { - $$1482$lcssa = $$2483$ph;$$1499$lcssa = $$2500;$$pr564 = $142; - break; - } - } - } else { - $$1482$lcssa = $$556;$$1499$lcssa = $115;$$pr564 = $$pr; - } - $144 = ($$pr564|0)<(0); - if ($144) { - $145 = (($$539) + 25)|0; - $146 = (($145|0) / 9)&-1; - $147 = (($146) + 1)|0; - $148 = ($40|0)==(102); - $$3484648 = $$1482$lcssa;$$3501647 = $$1499$lcssa;$150 = $$pr564; - while(1) { - $149 = (0 - ($150))|0; - $151 = ($149|0)<(9); - $152 = $151 ? $149 : 9; - $153 = ($$3484648>>>0)<($$3501647>>>0); - if ($153) { - $157 = 1 << $152; - $158 = (($157) + -1)|0; - $159 = 1000000000 >>> $152; - $$0487642 = 0;$$1489641 = $$3484648; - while(1) { - $160 = HEAP32[$$1489641>>2]|0; - $161 = $160 & $158; - $162 = $160 >>> $152; - $163 = (($162) + ($$0487642))|0; - HEAP32[$$1489641>>2] = $163; - $164 = Math_imul($161, $159)|0; - $165 = ((($$1489641)) + 4|0); - $166 = ($165>>>0)<($$3501647>>>0); - if ($166) { - $$0487642 = $164;$$1489641 = $165; - } else { - break; - } - } - $167 = HEAP32[$$3484648>>2]|0; - $168 = ($167|0)==(0); - $169 = ((($$3484648)) + 4|0); - $$$3484 = $168 ? $169 : $$3484648; - $170 = ($164|0)==(0); - if ($170) { - $$$3484692 = $$$3484;$$4502 = $$3501647; - } else { - $171 = ((($$3501647)) + 4|0); - HEAP32[$$3501647>>2] = $164; - $$$3484692 = $$$3484;$$4502 = $171; - } - } else { - $154 = HEAP32[$$3484648>>2]|0; - $155 = ($154|0)==(0); - $156 = ((($$3484648)) + 4|0); - $$$3484691 = $155 ? $156 : $$3484648; - $$$3484692 = $$$3484691;$$4502 = $$3501647; - } - $172 = $148 ? $$556 : $$$3484692; - $173 = $$4502; - $174 = $172; - $175 = (($173) - ($174))|0; - $176 = $175 >> 2; - $177 = ($176|0)>($147|0); - $178 = (($172) + ($147<<2)|0); - $$$4502 = $177 ? $178 : $$4502; - $179 = HEAP32[$7>>2]|0; - $180 = (($179) + ($152))|0; - HEAP32[$7>>2] = $180; - $181 = ($180|0)<(0); - if ($181) { - $$3484648 = $$$3484692;$$3501647 = $$$4502;$150 = $180; - } else { - $$3484$lcssa = $$$3484692;$$3501$lcssa = $$$4502; - break; - } - } - } else { - $$3484$lcssa = $$1482$lcssa;$$3501$lcssa = $$1499$lcssa; - } - $182 = ($$3484$lcssa>>>0)<($$3501$lcssa>>>0); - $183 = $$556; - if ($182) { - $184 = $$3484$lcssa; - $185 = (($183) - ($184))|0; - $186 = $185 >> 2; - $187 = ($186*9)|0; - $188 = HEAP32[$$3484$lcssa>>2]|0; - $189 = ($188>>>0)<(10); - if ($189) { - $$1515 = $187; - } else { - $$0514637 = $187;$$0530636 = 10; - while(1) { - $190 = ($$0530636*10)|0; - $191 = (($$0514637) + 1)|0; - $192 = ($188>>>0)<($190>>>0); - if ($192) { - $$1515 = $191; - break; - } else { - $$0514637 = $191;$$0530636 = $190; - } - } - } - } else { - $$1515 = 0; - } - $193 = ($40|0)!=(102); - $194 = $193 ? $$1515 : 0; - $195 = (($$539) - ($194))|0; - $196 = ($40|0)==(103); - $197 = ($$539|0)!=(0); - $198 = $197 & $196; - $$neg = $198 << 31 >> 31; - $199 = (($195) + ($$neg))|0; - $200 = $$3501$lcssa; - $201 = (($200) - ($183))|0; - $202 = $201 >> 2; - $203 = ($202*9)|0; - $204 = (($203) + -9)|0; - $205 = ($199|0)<($204|0); - if ($205) { - $206 = ((($$556)) + 4|0); - $207 = (($199) + 9216)|0; - $208 = (($207|0) / 9)&-1; - $209 = (($208) + -1024)|0; - $210 = (($206) + ($209<<2)|0); - $211 = (($207|0) % 9)&-1; - $$0527629 = (($211) + 1)|0; - $212 = ($$0527629|0)<(9); - if ($212) { - $$0527631 = $$0527629;$$1531630 = 10; - while(1) { - $213 = ($$1531630*10)|0; - $$0527 = (($$0527631) + 1)|0; - $exitcond = ($$0527|0)==(9); - if ($exitcond) { - $$1531$lcssa = $213; - break; - } else { - $$0527631 = $$0527;$$1531630 = $213; - } - } - } else { - $$1531$lcssa = 10; - } - $214 = HEAP32[$210>>2]|0; - $215 = (($214>>>0) % ($$1531$lcssa>>>0))&-1; - $216 = ($215|0)==(0); - $217 = ((($210)) + 4|0); - $218 = ($217|0)==($$3501$lcssa|0); - $or$cond541 = $218 & $216; - if ($or$cond541) { - $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; - } else { - $219 = (($214>>>0) / ($$1531$lcssa>>>0))&-1; - $220 = $219 & 1; - $221 = ($220|0)==(0); - $$542 = $221 ? 9007199254740992.0 : 9007199254740994.0; - $222 = (($$1531$lcssa|0) / 2)&-1; - $223 = ($215>>>0)<($222>>>0); - $224 = ($215|0)==($222|0); - $or$cond544 = $218 & $224; - $$559 = $or$cond544 ? 1.0 : 1.5; - $$$559 = $223 ? 0.5 : $$559; - $225 = ($$0520|0)==(0); - if ($225) { - $$1467 = $$$559;$$1469 = $$542; - } else { - $226 = HEAP8[$$0521>>0]|0; - $227 = ($226<<24>>24)==(45); - $228 = -$$542; - $229 = -$$$559; - $$$542 = $227 ? $228 : $$542; - $$$$559 = $227 ? $229 : $$$559; - $$1467 = $$$$559;$$1469 = $$$542; - } - $230 = (($214) - ($215))|0; - HEAP32[$210>>2] = $230; - $231 = $$1469 + $$1467; - $232 = $231 != $$1469; - if ($232) { - $233 = (($230) + ($$1531$lcssa))|0; - HEAP32[$210>>2] = $233; - $234 = ($233>>>0)>(999999999); - if ($234) { - $$5486623 = $$3484$lcssa;$$sink545622 = $210; - while(1) { - $235 = ((($$sink545622)) + -4|0); - HEAP32[$$sink545622>>2] = 0; - $236 = ($235>>>0)<($$5486623>>>0); - if ($236) { - $237 = ((($$5486623)) + -4|0); - HEAP32[$237>>2] = 0; - $$6 = $237; - } else { - $$6 = $$5486623; - } - $238 = HEAP32[$235>>2]|0; - $239 = (($238) + 1)|0; - HEAP32[$235>>2] = $239; - $240 = ($239>>>0)>(999999999); - if ($240) { - $$5486623 = $$6;$$sink545622 = $235; - } else { - $$5486$lcssa = $$6;$$sink545$lcssa = $235; - break; - } - } - } else { - $$5486$lcssa = $$3484$lcssa;$$sink545$lcssa = $210; - } - $241 = $$5486$lcssa; - $242 = (($183) - ($241))|0; - $243 = $242 >> 2; - $244 = ($243*9)|0; - $245 = HEAP32[$$5486$lcssa>>2]|0; - $246 = ($245>>>0)<(10); - if ($246) { - $$4492 = $$sink545$lcssa;$$4518 = $244;$$8 = $$5486$lcssa; - } else { - $$2516618 = $244;$$2532617 = 10; - while(1) { - $247 = ($$2532617*10)|0; - $248 = (($$2516618) + 1)|0; - $249 = ($245>>>0)<($247>>>0); - if ($249) { - $$4492 = $$sink545$lcssa;$$4518 = $248;$$8 = $$5486$lcssa; - break; - } else { - $$2516618 = $248;$$2532617 = $247; - } - } - } - } else { - $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; - } - } - $250 = ((($$4492)) + 4|0); - $251 = ($$3501$lcssa>>>0)>($250>>>0); - $$$3501 = $251 ? $250 : $$3501$lcssa; - $$5519$ph = $$4518;$$7505$ph = $$$3501;$$9$ph = $$8; - } else { - $$5519$ph = $$1515;$$7505$ph = $$3501$lcssa;$$9$ph = $$3484$lcssa; - } - $$7505 = $$7505$ph; - while(1) { - $252 = ($$7505>>>0)>($$9$ph>>>0); - if (!($252)) { - $$lcssa673 = 0; - break; - } - $253 = ((($$7505)) + -4|0); - $254 = HEAP32[$253>>2]|0; - $255 = ($254|0)==(0); - if ($255) { - $$7505 = $253; - } else { - $$lcssa673 = 1; - break; - } - } - $256 = (0 - ($$5519$ph))|0; - do { - if ($196) { - $not$ = $197 ^ 1; - $257 = $not$&1; - $$539$ = (($257) + ($$539))|0; - $258 = ($$539$|0)>($$5519$ph|0); - $259 = ($$5519$ph|0)>(-5); - $or$cond6 = $258 & $259; - if ($or$cond6) { - $260 = (($5) + -1)|0; - $$neg567 = (($$539$) + -1)|0; - $261 = (($$neg567) - ($$5519$ph))|0; - $$0479 = $260;$$2476 = $261; - } else { - $262 = (($5) + -2)|0; - $263 = (($$539$) + -1)|0; - $$0479 = $262;$$2476 = $263; - } - $264 = $4 & 8; - $265 = ($264|0)==(0); - if ($265) { - if ($$lcssa673) { - $266 = ((($$7505)) + -4|0); - $267 = HEAP32[$266>>2]|0; - $268 = ($267|0)==(0); - if ($268) { - $$2529 = 9; - } else { - $269 = (($267>>>0) % 10)&-1; - $270 = ($269|0)==(0); - if ($270) { - $$1528614 = 0;$$3533613 = 10; - while(1) { - $271 = ($$3533613*10)|0; - $272 = (($$1528614) + 1)|0; - $273 = (($267>>>0) % ($271>>>0))&-1; - $274 = ($273|0)==(0); - if ($274) { - $$1528614 = $272;$$3533613 = $271; - } else { - $$2529 = $272; - break; - } - } - } else { - $$2529 = 0; - } - } - } else { - $$2529 = 9; - } - $275 = $$0479 | 32; - $276 = ($275|0)==(102); - $277 = $$7505; - $278 = (($277) - ($183))|0; - $279 = $278 >> 2; - $280 = ($279*9)|0; - $281 = (($280) + -9)|0; - if ($276) { - $282 = (($281) - ($$2529))|0; - $283 = ($282|0)>(0); - $$546 = $283 ? $282 : 0; - $284 = ($$2476|0)<($$546|0); - $$2476$$547 = $284 ? $$2476 : $$546; - $$1480 = $$0479;$$3477 = $$2476$$547;$$pre$phi690Z2D = 0; - break; - } else { - $285 = (($281) + ($$5519$ph))|0; - $286 = (($285) - ($$2529))|0; - $287 = ($286|0)>(0); - $$548 = $287 ? $286 : 0; - $288 = ($$2476|0)<($$548|0); - $$2476$$549 = $288 ? $$2476 : $$548; - $$1480 = $$0479;$$3477 = $$2476$$549;$$pre$phi690Z2D = 0; - break; - } - } else { - $$1480 = $$0479;$$3477 = $$2476;$$pre$phi690Z2D = $264; - } - } else { - $$pre689 = $4 & 8; - $$1480 = $5;$$3477 = $$539;$$pre$phi690Z2D = $$pre689; - } - } while(0); - $289 = $$3477 | $$pre$phi690Z2D; - $290 = ($289|0)!=(0); - $291 = $290&1; - $292 = $$1480 | 32; - $293 = ($292|0)==(102); - if ($293) { - $294 = ($$5519$ph|0)>(0); - $295 = $294 ? $$5519$ph : 0; - $$2513 = 0;$$pn566 = $295; - } else { - $296 = ($$5519$ph|0)<(0); - $297 = $296 ? $256 : $$5519$ph; - $298 = ($297|0)<(0); - $299 = $298 << 31 >> 31; - $300 = (_fmt_u($297,$299,$11)|0); - $301 = $11; - $302 = $300; - $303 = (($301) - ($302))|0; - $304 = ($303|0)<(2); - if ($304) { - $$1512607 = $300; - while(1) { - $305 = ((($$1512607)) + -1|0); - HEAP8[$305>>0] = 48; - $306 = $305; - $307 = (($301) - ($306))|0; - $308 = ($307|0)<(2); - if ($308) { - $$1512607 = $305; - } else { - $$1512$lcssa = $305; - break; - } - } - } else { - $$1512$lcssa = $300; - } - $309 = $$5519$ph >> 31; - $310 = $309 & 2; - $311 = (($310) + 43)|0; - $312 = $311&255; - $313 = ((($$1512$lcssa)) + -1|0); - HEAP8[$313>>0] = $312; - $314 = $$1480&255; - $315 = ((($$1512$lcssa)) + -2|0); - HEAP8[$315>>0] = $314; - $316 = $315; - $317 = (($301) - ($316))|0; - $$2513 = $315;$$pn566 = $317; - } - $318 = (($$0520) + 1)|0; - $319 = (($318) + ($$3477))|0; - $$1526 = (($319) + ($291))|0; - $320 = (($$1526) + ($$pn566))|0; - _pad_674($0,32,$2,$320,$4); - _out($0,$$0521,$$0520); - $321 = $4 ^ 65536; - _pad_674($0,48,$2,$320,$321); - if ($293) { - $322 = ($$9$ph>>>0)>($$556>>>0); - $$0496$$9 = $322 ? $$556 : $$9$ph; - $323 = ((($8)) + 9|0); - $324 = $323; - $325 = ((($8)) + 8|0); - $$5493597 = $$0496$$9; - while(1) { - $326 = HEAP32[$$5493597>>2]|0; - $327 = (_fmt_u($326,0,$323)|0); - $328 = ($$5493597|0)==($$0496$$9|0); - if ($328) { - $334 = ($327|0)==($323|0); - if ($334) { - HEAP8[$325>>0] = 48; - $$1465 = $325; - } else { - $$1465 = $327; - } - } else { - $329 = ($327>>>0)>($8>>>0); - if ($329) { - $330 = $327; - $331 = (($330) - ($9))|0; - _memset(($8|0),48,($331|0))|0; - $$0464594 = $327; - while(1) { - $332 = ((($$0464594)) + -1|0); - $333 = ($332>>>0)>($8>>>0); - if ($333) { - $$0464594 = $332; - } else { - $$1465 = $332; - break; - } - } - } else { - $$1465 = $327; - } - } - $335 = $$1465; - $336 = (($324) - ($335))|0; - _out($0,$$1465,$336); - $337 = ((($$5493597)) + 4|0); - $338 = ($337>>>0)>($$556>>>0); - if ($338) { - break; - } else { - $$5493597 = $337; - } - } - $339 = ($289|0)==(0); - if (!($339)) { - _out($0,18088,1); - } - $340 = ($337>>>0)<($$7505>>>0); - $341 = ($$3477|0)>(0); - $342 = $340 & $341; - if ($342) { - $$4478590 = $$3477;$$6494589 = $337; - while(1) { - $343 = HEAP32[$$6494589>>2]|0; - $344 = (_fmt_u($343,0,$323)|0); - $345 = ($344>>>0)>($8>>>0); - if ($345) { - $346 = $344; - $347 = (($346) - ($9))|0; - _memset(($8|0),48,($347|0))|0; - $$0463584 = $344; - while(1) { - $348 = ((($$0463584)) + -1|0); - $349 = ($348>>>0)>($8>>>0); - if ($349) { - $$0463584 = $348; - } else { - $$0463$lcssa = $348; - break; - } - } - } else { - $$0463$lcssa = $344; - } - $350 = ($$4478590|0)<(9); - $351 = $350 ? $$4478590 : 9; - _out($0,$$0463$lcssa,$351); - $352 = ((($$6494589)) + 4|0); - $353 = (($$4478590) + -9)|0; - $354 = ($352>>>0)<($$7505>>>0); - $355 = ($$4478590|0)>(9); - $356 = $354 & $355; - if ($356) { - $$4478590 = $353;$$6494589 = $352; - } else { - $$4478$lcssa = $353; - break; - } - } - } else { - $$4478$lcssa = $$3477; - } - $357 = (($$4478$lcssa) + 9)|0; - _pad_674($0,48,$357,9,0); - } else { - $358 = ((($$9$ph)) + 4|0); - $$7505$ = $$lcssa673 ? $$7505 : $358; - $359 = ($$3477|0)>(-1); - if ($359) { - $360 = ((($8)) + 9|0); - $361 = ($$pre$phi690Z2D|0)==(0); - $362 = $360; - $363 = (0 - ($9))|0; - $364 = ((($8)) + 8|0); - $$5602 = $$3477;$$7495601 = $$9$ph; - while(1) { - $365 = HEAP32[$$7495601>>2]|0; - $366 = (_fmt_u($365,0,$360)|0); - $367 = ($366|0)==($360|0); - if ($367) { - HEAP8[$364>>0] = 48; - $$0 = $364; - } else { - $$0 = $366; - } - $368 = ($$7495601|0)==($$9$ph|0); - do { - if ($368) { - $372 = ((($$0)) + 1|0); - _out($0,$$0,1); - $373 = ($$5602|0)<(1); - $or$cond554 = $361 & $373; - if ($or$cond554) { - $$2 = $372; - break; - } - _out($0,18088,1); - $$2 = $372; - } else { - $369 = ($$0>>>0)>($8>>>0); - if (!($369)) { - $$2 = $$0; - break; - } - $scevgep684 = (($$0) + ($363)|0); - $scevgep684685 = $scevgep684; - _memset(($8|0),48,($scevgep684685|0))|0; - $$1598 = $$0; - while(1) { - $370 = ((($$1598)) + -1|0); - $371 = ($370>>>0)>($8>>>0); - if ($371) { - $$1598 = $370; - } else { - $$2 = $370; - break; - } - } - } - } while(0); - $374 = $$2; - $375 = (($362) - ($374))|0; - $376 = ($$5602|0)>($375|0); - $377 = $376 ? $375 : $$5602; - _out($0,$$2,$377); - $378 = (($$5602) - ($375))|0; - $379 = ((($$7495601)) + 4|0); - $380 = ($379>>>0)<($$7505$>>>0); - $381 = ($378|0)>(-1); - $382 = $380 & $381; - if ($382) { - $$5602 = $378;$$7495601 = $379; - } else { - $$5$lcssa = $378; - break; - } - } - } else { - $$5$lcssa = $$3477; - } - $383 = (($$5$lcssa) + 18)|0; - _pad_674($0,48,$383,18,0); - $384 = $11; - $385 = $$2513; - $386 = (($384) - ($385))|0; - _out($0,$$2513,$386); - } - $387 = $4 ^ 8192; - _pad_674($0,32,$2,$320,$387); - $$sink562 = $320; - } else { - $27 = $5 & 32; - $28 = ($27|0)!=(0); - $29 = $28 ? 18060 : 18064; - $30 = ($$0471 != $$0471) | (0.0 != 0.0); - $31 = $28 ? 19991 : 18068; - $$0510 = $30 ? $31 : $29; - $32 = (($$0520) + 3)|0; - $33 = $4 & -65537; - _pad_674($0,32,$2,$32,$33); - _out($0,$$0521,$$0520); - _out($0,$$0510,3); - $34 = $4 ^ 8192; - _pad_674($0,32,$2,$32,$34); - $$sink562 = $32; - } - } while(0); - $388 = ($$sink562|0)<($2|0); - $$555 = $388 ? $2 : $$sink562; - STACKTOP = sp;return ($$555|0); -} -function ___DOUBLE_BITS_675($0) { - $0 = +$0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; - $2 = HEAP32[tempDoublePtr+4>>2]|0; - tempRet0 = ($2); - return ($1|0); -} -function _frexpl($0,$1) { - $0 = +$0; - $1 = $1|0; - var $2 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (+_frexp($0,$1)); - return (+$2); -} -function _frexp($0,$1) { - $0 = +$0; - $1 = $1|0; - var $$0 = 0.0, $$016 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, $storemerge = 0, $trunc$clear = 0, label = 0; - var sp = 0; - sp = STACKTOP; - HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; - $3 = HEAP32[tempDoublePtr+4>>2]|0; - $4 = (_bitshift64Lshr(($2|0),($3|0),52)|0); - $5 = tempRet0; - $6 = $4&65535; - $trunc$clear = $6 & 2047; - switch ($trunc$clear<<16>>16) { - case 0: { - $7 = $0 != 0.0; - if ($7) { - $8 = $0 * 1.8446744073709552E+19; - $9 = (+_frexp($8,$1)); - $10 = HEAP32[$1>>2]|0; - $11 = (($10) + -64)|0; - $$016 = $9;$storemerge = $11; - } else { - $$016 = $0;$storemerge = 0; - } - HEAP32[$1>>2] = $storemerge; - $$0 = $$016; - break; - } - case 2047: { - $$0 = $0; - break; - } - default: { - $12 = $4 & 2047; - $13 = (($12) + -1022)|0; - HEAP32[$1>>2] = $13; - $14 = $3 & -2146435073; - $15 = $14 | 1071644672; - HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $15;$16 = +HEAPF64[tempDoublePtr>>3]; - $$0 = $16; - } - } - return (+$$0); -} -function _wcrtomb($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $not$ = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(0|0); - do { - if ($3) { - $$0 = 1; - } else { - $4 = ($1>>>0)<(128); - if ($4) { - $5 = $1&255; - HEAP8[$0>>0] = $5; - $$0 = 1; - break; - } - $6 = (___pthread_self_448()|0); - $7 = ((($6)) + 188|0); - $8 = HEAP32[$7>>2]|0; - $9 = HEAP32[$8>>2]|0; - $not$ = ($9|0)==(0|0); - if ($not$) { - $10 = $1 & -128; - $11 = ($10|0)==(57216); - if ($11) { - $13 = $1&255; - HEAP8[$0>>0] = $13; - $$0 = 1; - break; - } else { - $12 = (___errno_location()|0); - HEAP32[$12>>2] = 84; - $$0 = -1; - break; - } - } - $14 = ($1>>>0)<(2048); - if ($14) { - $15 = $1 >>> 6; - $16 = $15 | 192; - $17 = $16&255; - $18 = ((($0)) + 1|0); - HEAP8[$0>>0] = $17; - $19 = $1 & 63; - $20 = $19 | 128; - $21 = $20&255; - HEAP8[$18>>0] = $21; - $$0 = 2; - break; - } - $22 = ($1>>>0)<(55296); - $23 = $1 & -8192; - $24 = ($23|0)==(57344); - $or$cond = $22 | $24; - if ($or$cond) { - $25 = $1 >>> 12; - $26 = $25 | 224; - $27 = $26&255; - $28 = ((($0)) + 1|0); - HEAP8[$0>>0] = $27; - $29 = $1 >>> 6; - $30 = $29 & 63; - $31 = $30 | 128; - $32 = $31&255; - $33 = ((($0)) + 2|0); - HEAP8[$28>>0] = $32; - $34 = $1 & 63; - $35 = $34 | 128; - $36 = $35&255; - HEAP8[$33>>0] = $36; - $$0 = 3; - break; - } - $37 = (($1) + -65536)|0; - $38 = ($37>>>0)<(1048576); - if ($38) { - $39 = $1 >>> 18; - $40 = $39 | 240; - $41 = $40&255; - $42 = ((($0)) + 1|0); - HEAP8[$0>>0] = $41; - $43 = $1 >>> 12; - $44 = $43 & 63; - $45 = $44 | 128; - $46 = $45&255; - $47 = ((($0)) + 2|0); - HEAP8[$42>>0] = $46; - $48 = $1 >>> 6; - $49 = $48 & 63; - $50 = $49 | 128; - $51 = $50&255; - $52 = ((($0)) + 3|0); - HEAP8[$47>>0] = $51; - $53 = $1 & 63; - $54 = $53 | 128; - $55 = $54&255; - HEAP8[$52>>0] = $55; - $$0 = 4; - break; - } else { - $56 = (___errno_location()|0); - HEAP32[$56>>2] = 84; - $$0 = -1; - break; - } - } - } while(0); - return ($$0|0); -} -function ___pthread_self_448() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function ___pthread_self_105() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function ___strerror_l($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$012$lcssa = 0, $$01214 = 0, $$016 = 0, $$113 = 0, $$115 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $$016 = 0; - while(1) { - $3 = (18090 + ($$016)|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&255; - $6 = ($5|0)==($0|0); - if ($6) { - label = 2; - break; - } - $7 = (($$016) + 1)|0; - $8 = ($7|0)==(87); - if ($8) { - $$01214 = 18178;$$115 = 87; - label = 5; - break; - } else { - $$016 = $7; - } - } - if ((label|0) == 2) { - $2 = ($$016|0)==(0); - if ($2) { - $$012$lcssa = 18178; - } else { - $$01214 = 18178;$$115 = $$016; - label = 5; - } - } - if ((label|0) == 5) { - while(1) { - label = 0; - $$113 = $$01214; - while(1) { - $9 = HEAP8[$$113>>0]|0; - $10 = ($9<<24>>24)==(0); - $11 = ((($$113)) + 1|0); - if ($10) { - break; - } else { - $$113 = $11; - } - } - $12 = (($$115) + -1)|0; - $13 = ($12|0)==(0); - if ($13) { - $$012$lcssa = $11; - break; - } else { - $$01214 = $11;$$115 = $12; - label = 5; - } - } - } - $14 = ((($1)) + 20|0); - $15 = HEAP32[$14>>2]|0; - $16 = (___lctrans($$012$lcssa,$15)|0); - return ($16|0); -} -function ___lctrans($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (___lctrans_impl($0,$1)|0); - return ($2|0); -} -function ___lctrans_impl($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)==(0|0); - if ($2) { - $$0 = 0; - } else { - $3 = HEAP32[$1>>2]|0; - $4 = ((($1)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = (___mo_lookup($3,$5,$0)|0); - $$0 = $6; - } - $7 = ($$0|0)!=(0|0); - $8 = $7 ? $$0 : $0; - return ($8|0); -} -function ___mo_lookup($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $$090 = 0, $$094 = 0, $$191 = 0, $$195 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond102 = 0, $or$cond104 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = HEAP32[$0>>2]|0; - $4 = (($3) + 1794895138)|0; - $5 = ((($0)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = (_swapc($6,$4)|0); - $8 = ((($0)) + 12|0); - $9 = HEAP32[$8>>2]|0; - $10 = (_swapc($9,$4)|0); - $11 = ((($0)) + 16|0); - $12 = HEAP32[$11>>2]|0; - $13 = (_swapc($12,$4)|0); - $14 = $1 >>> 2; - $15 = ($7>>>0)<($14>>>0); - L1: do { - if ($15) { - $16 = $7 << 2; - $17 = (($1) - ($16))|0; - $18 = ($10>>>0)<($17>>>0); - $19 = ($13>>>0)<($17>>>0); - $or$cond = $18 & $19; - if ($or$cond) { - $20 = $13 | $10; - $21 = $20 & 3; - $22 = ($21|0)==(0); - if ($22) { - $23 = $10 >>> 2; - $24 = $13 >>> 2; - $$090 = 0;$$094 = $7; - while(1) { - $25 = $$094 >>> 1; - $26 = (($$090) + ($25))|0; - $27 = $26 << 1; - $28 = (($27) + ($23))|0; - $29 = (($0) + ($28<<2)|0); - $30 = HEAP32[$29>>2]|0; - $31 = (_swapc($30,$4)|0); - $32 = (($28) + 1)|0; - $33 = (($0) + ($32<<2)|0); - $34 = HEAP32[$33>>2]|0; - $35 = (_swapc($34,$4)|0); - $36 = ($35>>>0)<($1>>>0); - $37 = (($1) - ($35))|0; - $38 = ($31>>>0)<($37>>>0); - $or$cond102 = $36 & $38; - if (!($or$cond102)) { - $$4 = 0; - break L1; - } - $39 = (($35) + ($31))|0; - $40 = (($0) + ($39)|0); - $41 = HEAP8[$40>>0]|0; - $42 = ($41<<24>>24)==(0); - if (!($42)) { - $$4 = 0; - break L1; - } - $43 = (($0) + ($35)|0); - $44 = (_strcmp($2,$43)|0); - $45 = ($44|0)==(0); - if ($45) { - break; - } - $62 = ($$094|0)==(1); - $63 = ($44|0)<(0); - $64 = (($$094) - ($25))|0; - $$195 = $63 ? $25 : $64; - $$191 = $63 ? $$090 : $26; - if ($62) { - $$4 = 0; - break L1; - } else { - $$090 = $$191;$$094 = $$195; - } - } - $46 = (($27) + ($24))|0; - $47 = (($0) + ($46<<2)|0); - $48 = HEAP32[$47>>2]|0; - $49 = (_swapc($48,$4)|0); - $50 = (($46) + 1)|0; - $51 = (($0) + ($50<<2)|0); - $52 = HEAP32[$51>>2]|0; - $53 = (_swapc($52,$4)|0); - $54 = ($53>>>0)<($1>>>0); - $55 = (($1) - ($53))|0; - $56 = ($49>>>0)<($55>>>0); - $or$cond104 = $54 & $56; - if ($or$cond104) { - $57 = (($0) + ($53)|0); - $58 = (($53) + ($49))|0; - $59 = (($0) + ($58)|0); - $60 = HEAP8[$59>>0]|0; - $61 = ($60<<24>>24)==(0); - $$ = $61 ? $57 : 0; - $$4 = $$; - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } while(0); - return ($$4|0); -} -function _swapc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$ = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)==(0); - $3 = (_llvm_bswap_i32(($0|0))|0); - $$ = $2 ? $0 : $3; - return ($$|0); -} -function ___fwritex($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$038 = 0, $$042 = 0, $$1 = 0, $$139 = 0, $$141 = 0, $$143 = 0, $$pre = 0, $$pre47 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; - var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($2)) + 16|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)==(0|0); - if ($5) { - $7 = (___towrite($2)|0); - $8 = ($7|0)==(0); - if ($8) { - $$pre = HEAP32[$3>>2]|0; - $12 = $$pre; - label = 5; - } else { - $$1 = 0; - } - } else { - $6 = $4; - $12 = $6; - label = 5; - } - L5: do { - if ((label|0) == 5) { - $9 = ((($2)) + 20|0); - $10 = HEAP32[$9>>2]|0; - $11 = (($12) - ($10))|0; - $13 = ($11>>>0)<($1>>>0); - $14 = $10; - if ($13) { - $15 = ((($2)) + 36|0); - $16 = HEAP32[$15>>2]|0; - $17 = (FUNCTION_TABLE_iiii[$16 & 15]($2,$0,$1)|0); - $$1 = $17; - break; - } - $18 = ((($2)) + 75|0); - $19 = HEAP8[$18>>0]|0; - $20 = ($19<<24>>24)>(-1); - L10: do { - if ($20) { - $$038 = $1; - while(1) { - $21 = ($$038|0)==(0); - if ($21) { - $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; - break L10; - } - $22 = (($$038) + -1)|0; - $23 = (($0) + ($22)|0); - $24 = HEAP8[$23>>0]|0; - $25 = ($24<<24>>24)==(10); - if ($25) { - break; - } else { - $$038 = $22; - } - } - $26 = ((($2)) + 36|0); - $27 = HEAP32[$26>>2]|0; - $28 = (FUNCTION_TABLE_iiii[$27 & 15]($2,$0,$$038)|0); - $29 = ($28>>>0)<($$038>>>0); - if ($29) { - $$1 = $28; - break L5; - } - $30 = (($0) + ($$038)|0); - $$042 = (($1) - ($$038))|0; - $$pre47 = HEAP32[$9>>2]|0; - $$139 = $$038;$$141 = $30;$$143 = $$042;$31 = $$pre47; - } else { - $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; - } - } while(0); - _memcpy(($31|0),($$141|0),($$143|0))|0; - $32 = HEAP32[$9>>2]|0; - $33 = (($32) + ($$143)|0); - HEAP32[$9>>2] = $33; - $34 = (($$139) + ($$143))|0; - $$1 = $34; - } - } while(0); - return ($$1|0); -} -function ___towrite($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 74|0); - $2 = HEAP8[$1>>0]|0; - $3 = $2 << 24 >> 24; - $4 = (($3) + 255)|0; - $5 = $4 | $3; - $6 = $5&255; - HEAP8[$1>>0] = $6; - $7 = HEAP32[$0>>2]|0; - $8 = $7 & 8; - $9 = ($8|0)==(0); - if ($9) { - $11 = ((($0)) + 8|0); - HEAP32[$11>>2] = 0; - $12 = ((($0)) + 4|0); - HEAP32[$12>>2] = 0; - $13 = ((($0)) + 44|0); - $14 = HEAP32[$13>>2]|0; - $15 = ((($0)) + 28|0); - HEAP32[$15>>2] = $14; - $16 = ((($0)) + 20|0); - HEAP32[$16>>2] = $14; - $17 = ((($0)) + 48|0); - $18 = HEAP32[$17>>2]|0; - $19 = (($14) + ($18)|0); - $20 = ((($0)) + 16|0); - HEAP32[$20>>2] = $19; - $$0 = 0; - } else { - $10 = $7 | 32; - HEAP32[$0>>2] = $10; - $$0 = -1; - } - return ($$0|0); -} -function _sn_write($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($0)) + 16|0); - $4 = HEAP32[$3>>2]|0; - $5 = ((($0)) + 20|0); - $6 = HEAP32[$5>>2]|0; - $7 = $6; - $8 = (($4) - ($7))|0; - $9 = ($8>>>0)>($2>>>0); - $$ = $9 ? $2 : $8; - _memcpy(($6|0),($1|0),($$|0))|0; - $10 = HEAP32[$5>>2]|0; - $11 = (($10) + ($$)|0); - HEAP32[$5>>2] = $11; - return ($2|0); -} -function ___floatscan($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$0105$ph = 0, $$0106$ph = 0, $$0107$lcssa = 0, $$0107127 = 0, $$0113 = 0, $$0114 = 0.0, $$1$lcssa = 0, $$1108 = 0, $$1128 = 0, $$2 = 0, $$2109125 = 0, $$3110 = 0, $$3126 = 0, $$4 = 0, $$4111 = 0, $$5 = 0, $$6 = 0, $$in = 0, $$old8 = 0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0.0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0.0, $14 = 0, $15 = 0; - var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; - var $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; - var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; - var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0; - sp = STACKTOP; - switch ($1|0) { - case 0: { - $$0105$ph = -149;$$0106$ph = 24; - label = 4; - break; - } - case 1: { - $$0105$ph = -1074;$$0106$ph = 53; - label = 4; - break; - } - case 2: { - $$0105$ph = -1074;$$0106$ph = 53; - label = 4; - break; - } - default: { - $$0114 = 0.0; - } - } - L4: do { - if ((label|0) == 4) { - $3 = ((($0)) + 4|0); - $4 = ((($0)) + 100|0); - while(1) { - $5 = HEAP32[$3>>2]|0; - $6 = HEAP32[$4>>2]|0; - $7 = ($5>>>0)<($6>>>0); - if ($7) { - $8 = ((($5)) + 1|0); - HEAP32[$3>>2] = $8; - $9 = HEAP8[$5>>0]|0; - $10 = $9&255; - $12 = $10; - } else { - $11 = (___shgetc($0)|0); - $12 = $11; - } - $13 = (_isspace($12)|0); - $14 = ($13|0)==(0); - if ($14) { - break; - } - } - L13: do { - switch ($12|0) { - case 43: case 45: { - $15 = ($12|0)==(45); - $16 = $15&1; - $17 = $16 << 1; - $18 = (1 - ($17))|0; - $19 = HEAP32[$3>>2]|0; - $20 = HEAP32[$4>>2]|0; - $21 = ($19>>>0)<($20>>>0); - if ($21) { - $22 = ((($19)) + 1|0); - HEAP32[$3>>2] = $22; - $23 = HEAP8[$19>>0]|0; - $24 = $23&255; - $$0 = $24;$$0113 = $18; - break L13; - } else { - $25 = (___shgetc($0)|0); - $$0 = $25;$$0113 = $18; - break L13; - } - break; - } - default: { - $$0 = $12;$$0113 = 1; - } - } - } while(0); - $$0107127 = 0;$$1128 = $$0; - while(1) { - $26 = $$1128 | 32; - $27 = (19982 + ($$0107127)|0); - $28 = HEAP8[$27>>0]|0; - $29 = $28 << 24 >> 24; - $30 = ($26|0)==($29|0); - if (!($30)) { - $$0107$lcssa = $$0107127;$$1$lcssa = $$1128; - break; - } - $31 = ($$0107127>>>0)<(7); - do { - if ($31) { - $32 = HEAP32[$3>>2]|0; - $33 = HEAP32[$4>>2]|0; - $34 = ($32>>>0)<($33>>>0); - if ($34) { - $35 = ((($32)) + 1|0); - HEAP32[$3>>2] = $35; - $36 = HEAP8[$32>>0]|0; - $37 = $36&255; - $$2 = $37; - break; - } else { - $38 = (___shgetc($0)|0); - $$2 = $38; - break; - } - } else { - $$2 = $$1128; - } - } while(0); - $39 = (($$0107127) + 1)|0; - $40 = ($39>>>0)<(8); - if ($40) { - $$0107127 = $39;$$1128 = $$2; - } else { - $$0107$lcssa = $39;$$1$lcssa = $$2; - break; - } - } - L29: do { - switch ($$0107$lcssa|0) { - case 8: { - break; - } - case 3: { - label = 23; - break; - } - default: { - $41 = ($$0107$lcssa>>>0)>(3); - $42 = ($2|0)!=(0); - $or$cond5 = $42 & $41; - if ($or$cond5) { - $43 = ($$0107$lcssa|0)==(8); - if ($43) { - break L29; - } else { - label = 23; - break L29; - } - } - $56 = ($$0107$lcssa|0)==(0); - L34: do { - if ($56) { - $$2109125 = 0;$$3126 = $$1$lcssa; - while(1) { - $57 = $$3126 | 32; - $58 = (19991 + ($$2109125)|0); - $59 = HEAP8[$58>>0]|0; - $60 = $59 << 24 >> 24; - $61 = ($57|0)==($60|0); - if (!($61)) { - $$3110 = $$2109125;$$5 = $$3126; - break L34; - } - $62 = ($$2109125>>>0)<(2); - do { - if ($62) { - $63 = HEAP32[$3>>2]|0; - $64 = HEAP32[$4>>2]|0; - $65 = ($63>>>0)<($64>>>0); - if ($65) { - $66 = ((($63)) + 1|0); - HEAP32[$3>>2] = $66; - $67 = HEAP8[$63>>0]|0; - $68 = $67&255; - $$4 = $68; - break; - } else { - $69 = (___shgetc($0)|0); - $$4 = $69; - break; - } - } else { - $$4 = $$3126; - } - } while(0); - $70 = (($$2109125) + 1)|0; - $71 = ($70>>>0)<(3); - if ($71) { - $$2109125 = $70;$$3126 = $$4; - } else { - $$3110 = $70;$$5 = $$4; - break; - } - } - } else { - $$3110 = $$0107$lcssa;$$5 = $$1$lcssa; - } - } while(0); - switch ($$3110|0) { - case 3: { - $72 = HEAP32[$3>>2]|0; - $73 = HEAP32[$4>>2]|0; - $74 = ($72>>>0)<($73>>>0); - if ($74) { - $75 = ((($72)) + 1|0); - HEAP32[$3>>2] = $75; - $76 = HEAP8[$72>>0]|0; - $77 = $76&255; - $80 = $77; - } else { - $78 = (___shgetc($0)|0); - $80 = $78; - } - $79 = ($80|0)==(40); - if ($79) { - $$4111 = 1; - } else { - $81 = HEAP32[$4>>2]|0; - $82 = ($81|0)==(0|0); - if ($82) { - $$0114 = nan; - break L4; - } - $83 = HEAP32[$3>>2]|0; - $84 = ((($83)) + -1|0); - HEAP32[$3>>2] = $84; - $$0114 = nan; - break L4; - } - while(1) { - $85 = HEAP32[$3>>2]|0; - $86 = HEAP32[$4>>2]|0; - $87 = ($85>>>0)<($86>>>0); - if ($87) { - $88 = ((($85)) + 1|0); - HEAP32[$3>>2] = $88; - $89 = HEAP8[$85>>0]|0; - $90 = $89&255; - $93 = $90; - } else { - $91 = (___shgetc($0)|0); - $93 = $91; - } - $92 = (($93) + -48)|0; - $94 = ($92>>>0)<(10); - $95 = (($93) + -65)|0; - $96 = ($95>>>0)<(26); - $or$cond = $94 | $96; - if (!($or$cond)) { - $97 = (($93) + -97)|0; - $98 = ($97>>>0)<(26); - $99 = ($93|0)==(95); - $or$cond7 = $99 | $98; - if (!($or$cond7)) { - break; - } - } - $111 = (($$4111) + 1)|0; - $$4111 = $111; - } - $100 = ($93|0)==(41); - if ($100) { - $$0114 = nan; - break L4; - } - $101 = HEAP32[$4>>2]|0; - $102 = ($101|0)==(0|0); - if (!($102)) { - $103 = HEAP32[$3>>2]|0; - $104 = ((($103)) + -1|0); - HEAP32[$3>>2] = $104; - } - if (!($42)) { - $106 = (___errno_location()|0); - HEAP32[$106>>2] = 22; - ___shlim($0,0); - $$0114 = 0.0; - break L4; - } - $105 = ($$4111|0)==(0); - if ($105) { - $$0114 = nan; - break L4; - } else { - $$in = $$4111; - } - while(1) { - $107 = (($$in) + -1)|0; - if (!($102)) { - $108 = HEAP32[$3>>2]|0; - $109 = ((($108)) + -1|0); - HEAP32[$3>>2] = $109; - } - $110 = ($107|0)==(0); - if ($110) { - $$0114 = nan; - break L4; - } else { - $$in = $107; - } - } - break; - } - case 0: { - $117 = ($$5|0)==(48); - if ($117) { - $118 = HEAP32[$3>>2]|0; - $119 = HEAP32[$4>>2]|0; - $120 = ($118>>>0)<($119>>>0); - if ($120) { - $121 = ((($118)) + 1|0); - HEAP32[$3>>2] = $121; - $122 = HEAP8[$118>>0]|0; - $123 = $122&255; - $126 = $123; - } else { - $124 = (___shgetc($0)|0); - $126 = $124; - } - $125 = $126 | 32; - $127 = ($125|0)==(120); - if ($127) { - $128 = (+_hexfloat($0,$$0106$ph,$$0105$ph,$$0113,$2)); - $$0114 = $128; - break L4; - } - $129 = HEAP32[$4>>2]|0; - $130 = ($129|0)==(0|0); - if ($130) { - $$6 = 48; - } else { - $131 = HEAP32[$3>>2]|0; - $132 = ((($131)) + -1|0); - HEAP32[$3>>2] = $132; - $$6 = 48; - } - } else { - $$6 = $$5; - } - $133 = (+_decfloat($0,$$6,$$0106$ph,$$0105$ph,$$0113,$2)); - $$0114 = $133; - break L4; - break; - } - default: { - $112 = HEAP32[$4>>2]|0; - $113 = ($112|0)==(0|0); - if (!($113)) { - $114 = HEAP32[$3>>2]|0; - $115 = ((($114)) + -1|0); - HEAP32[$3>>2] = $115; - } - $116 = (___errno_location()|0); - HEAP32[$116>>2] = 22; - ___shlim($0,0); - $$0114 = 0.0; - break L4; - } - } - } - } - } while(0); - if ((label|0) == 23) { - $44 = HEAP32[$4>>2]|0; - $45 = ($44|0)==(0|0); - if (!($45)) { - $46 = HEAP32[$3>>2]|0; - $47 = ((($46)) + -1|0); - HEAP32[$3>>2] = $47; - } - $48 = ($2|0)!=(0); - $49 = ($$0107$lcssa>>>0)>(3); - $or$cond9 = $48 & $49; - if ($or$cond9) { - $$1108 = $$0107$lcssa; - while(1) { - if (!($45)) { - $50 = HEAP32[$3>>2]|0; - $51 = ((($50)) + -1|0); - HEAP32[$3>>2] = $51; - } - $52 = (($$1108) + -1)|0; - $$old8 = ($52>>>0)>(3); - if ($$old8) { - $$1108 = $52; - } else { - break; - } - } - } - } - $53 = (+($$0113|0)); - $54 = $53 * inf; - $55 = $54; - $$0114 = $55; - } - } while(0); - return (+$$0114); -} -function _hexfloat($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0 = 0, $$0133 = 0, $$0142 = 0, $$0146 = 0, $$0148 = 0, $$0148$ = 0, $$0151 = 0.0, $$0152 = 0.0, $$0155 = 0.0, $$0155$ = 0.0, $$0159 = 0, $$0165 = 0.0, $$0166 = 0, $$0166169 = 0, $$0166170 = 0, $$1$ph = 0, $$1147 = 0, $$1149 = 0, $$1153 = 0.0, $$1156 = 0.0; - var $$1160 = 0, $$2 = 0, $$2$lcssa = 0, $$2144 = 0, $$2150 = 0, $$2154 = 0.0, $$2157 = 0.0, $$2161 = 0, $$3145 = 0, $$3158$lcssa = 0.0, $$3158179 = 0.0, $$3162$lcssa = 0, $$3162183 = 0, $$4 = 0.0, $$4163$lcssa = 0, $$4163178 = 0, $$5 = 0.0, $$5164 = 0, $$6 = 0, $$pn = 0.0; - var $$pre = 0.0, $$pre$phiZ2D = 0.0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0, $17 = 0; - var $170 = 0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; - var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0.0, $197 = 0, $198 = 0.0, $199 = 0.0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0.0, $206 = 0.0; - var $207 = 0.0, $208 = 0.0, $209 = 0.0, $21 = 0, $210 = 0.0, $211 = 0, $212 = 0, $213 = 0.0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0.0, $67 = 0.0; - var $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0.0, $73 = 0.0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0.0, $96 = 0.0, $97 = 0, $98 = 0, $99 = 0, $not$ = 0, $or$cond = 0, $or$cond168 = 0, $or$cond206 = 0, $or$cond4 = 0; - var $or$cond6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ((($0)) + 4|0); - $6 = HEAP32[$5>>2]|0; - $7 = ((($0)) + 100|0); - $8 = HEAP32[$7>>2]|0; - $9 = ($6>>>0)<($8>>>0); - if ($9) { - $10 = ((($6)) + 1|0); - HEAP32[$5>>2] = $10; - $11 = HEAP8[$6>>0]|0; - $12 = $11&255; - $$0 = $12;$$0142 = 0; - } else { - $13 = (___shgetc($0)|0); - $$0 = $13;$$0142 = 0; - } - L4: while(1) { - switch ($$0|0) { - case 46: { - label = 8; - break L4; - break; - } - case 48: { - break; - } - default: { - $$0146 = 0;$$0148 = 0;$$0152 = 1.0;$$0155 = 0.0;$$0159 = 0;$$2 = $$0;$$2144 = $$0142;$101 = 0;$53 = 0;$55 = 0;$99 = 0; - break L4; - } - } - $14 = HEAP32[$5>>2]|0; - $15 = HEAP32[$7>>2]|0; - $16 = ($14>>>0)<($15>>>0); - if ($16) { - $17 = ((($14)) + 1|0); - HEAP32[$5>>2] = $17; - $18 = HEAP8[$14>>0]|0; - $19 = $18&255; - $$0 = $19;$$0142 = 1; - continue; - } else { - $20 = (___shgetc($0)|0); - $$0 = $20;$$0142 = 1; - continue; - } - } - if ((label|0) == 8) { - $21 = HEAP32[$5>>2]|0; - $22 = HEAP32[$7>>2]|0; - $23 = ($21>>>0)<($22>>>0); - if ($23) { - $24 = ((($21)) + 1|0); - HEAP32[$5>>2] = $24; - $25 = HEAP8[$21>>0]|0; - $26 = $25&255; - $$1$ph = $26; - } else { - $27 = (___shgetc($0)|0); - $$1$ph = $27; - } - $28 = ($$1$ph|0)==(48); - if ($28) { - $36 = 0;$37 = 0; - while(1) { - $29 = HEAP32[$5>>2]|0; - $30 = HEAP32[$7>>2]|0; - $31 = ($29>>>0)<($30>>>0); - if ($31) { - $32 = ((($29)) + 1|0); - HEAP32[$5>>2] = $32; - $33 = HEAP8[$29>>0]|0; - $34 = $33&255; - $41 = $34; - } else { - $35 = (___shgetc($0)|0); - $41 = $35; - } - $38 = (_i64Add(($36|0),($37|0),-1,-1)|0); - $39 = tempRet0; - $40 = ($41|0)==(48); - if ($40) { - $36 = $38;$37 = $39; - } else { - $$0146 = 1;$$0148 = 0;$$0152 = 1.0;$$0155 = 0.0;$$0159 = 0;$$2 = $41;$$2144 = 1;$101 = $39;$53 = 0;$55 = 0;$99 = $38; - break; - } - } - } else { - $$0146 = 1;$$0148 = 0;$$0152 = 1.0;$$0155 = 0.0;$$0159 = 0;$$2 = $$1$ph;$$2144 = $$0142;$101 = 0;$53 = 0;$55 = 0;$99 = 0; - } - } - while(1) { - $42 = (($$2) + -48)|0; - $43 = ($42>>>0)<(10); - $44 = ($$2|0)==(46); - if (!($43)) { - $45 = $$2 | 32; - $46 = (($45) + -97)|0; - $47 = ($46>>>0)<(6); - $or$cond6 = $44 | $47; - if (!($or$cond6)) { - $$2$lcssa = $$2; - break; - } - } - if ($44) { - $48 = ($$0146|0)==(0); - if ($48) { - $$1147 = 1;$$2150 = $$0148;$$2154 = $$0152;$$2157 = $$0155;$$2161 = $$0159;$$3145 = $$2144;$214 = $55;$215 = $53;$216 = $55;$217 = $53; - } else { - $$2$lcssa = 46; - break; - } - } else { - $49 = ($$2|0)>(57); - $50 = $$2 | 32; - $51 = (($50) + -87)|0; - $$0133 = $49 ? $51 : $42; - $52 = ($53|0)<(0); - $54 = ($55>>>0)<(8); - $56 = ($53|0)==(0); - $57 = $56 & $54; - $58 = $52 | $57; - do { - if ($58) { - $59 = $$0159 << 4; - $60 = (($$0133) + ($59))|0; - $$1149 = $$0148;$$1153 = $$0152;$$1156 = $$0155;$$1160 = $60; - } else { - $61 = ($53|0)<(0); - $62 = ($55>>>0)<(14); - $63 = ($53|0)==(0); - $64 = $63 & $62; - $65 = $61 | $64; - if ($65) { - $66 = (+($$0133|0)); - $67 = $$0152 * 0.0625; - $68 = $67 * $66; - $69 = $$0155 + $68; - $$1149 = $$0148;$$1153 = $67;$$1156 = $69;$$1160 = $$0159; - break; - } else { - $70 = ($$0133|0)==(0); - $71 = ($$0148|0)!=(0); - $or$cond = $71 | $70; - $72 = $$0152 * 0.5; - $73 = $$0155 + $72; - $$0155$ = $or$cond ? $$0155 : $73; - $$0148$ = $or$cond ? $$0148 : 1; - $$1149 = $$0148$;$$1153 = $$0152;$$1156 = $$0155$;$$1160 = $$0159; - break; - } - } - } while(0); - $74 = (_i64Add(($55|0),($53|0),1,0)|0); - $75 = tempRet0; - $$1147 = $$0146;$$2150 = $$1149;$$2154 = $$1153;$$2157 = $$1156;$$2161 = $$1160;$$3145 = 1;$214 = $99;$215 = $101;$216 = $74;$217 = $75; - } - $76 = HEAP32[$5>>2]|0; - $77 = HEAP32[$7>>2]|0; - $78 = ($76>>>0)<($77>>>0); - if ($78) { - $79 = ((($76)) + 1|0); - HEAP32[$5>>2] = $79; - $80 = HEAP8[$76>>0]|0; - $81 = $80&255; - $$0146 = $$1147;$$0148 = $$2150;$$0152 = $$2154;$$0155 = $$2157;$$0159 = $$2161;$$2 = $81;$$2144 = $$3145;$101 = $215;$53 = $217;$55 = $216;$99 = $214; - continue; - } else { - $82 = (___shgetc($0)|0); - $$0146 = $$1147;$$0148 = $$2150;$$0152 = $$2154;$$0155 = $$2157;$$0159 = $$2161;$$2 = $82;$$2144 = $$3145;$101 = $215;$53 = $217;$55 = $216;$99 = $214; - continue; - } - } - $83 = ($$2144|0)==(0); - do { - if ($83) { - $84 = HEAP32[$7>>2]|0; - $85 = ($84|0)!=(0|0); - if ($85) { - $86 = HEAP32[$5>>2]|0; - $87 = ((($86)) + -1|0); - HEAP32[$5>>2] = $87; - } - $88 = ($4|0)==(0); - if ($88) { - ___shlim($0,0); - } else { - if ($85) { - $89 = HEAP32[$5>>2]|0; - $90 = ((($89)) + -1|0); - HEAP32[$5>>2] = $90; - } - $91 = ($$0146|0)==(0); - $92 = ($84|0)==(0|0); - $or$cond206 = $91 | $92; - if (!($or$cond206)) { - $93 = HEAP32[$5>>2]|0; - $94 = ((($93)) + -1|0); - HEAP32[$5>>2] = $94; - } - } - $95 = (+($3|0)); - $96 = $95 * 0.0; - $$0165 = $96; - } else { - $97 = ($$0146|0)==(0); - $98 = $97 ? $55 : $99; - $100 = $97 ? $53 : $101; - $102 = ($53|0)<(0); - $103 = ($55>>>0)<(8); - $104 = ($53|0)==(0); - $105 = $104 & $103; - $106 = $102 | $105; - if ($106) { - $$3162183 = $$0159;$108 = $55;$109 = $53; - while(1) { - $107 = $$3162183 << 4; - $110 = (_i64Add(($108|0),($109|0),1,0)|0); - $111 = tempRet0; - $112 = ($111|0)<(0); - $113 = ($110>>>0)<(8); - $114 = ($111|0)==(0); - $115 = $114 & $113; - $116 = $112 | $115; - if ($116) { - $$3162183 = $107;$108 = $110;$109 = $111; - } else { - $$3162$lcssa = $107; - break; - } - } - } else { - $$3162$lcssa = $$0159; - } - $117 = $$2$lcssa | 32; - $118 = ($117|0)==(112); - if ($118) { - $119 = (_scanexp($0,$4)|0); - $120 = tempRet0; - $121 = ($119|0)==(0); - $122 = ($120|0)==(-2147483648); - $123 = $121 & $122; - if ($123) { - $124 = ($4|0)==(0); - if ($124) { - ___shlim($0,0); - $$0165 = 0.0; - break; - } - $125 = HEAP32[$7>>2]|0; - $126 = ($125|0)==(0|0); - if ($126) { - $137 = 0;$138 = 0; - } else { - $127 = HEAP32[$5>>2]|0; - $128 = ((($127)) + -1|0); - HEAP32[$5>>2] = $128; - $137 = 0;$138 = 0; - } - } else { - $137 = $119;$138 = $120; - } - } else { - $129 = HEAP32[$7>>2]|0; - $130 = ($129|0)==(0|0); - if ($130) { - $137 = 0;$138 = 0; - } else { - $131 = HEAP32[$5>>2]|0; - $132 = ((($131)) + -1|0); - HEAP32[$5>>2] = $132; - $137 = 0;$138 = 0; - } - } - $133 = (_bitshift64Shl(($98|0),($100|0),2)|0); - $134 = tempRet0; - $135 = (_i64Add(($133|0),($134|0),-32,-1)|0); - $136 = tempRet0; - $139 = (_i64Add(($135|0),($136|0),($137|0),($138|0))|0); - $140 = tempRet0; - $141 = ($$3162$lcssa|0)==(0); - if ($141) { - $142 = (+($3|0)); - $143 = $142 * 0.0; - $$0165 = $143; - break; - } - $144 = (0 - ($2))|0; - $145 = ($144|0)<(0); - $146 = $145 << 31 >> 31; - $147 = ($140|0)>($146|0); - $148 = ($139>>>0)>($144>>>0); - $149 = ($140|0)==($146|0); - $150 = $149 & $148; - $151 = $147 | $150; - if ($151) { - $152 = (___errno_location()|0); - HEAP32[$152>>2] = 34; - $153 = (+($3|0)); - $154 = $153 * 1.7976931348623157E+308; - $155 = $154 * 1.7976931348623157E+308; - $$0165 = $155; - break; - } - $156 = (($2) + -106)|0; - $157 = ($156|0)<(0); - $158 = $157 << 31 >> 31; - $159 = ($140|0)<($158|0); - $160 = ($139>>>0)<($156>>>0); - $161 = ($140|0)==($158|0); - $162 = $161 & $160; - $163 = $159 | $162; - if ($163) { - $165 = (___errno_location()|0); - HEAP32[$165>>2] = 34; - $166 = (+($3|0)); - $167 = $166 * 2.2250738585072014E-308; - $168 = $167 * 2.2250738585072014E-308; - $$0165 = $168; - break; - } - $164 = ($$3162$lcssa|0)>(-1); - if ($164) { - $$3158179 = $$0155;$$4163178 = $$3162$lcssa;$173 = $139;$174 = $140; - while(1) { - $169 = !($$3158179 >= 0.5); - $170 = $$4163178 << 1; - $171 = $$3158179 + -1.0; - $not$ = $169 ^ 1; - $172 = $not$&1; - $$5164 = $170 | $172; - $$pn = $169 ? $$3158179 : $171; - $$4 = $$3158179 + $$pn; - $175 = (_i64Add(($173|0),($174|0),-1,-1)|0); - $176 = tempRet0; - $177 = ($$5164|0)>(-1); - if ($177) { - $$3158179 = $$4;$$4163178 = $$5164;$173 = $175;$174 = $176; - } else { - $$3158$lcssa = $$4;$$4163$lcssa = $$5164;$184 = $175;$185 = $176; - break; - } - } - } else { - $$3158$lcssa = $$0155;$$4163$lcssa = $$3162$lcssa;$184 = $139;$185 = $140; - } - $178 = ($1|0)<(0); - $179 = $178 << 31 >> 31; - $180 = ($2|0)<(0); - $181 = $180 << 31 >> 31; - $182 = (_i64Subtract(32,0,($2|0),($181|0))|0); - $183 = tempRet0; - $186 = (_i64Add(($182|0),($183|0),($184|0),($185|0))|0); - $187 = tempRet0; - $188 = ($179|0)>($187|0); - $189 = ($1>>>0)>($186>>>0); - $190 = ($179|0)==($187|0); - $191 = $190 & $189; - $192 = $188 | $191; - if ($192) { - $193 = ($186|0)>(0); - if ($193) { - $$0166 = $186; - label = 59; - } else { - $$0166170 = 0;$197 = 84; - label = 61; - } - } else { - $$0166 = $1; - label = 59; - } - if ((label|0) == 59) { - $194 = ($$0166|0)<(53); - $195 = (84 - ($$0166))|0; - if ($194) { - $$0166170 = $$0166;$197 = $195; - label = 61; - } else { - $$pre = (+($3|0)); - $$0151 = 0.0;$$0166169 = $$0166;$$pre$phiZ2D = $$pre; - } - } - if ((label|0) == 61) { - $196 = (+($3|0)); - $198 = (+_scalbn(1.0,$197)); - $199 = (+_copysignl($198,$196)); - $$0151 = $199;$$0166169 = $$0166170;$$pre$phiZ2D = $196; - } - $200 = ($$0166169|0)<(32); - $201 = $$3158$lcssa != 0.0; - $or$cond4 = $201 & $200; - $202 = $$4163$lcssa & 1; - $203 = ($202|0)==(0); - $or$cond168 = $203 & $or$cond4; - $204 = $or$cond168&1; - $$6 = (($204) + ($$4163$lcssa))|0; - $$5 = $or$cond168 ? 0.0 : $$3158$lcssa; - $205 = (+($$6>>>0)); - $206 = $$pre$phiZ2D * $205; - $207 = $$0151 + $206; - $208 = $$pre$phiZ2D * $$5; - $209 = $208 + $207; - $210 = $209 - $$0151; - $211 = $210 != 0.0; - if (!($211)) { - $212 = (___errno_location()|0); - HEAP32[$212>>2] = 34; - } - $213 = (+_scalbnl($210,$184)); - $$0165 = $213; - } - } while(0); - return (+$$0165); -} -function _decfloat($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $$ = 0, $$$0345 = 0, $$$0350 = 0, $$$0385 = 0, $$$0401 = 0, $$$5355 = 0, $$$5390 = 0, $$0329 = 0, $$0332490 = 0, $$0333 = 0, $$0334 = 0, $$0336486 = 0, $$0340496 = 0, $$0341$lcssa = 0, $$0341463 = 0, $$0341464 = 0, $$0341465 = 0, $$0341513 = 0, $$0345$lcssa = 0, $$0345467 = 0; - var $$0345468 = 0, $$0345469 = 0, $$0345512 = 0, $$0350$lcssa554 = 0, $$0350494 = 0, $$0360 = 0.0, $$0361 = 0.0, $$0365484 = 0.0, $$0372 = 0, $$0380 = 0, $$0380$ph = 0, $$0385$lcssa553 = 0, $$0385493 = 0, $$0393 = 0, $$0396 = 0, $$0401$lcssa = 0, $$0401473 = 0, $$0401474 = 0, $$0401475 = 0, $$0401509 = 0; - var $$1 = 0.0, $$10 = 0, $$1330$be = 0, $$1330$ph = 0, $$1335 = 0, $$1337 = 0, $$1362 = 0.0, $$1366 = 0.0, $$1373 = 0, $$1373$ph448 = 0, $$1381 = 0, $$1381$ph = 0, $$1381$ph558 = 0, $$1394$lcssa = 0, $$1394511 = 0, $$2 = 0, $$2343 = 0, $$2347 = 0, $$2352$ph449 = 0, $$2367 = 0.0; - var $$2371$v = 0, $$2374 = 0, $$2387$ph447 = 0, $$2395 = 0, $$2398 = 0, $$2403 = 0, $$3$be = 0, $$3$lcssa = 0, $$3344503 = 0, $$3348 = 0, $$3364 = 0.0, $$3368 = 0.0, $$3375 = 0, $$3383 = 0, $$3399$lcssa = 0, $$3399510 = 0, $$3514 = 0, $$413 = 0, $$425 = 0, $$4349495 = 0; - var $$4354 = 0, $$4354$ph = 0, $$4354$ph559 = 0, $$4376 = 0, $$4384 = 0, $$4389$ph = 0, $$4389$ph445 = 0, $$4400 = 0, $$4485 = 0, $$5 = 0, $$5$in = 0, $$5355488 = 0, $$5390487 = 0, $$6378$ph = 0, $$6489 = 0, $$9483 = 0, $$neg442 = 0, $$neg443 = 0, $$pre = 0, $$promoted = 0; - var $$sink = 0, $$sink421$off0 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0.0, $132 = 0.0, $133 = 0.0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0.0, $144 = 0.0, $145 = 0.0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0.0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0, $166 = 0, $167 = 0, $168 = 0.0, $169 = 0.0, $17 = 0; - var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0.0, $177 = 0.0, $178 = 0.0, $179 = 0, $18 = 0, $180 = 0.0, $181 = 0.0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; - var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; - var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; - var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; - var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; - var $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0.0, $304 = 0, $305 = 0, $306 = 0.0, $307 = 0.0, $308 = 0, $309 = 0.0, $31 = 0, $310 = 0.0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0; - var $316 = 0, $317 = 0.0, $318 = 0.0, $319 = 0, $32 = 0, $320 = 0.0, $321 = 0.0, $322 = 0.0, $323 = 0.0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0; - var $334 = 0.0, $335 = 0.0, $336 = 0, $337 = 0.0, $338 = 0.0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0.0, $343 = 0.0, $344 = 0.0, $345 = 0.0, $346 = 0, $347 = 0, $348 = 0.0, $349 = 0, $35 = 0, $350 = 0.0, $351 = 0.0; - var $352 = 0.0, $353 = 0, $354 = 0, $355 = 0, $356 = 0.0, $357 = 0, $358 = 0.0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0.0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0; - var $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $39 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; - var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; - var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; - var $98 = 0, $99 = 0, $cond = 0, $exitcond = 0, $exitcond551 = 0, $narrow = 0, $not$ = 0, $or$cond = 0, $or$cond11 = 0, $or$cond14 = 0, $or$cond415 = 0, $or$cond417 = 0, $or$cond419 = 0, $or$cond420 = 0, $or$cond422 = 0, $or$cond422$not = 0, $or$cond423 = 0, $or$cond426 = 0, $or$cond5 = 0, $sum = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 512|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(512|0); - $6 = sp; - $sum = (($3) + ($2))|0; - $7 = (0 - ($sum))|0; - $8 = ((($0)) + 4|0); - $9 = ((($0)) + 100|0); - $$0329 = $1;$$0396 = 0; - L1: while(1) { - switch ($$0329|0) { - case 46: { - label = 6; - break L1; - break; - } - case 48: { - break; - } - default: { - $$0393 = 0;$$2 = $$0329;$$2398 = $$0396;$366 = 0;$367 = 0; - break L1; - } - } - $10 = HEAP32[$8>>2]|0; - $11 = HEAP32[$9>>2]|0; - $12 = ($10>>>0)<($11>>>0); - if ($12) { - $13 = ((($10)) + 1|0); - HEAP32[$8>>2] = $13; - $14 = HEAP8[$10>>0]|0; - $15 = $14&255; - $$0329 = $15;$$0396 = 1; - continue; - } else { - $16 = (___shgetc($0)|0); - $$0329 = $16;$$0396 = 1; - continue; - } - } - if ((label|0) == 6) { - $17 = HEAP32[$8>>2]|0; - $18 = HEAP32[$9>>2]|0; - $19 = ($17>>>0)<($18>>>0); - if ($19) { - $20 = ((($17)) + 1|0); - HEAP32[$8>>2] = $20; - $21 = HEAP8[$17>>0]|0; - $22 = $21&255; - $$1330$ph = $22; - } else { - $23 = (___shgetc($0)|0); - $$1330$ph = $23; - } - $24 = ($$1330$ph|0)==(48); - if ($24) { - $25 = 0;$26 = 0; - while(1) { - $27 = (_i64Add(($25|0),($26|0),-1,-1)|0); - $28 = tempRet0; - $29 = HEAP32[$8>>2]|0; - $30 = HEAP32[$9>>2]|0; - $31 = ($29>>>0)<($30>>>0); - if ($31) { - $32 = ((($29)) + 1|0); - HEAP32[$8>>2] = $32; - $33 = HEAP8[$29>>0]|0; - $34 = $33&255; - $$1330$be = $34; - } else { - $35 = (___shgetc($0)|0); - $$1330$be = $35; - } - $36 = ($$1330$be|0)==(48); - if ($36) { - $25 = $27;$26 = $28; - } else { - $$0393 = 1;$$2 = $$1330$be;$$2398 = 1;$366 = $27;$367 = $28; - break; - } - } - } else { - $$0393 = 1;$$2 = $$1330$ph;$$2398 = $$0396;$366 = 0;$367 = 0; - } - } - HEAP32[$6>>2] = 0; - $37 = (($$2) + -48)|0; - $38 = ($37>>>0)<(10); - $39 = ($$2|0)==(46); - $40 = $39 | $38; - L20: do { - if ($40) { - $41 = ((($6)) + 496|0); - $$0341513 = 0;$$0345512 = 0;$$0401509 = 0;$$1394511 = $$0393;$$3399510 = $$2398;$$3514 = $$2;$368 = $39;$369 = $37;$370 = $366;$371 = $367;$44 = 0;$45 = 0; - L22: while(1) { - do { - if ($368) { - $cond = ($$1394511|0)==(0); - if ($cond) { - $$2343 = $$0341513;$$2347 = $$0345512;$$2395 = 1;$$2403 = $$0401509;$$4400 = $$3399510;$372 = $44;$373 = $45;$374 = $44;$375 = $45; - } else { - break L22; - } - } else { - $43 = ($$0345512|0)<(125); - $46 = (_i64Add(($44|0),($45|0),1,0)|0); - $47 = tempRet0; - $48 = ($$3514|0)!=(48); - if (!($43)) { - if (!($48)) { - $$2343 = $$0341513;$$2347 = $$0345512;$$2395 = $$1394511;$$2403 = $$0401509;$$4400 = $$3399510;$372 = $370;$373 = $371;$374 = $46;$375 = $47; - break; - } - $57 = HEAP32[$41>>2]|0; - $58 = $57 | 1; - HEAP32[$41>>2] = $58; - $$2343 = $$0341513;$$2347 = $$0345512;$$2395 = $$1394511;$$2403 = $$0401509;$$4400 = $$3399510;$372 = $370;$373 = $371;$374 = $46;$375 = $47; - break; - } - $$$0401 = $48 ? $46 : $$0401509; - $49 = ($$0341513|0)==(0); - $$pre = (($6) + ($$0345512<<2)|0); - if ($49) { - $$sink = $369; - } else { - $50 = HEAP32[$$pre>>2]|0; - $51 = ($50*10)|0; - $52 = (($$3514) + -48)|0; - $53 = (($52) + ($51))|0; - $$sink = $53; - } - HEAP32[$$pre>>2] = $$sink; - $54 = (($$0341513) + 1)|0; - $55 = ($54|0)==(9); - $56 = $55&1; - $$$0345 = (($56) + ($$0345512))|0; - $$413 = $55 ? 0 : $54; - $$2343 = $$413;$$2347 = $$$0345;$$2395 = $$1394511;$$2403 = $$$0401;$$4400 = 1;$372 = $370;$373 = $371;$374 = $46;$375 = $47; - } - } while(0); - $59 = HEAP32[$8>>2]|0; - $60 = HEAP32[$9>>2]|0; - $61 = ($59>>>0)<($60>>>0); - if ($61) { - $62 = ((($59)) + 1|0); - HEAP32[$8>>2] = $62; - $63 = HEAP8[$59>>0]|0; - $64 = $63&255; - $$3$be = $64; - } else { - $65 = (___shgetc($0)|0); - $$3$be = $65; - } - $66 = (($$3$be) + -48)|0; - $67 = ($66>>>0)<(10); - $68 = ($$3$be|0)==(46); - $69 = $68 | $67; - if ($69) { - $$0341513 = $$2343;$$0345512 = $$2347;$$0401509 = $$2403;$$1394511 = $$2395;$$3399510 = $$4400;$$3514 = $$3$be;$368 = $68;$369 = $66;$370 = $372;$371 = $373;$44 = $374;$45 = $375; - } else { - $$0341$lcssa = $$2343;$$0345$lcssa = $$2347;$$0401$lcssa = $$2403;$$1394$lcssa = $$2395;$$3$lcssa = $$3$be;$$3399$lcssa = $$4400;$72 = $372;$73 = $374;$75 = $373;$76 = $375; - label = 29; - break L20; - } - } - $42 = ($$3399510|0)!=(0); - $$0341465 = $$0341513;$$0345469 = $$0345512;$$0401475 = $$0401509;$376 = $44;$377 = $45;$378 = $370;$379 = $371;$380 = $42; - label = 37; - } else { - $$0341$lcssa = 0;$$0345$lcssa = 0;$$0401$lcssa = 0;$$1394$lcssa = $$0393;$$3$lcssa = $$2;$$3399$lcssa = $$2398;$72 = $366;$73 = 0;$75 = $367;$76 = 0; - label = 29; - } - } while(0); - do { - if ((label|0) == 29) { - $70 = ($$1394$lcssa|0)==(0); - $71 = $70 ? $73 : $72; - $74 = $70 ? $76 : $75; - $77 = ($$3399$lcssa|0)!=(0); - $78 = $$3$lcssa | 32; - $79 = ($78|0)==(101); - $or$cond415 = $77 & $79; - if (!($or$cond415)) { - $94 = ($$3$lcssa|0)>(-1); - if ($94) { - $$0341465 = $$0341$lcssa;$$0345469 = $$0345$lcssa;$$0401475 = $$0401$lcssa;$376 = $73;$377 = $76;$378 = $71;$379 = $74;$380 = $77; - label = 37; - break; - } else { - $$0341464 = $$0341$lcssa;$$0345468 = $$0345$lcssa;$$0401474 = $$0401$lcssa;$381 = $73;$382 = $76;$383 = $77;$384 = $71;$385 = $74; - label = 39; - break; - } - } - $80 = (_scanexp($0,$5)|0); - $81 = tempRet0; - $82 = ($80|0)==(0); - $83 = ($81|0)==(-2147483648); - $84 = $82 & $83; - if ($84) { - $85 = ($5|0)==(0); - if ($85) { - ___shlim($0,0); - $$1 = 0.0; - break; - } - $86 = HEAP32[$9>>2]|0; - $87 = ($86|0)==(0|0); - if ($87) { - $90 = 0;$91 = 0; - } else { - $88 = HEAP32[$8>>2]|0; - $89 = ((($88)) + -1|0); - HEAP32[$8>>2] = $89; - $90 = 0;$91 = 0; - } - } else { - $90 = $80;$91 = $81; - } - $92 = (_i64Add(($90|0),($91|0),($71|0),($74|0))|0); - $93 = tempRet0; - $$0341463 = $$0341$lcssa;$$0345467 = $$0345$lcssa;$$0401473 = $$0401$lcssa;$105 = $92;$106 = $73;$108 = $93;$109 = $76; - label = 41; - } - } while(0); - if ((label|0) == 37) { - $95 = HEAP32[$9>>2]|0; - $96 = ($95|0)==(0|0); - if ($96) { - $$0341464 = $$0341465;$$0345468 = $$0345469;$$0401474 = $$0401475;$381 = $376;$382 = $377;$383 = $380;$384 = $378;$385 = $379; - label = 39; - } else { - $97 = HEAP32[$8>>2]|0; - $98 = ((($97)) + -1|0); - HEAP32[$8>>2] = $98; - if ($380) { - $$0341463 = $$0341465;$$0345467 = $$0345469;$$0401473 = $$0401475;$105 = $378;$106 = $376;$108 = $379;$109 = $377; - label = 41; - } else { - label = 40; - } - } - } - if ((label|0) == 39) { - if ($383) { - $$0341463 = $$0341464;$$0345467 = $$0345468;$$0401473 = $$0401474;$105 = $384;$106 = $381;$108 = $385;$109 = $382; - label = 41; - } else { - label = 40; - } - } - do { - if ((label|0) == 40) { - $99 = (___errno_location()|0); - HEAP32[$99>>2] = 22; - ___shlim($0,0); - $$1 = 0.0; - } - else if ((label|0) == 41) { - $100 = HEAP32[$6>>2]|0; - $101 = ($100|0)==(0); - if ($101) { - $102 = (+($4|0)); - $103 = $102 * 0.0; - $$1 = $103; - break; - } - $104 = ($105|0)==($106|0); - $107 = ($108|0)==($109|0); - $110 = $104 & $107; - $111 = ($109|0)<(0); - $112 = ($106>>>0)<(10); - $113 = ($109|0)==(0); - $114 = $113 & $112; - $115 = $111 | $114; - $or$cond = $115 & $110; - if ($or$cond) { - $116 = ($2|0)>(30); - $117 = $100 >>> $2; - $118 = ($117|0)==(0); - $or$cond417 = $116 | $118; - if ($or$cond417) { - $119 = (+($4|0)); - $120 = (+($100>>>0)); - $121 = $119 * $120; - $$1 = $121; - break; - } - } - $122 = (($3|0) / -2)&-1; - $123 = ($122|0)<(0); - $124 = $123 << 31 >> 31; - $125 = ($108|0)>($124|0); - $126 = ($105>>>0)>($122>>>0); - $127 = ($108|0)==($124|0); - $128 = $127 & $126; - $129 = $125 | $128; - if ($129) { - $130 = (___errno_location()|0); - HEAP32[$130>>2] = 34; - $131 = (+($4|0)); - $132 = $131 * 1.7976931348623157E+308; - $133 = $132 * 1.7976931348623157E+308; - $$1 = $133; - break; - } - $134 = (($3) + -106)|0; - $135 = ($134|0)<(0); - $136 = $135 << 31 >> 31; - $137 = ($108|0)<($136|0); - $138 = ($105>>>0)<($134>>>0); - $139 = ($108|0)==($136|0); - $140 = $139 & $138; - $141 = $137 | $140; - if ($141) { - $142 = (___errno_location()|0); - HEAP32[$142>>2] = 34; - $143 = (+($4|0)); - $144 = $143 * 2.2250738585072014E-308; - $145 = $144 * 2.2250738585072014E-308; - $$1 = $145; - break; - } - $146 = ($$0341463|0)==(0); - if ($146) { - $$3348 = $$0345467; - } else { - $147 = ($$0341463|0)<(9); - if ($147) { - $148 = (($6) + ($$0345467<<2)|0); - $$promoted = HEAP32[$148>>2]|0; - $$3344503 = $$0341463;$150 = $$promoted; - while(1) { - $149 = ($150*10)|0; - $151 = (($$3344503) + 1)|0; - $exitcond551 = ($151|0)==(9); - if ($exitcond551) { - break; - } else { - $$3344503 = $151;$150 = $149; - } - } - HEAP32[$148>>2] = $149; - } - $152 = (($$0345467) + 1)|0; - $$3348 = $152; - } - $153 = ($$0401473|0)<(9); - if ($153) { - $154 = ($$0401473|0)<=($105|0); - $155 = ($105|0)<(18); - $or$cond5 = $154 & $155; - if ($or$cond5) { - $156 = ($105|0)==(9); - $157 = HEAP32[$6>>2]|0; - if ($156) { - $158 = (+($4|0)); - $159 = (+($157>>>0)); - $160 = $158 * $159; - $$1 = $160; - break; - } - $161 = ($105|0)<(9); - if ($161) { - $162 = (+($4|0)); - $163 = (+($157>>>0)); - $164 = $162 * $163; - $165 = (8 - ($105))|0; - $166 = (4332 + ($165<<2)|0); - $167 = HEAP32[$166>>2]|0; - $168 = (+($167|0)); - $169 = $164 / $168; - $$1 = $169; - break; - } - $$neg442 = Math_imul($105, -3)|0; - $$neg443 = (($2) + 27)|0; - $170 = (($$neg443) + ($$neg442))|0; - $171 = ($170|0)>(30); - $172 = $157 >>> $170; - $173 = ($172|0)==(0); - $or$cond419 = $171 | $173; - if ($or$cond419) { - $174 = (($105) + -10)|0; - $175 = (4332 + ($174<<2)|0); - $176 = (+($4|0)); - $177 = (+($157>>>0)); - $178 = $176 * $177; - $179 = HEAP32[$175>>2]|0; - $180 = (+($179|0)); - $181 = $178 * $180; - $$1 = $181; - break; - } - } - } - $182 = (($105|0) % 9)&-1; - $183 = ($182|0)==(0); - if ($183) { - $$0380$ph = 0;$$1373$ph448 = $$3348;$$2352$ph449 = 0;$$2387$ph447 = $105; - } else { - $184 = ($105|0)>(-1); - $185 = (($182) + 9)|0; - $186 = $184 ? $182 : $185; - $187 = (8 - ($186))|0; - $188 = (4332 + ($187<<2)|0); - $189 = HEAP32[$188>>2]|0; - $190 = ($$3348|0)==(0); - if ($190) { - $$0350$lcssa554 = 0;$$0372 = 0;$$0385$lcssa553 = $105; - } else { - $191 = (1000000000 / ($189|0))&-1; - $$0340496 = 0;$$0350494 = 0;$$0385493 = $105;$$4349495 = 0; - while(1) { - $192 = (($6) + ($$4349495<<2)|0); - $193 = HEAP32[$192>>2]|0; - $194 = (($193>>>0) % ($189>>>0))&-1; - $195 = (($193>>>0) / ($189>>>0))&-1; - $196 = (($195) + ($$0340496))|0; - HEAP32[$192>>2] = $196; - $197 = Math_imul($191, $194)|0; - $198 = ($$4349495|0)==($$0350494|0); - $199 = ($196|0)==(0); - $or$cond420 = $198 & $199; - $200 = (($$0350494) + 1)|0; - $201 = $200 & 127; - $202 = (($$0385493) + -9)|0; - $$$0385 = $or$cond420 ? $202 : $$0385493; - $$$0350 = $or$cond420 ? $201 : $$0350494; - $203 = (($$4349495) + 1)|0; - $204 = ($203|0)==($$3348|0); - if ($204) { - break; - } else { - $$0340496 = $197;$$0350494 = $$$0350;$$0385493 = $$$0385;$$4349495 = $203; - } - } - $205 = ($197|0)==(0); - if ($205) { - $$0350$lcssa554 = $$$0350;$$0372 = $$3348;$$0385$lcssa553 = $$$0385; - } else { - $206 = (($6) + ($$3348<<2)|0); - $207 = (($$3348) + 1)|0; - HEAP32[$206>>2] = $197; - $$0350$lcssa554 = $$$0350;$$0372 = $207;$$0385$lcssa553 = $$$0385; - } - } - $208 = (9 - ($186))|0; - $209 = (($208) + ($$0385$lcssa553))|0; - $$0380$ph = 0;$$1373$ph448 = $$0372;$$2352$ph449 = $$0350$lcssa554;$$2387$ph447 = $209; - } - L101: while(1) { - $210 = ($$2387$ph447|0)<(18); - $211 = ($$2387$ph447|0)==(18); - $212 = (($6) + ($$2352$ph449<<2)|0); - $$0380 = $$0380$ph;$$1373 = $$1373$ph448; - while(1) { - if (!($210)) { - if (!($211)) { - $$1381$ph = $$0380;$$4354$ph = $$2352$ph449;$$4389$ph445 = $$2387$ph447;$$6378$ph = $$1373; - break L101; - } - $213 = HEAP32[$212>>2]|0; - $214 = ($213>>>0)<(9007199); - if (!($214)) { - $$1381$ph = $$0380;$$4354$ph = $$2352$ph449;$$4389$ph445 = 18;$$6378$ph = $$1373; - break L101; - } - } - $215 = (($$1373) + 127)|0; - $$0334 = 0;$$2374 = $$1373;$$5$in = $215; - while(1) { - $$5 = $$5$in & 127; - $216 = (($6) + ($$5<<2)|0); - $217 = HEAP32[$216>>2]|0; - $218 = (_bitshift64Shl(($217|0),0,29)|0); - $219 = tempRet0; - $220 = (_i64Add(($218|0),($219|0),($$0334|0),0)|0); - $221 = tempRet0; - $222 = ($221>>>0)>(0); - $223 = ($220>>>0)>(1000000000); - $224 = ($221|0)==(0); - $225 = $224 & $223; - $226 = $222 | $225; - if ($226) { - $227 = (___udivdi3(($220|0),($221|0),1000000000,0)|0); - $228 = tempRet0; - $229 = (___uremdi3(($220|0),($221|0),1000000000,0)|0); - $230 = tempRet0; - $$1335 = $227;$$sink421$off0 = $229; - } else { - $$1335 = 0;$$sink421$off0 = $220; - } - HEAP32[$216>>2] = $$sink421$off0; - $231 = (($$2374) + 127)|0; - $232 = $231 & 127; - $233 = ($$5|0)!=($232|0); - $234 = ($$5|0)==($$2352$ph449|0); - $or$cond422 = $233 | $234; - $or$cond422$not = $or$cond422 ^ 1; - $235 = ($$sink421$off0|0)==(0); - $or$cond423 = $235 & $or$cond422$not; - $$3375 = $or$cond423 ? $$5 : $$2374; - $236 = (($$5) + -1)|0; - if ($234) { - break; - } else { - $$0334 = $$1335;$$2374 = $$3375;$$5$in = $236; - } - } - $237 = (($$0380) + -29)|0; - $238 = ($$1335|0)==(0); - if ($238) { - $$0380 = $237;$$1373 = $$3375; - } else { - break; - } - } - $239 = (($$2387$ph447) + 9)|0; - $240 = (($$2352$ph449) + 127)|0; - $241 = $240 & 127; - $242 = ($241|0)==($$3375|0); - $243 = (($$3375) + 127)|0; - $244 = $243 & 127; - $245 = (($$3375) + 126)|0; - $246 = $245 & 127; - $247 = (($6) + ($246<<2)|0); - if ($242) { - $248 = (($6) + ($244<<2)|0); - $249 = HEAP32[$248>>2]|0; - $250 = HEAP32[$247>>2]|0; - $251 = $250 | $249; - HEAP32[$247>>2] = $251; - $$4376 = $244; - } else { - $$4376 = $$3375; - } - $252 = (($6) + ($241<<2)|0); - HEAP32[$252>>2] = $$1335; - $$0380$ph = $237;$$1373$ph448 = $$4376;$$2352$ph449 = $241;$$2387$ph447 = $239; - } - L119: while(1) { - $289 = (($$6378$ph) + 1)|0; - $287 = $289 & 127; - $290 = (($$6378$ph) + 127)|0; - $291 = $290 & 127; - $292 = (($6) + ($291<<2)|0); - $$1381$ph558 = $$1381$ph;$$4354$ph559 = $$4354$ph;$$4389$ph = $$4389$ph445; - while(1) { - $265 = ($$4389$ph|0)==(18); - $293 = ($$4389$ph|0)>(27); - $$425 = $293 ? 9 : 1; - $$1381 = $$1381$ph558;$$4354 = $$4354$ph559; - while(1) { - $$0336486 = 0; - while(1) { - $253 = (($$0336486) + ($$4354))|0; - $254 = $253 & 127; - $255 = ($254|0)==($$6378$ph|0); - if ($255) { - $$1337 = 2; - label = 88; - break; - } - $256 = (($6) + ($254<<2)|0); - $257 = HEAP32[$256>>2]|0; - $258 = (4364 + ($$0336486<<2)|0); - $259 = HEAP32[$258>>2]|0; - $260 = ($257>>>0)<($259>>>0); - if ($260) { - $$1337 = 2; - label = 88; - break; - } - $261 = ($257>>>0)>($259>>>0); - if ($261) { - break; - } - $262 = (($$0336486) + 1)|0; - $263 = ($262|0)<(2); - if ($263) { - $$0336486 = $262; - } else { - $$1337 = $262; - label = 88; - break; - } - } - if ((label|0) == 88) { - label = 0; - $264 = ($$1337|0)==(2); - $or$cond11 = $265 & $264; - if ($or$cond11) { - $$0365484 = 0.0;$$4485 = 0;$$9483 = $$6378$ph; - break L119; - } - } - $266 = (($$425) + ($$1381))|0; - $267 = ($$4354|0)==($$6378$ph|0); - if ($267) { - $$1381 = $266;$$4354 = $$6378$ph; - } else { - break; - } - } - $268 = 1 << $$425; - $269 = (($268) + -1)|0; - $270 = 1000000000 >>> $$425; - $$0332490 = 0;$$5355488 = $$4354;$$5390487 = $$4389$ph;$$6489 = $$4354; - while(1) { - $271 = (($6) + ($$6489<<2)|0); - $272 = HEAP32[$271>>2]|0; - $273 = $272 & $269; - $274 = $272 >>> $$425; - $275 = (($274) + ($$0332490))|0; - HEAP32[$271>>2] = $275; - $276 = Math_imul($273, $270)|0; - $277 = ($$6489|0)==($$5355488|0); - $278 = ($275|0)==(0); - $or$cond426 = $277 & $278; - $279 = (($$5355488) + 1)|0; - $280 = $279 & 127; - $281 = (($$5390487) + -9)|0; - $$$5390 = $or$cond426 ? $281 : $$5390487; - $$$5355 = $or$cond426 ? $280 : $$5355488; - $282 = (($$6489) + 1)|0; - $283 = $282 & 127; - $284 = ($283|0)==($$6378$ph|0); - if ($284) { - break; - } else { - $$0332490 = $276;$$5355488 = $$$5355;$$5390487 = $$$5390;$$6489 = $283; - } - } - $285 = ($276|0)==(0); - if ($285) { - $$1381$ph558 = $266;$$4354$ph559 = $$$5355;$$4389$ph = $$$5390; - continue; - } - $286 = ($287|0)==($$$5355|0); - if (!($286)) { - break; - } - $294 = HEAP32[$292>>2]|0; - $295 = $294 | 1; - HEAP32[$292>>2] = $295; - $$1381$ph558 = $266;$$4354$ph559 = $$$5355;$$4389$ph = $$$5390; - } - $288 = (($6) + ($$6378$ph<<2)|0); - HEAP32[$288>>2] = $276; - $$1381$ph = $266;$$4354$ph = $$$5355;$$4389$ph445 = $$$5390;$$6378$ph = $287; - } - while(1) { - $296 = (($$4485) + ($$4354))|0; - $297 = $296 & 127; - $298 = ($297|0)==($$9483|0); - $299 = (($$9483) + 1)|0; - $300 = $299 & 127; - if ($298) { - $301 = (($300) + -1)|0; - $302 = (($6) + ($301<<2)|0); - HEAP32[$302>>2] = 0; - $$10 = $300; - } else { - $$10 = $$9483; - } - $303 = $$0365484 * 1.0E+9; - $304 = (($6) + ($297<<2)|0); - $305 = HEAP32[$304>>2]|0; - $306 = (+($305>>>0)); - $307 = $303 + $306; - $308 = (($$4485) + 1)|0; - $exitcond = ($308|0)==(2); - if ($exitcond) { - break; - } else { - $$0365484 = $307;$$4485 = $308;$$9483 = $$10; - } - } - $309 = (+($4|0)); - $310 = $309 * $307; - $311 = (($$1381) + 53)|0; - $312 = (($311) - ($3))|0; - $313 = ($312|0)<($2|0); - $314 = ($312|0)>(0); - $$ = $314 ? $312 : 0; - $$0333 = $313 ? $$ : $2; - $315 = ($$0333|0)<(53); - if ($315) { - $316 = (105 - ($$0333))|0; - $317 = (+_scalbn(1.0,$316)); - $318 = (+_copysignl($317,$310)); - $319 = (53 - ($$0333))|0; - $320 = (+_scalbn(1.0,$319)); - $321 = (+_fmodl($310,$320)); - $322 = $310 - $321; - $323 = $318 + $322; - $$0360 = $318;$$0361 = $321;$$1366 = $323; - } else { - $$0360 = 0.0;$$0361 = 0.0;$$1366 = $310; - } - $324 = (($$4354) + 2)|0; - $325 = $324 & 127; - $326 = ($325|0)==($$10|0); - if ($326) { - $$3364 = $$0361; - } else { - $327 = (($6) + ($325<<2)|0); - $328 = HEAP32[$327>>2]|0; - $329 = ($328>>>0)<(500000000); - do { - if ($329) { - $330 = ($328|0)==(0); - if ($330) { - $331 = (($$4354) + 3)|0; - $332 = $331 & 127; - $333 = ($332|0)==($$10|0); - if ($333) { - $$1362 = $$0361; - break; - } - } - $334 = $309 * 0.25; - $335 = $334 + $$0361; - $$1362 = $335; - } else { - $336 = ($328|0)==(500000000); - if (!($336)) { - $337 = $309 * 0.75; - $338 = $337 + $$0361; - $$1362 = $338; - break; - } - $339 = (($$4354) + 3)|0; - $340 = $339 & 127; - $341 = ($340|0)==($$10|0); - if ($341) { - $342 = $309 * 0.5; - $343 = $342 + $$0361; - $$1362 = $343; - break; - } else { - $344 = $309 * 0.75; - $345 = $344 + $$0361; - $$1362 = $345; - break; - } - } - } while(0); - $346 = (53 - ($$0333))|0; - $347 = ($346|0)>(1); - if ($347) { - $348 = (+_fmodl($$1362,1.0)); - $349 = $348 != 0.0; - if ($349) { - $$3364 = $$1362; - } else { - $350 = $$1362 + 1.0; - $$3364 = $350; - } - } else { - $$3364 = $$1362; - } - } - $351 = $$1366 + $$3364; - $352 = $351 - $$0360; - $353 = $311 & 2147483647; - $354 = (-2 - ($sum))|0; - $355 = ($353|0)>($354|0); - do { - if ($355) { - $356 = (+Math_abs((+$352))); - $357 = !($356 >= 9007199254740992.0); - $358 = $352 * 0.5; - $not$ = $357 ^ 1; - $359 = $not$&1; - $$3383 = (($359) + ($$1381))|0; - $$2367 = $357 ? $352 : $358; - $360 = (($$3383) + 50)|0; - $361 = ($360|0)>($7|0); - if (!($361)) { - $362 = ($$0333|0)!=($312|0); - $narrow = $362 | $357; - $$2371$v = $313 & $narrow; - $363 = $$3364 != 0.0; - $or$cond14 = $363 & $$2371$v; - if (!($or$cond14)) { - $$3368 = $$2367;$$4384 = $$3383; - break; - } - } - $364 = (___errno_location()|0); - HEAP32[$364>>2] = 34; - $$3368 = $$2367;$$4384 = $$3383; - } else { - $$3368 = $352;$$4384 = $$1381; - } - } while(0); - $365 = (+_scalbnl($$3368,$$4384)); - $$1 = $365; - } - } while(0); - STACKTOP = sp;return (+$$1); -} -function _scanexp($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$04861 = 0, $$049 = 0, $$1$be = 0, $$160 = 0, $$2$be = 0, $$2$lcssa = 0, $$254 = 0, $$3$be = 0, $$lcssa = 0, $$pre = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; - var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; - var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; - var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; - var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($0)) + 4|0); - $3 = HEAP32[$2>>2]|0; - $4 = ((($0)) + 100|0); - $5 = HEAP32[$4>>2]|0; - $6 = ($3>>>0)<($5>>>0); - if ($6) { - $7 = ((($3)) + 1|0); - HEAP32[$2>>2] = $7; - $8 = HEAP8[$3>>0]|0; - $9 = $8&255; - $11 = $9; - } else { - $10 = (___shgetc($0)|0); - $11 = $10; - } - switch ($11|0) { - case 43: case 45: { - $12 = ($11|0)==(45); - $13 = $12&1; - $14 = HEAP32[$2>>2]|0; - $15 = HEAP32[$4>>2]|0; - $16 = ($14>>>0)<($15>>>0); - if ($16) { - $17 = ((($14)) + 1|0); - HEAP32[$2>>2] = $17; - $18 = HEAP8[$14>>0]|0; - $19 = $18&255; - $22 = $19; - } else { - $20 = (___shgetc($0)|0); - $22 = $20; - } - $21 = (($22) + -48)|0; - $23 = ($21>>>0)>(9); - $24 = ($1|0)!=(0); - $or$cond3 = $24 & $23; - if ($or$cond3) { - $25 = HEAP32[$4>>2]|0; - $26 = ($25|0)==(0|0); - if ($26) { - $$0 = $13;$$049 = $22; - } else { - $27 = HEAP32[$2>>2]|0; - $28 = ((($27)) + -1|0); - HEAP32[$2>>2] = $28; - $$0 = $13;$$049 = $22; - } - } else { - $$0 = $13;$$049 = $22; - } - break; - } - default: { - $$0 = 0;$$049 = $11; - } - } - $29 = (($$049) + -48)|0; - $30 = ($29>>>0)>(9); - if ($30) { - $31 = HEAP32[$4>>2]|0; - $32 = ($31|0)==(0|0); - if ($32) { - $100 = -2147483648;$101 = 0; - } else { - $33 = HEAP32[$2>>2]|0; - $34 = ((($33)) + -1|0); - HEAP32[$2>>2] = $34; - $100 = -2147483648;$101 = 0; - } - } else { - $$04861 = 0;$$160 = $$049; - while(1) { - $35 = ($$04861*10)|0; - $36 = (($$160) + -48)|0; - $37 = (($36) + ($35))|0; - $38 = HEAP32[$2>>2]|0; - $39 = HEAP32[$4>>2]|0; - $40 = ($38>>>0)<($39>>>0); - if ($40) { - $41 = ((($38)) + 1|0); - HEAP32[$2>>2] = $41; - $42 = HEAP8[$38>>0]|0; - $43 = $42&255; - $$1$be = $43; - } else { - $44 = (___shgetc($0)|0); - $$1$be = $44; - } - $45 = (($$1$be) + -48)|0; - $46 = ($45>>>0)<(10); - $47 = ($37|0)<(214748364); - $48 = $46 & $47; - if ($48) { - $$04861 = $37;$$160 = $$1$be; - } else { - break; - } - } - $49 = ($37|0)<(0); - $50 = $49 << 31 >> 31; - $51 = (($$1$be) + -48)|0; - $52 = ($51>>>0)<(10); - if ($52) { - $$254 = $$1$be;$56 = $37;$57 = $50; - while(1) { - $58 = (___muldi3(($56|0),($57|0),10,0)|0); - $59 = tempRet0; - $60 = ($$254|0)<(0); - $61 = $60 << 31 >> 31; - $62 = (_i64Add(($$254|0),($61|0),-48,-1)|0); - $63 = tempRet0; - $64 = (_i64Add(($62|0),($63|0),($58|0),($59|0))|0); - $65 = tempRet0; - $66 = HEAP32[$2>>2]|0; - $67 = HEAP32[$4>>2]|0; - $68 = ($66>>>0)<($67>>>0); - if ($68) { - $69 = ((($66)) + 1|0); - HEAP32[$2>>2] = $69; - $70 = HEAP8[$66>>0]|0; - $71 = $70&255; - $$2$be = $71; - } else { - $72 = (___shgetc($0)|0); - $$2$be = $72; - } - $73 = (($$2$be) + -48)|0; - $74 = ($73>>>0)<(10); - $75 = ($65|0)<(21474836); - $76 = ($64>>>0)<(2061584302); - $77 = ($65|0)==(21474836); - $78 = $77 & $76; - $79 = $75 | $78; - $80 = $74 & $79; - if ($80) { - $$254 = $$2$be;$56 = $64;$57 = $65; - } else { - $$2$lcssa = $$2$be;$94 = $64;$95 = $65; - break; - } - } - } else { - $$2$lcssa = $$1$be;$94 = $37;$95 = $50; - } - $53 = (($$2$lcssa) + -48)|0; - $54 = ($53>>>0)<(10); - $55 = HEAP32[$4>>2]|0; - if ($54) { - $83 = $55; - while(1) { - $81 = HEAP32[$2>>2]|0; - $82 = ($81>>>0)<($83>>>0); - if ($82) { - $84 = ((($81)) + 1|0); - HEAP32[$2>>2] = $84; - $85 = HEAP8[$81>>0]|0; - $86 = $85&255; - $$3$be = $86;$102 = $83; - } else { - $87 = (___shgetc($0)|0); - $$pre = HEAP32[$4>>2]|0; - $$3$be = $87;$102 = $$pre; - } - $88 = (($$3$be) + -48)|0; - $89 = ($88>>>0)<(10); - if ($89) { - $83 = $102; - } else { - $$lcssa = $102; - break; - } - } - } else { - $$lcssa = $55; - } - $90 = ($$lcssa|0)==(0|0); - if (!($90)) { - $91 = HEAP32[$2>>2]|0; - $92 = ((($91)) + -1|0); - HEAP32[$2>>2] = $92; - } - $93 = ($$0|0)!=(0); - $96 = (_i64Subtract(0,0,($94|0),($95|0))|0); - $97 = tempRet0; - $98 = $93 ? $96 : $94; - $99 = $93 ? $97 : $95; - $100 = $99;$101 = $98; - } - tempRet0 = ($100); - return ($101|0); -} -function _scalbn($0,$1) { - $0 = +$0; - $1 = $1|0; - var $$ = 0, $$$ = 0, $$0 = 0.0, $$020 = 0, $$1 = 0, $$1$ = 0, $$21 = 0.0, $$22 = 0.0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0.0; - var $3 = 0.0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)>(1023); - if ($2) { - $3 = $0 * 8.9884656743115795E+307; - $4 = (($1) + -1023)|0; - $5 = ($4|0)>(1023); - $6 = $3 * 8.9884656743115795E+307; - $7 = (($1) + -2046)|0; - $8 = ($7|0)<(1023); - $$ = $8 ? $7 : 1023; - $$$ = $5 ? $$ : $4; - $$21 = $5 ? $6 : $3; - $$0 = $$21;$$020 = $$$; - } else { - $9 = ($1|0)<(-1022); - if ($9) { - $10 = $0 * 2.2250738585072014E-308; - $11 = (($1) + 1022)|0; - $12 = ($11|0)<(-1022); - $13 = $10 * 2.2250738585072014E-308; - $14 = (($1) + 2044)|0; - $15 = ($14|0)>(-1022); - $$1 = $15 ? $14 : -1022; - $$1$ = $12 ? $$1 : $11; - $$22 = $12 ? $13 : $10; - $$0 = $$22;$$020 = $$1$; - } else { - $$0 = $0;$$020 = $1; - } - } - $16 = (($$020) + 1023)|0; - $17 = (_bitshift64Shl(($16|0),0,52)|0); - $18 = tempRet0; - HEAP32[tempDoublePtr>>2] = $17;HEAP32[tempDoublePtr+4>>2] = $18;$19 = +HEAPF64[tempDoublePtr>>3]; - $20 = $$0 * $19; - return (+$20); -} -function _copysignl($0,$1) { - $0 = +$0; - $1 = +$1; - var $2 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (+_copysign($0,$1)); - return (+$2); -} -function _fmodl($0,$1) { - $0 = +$0; - $1 = +$1; - var $2 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (+_fmod($0,$1)); - return (+$2); -} -function _scalbnl($0,$1) { - $0 = +$0; - $1 = $1|0; - var $2 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (+_scalbn($0,$1)); - return (+$2); -} -function _fmod($0,$1) { - $0 = +$0; - $1 = +$1; - var $$ = 0.0, $$070 = 0.0, $$071$lcssa = 0, $$07194 = 0, $$073$lcssa = 0, $$073100 = 0, $$172$ph = 0, $$174 = 0, $$275$lcssa = 0, $$27586 = 0, $$376$lcssa = 0, $$37683 = 0, $$lcssa = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0.0, $104 = 0, $105 = 0; - var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; - var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0.0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; - var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0.0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; - var $160 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; - var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; - var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; - var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; - $3 = HEAP32[tempDoublePtr+4>>2]|0; - HEAPF64[tempDoublePtr>>3] = $1;$4 = HEAP32[tempDoublePtr>>2]|0; - $5 = HEAP32[tempDoublePtr+4>>2]|0; - $6 = (_bitshift64Lshr(($2|0),($3|0),52)|0); - $7 = tempRet0; - $8 = $6 & 2047; - $9 = (_bitshift64Lshr(($4|0),($5|0),52)|0); - $10 = tempRet0; - $11 = $9 & 2047; - $12 = $3 & -2147483648; - $13 = (_bitshift64Shl(($4|0),($5|0),1)|0); - $14 = tempRet0; - $15 = ($13|0)==(0); - $16 = ($14|0)==(0); - $17 = $15 & $16; - L1: do { - if ($17) { - label = 3; - } else { - $18 = (___DOUBLE_BITS_272($1)|0); - $19 = tempRet0; - $20 = $19 & 2147483647; - $21 = ($20>>>0)>(2146435072); - $22 = ($18>>>0)>(0); - $23 = ($20|0)==(2146435072); - $24 = $23 & $22; - $25 = $21 | $24; - $26 = ($8|0)==(2047); - $or$cond = $26 | $25; - if ($or$cond) { - label = 3; - } else { - $29 = (_bitshift64Shl(($2|0),($3|0),1)|0); - $30 = tempRet0; - $31 = ($30>>>0)>($14>>>0); - $32 = ($29>>>0)>($13>>>0); - $33 = ($30|0)==($14|0); - $34 = $33 & $32; - $35 = $31 | $34; - if (!($35)) { - $36 = ($29|0)==($13|0); - $37 = ($30|0)==($14|0); - $38 = $36 & $37; - $39 = $0 * 0.0; - $$ = $38 ? $39 : $0; - return (+$$); - } - $40 = ($8|0)==(0); - if ($40) { - $41 = (_bitshift64Shl(($2|0),($3|0),12)|0); - $42 = tempRet0; - $43 = ($42|0)>(-1); - $44 = ($41>>>0)>(4294967295); - $45 = ($42|0)==(-1); - $46 = $45 & $44; - $47 = $43 | $46; - if ($47) { - $$073100 = 0;$49 = $41;$50 = $42; - while(1) { - $48 = (($$073100) + -1)|0; - $51 = (_bitshift64Shl(($49|0),($50|0),1)|0); - $52 = tempRet0; - $53 = ($52|0)>(-1); - $54 = ($51>>>0)>(4294967295); - $55 = ($52|0)==(-1); - $56 = $55 & $54; - $57 = $53 | $56; - if ($57) { - $$073100 = $48;$49 = $51;$50 = $52; - } else { - $$073$lcssa = $48; - break; - } - } - } else { - $$073$lcssa = 0; - } - $58 = (1 - ($$073$lcssa))|0; - $59 = (_bitshift64Shl(($2|0),($3|0),($58|0))|0); - $60 = tempRet0; - $$174 = $$073$lcssa;$87 = $59;$88 = $60; - } else { - $61 = $3 & 1048575; - $62 = $61 | 1048576; - $$174 = $8;$87 = $2;$88 = $62; - } - $63 = ($11|0)==(0); - if ($63) { - $64 = (_bitshift64Shl(($4|0),($5|0),12)|0); - $65 = tempRet0; - $66 = ($65|0)>(-1); - $67 = ($64>>>0)>(4294967295); - $68 = ($65|0)==(-1); - $69 = $68 & $67; - $70 = $66 | $69; - if ($70) { - $$07194 = 0;$72 = $64;$73 = $65; - while(1) { - $71 = (($$07194) + -1)|0; - $74 = (_bitshift64Shl(($72|0),($73|0),1)|0); - $75 = tempRet0; - $76 = ($75|0)>(-1); - $77 = ($74>>>0)>(4294967295); - $78 = ($75|0)==(-1); - $79 = $78 & $77; - $80 = $76 | $79; - if ($80) { - $$07194 = $71;$72 = $74;$73 = $75; - } else { - $$071$lcssa = $71; - break; - } - } - } else { - $$071$lcssa = 0; - } - $81 = (1 - ($$071$lcssa))|0; - $82 = (_bitshift64Shl(($4|0),($5|0),($81|0))|0); - $83 = tempRet0; - $$172$ph = $$071$lcssa;$89 = $82;$90 = $83; - } else { - $84 = $5 & 1048575; - $85 = $84 | 1048576; - $$172$ph = $11;$89 = $4;$90 = $85; - } - $86 = ($$174|0)>($$172$ph|0); - $91 = (_i64Subtract(($87|0),($88|0),($89|0),($90|0))|0); - $92 = tempRet0; - $93 = ($92|0)>(-1); - $94 = ($91>>>0)>(4294967295); - $95 = ($92|0)==(-1); - $96 = $95 & $94; - $97 = $93 | $96; - L23: do { - if ($86) { - $$27586 = $$174;$101 = $92;$156 = $97;$157 = $87;$158 = $88;$99 = $91; - while(1) { - if ($156) { - $98 = ($99|0)==(0); - $100 = ($101|0)==(0); - $102 = $98 & $100; - if ($102) { - break; - } else { - $104 = $99;$105 = $101; - } - } else { - $104 = $157;$105 = $158; - } - $106 = (_bitshift64Shl(($104|0),($105|0),1)|0); - $107 = tempRet0; - $108 = (($$27586) + -1)|0; - $109 = ($108|0)>($$172$ph|0); - $110 = (_i64Subtract(($106|0),($107|0),($89|0),($90|0))|0); - $111 = tempRet0; - $112 = ($111|0)>(-1); - $113 = ($110>>>0)>(4294967295); - $114 = ($111|0)==(-1); - $115 = $114 & $113; - $116 = $112 | $115; - if ($109) { - $$27586 = $108;$101 = $111;$156 = $116;$157 = $106;$158 = $107;$99 = $110; - } else { - $$275$lcssa = $108;$$lcssa = $116;$118 = $110;$120 = $111;$159 = $106;$160 = $107; - break L23; - } - } - $103 = $0 * 0.0; - $$070 = $103; - break L1; - } else { - $$275$lcssa = $$174;$$lcssa = $97;$118 = $91;$120 = $92;$159 = $87;$160 = $88; - } - } while(0); - if ($$lcssa) { - $117 = ($118|0)==(0); - $119 = ($120|0)==(0); - $121 = $117 & $119; - if ($121) { - $129 = $0 * 0.0; - $$070 = $129; - break; - } else { - $123 = $120;$125 = $118; - } - } else { - $123 = $160;$125 = $159; - } - $122 = ($123>>>0)<(1048576); - $124 = ($125>>>0)<(0); - $126 = ($123|0)==(1048576); - $127 = $126 & $124; - $128 = $122 | $127; - if ($128) { - $$37683 = $$275$lcssa;$130 = $125;$131 = $123; - while(1) { - $132 = (_bitshift64Shl(($130|0),($131|0),1)|0); - $133 = tempRet0; - $134 = (($$37683) + -1)|0; - $135 = ($133>>>0)<(1048576); - $136 = ($132>>>0)<(0); - $137 = ($133|0)==(1048576); - $138 = $137 & $136; - $139 = $135 | $138; - if ($139) { - $$37683 = $134;$130 = $132;$131 = $133; - } else { - $$376$lcssa = $134;$141 = $132;$142 = $133; - break; - } - } - } else { - $$376$lcssa = $$275$lcssa;$141 = $125;$142 = $123; - } - $140 = ($$376$lcssa|0)>(0); - if ($140) { - $143 = (_i64Add(($141|0),($142|0),0,-1048576)|0); - $144 = tempRet0; - $145 = (_bitshift64Shl(($$376$lcssa|0),0,52)|0); - $146 = tempRet0; - $147 = $143 | $145; - $148 = $144 | $146; - $153 = $148;$155 = $147; - } else { - $149 = (1 - ($$376$lcssa))|0; - $150 = (_bitshift64Lshr(($141|0),($142|0),($149|0))|0); - $151 = tempRet0; - $153 = $151;$155 = $150; - } - $152 = $153 | $12; - HEAP32[tempDoublePtr>>2] = $155;HEAP32[tempDoublePtr+4>>2] = $152;$154 = +HEAPF64[tempDoublePtr>>3]; - $$070 = $154; - } - } - } while(0); - if ((label|0) == 3) { - $27 = $0 * $1; - $28 = $27 / $27; - $$070 = $28; - } - return (+$$070); -} -function ___DOUBLE_BITS_272($0) { - $0 = +$0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; - $2 = HEAP32[tempDoublePtr+4>>2]|0; - tempRet0 = ($2); - return ($1|0); -} -function _strlen($0) { - $0 = $0|0; - var $$0 = 0, $$015$lcssa = 0, $$01519 = 0, $$1$lcssa = 0, $$pn = 0, $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = $0; - $2 = $1 & 3; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $$015$lcssa = $0; - label = 4; - } else { - $$01519 = $0;$23 = $1; - while(1) { - $4 = HEAP8[$$01519>>0]|0; - $5 = ($4<<24>>24)==(0); - if ($5) { - $$sink = $23; - break L1; - } - $6 = ((($$01519)) + 1|0); - $7 = $6; - $8 = $7 & 3; - $9 = ($8|0)==(0); - if ($9) { - $$015$lcssa = $6; - label = 4; - break; - } else { - $$01519 = $6;$23 = $7; - } - } - } - } while(0); - if ((label|0) == 4) { - $$0 = $$015$lcssa; - while(1) { - $10 = HEAP32[$$0>>2]|0; - $11 = (($10) + -16843009)|0; - $12 = $10 & -2139062144; - $13 = $12 ^ -2139062144; - $14 = $13 & $11; - $15 = ($14|0)==(0); - $16 = ((($$0)) + 4|0); - if ($15) { - $$0 = $16; - } else { - break; - } - } - $17 = $10&255; - $18 = ($17<<24>>24)==(0); - if ($18) { - $$1$lcssa = $$0; - } else { - $$pn = $$0; - while(1) { - $19 = ((($$pn)) + 1|0); - $$pre = HEAP8[$19>>0]|0; - $20 = ($$pre<<24>>24)==(0); - if ($20) { - $$1$lcssa = $19; - break; - } else { - $$pn = $19; - } - } - } - $21 = $$1$lcssa; - $$sink = $21; - } - $22 = (($$sink) - ($1))|0; - return ($22|0); -} -function _strchr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (___strchrnul($0,$1)|0); - $3 = HEAP8[$2>>0]|0; - $4 = $1&255; - $5 = ($3<<24>>24)==($4<<24>>24); - $6 = $5 ? $2 : 0; - return ($6|0); -} -function ___strchrnul($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$029$lcssa = 0, $$02936 = 0, $$030$lcssa = 0, $$03039 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond33 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = $1 & 255; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $8 = (_strlen($0)|0); - $9 = (($0) + ($8)|0); - $$0 = $9; - } else { - $4 = $0; - $5 = $4 & 3; - $6 = ($5|0)==(0); - if ($6) { - $$030$lcssa = $0; - } else { - $7 = $1&255; - $$03039 = $0; - while(1) { - $10 = HEAP8[$$03039>>0]|0; - $11 = ($10<<24>>24)==(0); - $12 = ($10<<24>>24)==($7<<24>>24); - $or$cond = $11 | $12; - if ($or$cond) { - $$0 = $$03039; - break L1; - } - $13 = ((($$03039)) + 1|0); - $14 = $13; - $15 = $14 & 3; - $16 = ($15|0)==(0); - if ($16) { - $$030$lcssa = $13; - break; - } else { - $$03039 = $13; - } - } - } - $17 = Math_imul($2, 16843009)|0; - $18 = HEAP32[$$030$lcssa>>2]|0; - $19 = (($18) + -16843009)|0; - $20 = $18 & -2139062144; - $21 = $20 ^ -2139062144; - $22 = $21 & $19; - $23 = ($22|0)==(0); - L10: do { - if ($23) { - $$02936 = $$030$lcssa;$25 = $18; - while(1) { - $24 = $25 ^ $17; - $26 = (($24) + -16843009)|0; - $27 = $24 & -2139062144; - $28 = $27 ^ -2139062144; - $29 = $28 & $26; - $30 = ($29|0)==(0); - if (!($30)) { - $$029$lcssa = $$02936; - break L10; - } - $31 = ((($$02936)) + 4|0); - $32 = HEAP32[$31>>2]|0; - $33 = (($32) + -16843009)|0; - $34 = $32 & -2139062144; - $35 = $34 ^ -2139062144; - $36 = $35 & $33; - $37 = ($36|0)==(0); - if ($37) { - $$02936 = $31;$25 = $32; - } else { - $$029$lcssa = $31; - break; - } - } - } else { - $$029$lcssa = $$030$lcssa; - } - } while(0); - $38 = $1&255; - $$1 = $$029$lcssa; - while(1) { - $39 = HEAP8[$$1>>0]|0; - $40 = ($39<<24>>24)==(0); - $41 = ($39<<24>>24)==($38<<24>>24); - $or$cond33 = $40 | $41; - $42 = ((($$1)) + 1|0); - if ($or$cond33) { - $$0 = $$1; - break; - } else { - $$1 = $42; - } - } - } - } while(0); - return ($$0|0); -} -function _mbrtowc($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$ = 0, $$0 = 0, $$03952 = 0, $$04051 = 0, $$04350 = 0, $$1 = 0, $$141 = 0, $$144 = 0, $$2 = 0, $$47 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; - var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; - var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var $not$ = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = sp; - $5 = ($3|0)==(0|0); - $$ = $5 ? 23384 : $3; - $6 = HEAP32[$$>>2]|0; - $7 = ($1|0)==(0|0); - L1: do { - if ($7) { - $8 = ($6|0)==(0); - if ($8) { - $$0 = 0; - } else { - label = 17; - } - } else { - $9 = ($0|0)==(0|0); - $$47 = $9 ? $4 : $0; - $10 = ($2|0)==(0); - if ($10) { - $$0 = -2; - } else { - $11 = ($6|0)==(0); - if ($11) { - $12 = HEAP8[$1>>0]|0; - $13 = ($12<<24>>24)>(-1); - if ($13) { - $14 = $12&255; - HEAP32[$$47>>2] = $14; - $15 = ($12<<24>>24)!=(0); - $16 = $15&1; - $$0 = $16; - break; - } - $17 = (___pthread_self_439()|0); - $18 = ((($17)) + 188|0); - $19 = HEAP32[$18>>2]|0; - $20 = HEAP32[$19>>2]|0; - $not$ = ($20|0)==(0|0); - $21 = HEAP8[$1>>0]|0; - if ($not$) { - $22 = $21 << 24 >> 24; - $23 = $22 & 57343; - HEAP32[$$47>>2] = $23; - $$0 = 1; - break; - } - $24 = $21&255; - $25 = (($24) + -194)|0; - $26 = ($25>>>0)>(50); - if ($26) { - label = 17; - break; - } - $27 = ((($1)) + 1|0); - $28 = (3628 + ($25<<2)|0); - $29 = HEAP32[$28>>2]|0; - $30 = (($2) + -1)|0; - $31 = ($30|0)==(0); - if ($31) { - $$2 = $29; - } else { - $$03952 = $27;$$04051 = $29;$$04350 = $30; - label = 11; - } - } else { - $$03952 = $1;$$04051 = $6;$$04350 = $2; - label = 11; - } - L14: do { - if ((label|0) == 11) { - $32 = HEAP8[$$03952>>0]|0; - $33 = $32&255; - $34 = $33 >>> 3; - $35 = (($34) + -16)|0; - $36 = $$04051 >> 26; - $37 = (($34) + ($36))|0; - $38 = $35 | $37; - $39 = ($38>>>0)>(7); - if ($39) { - label = 17; - break L1; - } else { - $$1 = $$03952;$$141 = $$04051;$$144 = $$04350;$43 = $32; - } - while(1) { - $40 = $$141 << 6; - $41 = ((($$1)) + 1|0); - $42 = $43&255; - $44 = (($42) + -128)|0; - $45 = $44 | $40; - $46 = (($$144) + -1)|0; - $47 = ($45|0)<(0); - if (!($47)) { - break; - } - $49 = ($46|0)==(0); - if ($49) { - $$2 = $45; - break L14; - } - $50 = HEAP8[$41>>0]|0; - $51 = $50 & -64; - $52 = ($51<<24>>24)==(-128); - if ($52) { - $$1 = $41;$$141 = $45;$$144 = $46;$43 = $50; - } else { - label = 17; - break L1; - } - } - HEAP32[$$>>2] = 0; - HEAP32[$$47>>2] = $45; - $48 = (($2) - ($46))|0; - $$0 = $48; - break L1; - } - } while(0); - HEAP32[$$>>2] = $$2; - $$0 = -2; - } - } - } while(0); - if ((label|0) == 17) { - HEAP32[$$>>2] = 0; - $53 = (___errno_location()|0); - HEAP32[$53>>2] = 84; - $$0 = -1; - } - STACKTOP = sp;return ($$0|0); -} -function ___pthread_self_439() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function _strcpy($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - (___stpcpy($0,$1)|0); - return ($0|0); -} -function ___stpcpy($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0$lcssa = 0, $$025$lcssa = 0, $$02536 = 0, $$026$lcssa = 0, $$02642 = 0, $$027$lcssa = 0, $$02741 = 0, $$029 = 0, $$037 = 0, $$1$ph = 0, $$128$ph = 0, $$12834 = 0, $$135 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; - var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = $1; - $3 = $0; - $4 = $2 ^ $3; - $5 = $4 & 3; - $6 = ($5|0)==(0); - L1: do { - if ($6) { - $7 = $2 & 3; - $8 = ($7|0)==(0); - if ($8) { - $$026$lcssa = $1;$$027$lcssa = $0; - } else { - $$02642 = $1;$$02741 = $0; - while(1) { - $9 = HEAP8[$$02642>>0]|0; - HEAP8[$$02741>>0] = $9; - $10 = ($9<<24>>24)==(0); - if ($10) { - $$029 = $$02741; - break L1; - } - $11 = ((($$02642)) + 1|0); - $12 = ((($$02741)) + 1|0); - $13 = $11; - $14 = $13 & 3; - $15 = ($14|0)==(0); - if ($15) { - $$026$lcssa = $11;$$027$lcssa = $12; - break; - } else { - $$02642 = $11;$$02741 = $12; - } - } - } - $16 = HEAP32[$$026$lcssa>>2]|0; - $17 = (($16) + -16843009)|0; - $18 = $16 & -2139062144; - $19 = $18 ^ -2139062144; - $20 = $19 & $17; - $21 = ($20|0)==(0); - if ($21) { - $$02536 = $$027$lcssa;$$037 = $$026$lcssa;$24 = $16; - while(1) { - $22 = ((($$037)) + 4|0); - $23 = ((($$02536)) + 4|0); - HEAP32[$$02536>>2] = $24; - $25 = HEAP32[$22>>2]|0; - $26 = (($25) + -16843009)|0; - $27 = $25 & -2139062144; - $28 = $27 ^ -2139062144; - $29 = $28 & $26; - $30 = ($29|0)==(0); - if ($30) { - $$02536 = $23;$$037 = $22;$24 = $25; - } else { - $$0$lcssa = $22;$$025$lcssa = $23; - break; - } - } - } else { - $$0$lcssa = $$026$lcssa;$$025$lcssa = $$027$lcssa; - } - $$1$ph = $$0$lcssa;$$128$ph = $$025$lcssa; - label = 8; - } else { - $$1$ph = $1;$$128$ph = $0; - label = 8; - } - } while(0); - if ((label|0) == 8) { - $31 = HEAP8[$$1$ph>>0]|0; - HEAP8[$$128$ph>>0] = $31; - $32 = ($31<<24>>24)==(0); - if ($32) { - $$029 = $$128$ph; - } else { - $$12834 = $$128$ph;$$135 = $$1$ph; - while(1) { - $33 = ((($$135)) + 1|0); - $34 = ((($$12834)) + 1|0); - $35 = HEAP8[$33>>0]|0; - HEAP8[$34>>0] = $35; - $36 = ($35<<24>>24)==(0); - if ($36) { - $$029 = $34; - break; - } else { - $$12834 = $34;$$135 = $33; - } - } - } - } - return ($$029|0); -} -function _ldexp($0,$1) { - $0 = +$0; - $1 = $1|0; - var $2 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (+_scalbn($0,$1)); - return (+$2); -} -function ___unlist_locked_file($0) { - $0 = $0|0; - var $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 68|0); - $2 = HEAP32[$1>>2]|0; - $3 = ($2|0)==(0); - if (!($3)) { - $4 = ((($0)) + 116|0); - $5 = HEAP32[$4>>2]|0; - $6 = ($5|0)==(0|0); - $$pre = ((($0)) + 112|0); - if (!($6)) { - $7 = HEAP32[$$pre>>2]|0; - $8 = ((($5)) + 112|0); - HEAP32[$8>>2] = $7; - } - $9 = HEAP32[$$pre>>2]|0; - $10 = ($9|0)==(0|0); - if ($10) { - $12 = (___pthread_self_607()|0); - $13 = ((($12)) + 232|0); - $$sink = $13; - } else { - $11 = ((($9)) + 116|0); - $$sink = $11; - } - HEAP32[$$sink>>2] = $5; - } - return; -} -function ___pthread_self_607() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function _fopen($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0; - var $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $vararg_buffer8 = sp + 32|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer = sp; - $2 = HEAP8[$1>>0]|0; - $3 = $2 << 24 >> 24; - $memchr = (_memchr(19995,$3,4)|0); - $4 = ($memchr|0)==(0|0); - if ($4) { - $5 = (___errno_location()|0); - HEAP32[$5>>2] = 22; - $$0 = 0; - } else { - $6 = (___fmodeflags($1)|0); - $7 = $0; - $8 = $6 | 32768; - HEAP32[$vararg_buffer>>2] = $7; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $8; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = 438; - $9 = (___syscall5(5,($vararg_buffer|0))|0); - $10 = (___syscall_ret($9)|0); - $11 = ($10|0)<(0); - if ($11) { - $$0 = 0; - } else { - $12 = $6 & 524288; - $13 = ($12|0)==(0); - if (!($13)) { - HEAP32[$vararg_buffer3>>2] = $10; - $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr6>>2] = 2; - $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); - HEAP32[$vararg_ptr7>>2] = 1; - (___syscall221(221,($vararg_buffer3|0))|0); - } - $14 = (___fdopen($10,$1)|0); - $15 = ($14|0)==(0|0); - if ($15) { - HEAP32[$vararg_buffer8>>2] = $10; - (___syscall6(6,($vararg_buffer8|0))|0); - $$0 = 0; - } else { - $$0 = $14; - } - } - } - STACKTOP = sp;return ($$0|0); -} -function ___fmodeflags($0) { - $0 = $0|0; - var $$ = 0, $$$4 = 0, $$0 = 0, $$0$ = 0, $$2 = 0, $$2$ = 0, $$4 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, $not$ = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (_strchr($0,43)|0); - $2 = ($1|0)==(0|0); - $3 = HEAP8[$0>>0]|0; - $not$ = ($3<<24>>24)!=(114); - $$ = $not$&1; - $$0 = $2 ? $$ : 2; - $4 = (_strchr($0,120)|0); - $5 = ($4|0)==(0|0); - $6 = $$0 | 128; - $$0$ = $5 ? $$0 : $6; - $7 = (_strchr($0,101)|0); - $8 = ($7|0)==(0|0); - $9 = $$0$ | 524288; - $$2 = $8 ? $$0$ : $9; - $10 = ($3<<24>>24)==(114); - $11 = $$2 | 64; - $$2$ = $10 ? $$2 : $11; - $12 = ($3<<24>>24)==(119); - $13 = $$2$ | 512; - $$4 = $12 ? $13 : $$2$; - $14 = ($3<<24>>24)==(97); - $15 = $$4 | 1024; - $$$4 = $14 ? $15 : $$4; - return ($$$4|0); -} -function ___fdopen($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$pre = 0, $$pre31 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $vararg_buffer12 = sp + 40|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer = sp; - $2 = sp + 56|0; - $3 = HEAP8[$1>>0]|0; - $4 = $3 << 24 >> 24; - $memchr = (_memchr(19995,$4,4)|0); - $5 = ($memchr|0)==(0|0); - if ($5) { - $6 = (___errno_location()|0); - HEAP32[$6>>2] = 22; - $$0 = 0; - } else { - $7 = (_malloc(1156)|0); - $8 = ($7|0)==(0|0); - if ($8) { - $$0 = 0; - } else { - dest=$7; stop=dest+124|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - $9 = (_strchr($1,43)|0); - $10 = ($9|0)==(0|0); - if ($10) { - $11 = ($3<<24>>24)==(114); - $12 = $11 ? 8 : 4; - HEAP32[$7>>2] = $12; - } - $13 = (_strchr($1,101)|0); - $14 = ($13|0)==(0|0); - if ($14) { - $16 = $3; - } else { - HEAP32[$vararg_buffer>>2] = $0; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = 2; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = 1; - (___syscall221(221,($vararg_buffer|0))|0); - $$pre = HEAP8[$1>>0]|0; - $16 = $$pre; - } - $15 = ($16<<24>>24)==(97); - if ($15) { - HEAP32[$vararg_buffer3>>2] = $0; - $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr6>>2] = 3; - $17 = (___syscall221(221,($vararg_buffer3|0))|0); - $18 = $17 & 1024; - $19 = ($18|0)==(0); - if ($19) { - $20 = $17 | 1024; - HEAP32[$vararg_buffer7>>2] = $0; - $vararg_ptr10 = ((($vararg_buffer7)) + 4|0); - HEAP32[$vararg_ptr10>>2] = 4; - $vararg_ptr11 = ((($vararg_buffer7)) + 8|0); - HEAP32[$vararg_ptr11>>2] = $20; - (___syscall221(221,($vararg_buffer7|0))|0); - } - $21 = HEAP32[$7>>2]|0; - $22 = $21 | 128; - HEAP32[$7>>2] = $22; - $29 = $22; - } else { - $$pre31 = HEAP32[$7>>2]|0; - $29 = $$pre31; - } - $23 = ((($7)) + 60|0); - HEAP32[$23>>2] = $0; - $24 = ((($7)) + 132|0); - $25 = ((($7)) + 44|0); - HEAP32[$25>>2] = $24; - $26 = ((($7)) + 48|0); - HEAP32[$26>>2] = 1024; - $27 = ((($7)) + 75|0); - HEAP8[$27>>0] = -1; - $28 = $29 & 8; - $30 = ($28|0)==(0); - if ($30) { - $31 = $2; - HEAP32[$vararg_buffer12>>2] = $0; - $vararg_ptr15 = ((($vararg_buffer12)) + 4|0); - HEAP32[$vararg_ptr15>>2] = 21523; - $vararg_ptr16 = ((($vararg_buffer12)) + 8|0); - HEAP32[$vararg_ptr16>>2] = $31; - $32 = (___syscall54(54,($vararg_buffer12|0))|0); - $33 = ($32|0)==(0); - if ($33) { - HEAP8[$27>>0] = 10; - } - } - $34 = ((($7)) + 32|0); - HEAP32[$34>>2] = 11; - $35 = ((($7)) + 36|0); - HEAP32[$35>>2] = 10; - $36 = ((($7)) + 40|0); - HEAP32[$36>>2] = 3; - $37 = ((($7)) + 12|0); - HEAP32[$37>>2] = 2; - $38 = HEAP32[(23324)>>2]|0; - $39 = ($38|0)==(0); - if ($39) { - $40 = ((($7)) + 76|0); - HEAP32[$40>>2] = -1; - } - $41 = (___ofl_add($7)|0); - $$0 = $7; - } - } - STACKTOP = sp;return ($$0|0); -} -function ___ofl_add($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (___ofl_lock()|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 56|0); - HEAP32[$3>>2] = $2; - $4 = HEAP32[$1>>2]|0; - $5 = ($4|0)==(0|0); - if (!($5)) { - $6 = ((($4)) + 52|0); - HEAP32[$6>>2] = $0; - } - HEAP32[$1>>2] = $0; - ___ofl_unlock(); - return ($0|0); -} -function ___ofl_lock() { - var label = 0, sp = 0; - sp = STACKTOP; - ___lock((23388|0)); - return (23396|0); -} -function ___ofl_unlock() { - var label = 0, sp = 0; - sp = STACKTOP; - ___unlock((23388|0)); - return; -} -function _fclose($0) { - $0 = $0|0; - var $$pre = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 76|0); - $2 = HEAP32[$1>>2]|0; - $3 = ($2|0)>(-1); - if ($3) { - $4 = (___lockfile($0)|0); - $29 = $4; - } else { - $29 = 0; - } - ___unlist_locked_file($0); - $5 = HEAP32[$0>>2]|0; - $6 = $5 & 1; - $7 = ($6|0)!=(0); - if (!($7)) { - $8 = (___ofl_lock()|0); - $9 = ((($0)) + 52|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)==(0|0); - $12 = $10; - $$pre = ((($0)) + 56|0); - if (!($11)) { - $13 = HEAP32[$$pre>>2]|0; - $14 = ((($10)) + 56|0); - HEAP32[$14>>2] = $13; - } - $15 = HEAP32[$$pre>>2]|0; - $16 = ($15|0)==(0|0); - if (!($16)) { - $17 = ((($15)) + 52|0); - HEAP32[$17>>2] = $12; - } - $18 = HEAP32[$8>>2]|0; - $19 = ($18|0)==($0|0); - if ($19) { - HEAP32[$8>>2] = $15; - } - ___ofl_unlock(); - } - $20 = (_fflush($0)|0); - $21 = ((($0)) + 12|0); - $22 = HEAP32[$21>>2]|0; - $23 = (FUNCTION_TABLE_ii[$22 & 15]($0)|0); - $24 = $23 | $20; - $25 = ((($0)) + 92|0); - $26 = HEAP32[$25>>2]|0; - $27 = ($26|0)==(0|0); - if (!($27)) { - _free($26); - } - if ($7) { - $28 = ($29|0)==(0); - if (!($28)) { - ___unlockfile($0); - } - } else { - _free($0); - } - return ($24|0); -} -function _fflush($0) { - $0 = $0|0; - var $$0 = 0, $$023 = 0, $$02325 = 0, $$02327 = 0, $$024$lcssa = 0, $$02426 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0|0); - do { - if ($1) { - $8 = HEAP32[1051]|0; - $9 = ($8|0)==(0|0); - if ($9) { - $29 = 0; - } else { - $10 = HEAP32[1051]|0; - $11 = (_fflush($10)|0); - $29 = $11; - } - $12 = (___ofl_lock()|0); - $$02325 = HEAP32[$12>>2]|0; - $13 = ($$02325|0)==(0|0); - if ($13) { - $$024$lcssa = $29; - } else { - $$02327 = $$02325;$$02426 = $29; - while(1) { - $14 = ((($$02327)) + 76|0); - $15 = HEAP32[$14>>2]|0; - $16 = ($15|0)>(-1); - if ($16) { - $17 = (___lockfile($$02327)|0); - $26 = $17; - } else { - $26 = 0; - } - $18 = ((($$02327)) + 20|0); - $19 = HEAP32[$18>>2]|0; - $20 = ((($$02327)) + 28|0); - $21 = HEAP32[$20>>2]|0; - $22 = ($19>>>0)>($21>>>0); - if ($22) { - $23 = (___fflush_unlocked($$02327)|0); - $24 = $23 | $$02426; - $$1 = $24; - } else { - $$1 = $$02426; - } - $25 = ($26|0)==(0); - if (!($25)) { - ___unlockfile($$02327); - } - $27 = ((($$02327)) + 56|0); - $$023 = HEAP32[$27>>2]|0; - $28 = ($$023|0)==(0|0); - if ($28) { - $$024$lcssa = $$1; - break; - } else { - $$02327 = $$023;$$02426 = $$1; - } - } - } - ___ofl_unlock(); - $$0 = $$024$lcssa; - } else { - $2 = ((($0)) + 76|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)>(-1); - if (!($4)) { - $5 = (___fflush_unlocked($0)|0); - $$0 = $5; - break; - } - $6 = (___lockfile($0)|0); - $phitmp = ($6|0)==(0); - $7 = (___fflush_unlocked($0)|0); - if ($phitmp) { - $$0 = $7; - } else { - ___unlockfile($0); - $$0 = $7; - } - } - } while(0); - return ($$0|0); -} -function ___fflush_unlocked($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 20|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 28|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($2>>>0)>($4>>>0); - if ($5) { - $6 = ((($0)) + 36|0); - $7 = HEAP32[$6>>2]|0; - (FUNCTION_TABLE_iiii[$7 & 15]($0,0,0)|0); - $8 = HEAP32[$1>>2]|0; - $9 = ($8|0)==(0|0); - if ($9) { - $$0 = -1; - } else { - label = 3; - } - } else { - label = 3; - } - if ((label|0) == 3) { - $10 = ((($0)) + 4|0); - $11 = HEAP32[$10>>2]|0; - $12 = ((($0)) + 8|0); - $13 = HEAP32[$12>>2]|0; - $14 = ($11>>>0)<($13>>>0); - if ($14) { - $15 = $11; - $16 = $13; - $17 = (($15) - ($16))|0; - $18 = ((($0)) + 40|0); - $19 = HEAP32[$18>>2]|0; - (FUNCTION_TABLE_iiii[$19 & 15]($0,$17,1)|0); - } - $20 = ((($0)) + 16|0); - HEAP32[$20>>2] = 0; - HEAP32[$3>>2] = 0; - HEAP32[$1>>2] = 0; - HEAP32[$12>>2] = 0; - HEAP32[$10>>2] = 0; - $$0 = 0; - } - return ($$0|0); -} -function _fgets($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$06266 = 0, $$063 = 0, $$064 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; - var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0; - var $sext$mask = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($2)) + 76|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)>(-1); - if ($5) { - $6 = (___lockfile($2)|0); - $17 = $6; - } else { - $17 = 0; - } - $7 = (($1) + -1)|0; - $8 = ($1|0)<(2); - $9 = ($7|0)!=(0); - if ($8) { - $10 = ((($2)) + 74|0); - $11 = HEAP8[$10>>0]|0; - $12 = $11 << 24 >> 24; - $13 = (($12) + 255)|0; - $14 = $13 | $12; - $15 = $14&255; - HEAP8[$10>>0] = $15; - $16 = ($17|0)==(0); - if (!($16)) { - ___unlockfile($2); - } - if ($9) { - $$0 = 0; - } else { - HEAP8[$0>>0] = 0; - $$0 = $0; - } - } else { - L11: do { - if ($9) { - $18 = ((($2)) + 4|0); - $19 = ((($2)) + 8|0); - $$063 = $7;$$064 = $0; - while(1) { - $20 = HEAP32[$18>>2]|0; - $21 = HEAP32[$19>>2]|0; - $22 = $20; - $23 = (($21) - ($22))|0; - $24 = (_memchr($20,10,$23)|0); - $25 = ($24|0)==(0|0); - $26 = $24; - $27 = (1 - ($22))|0; - $28 = (($27) + ($26))|0; - $29 = $25 ? $23 : $28; - $30 = ($29>>>0)<($$063>>>0); - $31 = $30 ? $29 : $$063; - _memcpy(($$064|0),($20|0),($31|0))|0; - $32 = HEAP32[$18>>2]|0; - $33 = (($32) + ($31)|0); - HEAP32[$18>>2] = $33; - $34 = (($$064) + ($31)|0); - $35 = (($$063) - ($31))|0; - $36 = ($35|0)!=(0); - $or$cond = $25 & $36; - if (!($or$cond)) { - $$1 = $34; - label = 17; - break L11; - } - $37 = HEAP32[$19>>2]|0; - $38 = ($33>>>0)<($37>>>0); - if ($38) { - $39 = ((($33)) + 1|0); - HEAP32[$18>>2] = $39; - $40 = HEAP8[$33>>0]|0; - $41 = $40&255; - $50 = $41; - } else { - $42 = (___uflow($2)|0); - $43 = ($42|0)<(0); - if ($43) { - break; - } else { - $50 = $42; - } - } - $48 = (($35) + -1)|0; - $49 = $50&255; - $51 = ((($34)) + 1|0); - HEAP8[$34>>0] = $49; - $sext$mask = $50 & 255; - $52 = ($sext$mask|0)!=(10); - $53 = ($48|0)!=(0); - $or$cond3 = $53 & $52; - if ($or$cond3) { - $$063 = $48;$$064 = $51; - } else { - $$1 = $51; - label = 17; - break L11; - } - } - $44 = ($34|0)==($0|0); - if ($44) { - $$06266 = 0; - } else { - $45 = HEAP32[$2>>2]|0; - $46 = $45 & 16; - $47 = ($46|0)==(0); - if ($47) { - $$06266 = 0; - } else { - $$1 = $34; - label = 17; - } - } - } else { - $$1 = $0; - label = 17; - } - } while(0); - if ((label|0) == 17) { - $54 = ($0|0)==(0|0); - if ($54) { - $$06266 = 0; - } else { - HEAP8[$$1>>0] = 0; - $$06266 = $0; - } - } - $55 = ($17|0)==(0); - if ($55) { - $$0 = $$06266; - } else { - ___unlockfile($2); - $$0 = $$06266; - } - } - return ($$0|0); -} -function _feof($0) { - $0 = $0|0; - var $$lobit = 0, $$lobit8 = 0, $$lobit9 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $phitmp = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 76|0); - $2 = HEAP32[$1>>2]|0; - $3 = ($2|0)>(-1); - if ($3) { - $6 = (___lockfile($0)|0); - $phitmp = ($6|0)==(0); - $7 = HEAP32[$0>>2]|0; - $8 = $7 >>> 4; - $$lobit = $8 & 1; - if ($phitmp) { - $$lobit9 = $$lobit; - } else { - ___unlockfile($0); - $$lobit9 = $$lobit; - } - } else { - $4 = HEAP32[$0>>2]|0; - $5 = $4 >>> 4; - $$lobit8 = $5 & 1; - $$lobit9 = $$lobit8; - } - return ($$lobit9|0); -} -function _sscanf($0,$1,$varargs) { - $0 = $0|0; - $1 = $1|0; - $varargs = $varargs|0; - var $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = sp; - HEAP32[$2>>2] = $varargs; - $3 = (_vsscanf($0,$1,$2)|0); - STACKTOP = sp;return ($3|0); -} -function _vsscanf($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $3 = sp; - dest=$3; stop=dest+124|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - $4 = ((($3)) + 32|0); - HEAP32[$4>>2] = 12; - $5 = ((($3)) + 44|0); - HEAP32[$5>>2] = $0; - $6 = ((($3)) + 76|0); - HEAP32[$6>>2] = -1; - $7 = ((($3)) + 84|0); - HEAP32[$7>>2] = $0; - $8 = (_vfscanf($3,$1,$2)|0); - STACKTOP = sp;return ($8|0); -} -function _do_read($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (___string_read($0,$1,$2)|0); - return ($3|0); -} -function _vfscanf($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$ = 0, $$$0266 = 0, $$$0268 = 0, $$$0305 = 0, $$$3 = 0, $$0266$lcssa = 0, $$0266417 = 0, $$0268 = 0, $$0272 = 0, $$0273429 = 0, $$0276$ph = 0, $$0278$ph = 0, $$0278$ph$phi = 0, $$0278$ph336 = 0, $$0283428 = 0, $$0286420 = 0, $$0288$ = 0, $$0288425 = 0, $$0292 = 0, $$0293 = 0; - var $$0305423 = 0, $$10 = 0, $$11 = 0, $$1267 = 0, $$1271 = 0, $$1274 = 0, $$1277$ph = 0, $$1279 = 0, $$1284 = 0, $$1289 = 0, $$2 = 0, $$2275 = 0, $$2280 = 0, $$2280$ph = 0, $$2280$ph$phi = 0, $$2285 = 0, $$2290 = 0, $$2307$ph = 0, $$3$lcssa = 0, $$319 = 0; - var $$320 = 0, $$321 = 0, $$322 = 0, $$327 = 0, $$328$le439 = 0, $$328$le441 = 0, $$3281 = 0, $$3291 = 0, $$3416 = 0, $$4282 = 0, $$4309 = 0, $$5 = 0, $$5299 = 0, $$5310 = 0, $$6 = 0, $$6311 = 0, $$7 = 0, $$7$ph = 0, $$7312 = 0, $$8 = 0; - var $$8313 = 0, $$9 = 0, $$9314 = 0, $$9314$ph = 0, $$lcssa355 = 0, $$not = 0, $$old4 = 0, $$ph = 0, $$ph353 = 0, $$pre = 0, $$pre$phi516Z2D = 0, $$pre507 = 0, $$pre509 = 0, $$pre511 = 0, $$pre512 = 0, $$pre513 = 0, $$pre514 = 0, $$pre515 = 0, $$sink443 = 0, $$sroa$2$0$$sroa_idx13 = 0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0; - var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0; - var $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0; - var $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0; - var $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0; - var $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0.0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0.0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0; - var $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0; - var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0; - var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0; - var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0; - var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_next = 0, $expanded = 0, $expanded1 = 0, $expanded3 = 0, $expanded4 = 0, $expanded5 = 0, $factor = 0, $factor331 = 0, $isdigit = 0; - var $isdigit316 = 0, $isdigit316415 = 0, $isdigittmp = 0, $isdigittmp315 = 0, $isdigittmp315414 = 0, $narrow = 0, $narrow469 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond318 = 0, $or$cond5 = 0, $trunc = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 288|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(288|0); - $3 = sp + 8|0; - $4 = sp + 17|0; - $5 = sp; - $6 = sp + 16|0; - $7 = ((($0)) + 76|0); - $8 = HEAP32[$7>>2]|0; - $9 = ($8|0)>(-1); - if ($9) { - $10 = (___lockfile($0)|0); - $306 = $10; - } else { - $306 = 0; - } - $11 = HEAP8[$1>>0]|0; - $12 = ($11<<24>>24)==(0); - L4: do { - if ($12) { - $$3291 = 0; - } else { - $13 = ((($0)) + 4|0); - $14 = ((($0)) + 100|0); - $15 = ((($0)) + 108|0); - $16 = ((($0)) + 8|0); - $17 = ((($4)) + 10|0); - $18 = ((($4)) + 33|0); - $$sroa$2$0$$sroa_idx13 = ((($3)) + 4|0); - $19 = ((($4)) + 46|0); - $20 = ((($4)) + 94|0); - $21 = ((($4)) + 1|0); - $22 = ((($4)) + 1|0); - $$0273429 = $1;$$0283428 = 0;$$0288425 = 0;$$0305423 = 0;$102 = 0;$24 = $11; - L6: while(1) { - $23 = $24&255; - $25 = (_isspace($23)|0); - $26 = ($25|0)==(0); - L8: do { - if ($26) { - $53 = ($24<<24>>24)==(37); - L10: do { - if ($53) { - $54 = ((($$0273429)) + 1|0); - $55 = HEAP8[$54>>0]|0; - L12: do { - switch ($55<<24>>24) { - case 37: { - break L10; - break; - } - case 42: { - $76 = ((($$0273429)) + 2|0); - $$0293 = 0;$$2275 = $76; - break; - } - default: { - $77 = $55&255; - $isdigittmp = (($77) + -48)|0; - $isdigit = ($isdigittmp>>>0)<(10); - if ($isdigit) { - $78 = ((($$0273429)) + 2|0); - $79 = HEAP8[$78>>0]|0; - $80 = ($79<<24>>24)==(36); - if ($80) { - $81 = (_arg_n($2,$isdigittmp)|0); - $82 = ((($$0273429)) + 3|0); - $$0293 = $81;$$2275 = $82; - break L12; - } - } - $arglist_current = HEAP32[$2>>2]|0; - $83 = $arglist_current; - $84 = ((0) + 4|0); - $expanded1 = $84; - $expanded = (($expanded1) - 1)|0; - $85 = (($83) + ($expanded))|0; - $86 = ((0) + 4|0); - $expanded5 = $86; - $expanded4 = (($expanded5) - 1)|0; - $expanded3 = $expanded4 ^ -1; - $87 = $85 & $expanded3; - $88 = $87; - $89 = HEAP32[$88>>2]|0; - $arglist_next = ((($88)) + 4|0); - HEAP32[$2>>2] = $arglist_next; - $$0293 = $89;$$2275 = $54; - } - } - } while(0); - $90 = HEAP8[$$2275>>0]|0; - $91 = $90&255; - $isdigittmp315414 = (($91) + -48)|0; - $isdigit316415 = ($isdigittmp315414>>>0)<(10); - if ($isdigit316415) { - $$0266417 = 0;$$3416 = $$2275;$95 = $91; - while(1) { - $92 = ($$0266417*10)|0; - $93 = (($92) + -48)|0; - $94 = (($93) + ($95))|0; - $96 = ((($$3416)) + 1|0); - $97 = HEAP8[$96>>0]|0; - $98 = $97&255; - $isdigittmp315 = (($98) + -48)|0; - $isdigit316 = ($isdigittmp315>>>0)<(10); - if ($isdigit316) { - $$0266417 = $94;$$3416 = $96;$95 = $98; - } else { - $$0266$lcssa = $94;$$3$lcssa = $96;$$lcssa355 = $97; - break; - } - } - } else { - $$0266$lcssa = 0;$$3$lcssa = $$2275;$$lcssa355 = $90; - } - $99 = ($$lcssa355<<24>>24)==(109); - $100 = ($$0293|0)!=(0|0); - $101 = ((($$3$lcssa)) + 1|0); - $$$0305 = $99 ? 0 : $$0305423; - $$327 = $99 ? 0 : $102; - $$$3 = $99 ? $101 : $$3$lcssa; - $narrow = $100 & $99; - $103 = ((($$$3)) + 1|0); - $104 = HEAP8[$$$3>>0]|0; - switch ($104<<24>>24) { - case 104: { - $105 = HEAP8[$103>>0]|0; - $106 = ($105<<24>>24)==(104); - $107 = ((($$$3)) + 2|0); - $$319 = $106 ? $107 : $103; - $$320 = $106 ? -2 : -1; - $$0268 = $$320;$$5 = $$319; - break; - } - case 108: { - $108 = HEAP8[$103>>0]|0; - $109 = ($108<<24>>24)==(108); - $110 = ((($$$3)) + 2|0); - $$321 = $109 ? $110 : $103; - $$322 = $109 ? 3 : 1; - $$0268 = $$322;$$5 = $$321; - break; - } - case 106: { - $$0268 = 3;$$5 = $103; - break; - } - case 116: case 122: { - $$0268 = 1;$$5 = $103; - break; - } - case 76: { - $$0268 = 2;$$5 = $103; - break; - } - case 110: case 112: case 67: case 83: case 91: case 99: case 115: case 88: case 71: case 70: case 69: case 65: case 103: case 102: case 101: case 97: case 120: case 117: case 111: case 105: case 100: { - $$0268 = 0;$$5 = $$$3; - break; - } - default: { - $$7312 = $$$0305;$309 = $$327;$narrow469 = $narrow; - label = 137; - break L6; - } - } - $111 = HEAP8[$$5>>0]|0; - $112 = $111&255; - $113 = $112 & 47; - $114 = ($113|0)==(3); - $115 = $112 | 32; - $$ = $114 ? $115 : $112; - $$$0268 = $114 ? 1 : $$0268; - $trunc = $$&255; - switch ($trunc<<24>>24) { - case 99: { - $116 = ($$0266$lcssa|0)>(1); - $$$0266 = $116 ? $$0266$lcssa : 1; - $$1267 = $$$0266;$$1284 = $$0283428; - break; - } - case 91: { - $$1267 = $$0266$lcssa;$$1284 = $$0283428; - break; - } - case 110: { - $117 = ($$0283428|0)<(0); - $118 = $117 << 31 >> 31; - _store_int($$0293,$$$0268,$$0283428,$118); - $$11 = $$5;$$1289 = $$0288425;$$2285 = $$0283428;$$6311 = $$$0305;$307 = $$327; - break L8; - break; - } - default: { - ___shlim($0,0); - while(1) { - $119 = HEAP32[$13>>2]|0; - $120 = HEAP32[$14>>2]|0; - $121 = ($119>>>0)<($120>>>0); - if ($121) { - $122 = ((($119)) + 1|0); - HEAP32[$13>>2] = $122; - $123 = HEAP8[$119>>0]|0; - $124 = $123&255; - $126 = $124; - } else { - $125 = (___shgetc($0)|0); - $126 = $125; - } - $127 = (_isspace($126)|0); - $128 = ($127|0)==(0); - if ($128) { - break; - } - } - $129 = HEAP32[$14>>2]|0; - $130 = ($129|0)==(0|0); - if ($130) { - $$pre507 = HEAP32[$13>>2]|0; - $138 = $$pre507; - } else { - $131 = HEAP32[$13>>2]|0; - $132 = ((($131)) + -1|0); - HEAP32[$13>>2] = $132; - $133 = $132; - $138 = $133; - } - $134 = HEAP32[$15>>2]|0; - $135 = HEAP32[$16>>2]|0; - $136 = (($134) + ($$0283428))|0; - $137 = (($136) + ($138))|0; - $139 = (($137) - ($135))|0; - $$1267 = $$0266$lcssa;$$1284 = $139; - } - } - ___shlim($0,$$1267); - $140 = HEAP32[$13>>2]|0; - $141 = HEAP32[$14>>2]|0; - $142 = ($140>>>0)<($141>>>0); - if ($142) { - $143 = ((($140)) + 1|0); - HEAP32[$13>>2] = $143; - $147 = $141; - } else { - $144 = (___shgetc($0)|0); - $145 = ($144|0)<(0); - if ($145) { - $$7312 = $$$0305;$309 = $$327;$narrow469 = $narrow; - label = 137; - break L6; - } - $$pre509 = HEAP32[$14>>2]|0; - $147 = $$pre509; - } - $146 = ($147|0)==(0|0); - if (!($146)) { - $148 = HEAP32[$13>>2]|0; - $149 = ((($148)) + -1|0); - HEAP32[$13>>2] = $149; - } - L55: do { - switch ($trunc<<24>>24) { - case 91: case 99: case 115: { - $150 = ($$|0)==(99); - $151 = $$ | 16; - $152 = ($151|0)==(115); - L57: do { - if ($152) { - $153 = ($$|0)==(115); - _memset(($21|0),-1,256)|0; - HEAP8[$4>>0] = 0; - if ($153) { - HEAP8[$18>>0] = 0; - ;HEAP8[$17>>0]=0|0;HEAP8[$17+1>>0]=0|0;HEAP8[$17+2>>0]=0|0;HEAP8[$17+3>>0]=0|0;HEAP8[$17+4>>0]=0|0; - $$9 = $$5; - } else { - $$9 = $$5; - } - } else { - $154 = ((($$5)) + 1|0); - $155 = HEAP8[$154>>0]|0; - $156 = ($155<<24>>24)==(94); - $157 = ((($$5)) + 2|0); - $$0292 = $156&1; - $$6 = $156 ? $157 : $154; - $158 = $156&1; - _memset(($22|0),($158|0),256)|0; - HEAP8[$4>>0] = 0; - $159 = HEAP8[$$6>>0]|0; - switch ($159<<24>>24) { - case 45: { - $$sink443 = $19; - label = 64; - break; - } - case 93: { - $$sink443 = $20; - label = 64; - break; - } - default: { - $$pre514 = $$0292 ^ 1; - $$pre515 = $$pre514&255; - $$7$ph = $$6;$$pre$phi516Z2D = $$pre515; - } - } - if ((label|0) == 64) { - label = 0; - $160 = ((($$6)) + 1|0); - $161 = $$0292 ^ 1; - $162 = $161&255; - HEAP8[$$sink443>>0] = $162; - $$7$ph = $160;$$pre$phi516Z2D = $162; - } - $$7 = $$7$ph; - while(1) { - $163 = HEAP8[$$7>>0]|0; - L69: do { - switch ($163<<24>>24) { - case 0: { - $$7312 = $$$0305;$309 = $$327;$narrow469 = $narrow; - label = 137; - break L6; - break; - } - case 93: { - $$9 = $$7; - break L57; - break; - } - case 45: { - $164 = ((($$7)) + 1|0); - $165 = HEAP8[$164>>0]|0; - switch ($165<<24>>24) { - case 93: case 0: { - $$8 = $$7;$176 = 45; - break L69; - break; - } - default: { - } - } - $166 = ((($$7)) + -1|0); - $167 = HEAP8[$166>>0]|0; - $168 = ($167&255)<($165&255); - if ($168) { - $169 = $167&255; - $$0286420 = $169; - while(1) { - $170 = (($$0286420) + 1)|0; - $171 = (($4) + ($170)|0); - HEAP8[$171>>0] = $$pre$phi516Z2D; - $172 = HEAP8[$164>>0]|0; - $173 = $172&255; - $174 = ($170|0)<($173|0); - if ($174) { - $$0286420 = $170; - } else { - $$8 = $164;$176 = $172; - break; - } - } - } else { - $$8 = $164;$176 = $165; - } - break; - } - default: { - $$8 = $$7;$176 = $163; - } - } - } while(0); - $175 = $176&255; - $177 = (($175) + 1)|0; - $178 = (($4) + ($177)|0); - HEAP8[$178>>0] = $$pre$phi516Z2D; - $179 = ((($$8)) + 1|0); - $$7 = $179; - } - } - } while(0); - $180 = (($$1267) + 1)|0; - $181 = $150 ? $180 : 31; - $182 = ($$$0268|0)==(1); - L77: do { - if ($182) { - if ($narrow) { - $183 = $181 << 2; - $184 = (_malloc($183)|0); - $185 = ($184|0)==(0|0); - if ($185) { - $$7312 = 0;$309 = 0;$narrow469 = 1; - label = 137; - break L6; - } else { - $311 = $184; - } - } else { - $311 = $$0293; - } - HEAP32[$3>>2] = 0; - HEAP32[$$sroa$2$0$$sroa_idx13>>2] = 0; - $$0276$ph = $181;$$0278$ph = 0;$$ph = $311; - L82: while(1) { - $186 = ($$ph|0)==(0|0); - $$0278$ph336 = $$0278$ph; - while(1) { - L86: while(1) { - $187 = HEAP32[$13>>2]|0; - $188 = HEAP32[$14>>2]|0; - $189 = ($187>>>0)<($188>>>0); - if ($189) { - $190 = ((($187)) + 1|0); - HEAP32[$13>>2] = $190; - $191 = HEAP8[$187>>0]|0; - $192 = $191&255; - $195 = $192; - } else { - $193 = (___shgetc($0)|0); - $195 = $193; - } - $194 = (($195) + 1)|0; - $196 = (($4) + ($194)|0); - $197 = HEAP8[$196>>0]|0; - $198 = ($197<<24>>24)==(0); - if ($198) { - break L82; - } - $199 = $195&255; - HEAP8[$6>>0] = $199; - $200 = (_mbrtowc($5,$6,1,$3)|0); - switch ($200|0) { - case -1: { - $$7312 = 0;$309 = $$ph;$narrow469 = $narrow; - label = 137; - break L6; - break; - } - case -2: { - break; - } - default: { - break L86; - } - } - } - if ($186) { - $$1279 = $$0278$ph336; - } else { - $201 = (($$ph) + ($$0278$ph336<<2)|0); - $202 = (($$0278$ph336) + 1)|0; - $203 = HEAP32[$5>>2]|0; - HEAP32[$201>>2] = $203; - $$1279 = $202; - } - $204 = ($$1279|0)==($$0276$ph|0); - $or$cond = $narrow & $204; - if ($or$cond) { - break; - } else { - $$0278$ph336 = $$1279; - } - } - $factor331 = $$0276$ph << 1; - $205 = $factor331 | 1; - $206 = $205 << 2; - $207 = (_realloc($$ph,$206)|0); - $208 = ($207|0)==(0|0); - if ($208) { - $$7312 = 0;$309 = $$ph;$narrow469 = 1; - label = 137; - break L6; - } else { - $$0278$ph$phi = $$0276$ph;$$0276$ph = $205;$$ph = $207;$$0278$ph = $$0278$ph$phi; - } - } - $209 = (_mbsinit($3)|0); - $210 = ($209|0)==(0); - if ($210) { - $$7312 = 0;$309 = $$ph;$narrow469 = $narrow; - label = 137; - break L6; - } else { - $$4282 = $$0278$ph336;$$4309 = 0;$$5299 = $$ph;$312 = $$ph; - } - } else { - if ($narrow) { - $211 = (_malloc($181)|0); - $212 = ($211|0)==(0|0); - if ($212) { - $$7312 = 0;$309 = 0;$narrow469 = 1; - label = 137; - break L6; - } else { - $$1277$ph = $181;$$2280$ph = 0;$$2307$ph = $211; - } - while(1) { - $$2280 = $$2280$ph; - while(1) { - $213 = HEAP32[$13>>2]|0; - $214 = HEAP32[$14>>2]|0; - $215 = ($213>>>0)<($214>>>0); - if ($215) { - $216 = ((($213)) + 1|0); - HEAP32[$13>>2] = $216; - $217 = HEAP8[$213>>0]|0; - $218 = $217&255; - $221 = $218; - } else { - $219 = (___shgetc($0)|0); - $221 = $219; - } - $220 = (($221) + 1)|0; - $222 = (($4) + ($220)|0); - $223 = HEAP8[$222>>0]|0; - $224 = ($223<<24>>24)==(0); - if ($224) { - $$4282 = $$2280;$$4309 = $$2307$ph;$$5299 = 0;$312 = 0; - break L77; - } - $225 = $221&255; - $226 = (($$2280) + 1)|0; - $227 = (($$2307$ph) + ($$2280)|0); - HEAP8[$227>>0] = $225; - $228 = ($226|0)==($$1277$ph|0); - if ($228) { - break; - } else { - $$2280 = $226; - } - } - $factor = $$1277$ph << 1; - $229 = $factor | 1; - $230 = (_realloc($$2307$ph,$229)|0); - $231 = ($230|0)==(0|0); - if ($231) { - $$7312 = $$2307$ph;$309 = 0;$narrow469 = 1; - label = 137; - break L6; - } else { - $$2280$ph$phi = $$1277$ph;$$1277$ph = $229;$$2307$ph = $230;$$2280$ph = $$2280$ph$phi; - } - } - } - $232 = ($$0293|0)==(0|0); - if ($232) { - $250 = $147; - while(1) { - $248 = HEAP32[$13>>2]|0; - $249 = ($248>>>0)<($250>>>0); - if ($249) { - $251 = ((($248)) + 1|0); - HEAP32[$13>>2] = $251; - $252 = HEAP8[$248>>0]|0; - $253 = $252&255; - $256 = $253; - } else { - $254 = (___shgetc($0)|0); - $256 = $254; - } - $255 = (($256) + 1)|0; - $257 = (($4) + ($255)|0); - $258 = HEAP8[$257>>0]|0; - $259 = ($258<<24>>24)==(0); - if ($259) { - $$4282 = 0;$$4309 = 0;$$5299 = 0;$312 = 0; - break L77; - } - $$pre512 = HEAP32[$14>>2]|0; - $250 = $$pre512; - } - } else { - $$3281 = 0;$235 = $147; - while(1) { - $233 = HEAP32[$13>>2]|0; - $234 = ($233>>>0)<($235>>>0); - if ($234) { - $236 = ((($233)) + 1|0); - HEAP32[$13>>2] = $236; - $237 = HEAP8[$233>>0]|0; - $238 = $237&255; - $241 = $238; - } else { - $239 = (___shgetc($0)|0); - $241 = $239; - } - $240 = (($241) + 1)|0; - $242 = (($4) + ($240)|0); - $243 = HEAP8[$242>>0]|0; - $244 = ($243<<24>>24)==(0); - if ($244) { - $$4282 = $$3281;$$4309 = $$0293;$$5299 = 0;$312 = 0; - break L77; - } - $245 = $241&255; - $246 = (($$3281) + 1)|0; - $247 = (($$0293) + ($$3281)|0); - HEAP8[$247>>0] = $245; - $$pre511 = HEAP32[$14>>2]|0; - $$3281 = $246;$235 = $$pre511; - } - } - } - } while(0); - $260 = HEAP32[$14>>2]|0; - $261 = ($260|0)==(0|0); - if ($261) { - $$pre513 = HEAP32[$13>>2]|0; - $268 = $$pre513; - } else { - $262 = HEAP32[$13>>2]|0; - $263 = ((($262)) + -1|0); - HEAP32[$13>>2] = $263; - $264 = $263; - $268 = $264; - } - $265 = HEAP32[$15>>2]|0; - $266 = HEAP32[$16>>2]|0; - $267 = (($268) - ($266))|0; - $269 = (($267) + ($265))|0; - $270 = ($269|0)==(0); - if ($270) { - $$9314$ph = $$4309;$$ph353 = $312; - label = 139; - break L6; - } - $$not = $150 ^ 1; - $271 = ($269|0)==($$1267|0); - $or$cond318 = $271 | $$not; - if (!($or$cond318)) { - $$9314$ph = $$4309;$$ph353 = $312; - label = 139; - break L6; - } - do { - if ($narrow) { - if ($182) { - HEAP32[$$0293>>2] = $$5299; - break; - } else { - HEAP32[$$0293>>2] = $$4309; - break; - } - } - } while(0); - if ($150) { - $$10 = $$9;$$5310 = $$4309;$310 = $312; - } else { - $272 = ($$5299|0)==(0|0); - if (!($272)) { - $273 = (($$5299) + ($$4282<<2)|0); - HEAP32[$273>>2] = 0; - } - $274 = ($$4309|0)==(0|0); - if ($274) { - $$10 = $$9;$$5310 = 0;$310 = $312; - break L55; - } - $275 = (($$4309) + ($$4282)|0); - HEAP8[$275>>0] = 0; - $$10 = $$9;$$5310 = $$4309;$310 = $312; - } - break; - } - case 120: case 88: case 112: { - $$0272 = 16; - label = 125; - break; - } - case 111: { - $$0272 = 8; - label = 125; - break; - } - case 117: case 100: { - $$0272 = 10; - label = 125; - break; - } - case 105: { - $$0272 = 0; - label = 125; - break; - } - case 71: case 103: case 70: case 102: case 69: case 101: case 65: case 97: { - $285 = (+___floatscan($0,$$$0268,0)); - $286 = HEAP32[$15>>2]|0; - $287 = HEAP32[$13>>2]|0; - $288 = HEAP32[$16>>2]|0; - $289 = (($288) - ($287))|0; - $290 = ($286|0)==($289|0); - if ($290) { - $$9314$ph = $$$0305;$$ph353 = $$327; - label = 139; - break L6; - } - $291 = ($$0293|0)==(0|0); - if ($291) { - $$10 = $$5;$$5310 = $$$0305;$310 = $$327; - } else { - switch ($$$0268|0) { - case 0: { - $292 = $285; - HEAPF32[$$0293>>2] = $292; - $$10 = $$5;$$5310 = $$$0305;$310 = $$327; - break L55; - break; - } - case 1: { - HEAPF64[$$0293>>3] = $285; - $$10 = $$5;$$5310 = $$$0305;$310 = $$327; - break L55; - break; - } - case 2: { - HEAPF64[$$0293>>3] = $285; - $$10 = $$5;$$5310 = $$$0305;$310 = $$327; - break L55; - break; - } - default: { - $$10 = $$5;$$5310 = $$$0305;$310 = $$327; - break L55; - } - } - } - break; - } - default: { - $$10 = $$5;$$5310 = $$$0305;$310 = $$327; - } - } - } while(0); - do { - if ((label|0) == 125) { - label = 0; - $276 = (___intscan($0,$$0272,0,-1,-1)|0); - $277 = tempRet0; - $278 = HEAP32[$15>>2]|0; - $279 = HEAP32[$13>>2]|0; - $280 = HEAP32[$16>>2]|0; - $281 = (($280) - ($279))|0; - $282 = ($278|0)==($281|0); - if ($282) { - $$9314$ph = $$$0305;$$ph353 = $$327; - label = 139; - break L6; - } - $283 = ($$|0)==(112); - $or$cond3 = $100 & $283; - if ($or$cond3) { - $284 = $276; - HEAP32[$$0293>>2] = $284; - $$10 = $$5;$$5310 = $$$0305;$310 = $$327; - break; - } else { - _store_int($$0293,$$$0268,$276,$277); - $$10 = $$5;$$5310 = $$$0305;$310 = $$327; - break; - } - } - } while(0); - $293 = HEAP32[$15>>2]|0; - $294 = HEAP32[$13>>2]|0; - $295 = HEAP32[$16>>2]|0; - $296 = (($293) + ($$1284))|0; - $297 = (($296) + ($294))|0; - $298 = (($297) - ($295))|0; - $299 = $100&1; - $$0288$ = (($299) + ($$0288425))|0; - $$11 = $$10;$$1289 = $$0288$;$$2285 = $298;$$6311 = $$5310;$307 = $310; - break L8; - } - } while(0); - $56 = $53&1; - $57 = (($$0273429) + ($56)|0); - ___shlim($0,0); - $58 = HEAP32[$13>>2]|0; - $59 = HEAP32[$14>>2]|0; - $60 = ($58>>>0)<($59>>>0); - if ($60) { - $61 = ((($58)) + 1|0); - HEAP32[$13>>2] = $61; - $62 = HEAP8[$58>>0]|0; - $63 = $62&255; - $68 = $63; - } else { - $64 = (___shgetc($0)|0); - $68 = $64; - } - $65 = HEAP8[$57>>0]|0; - $66 = $65&255; - $67 = ($68|0)==($66|0); - if (!($67)) { - label = 22; - break L6; - } - $75 = (($$0283428) + 1)|0; - $$11 = $57;$$1289 = $$0288425;$$2285 = $75;$$6311 = $$0305423;$307 = $102; - } else { - $$1274 = $$0273429; - while(1) { - $27 = ((($$1274)) + 1|0); - $28 = HEAP8[$27>>0]|0; - $29 = $28&255; - $30 = (_isspace($29)|0); - $31 = ($30|0)==(0); - if ($31) { - break; - } else { - $$1274 = $27; - } - } - ___shlim($0,0); - while(1) { - $32 = HEAP32[$13>>2]|0; - $33 = HEAP32[$14>>2]|0; - $34 = ($32>>>0)<($33>>>0); - if ($34) { - $35 = ((($32)) + 1|0); - HEAP32[$13>>2] = $35; - $36 = HEAP8[$32>>0]|0; - $37 = $36&255; - $39 = $37; - } else { - $38 = (___shgetc($0)|0); - $39 = $38; - } - $40 = (_isspace($39)|0); - $41 = ($40|0)==(0); - if ($41) { - break; - } - } - $42 = HEAP32[$14>>2]|0; - $43 = ($42|0)==(0|0); - if ($43) { - $$pre = HEAP32[$13>>2]|0; - $51 = $$pre; - } else { - $44 = HEAP32[$13>>2]|0; - $45 = ((($44)) + -1|0); - HEAP32[$13>>2] = $45; - $46 = $45; - $51 = $46; - } - $47 = HEAP32[$15>>2]|0; - $48 = HEAP32[$16>>2]|0; - $49 = (($47) + ($$0283428))|0; - $50 = (($49) + ($51))|0; - $52 = (($50) - ($48))|0; - $$11 = $$1274;$$1289 = $$0288425;$$2285 = $52;$$6311 = $$0305423;$307 = $102; - } - } while(0); - $300 = ((($$11)) + 1|0); - $301 = HEAP8[$300>>0]|0; - $302 = ($301<<24>>24)==(0); - if ($302) { - $$3291 = $$1289; - break L4; - } else { - $$0273429 = $300;$$0283428 = $$2285;$$0288425 = $$1289;$$0305423 = $$6311;$102 = $307;$24 = $301; - } - } - if ((label|0) == 22) { - $69 = HEAP32[$14>>2]|0; - $70 = ($69|0)==(0|0); - if (!($70)) { - $71 = HEAP32[$13>>2]|0; - $72 = ((($71)) + -1|0); - HEAP32[$13>>2] = $72; - } - $73 = ($68|0)>(-1); - $74 = ($$0288425|0)!=(0); - $or$cond5 = $74 | $73; - if ($or$cond5) { - $$3291 = $$0288425; - break; - } else { - $$1271 = 0;$$8313 = $$0305423;$308 = $102; - label = 138; - } - } - else if ((label|0) == 137) { - $$328$le441 = $narrow469&1; - $$old4 = ($$0288425|0)==(0); - if ($$old4) { - $$1271 = $$328$le441;$$8313 = $$7312;$308 = $309; - label = 138; - } else { - $$2 = $$328$le441;$$2290 = $$0288425;$$9314 = $$7312;$304 = $309; - } - } - else if ((label|0) == 139) { - $$328$le439 = $narrow&1; - $$2 = $$328$le439;$$2290 = $$0288425;$$9314 = $$9314$ph;$304 = $$ph353; - } - if ((label|0) == 138) { - $$2 = $$1271;$$2290 = -1;$$9314 = $$8313;$304 = $308; - } - $303 = ($$2|0)==(0); - if ($303) { - $$3291 = $$2290; - } else { - _free($$9314); - _free($304); - $$3291 = $$2290; - } - } - } while(0); - $305 = ($306|0)==(0); - if (!($305)) { - ___unlockfile($0); - } - STACKTOP = sp;return ($$3291|0); -} -function _arg_n($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arglist_current = 0, $arglist_next = 0, $expanded = 0, $expanded1 = 0, $expanded3 = 0, $expanded4 = 0, $expanded5 = 0, $vacopy_currentptr = 0, label = 0; - var sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = sp; - $vacopy_currentptr = HEAP32[$0>>2]|0; - HEAP32[$2>>2] = $vacopy_currentptr; - $$0 = $1; - while(1) { - $3 = ($$0>>>0)>(1); - $arglist_current = HEAP32[$2>>2]|0; - $4 = $arglist_current; - $5 = ((0) + 4|0); - $expanded1 = $5; - $expanded = (($expanded1) - 1)|0; - $6 = (($4) + ($expanded))|0; - $7 = ((0) + 4|0); - $expanded5 = $7; - $expanded4 = (($expanded5) - 1)|0; - $expanded3 = $expanded4 ^ -1; - $8 = $6 & $expanded3; - $9 = $8; - $10 = HEAP32[$9>>2]|0; - $arglist_next = ((($9)) + 4|0); - HEAP32[$2>>2] = $arglist_next; - $11 = (($$0) + -1)|0; - if ($3) { - $$0 = $11; - } else { - break; - } - } - STACKTOP = sp;return ($10|0); -} -function _store_int($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ($0|0)==(0|0); - L1: do { - if (!($4)) { - switch ($1|0) { - case -2: { - $5 = $2&255; - HEAP8[$0>>0] = $5; - break L1; - break; - } - case -1: { - $6 = $2&65535; - HEAP16[$0>>1] = $6; - break L1; - break; - } - case 0: { - HEAP32[$0>>2] = $2; - break L1; - break; - } - case 1: { - HEAP32[$0>>2] = $2; - break L1; - break; - } - case 3: { - $7 = $0; - $8 = $7; - HEAP32[$8>>2] = $2; - $9 = (($7) + 4)|0; - $10 = $9; - HEAP32[$10>>2] = $3; - break L1; - break; - } - default: { - break L1; - } - } - } - } while(0); - return; -} -function _mbsinit($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0|0); - if ($1) { - $5 = 1; - } else { - $2 = HEAP32[$0>>2]|0; - $3 = ($2|0)==(0); - $5 = $3; - } - $4 = $5&1; - return ($4|0); -} -function ___string_read($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$027 = 0, $$027$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($0)) + 84|0); - $4 = HEAP32[$3>>2]|0; - $5 = (($2) + 256)|0; - $6 = (_memchr($4,0,$5)|0); - $7 = ($6|0)==(0|0); - $8 = $6; - $9 = $4; - $10 = (($8) - ($9))|0; - $$027 = $7 ? $5 : $10; - $11 = ($$027>>>0)<($2>>>0); - $$027$ = $11 ? $$027 : $2; - _memcpy(($1|0),($4|0),($$027$|0))|0; - $12 = (($4) + ($$027$)|0); - $13 = ((($0)) + 4|0); - HEAP32[$13>>2] = $12; - $14 = (($4) + ($$027)|0); - $15 = ((($0)) + 8|0); - HEAP32[$15>>2] = $14; - HEAP32[$3>>2] = $14; - return ($$027$|0); -} -function _fseek($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (___fseeko($0,$1,$2)|0); - return ($3|0); -} -function ___fseeko($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($0)) + 76|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)>(-1); - if ($5) { - $7 = (___lockfile($0)|0); - $phitmp = ($7|0)==(0); - $8 = (___fseeko_unlocked($0,$1,$2)|0); - if ($phitmp) { - $9 = $8; - } else { - ___unlockfile($0); - $9 = $8; - } - } else { - $6 = (___fseeko_unlocked($0,$1,$2)|0); - $9 = $6; - } - return ($9|0); -} -function ___fseeko_unlocked($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($2|0)==(1); - if ($3) { - $4 = ((($0)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = ((($0)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = (($1) - ($5))|0; - $9 = (($8) + ($7))|0; - $$019 = $9; - } else { - $$019 = $1; - } - $10 = ((($0)) + 20|0); - $11 = HEAP32[$10>>2]|0; - $12 = ((($0)) + 28|0); - $13 = HEAP32[$12>>2]|0; - $14 = ($11>>>0)>($13>>>0); - if ($14) { - $15 = ((($0)) + 36|0); - $16 = HEAP32[$15>>2]|0; - (FUNCTION_TABLE_iiii[$16 & 15]($0,0,0)|0); - $17 = HEAP32[$10>>2]|0; - $18 = ($17|0)==(0|0); - if ($18) { - $$0 = -1; - } else { - label = 5; - } - } else { - label = 5; - } - if ((label|0) == 5) { - $19 = ((($0)) + 16|0); - HEAP32[$19>>2] = 0; - HEAP32[$12>>2] = 0; - HEAP32[$10>>2] = 0; - $20 = ((($0)) + 40|0); - $21 = HEAP32[$20>>2]|0; - $22 = (FUNCTION_TABLE_iiii[$21 & 15]($0,$$019,$2)|0); - $23 = ($22|0)<(0); - if ($23) { - $$0 = -1; - } else { - $24 = ((($0)) + 8|0); - HEAP32[$24>>2] = 0; - $25 = ((($0)) + 4|0); - HEAP32[$25>>2] = 0; - $26 = HEAP32[$0>>2]|0; - $27 = $26 & -17; - HEAP32[$0>>2] = $27; - $$0 = 0; - } - } - return ($$0|0); -} -function _strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = ($2<<24>>24)==(0); - do { - if ($3) { - $$0 = $0; - } else { - $4 = $2 << 24 >> 24; - $5 = (_strchr($0,$4)|0); - $6 = ($5|0)==(0|0); - if ($6) { - $$0 = 0; - } else { - $7 = ((($1)) + 1|0); - $8 = HEAP8[$7>>0]|0; - $9 = ($8<<24>>24)==(0); - if ($9) { - $$0 = $5; - } else { - $10 = ((($5)) + 1|0); - $11 = HEAP8[$10>>0]|0; - $12 = ($11<<24>>24)==(0); - if ($12) { - $$0 = 0; - } else { - $13 = ((($1)) + 2|0); - $14 = HEAP8[$13>>0]|0; - $15 = ($14<<24>>24)==(0); - if ($15) { - $16 = (_twobyte_strstr($5,$1)|0); - $$0 = $16; - break; - } - $17 = ((($5)) + 2|0); - $18 = HEAP8[$17>>0]|0; - $19 = ($18<<24>>24)==(0); - if ($19) { - $$0 = 0; - } else { - $20 = ((($1)) + 3|0); - $21 = HEAP8[$20>>0]|0; - $22 = ($21<<24>>24)==(0); - if ($22) { - $23 = (_threebyte_strstr($5,$1)|0); - $$0 = $23; - break; - } - $24 = ((($5)) + 3|0); - $25 = HEAP8[$24>>0]|0; - $26 = ($25<<24>>24)==(0); - if ($26) { - $$0 = 0; - } else { - $27 = ((($1)) + 4|0); - $28 = HEAP8[$27>>0]|0; - $29 = ($28<<24>>24)==(0); - if ($29) { - $30 = (_fourbyte_strstr($5,$1)|0); - $$0 = $30; - break; - } else { - $31 = (_twoway_strstr($5,$1)|0); - $$0 = $31; - break; - } - } - } - } - } - } - } - } while(0); - return ($$0|0); -} -function _twobyte_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$lcssa = 0, $$sink = 0, $$sink$in = 0, $$sink$masked = 0, $$sink17$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = $2&255; - $4 = $3 << 8; - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&255; - $8 = $4 | $7; - $9 = HEAP8[$0>>0]|0; - $10 = $9&255; - $$sink$in = $10;$$sink17$sink = $0; - while(1) { - $11 = ((($$sink17$sink)) + 1|0); - $12 = HEAP8[$11>>0]|0; - $13 = ($12<<24>>24)==(0); - if ($13) { - $$lcssa = 0; - break; - } - $$sink = $$sink$in << 8; - $14 = $12&255; - $$sink$masked = $$sink & 65280; - $15 = $14 | $$sink$masked; - $16 = ($15|0)==($8|0); - if ($16) { - $$lcssa = $$sink17$sink; - break; - } else { - $$sink$in = $15;$$sink17$sink = $11; - } - } - return ($$lcssa|0); -} -function _threebyte_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$016$lcssa = 0, $$01619 = 0, $$020 = 0, $$lcssa = 0, $$not = 0, $$not17 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond18 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = $2&255; - $4 = $3 << 24; - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&255; - $8 = $7 << 16; - $9 = $8 | $4; - $10 = ((($1)) + 2|0); - $11 = HEAP8[$10>>0]|0; - $12 = $11&255; - $13 = $12 << 8; - $14 = $9 | $13; - $15 = HEAP8[$0>>0]|0; - $16 = $15&255; - $17 = $16 << 24; - $18 = ((($0)) + 1|0); - $19 = HEAP8[$18>>0]|0; - $20 = $19&255; - $21 = $20 << 16; - $22 = $21 | $17; - $23 = ((($0)) + 2|0); - $24 = HEAP8[$23>>0]|0; - $25 = $24&255; - $26 = $25 << 8; - $27 = $22 | $26; - $28 = ($24<<24>>24)!=(0); - $$not17 = $28 ^ 1; - $29 = ($27|0)==($14|0); - $or$cond18 = $29 | $$not17; - if ($or$cond18) { - $$016$lcssa = $23;$$lcssa = $28; - } else { - $$01619 = $23;$$020 = $27; - while(1) { - $30 = ((($$01619)) + 1|0); - $31 = HEAP8[$30>>0]|0; - $32 = $31&255; - $33 = $32 | $$020; - $34 = $33 << 8; - $35 = ($31<<24>>24)!=(0); - $$not = $35 ^ 1; - $36 = ($34|0)==($14|0); - $or$cond = $36 | $$not; - if ($or$cond) { - $$016$lcssa = $30;$$lcssa = $35; - break; - } else { - $$01619 = $30;$$020 = $34; - } - } - } - $37 = ((($$016$lcssa)) + -2|0); - $38 = $$lcssa ? $37 : 0; - return ($38|0); -} -function _fourbyte_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$lcssa = 0, $$not = 0, $$not22 = 0, $$sink21$lcssa = 0, $$sink2124 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond23 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP8[$1>>0]|0; - $3 = $2&255; - $4 = $3 << 24; - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&255; - $8 = $7 << 16; - $9 = $8 | $4; - $10 = ((($1)) + 2|0); - $11 = HEAP8[$10>>0]|0; - $12 = $11&255; - $13 = $12 << 8; - $14 = $9 | $13; - $15 = ((($1)) + 3|0); - $16 = HEAP8[$15>>0]|0; - $17 = $16&255; - $18 = $14 | $17; - $19 = HEAP8[$0>>0]|0; - $20 = $19&255; - $21 = $20 << 24; - $22 = ((($0)) + 1|0); - $23 = HEAP8[$22>>0]|0; - $24 = $23&255; - $25 = $24 << 16; - $26 = $25 | $21; - $27 = ((($0)) + 2|0); - $28 = HEAP8[$27>>0]|0; - $29 = $28&255; - $30 = $29 << 8; - $31 = $26 | $30; - $32 = ((($0)) + 3|0); - $33 = HEAP8[$32>>0]|0; - $34 = $33&255; - $35 = $34 | $31; - $36 = ($33<<24>>24)!=(0); - $$not22 = $36 ^ 1; - $37 = ($35|0)==($18|0); - $or$cond23 = $37 | $$not22; - if ($or$cond23) { - $$lcssa = $36;$$sink21$lcssa = $32; - } else { - $$sink2124 = $32;$39 = $35; - while(1) { - $38 = $39 << 8; - $40 = ((($$sink2124)) + 1|0); - $41 = HEAP8[$40>>0]|0; - $42 = $41&255; - $43 = $42 | $38; - $44 = ($41<<24>>24)!=(0); - $$not = $44 ^ 1; - $45 = ($43|0)==($18|0); - $or$cond = $45 | $$not; - if ($or$cond) { - $$lcssa = $44;$$sink21$lcssa = $40; - break; - } else { - $$sink2124 = $40;$39 = $43; - } - } - } - $46 = ((($$sink21$lcssa)) + -3|0); - $47 = $$lcssa ? $46 : 0; - return ($47|0); -} -function _twoway_strstr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0166 = 0, $$0168 = 0, $$0169 = 0, $$0169$be = 0, $$0170 = 0, $$0175$ph$ph$lcssa220 = 0, $$0175$ph$ph$lcssa220323 = 0, $$0175$ph$ph256 = 0, $$0179244 = 0, $$0183$ph200$ph255 = 0, $$0183$ph200250 = 0, $$0183$ph262 = 0, $$0185$ph$lcssa = 0, $$0185$ph$lcssa322 = 0, $$0185$ph261 = 0, $$0187$lcssa320321 = 0, $$0187266 = 0, $$1176$$0175 = 0, $$1176$ph$ph$lcssa211 = 0, $$1176$ph$ph235 = 0; - var $$1180224 = 0, $$1184$ph196$ph234 = 0, $$1184$ph196229 = 0, $$1184$ph241 = 0, $$1186$$0185 = 0, $$1186$$0185$ = 0, $$1186$ph$lcssa = 0, $$1186$ph240 = 0, $$2181 = 0, $$2181$sink = 0, $$3 = 0, $$3173 = 0, $$3178 = 0, $$3182223 = 0, $$4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0; - var $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0; - var $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; - var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; - var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; - var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; - var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0; - var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond191 = 0, $cond191222 = 0, $cond265 = 0, $div = 0, $div188 = 0, $or$cond = 0, $or$cond190 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); - $2 = sp + 1024|0; - $3 = sp; - ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; - $4 = HEAP8[$1>>0]|0; - $cond265 = ($4<<24>>24)==(0); - L1: do { - if ($cond265) { - $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = 0;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; - label = 27; - } else { - $5 = $4&255; - $$0187266 = 0;$12 = $4;$20 = $5; - while(1) { - $8 = (($0) + ($$0187266)|0); - $9 = HEAP8[$8>>0]|0; - $10 = ($9<<24>>24)==(0); - if ($10) { - $$3 = 0; - break L1; - } - $11 = $12 & 31; - $13 = $11&255; - $14 = 1 << $13; - $div188 = ($12&255) >>> 5; - $15 = $div188&255; - $16 = (($2) + ($15<<2)|0); - $17 = HEAP32[$16>>2]|0; - $18 = $17 | $14; - HEAP32[$16>>2] = $18; - $7 = (($$0187266) + 1)|0; - $19 = (($3) + ($20<<2)|0); - HEAP32[$19>>2] = $7; - $21 = (($1) + ($7)|0); - $22 = HEAP8[$21>>0]|0; - $23 = $22&255; - $cond = ($22<<24>>24)==(0); - if ($cond) { - break; - } else { - $$0187266 = $7;$12 = $22;$20 = $23; - } - } - $6 = ($7>>>0)>(1); - if ($6) { - $$0183$ph262 = 0;$$0185$ph261 = -1;$129 = 1; - L7: while(1) { - $$0175$ph$ph256 = 1;$$0183$ph200$ph255 = $$0183$ph262;$132 = $129; - while(1) { - $$0183$ph200250 = $$0183$ph200$ph255;$131 = $132; - L11: while(1) { - $$0179244 = 1;$31 = $131; - while(1) { - $27 = (($$0179244) + ($$0185$ph261))|0; - $28 = (($1) + ($27)|0); - $29 = HEAP8[$28>>0]|0; - $30 = (($1) + ($31)|0); - $32 = HEAP8[$30>>0]|0; - $33 = ($29<<24>>24)==($32<<24>>24); - if (!($33)) { - break L11; - } - $34 = ($$0179244|0)==($$0175$ph$ph256|0); - $25 = (($$0179244) + 1)|0; - if ($34) { - break; - } - $24 = (($25) + ($$0183$ph200250))|0; - $26 = ($24>>>0)<($7>>>0); - if ($26) { - $$0179244 = $25;$31 = $24; - } else { - $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; - break L7; - } - } - $35 = (($$0175$ph$ph256) + ($$0183$ph200250))|0; - $36 = (($35) + 1)|0; - $37 = ($36>>>0)<($7>>>0); - if ($37) { - $$0183$ph200250 = $35;$131 = $36; - } else { - $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; - break L7; - } - } - $38 = ($29&255)>($32&255); - $39 = (($31) - ($$0185$ph261))|0; - if (!($38)) { - break; - } - $43 = (($31) + 1)|0; - $44 = ($43>>>0)<($7>>>0); - if ($44) { - $$0175$ph$ph256 = $39;$$0183$ph200$ph255 = $31;$132 = $43; - } else { - $$0175$ph$ph$lcssa220 = $39;$$0185$ph$lcssa = $$0185$ph261; - break L7; - } - } - $40 = (($$0183$ph200250) + 1)|0; - $41 = (($$0183$ph200250) + 2)|0; - $42 = ($41>>>0)<($7>>>0); - if ($42) { - $$0183$ph262 = $40;$$0185$ph261 = $$0183$ph200250;$129 = $41; - } else { - $$0175$ph$ph$lcssa220 = 1;$$0185$ph$lcssa = $$0183$ph200250; - break; - } - } - if ($6) { - $$1184$ph241 = 0;$$1186$ph240 = -1;$130 = 1; - while(1) { - $$1176$ph$ph235 = 1;$$1184$ph196$ph234 = $$1184$ph241;$134 = $130; - while(1) { - $$1184$ph196229 = $$1184$ph196$ph234;$133 = $134; - L26: while(1) { - $$1180224 = 1;$52 = $133; - while(1) { - $48 = (($$1180224) + ($$1186$ph240))|0; - $49 = (($1) + ($48)|0); - $50 = HEAP8[$49>>0]|0; - $51 = (($1) + ($52)|0); - $53 = HEAP8[$51>>0]|0; - $54 = ($50<<24>>24)==($53<<24>>24); - if (!($54)) { - break L26; - } - $55 = ($$1180224|0)==($$1176$ph$ph235|0); - $46 = (($$1180224) + 1)|0; - if ($55) { - break; - } - $45 = (($46) + ($$1184$ph196229))|0; - $47 = ($45>>>0)<($7>>>0); - if ($47) { - $$1180224 = $46;$52 = $45; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; - label = 27; - break L1; - } - } - $56 = (($$1176$ph$ph235) + ($$1184$ph196229))|0; - $57 = (($56) + 1)|0; - $58 = ($57>>>0)<($7>>>0); - if ($58) { - $$1184$ph196229 = $56;$133 = $57; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; - label = 27; - break L1; - } - } - $59 = ($50&255)<($53&255); - $60 = (($52) - ($$1186$ph240))|0; - if (!($59)) { - break; - } - $64 = (($52) + 1)|0; - $65 = ($64>>>0)<($7>>>0); - if ($65) { - $$1176$ph$ph235 = $60;$$1184$ph196$ph234 = $52;$134 = $64; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $60;$$1186$ph$lcssa = $$1186$ph240; - label = 27; - break L1; - } - } - $61 = (($$1184$ph196229) + 1)|0; - $62 = (($$1184$ph196229) + 2)|0; - $63 = ($62>>>0)<($7>>>0); - if ($63) { - $$1184$ph241 = $61;$$1186$ph240 = $$1184$ph196229;$130 = $62; - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = $$1184$ph196229; - label = 27; - break; - } - } - } else { - $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; - label = 27; - } - } else { - $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; - label = 27; - } - } - } while(0); - L36: do { - if ((label|0) == 27) { - $66 = (($$1186$ph$lcssa) + 1)|0; - $67 = (($$0185$ph$lcssa322) + 1)|0; - $68 = ($66>>>0)>($67>>>0); - $$1176$$0175 = $68 ? $$1176$ph$ph$lcssa211 : $$0175$ph$ph$lcssa220323; - $$1186$$0185 = $68 ? $$1186$ph$lcssa : $$0185$ph$lcssa322; - $69 = (($1) + ($$1176$$0175)|0); - $70 = (($$1186$$0185) + 1)|0; - $71 = (_memcmp($1,$69,$70)|0); - $72 = ($71|0)==(0); - if ($72) { - $77 = (($$0187$lcssa320321) - ($$1176$$0175))|0; - $$0168 = $77;$$3178 = $$1176$$0175; - } else { - $73 = (($$0187$lcssa320321) - ($$1186$$0185))|0; - $74 = (($73) + -1)|0; - $75 = ($$1186$$0185>>>0)>($74>>>0); - $$1186$$0185$ = $75 ? $$1186$$0185 : $74; - $76 = (($$1186$$0185$) + 1)|0; - $$0168 = 0;$$3178 = $76; - } - $78 = $$0187$lcssa320321 | 63; - $79 = (($$0187$lcssa320321) + -1)|0; - $80 = ($$0168|0)!=(0); - $81 = (($$0187$lcssa320321) - ($$3178))|0; - $$0166 = $0;$$0169 = 0;$$0170 = $0; - while(1) { - $82 = $$0170; - $83 = $$0166; - $84 = (($82) - ($83))|0; - $85 = ($84>>>0)<($$0187$lcssa320321>>>0); - do { - if ($85) { - $86 = (_memchr($$0170,0,$78)|0); - $87 = ($86|0)==(0|0); - if ($87) { - $91 = (($$0170) + ($78)|0); - $$3173 = $91; - break; - } else { - $88 = $86; - $89 = (($88) - ($83))|0; - $90 = ($89>>>0)<($$0187$lcssa320321>>>0); - if ($90) { - $$3 = 0; - break L36; - } else { - $$3173 = $86; - break; - } - } - } else { - $$3173 = $$0170; - } - } while(0); - $92 = (($$0166) + ($79)|0); - $93 = HEAP8[$92>>0]|0; - $div = ($93&255) >>> 5; - $94 = $div&255; - $95 = (($2) + ($94<<2)|0); - $96 = HEAP32[$95>>2]|0; - $97 = $93 & 31; - $98 = $97&255; - $99 = 1 << $98; - $100 = $99 & $96; - $101 = ($100|0)==(0); - L50: do { - if ($101) { - $$0169$be = 0;$$2181$sink = $$0187$lcssa320321; - } else { - $102 = $93&255; - $103 = (($3) + ($102<<2)|0); - $104 = HEAP32[$103>>2]|0; - $105 = (($$0187$lcssa320321) - ($104))|0; - $106 = ($105|0)==(0); - if (!($106)) { - $107 = ($$0169|0)!=(0); - $or$cond = $80 & $107; - $108 = ($105>>>0)<($$3178>>>0); - $or$cond190 = $or$cond & $108; - $$2181 = $or$cond190 ? $81 : $105; - $$0169$be = 0;$$2181$sink = $$2181; - break; - } - $110 = ($70>>>0)>($$0169>>>0); - $111 = $110 ? $70 : $$0169; - $112 = (($1) + ($111)|0); - $113 = HEAP8[$112>>0]|0; - $cond191222 = ($113<<24>>24)==(0); - L55: do { - if ($cond191222) { - $$4 = $70; - } else { - $$3182223 = $111;$117 = $113; - while(1) { - $114 = (($$0166) + ($$3182223)|0); - $115 = HEAP8[$114>>0]|0; - $116 = ($117<<24>>24)==($115<<24>>24); - if (!($116)) { - break; - } - $118 = (($$3182223) + 1)|0; - $119 = (($1) + ($118)|0); - $120 = HEAP8[$119>>0]|0; - $cond191 = ($120<<24>>24)==(0); - if ($cond191) { - $$4 = $70; - break L55; - } else { - $$3182223 = $118;$117 = $120; - } - } - $121 = (($$3182223) - ($$1186$$0185))|0; - $$0169$be = 0;$$2181$sink = $121; - break L50; - } - } while(0); - while(1) { - $122 = ($$4>>>0)>($$0169>>>0); - if (!($122)) { - $$3 = $$0166; - break L36; - } - $123 = (($$4) + -1)|0; - $124 = (($1) + ($123)|0); - $125 = HEAP8[$124>>0]|0; - $126 = (($$0166) + ($123)|0); - $127 = HEAP8[$126>>0]|0; - $128 = ($125<<24>>24)==($127<<24>>24); - if ($128) { - $$4 = $123; - } else { - $$0169$be = $$0168;$$2181$sink = $$3178; - break; - } - } - } - } while(0); - $109 = (($$0166) + ($$2181$sink)|0); - $$0166 = $109;$$0169 = $$0169$be;$$0170 = $$3173; - } - } - } while(0); - STACKTOP = sp;return ($$3|0); -} -function _strrchr($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (_strlen($0)|0); - $3 = (($2) + 1)|0; - $4 = (___memrchr($0,$1,$3)|0); - return ($4|0); -} -function ___memrchr($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$09 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = $1&255; - $$09 = $2; - while(1) { - $4 = (($$09) + -1)|0; - $5 = ($$09|0)==(0); - if ($5) { - $$0 = 0; - break; - } - $6 = (($0) + ($4)|0); - $7 = HEAP8[$6>>0]|0; - $8 = ($7<<24>>24)==($3<<24>>24); - if ($8) { - $$0 = $6; - break; - } else { - $$09 = $4; - } - } - return ($$0|0); -} -function _strspn($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$01925 = 0, $$020 = 0, $$1$lcssa = 0, $$123 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0, $div21 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $2 = sp; - ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; - $3 = HEAP8[$1>>0]|0; - $4 = ($3<<24>>24)==(0); - do { - if ($4) { - $$0 = 0; - } else { - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = ($6<<24>>24)==(0); - if ($7) { - $$020 = $0; - while(1) { - $8 = HEAP8[$$020>>0]|0; - $9 = ($8<<24>>24)==($3<<24>>24); - $10 = ((($$020)) + 1|0); - if ($9) { - $$020 = $10; - } else { - break; - } - } - $11 = $$020; - $12 = $0; - $13 = (($11) - ($12))|0; - $$0 = $13; - break; - } else { - $$01925 = $1;$17 = $3; - } - while(1) { - $16 = $17 & 31; - $18 = $16&255; - $19 = 1 << $18; - $div21 = ($17&255) >>> 5; - $20 = $div21&255; - $21 = (($2) + ($20<<2)|0); - $22 = HEAP32[$21>>2]|0; - $23 = $22 | $19; - HEAP32[$21>>2] = $23; - $24 = ((($$01925)) + 1|0); - $25 = HEAP8[$24>>0]|0; - $26 = ($25<<24>>24)==(0); - if ($26) { - break; - } else { - $$01925 = $24;$17 = $25; - } - } - $14 = HEAP8[$0>>0]|0; - $15 = ($14<<24>>24)==(0); - L10: do { - if ($15) { - $$1$lcssa = $0; - } else { - $$123 = $0;$27 = $14; - while(1) { - $div = ($27&255) >>> 5; - $28 = $div&255; - $29 = (($2) + ($28<<2)|0); - $30 = HEAP32[$29>>2]|0; - $31 = $27 & 31; - $32 = $31&255; - $33 = 1 << $32; - $34 = $30 & $33; - $35 = ($34|0)==(0); - if ($35) { - $$1$lcssa = $$123; - break L10; - } - $36 = ((($$123)) + 1|0); - $37 = HEAP8[$36>>0]|0; - $38 = ($37<<24>>24)==(0); - if ($38) { - $$1$lcssa = $36; - break; - } else { - $$123 = $36;$27 = $37; - } - } - } - } while(0); - $39 = $$1$lcssa; - $40 = $0; - $41 = (($39) - ($40))|0; - $$0 = $41; - } - } while(0); - STACKTOP = sp;return ($$0|0); -} -function _srand($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (($0) + -1)|0; - $2 = 20264; - $3 = $2; - HEAP32[$3>>2] = $1; - $4 = (($2) + 4)|0; - $5 = $4; - HEAP32[$5>>2] = 0; - return; -} -function _fread($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$ = 0, $$0 = 0, $$054$ph = 0, $$05460 = 0, $$056$ph = 0, $$05659 = 0, $$57 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = Math_imul($2, $1)|0; - $5 = ($1|0)==(0); - $$ = $5 ? 0 : $2; - $6 = ((($3)) + 76|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)>(-1); - if ($8) { - $9 = (___lockfile($3)|0); - $36 = $9; - } else { - $36 = 0; - } - $10 = ((($3)) + 74|0); - $11 = HEAP8[$10>>0]|0; - $12 = $11 << 24 >> 24; - $13 = (($12) + 255)|0; - $14 = $13 | $12; - $15 = $14&255; - HEAP8[$10>>0] = $15; - $16 = ((($3)) + 8|0); - $17 = HEAP32[$16>>2]|0; - $18 = ((($3)) + 4|0); - $19 = HEAP32[$18>>2]|0; - $20 = $19; - $21 = (($17) - ($20))|0; - $22 = ($21|0)>(0); - $23 = ($21>>>0)<($4>>>0); - $$57 = $23 ? $21 : $4; - if ($22) { - $24 = (($4) - ($$57))|0; - $25 = (($0) + ($$57)|0); - _memcpy(($0|0),($19|0),($$57|0))|0; - $26 = (($19) + ($$57)|0); - HEAP32[$18>>2] = $26; - $$054$ph = $24;$$056$ph = $25; - } else { - $$054$ph = $4;$$056$ph = $0; - } - $27 = ($$054$ph|0)==(0); - L7: do { - if ($27) { - label = 13; - } else { - $28 = ((($3)) + 32|0); - $$05460 = $$054$ph;$$05659 = $$056$ph; - while(1) { - $29 = (___toread($3)|0); - $30 = ($29|0)==(0); - if (!($30)) { - break; - } - $31 = HEAP32[$28>>2]|0; - $32 = (FUNCTION_TABLE_iiii[$31 & 15]($3,$$05659,$$05460)|0); - $33 = (($32) + 1)|0; - $34 = ($33>>>0)<(2); - if ($34) { - break; - } - $39 = (($$05460) - ($32))|0; - $40 = (($$05659) + ($32)|0); - $41 = ($39|0)==(0); - if ($41) { - label = 13; - break L7; - } else { - $$05460 = $39;$$05659 = $40; - } - } - $35 = ($36|0)==(0); - if (!($35)) { - ___unlockfile($3); - } - $37 = (($4) - ($$05460))|0; - $38 = (($37>>>0) / ($1>>>0))&-1; - $$0 = $38; - } - } while(0); - if ((label|0) == 13) { - $42 = ($36|0)==(0); - if ($42) { - $$0 = $$; - } else { - ___unlockfile($3); - $$0 = $$; - } - } - return ($$0|0); -} -function _vprintf($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = HEAP32[1019]|0; - $3 = (_vfprintf($2,$0,$1)|0); - return ($3|0); -} -function _strcspn($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$01824 = 0, $$019$sink = 0, $$01922 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0; - var $div20 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $2 = sp; - $3 = HEAP8[$1>>0]|0; - $4 = ($3<<24>>24)==(0); - L1: do { - if ($4) { - label = 3; - } else { - $5 = ((($1)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = ($6<<24>>24)==(0); - if ($7) { - label = 3; - } else { - ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; - $$01824 = $1;$13 = $3; - while(1) { - $12 = $13 & 31; - $14 = $12&255; - $15 = 1 << $14; - $div20 = ($13&255) >>> 5; - $16 = $div20&255; - $17 = (($2) + ($16<<2)|0); - $18 = HEAP32[$17>>2]|0; - $19 = $18 | $15; - HEAP32[$17>>2] = $19; - $20 = ((($$01824)) + 1|0); - $21 = HEAP8[$20>>0]|0; - $22 = ($21<<24>>24)==(0); - if ($22) { - break; - } else { - $$01824 = $20;$13 = $21; - } - } - $10 = HEAP8[$0>>0]|0; - $11 = ($10<<24>>24)==(0); - if ($11) { - $$019$sink = $0; - } else { - $$01922 = $0;$23 = $10; - while(1) { - $div = ($23&255) >>> 5; - $24 = $div&255; - $25 = (($2) + ($24<<2)|0); - $26 = HEAP32[$25>>2]|0; - $27 = $23 & 31; - $28 = $27&255; - $29 = 1 << $28; - $30 = $26 & $29; - $31 = ($30|0)==(0); - if (!($31)) { - $$019$sink = $$01922; - break L1; - } - $32 = ((($$01922)) + 1|0); - $33 = HEAP8[$32>>0]|0; - $34 = ($33<<24>>24)==(0); - if ($34) { - $$019$sink = $32; - break; - } else { - $$01922 = $32;$23 = $33; - } - } - } - } - } - } while(0); - if ((label|0) == 3) { - $8 = $3 << 24 >> 24; - $9 = (___strchrnul($0,$8)|0); - $$019$sink = $9; - } - $35 = $$019$sink; - $36 = $0; - $37 = (($35) - ($36))|0; - STACKTOP = sp;return ($37|0); -} -function _strcat($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (_strlen($0)|0); - $3 = (($0) + ($2)|0); - (_strcpy($3,$1)|0); - return ($0|0); -} -function _strncat($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0$lcssa = 0, $$01013 = 0, $$01112 = 0, $$014 = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (_strlen($0)|0); - $4 = (($0) + ($3)|0); - $5 = ($2|0)==(0); - L1: do { - if ($5) { - $$0$lcssa = $4; - } else { - $$01013 = $2;$$01112 = $1;$$014 = $4; - while(1) { - $6 = HEAP8[$$01112>>0]|0; - $7 = ($6<<24>>24)==(0); - if ($7) { - $$0$lcssa = $$014; - break L1; - } - $8 = (($$01013) + -1)|0; - $9 = ((($$01112)) + 1|0); - $10 = ((($$014)) + 1|0); - HEAP8[$$014>>0] = $6; - $11 = ($8|0)==(0); - if ($11) { - $$0$lcssa = $10; - break; - } else { - $$01013 = $8;$$01112 = $9;$$014 = $10; - } - } - } - } while(0); - HEAP8[$$0$lcssa>>0] = 0; - return ($0|0); -} -function _strtok($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$010 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($0|0)==(0|0); - if ($2) { - $3 = HEAP32[5850]|0; - $4 = ($3|0)==(0|0); - if ($4) { - $$0 = 0; - } else { - $$010 = $3; - label = 3; - } - } else { - $$010 = $0; - label = 3; - } - do { - if ((label|0) == 3) { - $5 = (_strspn($$010,$1)|0); - $6 = (($$010) + ($5)|0); - $7 = HEAP8[$6>>0]|0; - $8 = ($7<<24>>24)==(0); - if ($8) { - HEAP32[5850] = 0; - $$0 = 0; - break; - } - $9 = (_strcspn($6,$1)|0); - $10 = (($6) + ($9)|0); - HEAP32[5850] = $10; - $11 = HEAP8[$10>>0]|0; - $12 = ($11<<24>>24)==(0); - if ($12) { - HEAP32[5850] = 0; - $$0 = $6; - break; - } else { - $13 = ((($10)) + 1|0); - HEAP32[5850] = $13; - HEAP8[$10>>0] = 0; - $$0 = $6; - break; - } - } - } while(0); - return ($$0|0); -} -function runPostSets() { -} -function _memset(ptr, value, num) { - ptr = ptr|0; value = value|0; num = num|0; - var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0; - end = (ptr + num)|0; - - value = value & 0xff; - if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) { - while ((ptr&3) != 0) { - HEAP8[((ptr)>>0)]=value; - ptr = (ptr+1)|0; - } - - aligned_end = (end & -4)|0; - block_aligned_end = (aligned_end - 64)|0; - value4 = value | (value << 8) | (value << 16) | (value << 24); - - while((ptr|0) <= (block_aligned_end|0)) { - HEAP32[((ptr)>>2)]=value4; - HEAP32[(((ptr)+(4))>>2)]=value4; - HEAP32[(((ptr)+(8))>>2)]=value4; - HEAP32[(((ptr)+(12))>>2)]=value4; - HEAP32[(((ptr)+(16))>>2)]=value4; - HEAP32[(((ptr)+(20))>>2)]=value4; - HEAP32[(((ptr)+(24))>>2)]=value4; - HEAP32[(((ptr)+(28))>>2)]=value4; - HEAP32[(((ptr)+(32))>>2)]=value4; - HEAP32[(((ptr)+(36))>>2)]=value4; - HEAP32[(((ptr)+(40))>>2)]=value4; - HEAP32[(((ptr)+(44))>>2)]=value4; - HEAP32[(((ptr)+(48))>>2)]=value4; - HEAP32[(((ptr)+(52))>>2)]=value4; - HEAP32[(((ptr)+(56))>>2)]=value4; - HEAP32[(((ptr)+(60))>>2)]=value4; - ptr = (ptr + 64)|0; - } - - while ((ptr|0) < (aligned_end|0) ) { - HEAP32[((ptr)>>2)]=value4; - ptr = (ptr+4)|0; - } - } - // The remaining bytes. - while ((ptr|0) < (end|0)) { - HEAP8[((ptr)>>0)]=value; - ptr = (ptr+1)|0; - } - return (end-num)|0; -} -function _i64Subtract(a, b, c, d) { - a = a|0; b = b|0; c = c|0; d = d|0; - var l = 0, h = 0; - l = (a - c)>>>0; - h = (b - d)>>>0; - h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow. - return ((tempRet0 = h,l|0)|0); -} -function _i64Add(a, b, c, d) { - /* - x = a + b*2^32 - y = c + d*2^32 - result = l + h*2^32 - */ - a = a|0; b = b|0; c = c|0; d = d|0; - var l = 0, h = 0; - l = (a + c)>>>0; - h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow. - return ((tempRet0 = h,l|0)|0); -} -function _llvm_cttz_i32(x) { - x = x|0; - var ret = 0; - ret = ((HEAP8[(((cttz_i8)+(x & 0xff))>>0)])|0); - if ((ret|0) < 8) return ret|0; - ret = ((HEAP8[(((cttz_i8)+((x >> 8)&0xff))>>0)])|0); - if ((ret|0) < 8) return (ret + 8)|0; - ret = ((HEAP8[(((cttz_i8)+((x >> 16)&0xff))>>0)])|0); - if ((ret|0) < 8) return (ret + 16)|0; - return (((HEAP8[(((cttz_i8)+(x >>> 24))>>0)])|0) + 24)|0; -} -function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - $rem = $rem | 0; - var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0; - $n_sroa_0_0_extract_trunc = $a$0; - $n_sroa_1_4_extract_shift$0 = $a$1; - $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; - $d_sroa_0_0_extract_trunc = $b$0; - $d_sroa_1_4_extract_shift$0 = $b$1; - $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; - if (($n_sroa_1_4_extract_trunc | 0) == 0) { - $4 = ($rem | 0) != 0; - if (($d_sroa_1_4_extract_trunc | 0) == 0) { - if ($4) { - HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); - HEAP32[$rem + 4 >> 2] = 0; - } - $_0$1 = 0; - $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - if (!$4) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - } - $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; - do { - if (($d_sroa_0_0_extract_trunc | 0) == 0) { - if ($17) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); - HEAP32[$rem + 4 >> 2] = 0; - } - $_0$1 = 0; - $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - if (($n_sroa_0_0_extract_trunc | 0) == 0) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0; - HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); - } - $_0$1 = 0; - $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $37 = $d_sroa_1_4_extract_trunc - 1 | 0; - if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0; - } - $_0$1 = 0; - $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; - $51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - if ($51 >>> 0 <= 30) { - $57 = $51 + 1 | 0; - $58 = 31 - $51 | 0; - $sr_1_ph = $57; - $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0); - $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0); - $q_sroa_0_1_ph = 0; - $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58; - break; - } - if (($rem | 0) == 0) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - if (!$17) { - $117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; - $119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - if ($119 >>> 0 <= 31) { - $125 = $119 + 1 | 0; - $126 = 31 - $119 | 0; - $130 = $119 - 31 >> 31; - $sr_1_ph = $125; - $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126; - $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130; - $q_sroa_0_1_ph = 0; - $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126; - break; - } - if (($rem | 0) == 0) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $66 = $d_sroa_0_0_extract_trunc - 1 | 0; - if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) { - $86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0; - $88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - $89 = 64 - $88 | 0; - $91 = 32 - $88 | 0; - $92 = $91 >> 31; - $95 = $88 - 32 | 0; - $105 = $95 >> 31; - $sr_1_ph = $88; - $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105; - $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0); - $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92; - $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31; - break; - } - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; - HEAP32[$rem + 4 >> 2] = 0; - } - if (($d_sroa_0_0_extract_trunc | 0) == 1) { - $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$0 = 0 | $a$0 & -1; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; - $_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0); - $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - } - } while (0); - if (($sr_1_ph | 0) == 0) { - $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; - $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; - $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; - $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; - $carry_0_lcssa$1 = 0; - $carry_0_lcssa$0 = 0; - } else { - $d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1; - $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0; - $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0; - $137$1 = tempRet0; - $q_sroa_1_1198 = $q_sroa_1_1_ph; - $q_sroa_0_1199 = $q_sroa_0_1_ph; - $r_sroa_1_1200 = $r_sroa_1_1_ph; - $r_sroa_0_1201 = $r_sroa_0_1_ph; - $sr_1202 = $sr_1_ph; - $carry_0203 = 0; - while (1) { - $147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; - $149 = $carry_0203 | $q_sroa_0_1199 << 1; - $r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | $q_sroa_1_1198 >>> 31); - $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; - _i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0) | 0; - $150$1 = tempRet0; - $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; - $152 = $151$0 & 1; - $154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1 | 0) | 0; - $r_sroa_0_0_extract_trunc = $154$0; - $r_sroa_1_4_extract_trunc = tempRet0; - $155 = $sr_1202 - 1 | 0; - if (($155 | 0) == 0) { - break; - } else { - $q_sroa_1_1198 = $147; - $q_sroa_0_1199 = $149; - $r_sroa_1_1200 = $r_sroa_1_4_extract_trunc; - $r_sroa_0_1201 = $r_sroa_0_0_extract_trunc; - $sr_1202 = $155; - $carry_0203 = $152; - } - } - $q_sroa_1_1_lcssa = $147; - $q_sroa_0_1_lcssa = $149; - $r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc; - $r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc; - $carry_0_lcssa$1 = 0; - $carry_0_lcssa$0 = $152; - } - $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; - $q_sroa_0_0_insert_ext75$1 = 0; - $q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1; - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa; - HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0; - } - $_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | $q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1; - $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0; - return (tempRet0 = $_0$1, $_0$0) | 0; -} -function ___udivdi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $1$0 = 0; - $1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; - return $1$0 | 0; -} -function ___muldsi3($a, $b) { - $a = $a | 0; - $b = $b | 0; - var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0; - $1 = $a & 65535; - $2 = $b & 65535; - $3 = Math_imul($2, $1) | 0; - $6 = $a >>> 16; - $8 = ($3 >>> 16) + (Math_imul($2, $6) | 0) | 0; - $11 = $b >>> 16; - $12 = Math_imul($11, $1) | 0; - return (tempRet0 = (($8 >>> 16) + (Math_imul($11, $6) | 0) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0, 0 | ($8 + $12 << 16 | $3 & 65535)) | 0; -} -function ___muldi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 0, $1$1 = 0, $2 = 0; - $x_sroa_0_0_extract_trunc = $a$0; - $y_sroa_0_0_extract_trunc = $b$0; - $1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0; - $1$1 = tempRet0; - $2 = Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0; - return (tempRet0 = ((Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2 | 0) + $1$1 | $1$1 & 0, 0 | $1$0 & -1) | 0; -} -function _memcpy(dest, src, num) { - dest = dest|0; src = src|0; num = num|0; - var ret = 0; - var aligned_dest_end = 0; - var block_aligned_dest_end = 0; - var dest_end = 0; - // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use. - if ((num|0) >= - 8192 - ) { - return _emscripten_memcpy_big(dest|0, src|0, num|0)|0; - } - - ret = dest|0; - dest_end = (dest + num)|0; - if ((dest&3) == (src&3)) { - // The initial unaligned < 4-byte front. - while (dest & 3) { - if ((num|0) == 0) return ret|0; - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - dest = (dest+1)|0; - src = (src+1)|0; - num = (num-1)|0; - } - aligned_dest_end = (dest_end & -4)|0; - block_aligned_dest_end = (aligned_dest_end - 64)|0; - while ((dest|0) <= (block_aligned_dest_end|0) ) { - HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); - HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0); - HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0); - HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0); - HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0); - HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0); - HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0); - HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0); - HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0); - HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0); - HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0); - HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0); - HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0); - HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0); - HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0); - HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0); - dest = (dest+64)|0; - src = (src+64)|0; - } - while ((dest|0) < (aligned_dest_end|0) ) { - HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); - dest = (dest+4)|0; - src = (src+4)|0; - } - } else { - // In the unaligned copy case, unroll a bit as well. - aligned_dest_end = (dest_end - 4)|0; - while ((dest|0) < (aligned_dest_end|0) ) { - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0); - HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0); - HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0); - dest = (dest+4)|0; - src = (src+4)|0; - } - } - // The remaining unaligned < 4 byte tail. - while ((dest|0) < (dest_end|0)) { - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - dest = (dest+1)|0; - src = (src+1)|0; - } - return ret|0; -} -function _memmove(dest, src, num) { - dest = dest|0; src = src|0; num = num|0; - var ret = 0; - if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) { - // Unlikely case: Copy backwards in a safe manner - ret = dest; - src = (src + num)|0; - dest = (dest + num)|0; - while ((num|0) > 0) { - dest = (dest - 1)|0; - src = (src - 1)|0; - num = (num - 1)|0; - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - } - dest = ret; - } else { - _memcpy(dest, src, num) | 0; - } - return dest | 0; -} -function ___uremdi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $rem = 0, __stackBase__ = 0; - __stackBase__ = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - $rem = __stackBase__ | 0; - ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) | 0; - STACKTOP = __stackBase__; - return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0; -} -function _roundf(f) { - f = +f; - return f >= +0 ? +Math_floor(f + +0.5) : +Math_ceil(f - +0.5); // TODO: use fround? -} -function _bitshift64Lshr(low, high, bits) { - low = low|0; high = high|0; bits = bits|0; - var ander = 0; - if ((bits|0) < 32) { - ander = ((1 << bits) - 1)|0; - tempRet0 = high >>> bits; - return (low >>> bits) | ((high&ander) << (32 - bits)); - } - tempRet0 = 0; - return (high >>> (bits - 32))|0; -} -function _sbrk(increment) { - increment = increment|0; - var oldDynamicTop = 0; - var oldDynamicTopOnChange = 0; - var newDynamicTop = 0; - var totalMemory = 0; - increment = ((increment + 15) & -16)|0; - oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0; - newDynamicTop = oldDynamicTop + increment | 0; - - if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int. - | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract. - abortOnCannotGrowMemory()|0; - ___setErrNo(12); - return -1; - } - - HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop; - totalMemory = getTotalMemory()|0; - if ((newDynamicTop|0) > (totalMemory|0)) { - if ((enlargeMemory()|0) == 0) { - HEAP32[DYNAMICTOP_PTR>>2] = oldDynamicTop; - ___setErrNo(12); - return -1; - } - } - return oldDynamicTop|0; -} -function _bitshift64Shl(low, high, bits) { - low = low|0; high = high|0; bits = bits|0; - var ander = 0; - if ((bits|0) < 32) { - ander = ((1 << bits) - 1)|0; - tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits)); - return low << bits; - } - tempRet0 = low << (bits - 32); - return 0; -} -function _llvm_bswap_i32(x) { - x = x|0; - return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0; -} - - -function dynCall_viiiii(index,a1,a2,a3,a4,a5) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; - FUNCTION_TABLE_viiiii[index&7](a1|0,a2|0,a3|0,a4|0,a5|0); -} - - -function dynCall_vd(index,a1) { - index = index|0; - a1=+a1; - FUNCTION_TABLE_vd[index&3](+a1); -} - - -function dynCall_vid(index,a1,a2) { - index = index|0; - a1=a1|0; a2=+a2; - FUNCTION_TABLE_vid[index&3](a1|0,+a2); -} - - -function dynCall_vi(index,a1) { - index = index|0; - a1=a1|0; - FUNCTION_TABLE_vi[index&31](a1|0); -} - - -function dynCall_vii(index,a1,a2) { - index = index|0; - a1=a1|0; a2=a2|0; - FUNCTION_TABLE_vii[index&63](a1|0,a2|0); -} - - -function dynCall_ii(index,a1) { - index = index|0; - a1=a1|0; - return FUNCTION_TABLE_ii[index&15](a1|0)|0; -} - - -function dynCall_viddd(index,a1,a2,a3,a4) { - index = index|0; - a1=a1|0; a2=+a2; a3=+a3; a4=+a4; - FUNCTION_TABLE_viddd[index&3](a1|0,+a2,+a3,+a4); -} - - -function dynCall_vidd(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=+a2; a3=+a3; - FUNCTION_TABLE_vidd[index&7](a1|0,+a2,+a3); -} - - -function dynCall_iiii(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; - return FUNCTION_TABLE_iiii[index&15](a1|0,a2|0,a3|0)|0; -} - - -function dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; - FUNCTION_TABLE_viiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0); -} - - -function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; - FUNCTION_TABLE_viiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0); -} - - -function dynCall_viii(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; - FUNCTION_TABLE_viii[index&31](a1|0,a2|0,a3|0); -} - - -function dynCall_vidddd(index,a1,a2,a3,a4,a5) { - index = index|0; - a1=a1|0; a2=+a2; a3=+a3; a4=+a4; a5=+a5; - FUNCTION_TABLE_vidddd[index&3](a1|0,+a2,+a3,+a4,+a5); -} - - -function dynCall_vdi(index,a1,a2) { - index = index|0; - a1=+a1; a2=a2|0; - FUNCTION_TABLE_vdi[index&1](+a1,a2|0); -} - - -function dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; - FUNCTION_TABLE_viiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0); -} - - -function dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; a9=a9|0; - FUNCTION_TABLE_viiiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0,a9|0); -} - - -function dynCall_iii(index,a1,a2) { - index = index|0; - a1=a1|0; a2=a2|0; - return FUNCTION_TABLE_iii[index&3](a1|0,a2|0)|0; -} - - -function dynCall_i(index) { - index = index|0; - - return FUNCTION_TABLE_i[index&3]()|0; -} - - -function dynCall_vdddddd(index,a1,a2,a3,a4,a5,a6) { - index = index|0; - a1=+a1; a2=+a2; a3=+a3; a4=+a4; a5=+a5; a6=+a6; - FUNCTION_TABLE_vdddddd[index&1](+a1,+a2,+a3,+a4,+a5,+a6); -} - - -function dynCall_vdddd(index,a1,a2,a3,a4) { - index = index|0; - a1=+a1; a2=+a2; a3=+a3; a4=+a4; - FUNCTION_TABLE_vdddd[index&3](+a1,+a2,+a3,+a4); -} - - -function dynCall_vdd(index,a1,a2) { - index = index|0; - a1=+a1; a2=+a2; - FUNCTION_TABLE_vdd[index&3](+a1,+a2); -} - - -function dynCall_v(index) { - index = index|0; - - FUNCTION_TABLE_v[index&7](); -} - - -function dynCall_viid(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=+a3; - FUNCTION_TABLE_viid[index&1](a1|0,a2|0,+a3); -} - - -function dynCall_viiii(index,a1,a2,a3,a4) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; - FUNCTION_TABLE_viiii[index&31](a1|0,a2|0,a3|0,a4|0); -} - -function b0(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(0); -} -function _emscripten_glUniform4i__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glUniform4i(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function _emscripten_glFramebufferTexture2D__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glFramebufferTexture2D(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function _emscripten_glShaderBinary__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glShaderBinary(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function _emscripten_glDrawElementsInstanced__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glDrawElementsInstanced(p0|0,p1|0,p2|0,p3|0,p4|0); -} -function b1(p0) { - p0 = +p0; nullFunc_vd(1); -} -function _emscripten_glClearDepth__wrapper(p0) { - p0 = +p0; _emscripten_glClearDepth(+p0); -} -function _emscripten_glClearDepthf__wrapper(p0) { - p0 = +p0; _emscripten_glClearDepthf(+p0); -} -function _emscripten_glLineWidth__wrapper(p0) { - p0 = +p0; _emscripten_glLineWidth(+p0); -} -function b2(p0,p1) { - p0 = p0|0;p1 = +p1; nullFunc_vid(2); -} -function _emscripten_glUniform1f__wrapper(p0,p1) { - p0 = p0|0;p1 = +p1; _emscripten_glUniform1f(p0|0,+p1); -} -function _emscripten_glVertexAttrib1f__wrapper(p0,p1) { - p0 = p0|0;p1 = +p1; _emscripten_glVertexAttrib1f(p0|0,+p1); -} -function b3(p0) { - p0 = p0|0; nullFunc_vi(3); -} -function _emscripten_glDeleteShader__wrapper(p0) { - p0 = p0|0; _emscripten_glDeleteShader(p0|0); -} -function _emscripten_glCompileShader__wrapper(p0) { - p0 = p0|0; _emscripten_glCompileShader(p0|0); -} -function _emscripten_glDeleteProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glDeleteProgram(p0|0); -} -function _emscripten_glLinkProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glLinkProgram(p0|0); -} -function _emscripten_glUseProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glUseProgram(p0|0); -} -function _emscripten_glValidateProgram__wrapper(p0) { - p0 = p0|0; _emscripten_glValidateProgram(p0|0); -} -function _emscripten_glDeleteObjectARB__wrapper(p0) { - p0 = p0|0; _emscripten_glDeleteObjectARB(p0|0); -} -function _emscripten_glEnableClientState__wrapper(p0) { - p0 = p0|0; _emscripten_glEnableClientState(p0|0); -} -function _emscripten_glClientActiveTexture__wrapper(p0) { - p0 = p0|0; _emscripten_glClientActiveTexture(p0|0); -} -function _emscripten_glBindVertexArray__wrapper(p0) { - p0 = p0|0; _emscripten_glBindVertexArray(p0|0); -} -function _emscripten_glMatrixMode__wrapper(p0) { - p0 = p0|0; _emscripten_glMatrixMode(p0|0); -} -function _emscripten_glLoadMatrixf__wrapper(p0) { - p0 = p0|0; _emscripten_glLoadMatrixf(p0|0); -} -function _emscripten_glEnableVertexAttribArray__wrapper(p0) { - p0 = p0|0; _emscripten_glEnableVertexAttribArray(p0|0); -} -function _emscripten_glDisableVertexAttribArray__wrapper(p0) { - p0 = p0|0; _emscripten_glDisableVertexAttribArray(p0|0); -} -function _emscripten_glDepthFunc__wrapper(p0) { - p0 = p0|0; _emscripten_glDepthFunc(p0|0); -} -function _emscripten_glEnable__wrapper(p0) { - p0 = p0|0; _emscripten_glEnable(p0|0); -} -function _emscripten_glDisable__wrapper(p0) { - p0 = p0|0; _emscripten_glDisable(p0|0); -} -function _emscripten_glFrontFace__wrapper(p0) { - p0 = p0|0; _emscripten_glFrontFace(p0|0); -} -function _emscripten_glCullFace__wrapper(p0) { - p0 = p0|0; _emscripten_glCullFace(p0|0); -} -function _emscripten_glClear__wrapper(p0) { - p0 = p0|0; _emscripten_glClear(p0|0); -} -function _emscripten_glClearStencil__wrapper(p0) { - p0 = p0|0; _emscripten_glClearStencil(p0|0); -} -function _emscripten_glDepthMask__wrapper(p0) { - p0 = p0|0; _emscripten_glDepthMask(p0|0); -} -function _emscripten_glStencilMask__wrapper(p0) { - p0 = p0|0; _emscripten_glStencilMask(p0|0); -} -function _emscripten_glGenerateMipmap__wrapper(p0) { - p0 = p0|0; _emscripten_glGenerateMipmap(p0|0); -} -function _emscripten_glActiveTexture__wrapper(p0) { - p0 = p0|0; _emscripten_glActiveTexture(p0|0); -} -function _emscripten_glBlendEquation__wrapper(p0) { - p0 = p0|0; _emscripten_glBlendEquation(p0|0); -} -function b4(p0,p1) { - p0 = p0|0;p1 = p1|0; nullFunc_vii(4); -} -function _emscripten_glPixelStorei__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glPixelStorei(p0|0,p1|0); -} -function _emscripten_glGetIntegerv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetIntegerv(p0|0,p1|0); -} -function _emscripten_glGetFloatv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetFloatv(p0|0,p1|0); -} -function _emscripten_glGetBooleanv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetBooleanv(p0|0,p1|0); -} -function _emscripten_glGenTextures__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenTextures(p0|0,p1|0); -} -function _emscripten_glDeleteTextures__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteTextures(p0|0,p1|0); -} -function _emscripten_glBindTexture__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindTexture(p0|0,p1|0); -} -function _emscripten_glGenBuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenBuffers(p0|0,p1|0); -} -function _emscripten_glDeleteBuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteBuffers(p0|0,p1|0); -} -function _emscripten_glGenRenderbuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenRenderbuffers(p0|0,p1|0); -} -function _emscripten_glDeleteRenderbuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteRenderbuffers(p0|0,p1|0); -} -function _emscripten_glBindRenderbuffer__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindRenderbuffer(p0|0,p1|0); -} -function _emscripten_glUniform1i__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glUniform1i(p0|0,p1|0); -} -function _emscripten_glBindBuffer__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindBuffer(p0|0,p1|0); -} -function _emscripten_glVertexAttrib1fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib1fv(p0|0,p1|0); -} -function _emscripten_glVertexAttrib2fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib2fv(p0|0,p1|0); -} -function _emscripten_glVertexAttrib3fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib3fv(p0|0,p1|0); -} -function _emscripten_glVertexAttrib4fv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib4fv(p0|0,p1|0); -} -function _emscripten_glAttachShader__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glAttachShader(p0|0,p1|0); -} -function _emscripten_glDetachShader__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDetachShader(p0|0,p1|0); -} -function _emscripten_glBindFramebuffer__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindFramebuffer(p0|0,p1|0); -} -function _emscripten_glGenFramebuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenFramebuffers(p0|0,p1|0); -} -function _emscripten_glDeleteFramebuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteFramebuffers(p0|0,p1|0); -} -function _emscripten_glBindProgramARB__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBindProgramARB(p0|0,p1|0); -} -function _emscripten_glGetPointerv__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGetPointerv(p0|0,p1|0); -} -function _emscripten_glGenVertexArrays__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glGenVertexArrays(p0|0,p1|0); -} -function _emscripten_glDeleteVertexArrays__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDeleteVertexArrays(p0|0,p1|0); -} -function _emscripten_glVertexAttribDivisor__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttribDivisor(p0|0,p1|0); -} -function _emscripten_glBlendFunc__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBlendFunc(p0|0,p1|0); -} -function _emscripten_glBlendEquationSeparate__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glBlendEquationSeparate(p0|0,p1|0); -} -function _emscripten_glStencilMaskSeparate__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glStencilMaskSeparate(p0|0,p1|0); -} -function _emscripten_glHint__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glHint(p0|0,p1|0); -} -function _emscripten_glDrawBuffers__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; _emscripten_glDrawBuffers(p0|0,p1|0); -} -function b5(p0) { - p0 = p0|0; nullFunc_ii(5);return 0; -} -function _emscripten_glGetString__wrapper(p0) { - p0 = p0|0; return _emscripten_glGetString(p0|0)|0; -} -function _emscripten_glIsTexture__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsTexture(p0|0)|0; -} -function _emscripten_glIsBuffer__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsBuffer(p0|0)|0; -} -function _emscripten_glIsRenderbuffer__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsRenderbuffer(p0|0)|0; -} -function _emscripten_glCreateShader__wrapper(p0) { - p0 = p0|0; return _emscripten_glCreateShader(p0|0)|0; -} -function _emscripten_glIsShader__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsShader(p0|0)|0; -} -function _emscripten_glIsProgram__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsProgram(p0|0)|0; -} -function _emscripten_glIsFramebuffer__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsFramebuffer(p0|0)|0; -} -function _emscripten_glCheckFramebufferStatus__wrapper(p0) { - p0 = p0|0; return _emscripten_glCheckFramebufferStatus(p0|0)|0; -} -function _emscripten_glIsEnabled__wrapper(p0) { - p0 = p0|0; return _emscripten_glIsEnabled(p0|0)|0; -} -function b6(p0,p1,p2,p3) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_viddd(6); -} -function _emscripten_glUniform3f__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glUniform3f(p0|0,+p1,+p2,+p3); -} -function _emscripten_glVertexAttrib3f__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glVertexAttrib3f(p0|0,+p1,+p2,+p3); -} -function b7(p0,p1,p2) { - p0 = p0|0;p1 = +p1;p2 = +p2; nullFunc_vidd(7); -} -function _emscripten_glUniform2f__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glUniform2f(p0|0,+p1,+p2); -} -function _emscripten_glVertexAttrib2f__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glVertexAttrib2f(p0|0,+p1,+p2); -} -function b8(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(8);return 0; -} -function b9(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; nullFunc_viiiiiiii(9); -} -function _emscripten_glCompressedTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCompressedTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); -} -function _emscripten_glCopyTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); -} -function _emscripten_glCopyTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); -} -function b10(p0,p1,p2,p3,p4,p5) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; nullFunc_viiiiii(10); -} -function _emscripten_glDrawRangeElements__wrapper(p0,p1,p2,p3,p4,p5) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glDrawRangeElements(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); -} -function _emscripten_glVertexAttribPointer__wrapper(p0,p1,p2,p3,p4,p5) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glVertexAttribPointer(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); -} -function b11(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(11); -} -function _emscripten_glGetTexParameterfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameterfv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetTexParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glTexParameterfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameterfv(p0|0,p1|0,p2|0); -} -function _emscripten_glTexParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetBufferParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetBufferParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetRenderbufferParameteriv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetRenderbufferParameteriv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetUniformfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformfv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetUniformiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformiv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetVertexAttribfv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribfv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetVertexAttribiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribiv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetVertexAttribPointerv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribPointerv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform2i__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2i(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform1iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform2iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform3iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform4iv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4iv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform1fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1fv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform2fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2fv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform3fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3fv(p0|0,p1|0,p2|0); -} -function _emscripten_glUniform4fv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4fv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetShaderiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetShaderiv(p0|0,p1|0,p2|0); -} -function _emscripten_glGetProgramiv__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetProgramiv(p0|0,p1|0,p2|0); -} -function _emscripten_glBindAttribLocation__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glBindAttribLocation(p0|0,p1|0,p2|0); -} -function _emscripten_glGetObjectParameterivARB__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetObjectParameterivARB(p0|0,p1|0,p2|0); -} -function _emscripten_glNormalPointer__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glNormalPointer(p0|0,p1|0,p2|0); -} -function _emscripten_glDrawArrays__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glDrawArrays(p0|0,p1|0,p2|0); -} -function _emscripten_glTexParameteri__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteri(p0|0,p1|0,p2|0); -} -function _emscripten_glStencilFunc__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilFunc(p0|0,p1|0,p2|0); -} -function _emscripten_glStencilOp__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilOp(p0|0,p1|0,p2|0); -} -function b12(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; nullFunc_vidddd(12); -} -function _emscripten_glUniform4f__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glUniform4f(p0|0,+p1,+p2,+p3,+p4); -} -function _emscripten_glVertexAttrib4f__wrapper(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glVertexAttrib4f(p0|0,+p1,+p2,+p3,+p4); -} -function b13(p0,p1) { - p0 = +p0;p1 = p1|0; nullFunc_vdi(13); -} -function _emscripten_glSampleCoverage__wrapper(p0,p1) { - p0 = +p0;p1 = p1|0; _emscripten_glSampleCoverage(+p0,p1|0); -} -function b14(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; nullFunc_viiiiiii(14); -} -function _emscripten_glReadPixels__wrapper(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glReadPixels(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); -} -function _emscripten_glGetActiveUniform__wrapper(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveUniform(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); -} -function _emscripten_glGetActiveAttrib__wrapper(p0,p1,p2,p3,p4,p5,p6) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveAttrib(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); -} -function b15(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; nullFunc_viiiiiiiii(15); -} -function _emscripten_glCompressedTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glCompressedTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); -} -function _emscripten_glTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); -} -function _emscripten_glTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); -} -function b16(p0,p1) { - p0 = p0|0;p1 = p1|0; nullFunc_iii(16);return 0; -} -function _emscripten_glGetUniformLocation__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; return _emscripten_glGetUniformLocation(p0|0,p1|0)|0; -} -function _emscripten_glGetAttribLocation__wrapper(p0,p1) { - p0 = p0|0;p1 = p1|0; return _emscripten_glGetAttribLocation(p0|0,p1|0)|0; -} -function b17() { - ; nullFunc_i(17);return 0; -} -function _emscripten_glCreateProgram__wrapper() { - ; return _emscripten_glCreateProgram()|0; -} -function _emscripten_glGetError__wrapper() { - ; return _emscripten_glGetError()|0; -} -function b18(p0,p1,p2,p3,p4,p5) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; nullFunc_vdddddd(18); -} -function _emscripten_glFrustum__wrapper(p0,p1,p2,p3,p4,p5) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; _emscripten_glFrustum(+p0,+p1,+p2,+p3,+p4,+p5); -} -function b19(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_vdddd(19); -} -function _emscripten_glRotatef__wrapper(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glRotatef(+p0,+p1,+p2,+p3); -} -function _emscripten_glClearColor__wrapper(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glClearColor(+p0,+p1,+p2,+p3); -} -function _emscripten_glBlendColor__wrapper(p0,p1,p2,p3) { - p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glBlendColor(+p0,+p1,+p2,+p3); -} -function b20(p0,p1) { - p0 = +p0;p1 = +p1; nullFunc_vdd(20); -} -function _emscripten_glDepthRange__wrapper(p0,p1) { - p0 = +p0;p1 = +p1; _emscripten_glDepthRange(+p0,+p1); -} -function _emscripten_glDepthRangef__wrapper(p0,p1) { - p0 = +p0;p1 = +p1; _emscripten_glDepthRangef(+p0,+p1); -} -function _emscripten_glPolygonOffset__wrapper(p0,p1) { - p0 = +p0;p1 = +p1; _emscripten_glPolygonOffset(+p0,+p1); -} -function b21() { - ; nullFunc_v(21); -} -function _emscripten_glLoadIdentity__wrapper() { - ; _emscripten_glLoadIdentity(); -} -function _emscripten_glReleaseShaderCompiler__wrapper() { - ; _emscripten_glReleaseShaderCompiler(); -} -function _emscripten_glFinish__wrapper() { - ; _emscripten_glFinish(); -} -function _emscripten_glFlush__wrapper() { - ; _emscripten_glFlush(); -} -function b22(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = +p2; nullFunc_viid(22); -} -function _emscripten_glTexParameterf__wrapper(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = +p2; _emscripten_glTexParameterf(p0|0,p1|0,+p2); -} -function b23(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(23); -} -function _emscripten_glBufferData__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferData(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glBufferSubData__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferSubData(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniform3i__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniform3i(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniformMatrix2fv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix2fv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniformMatrix3fv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix3fv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glUniformMatrix4fv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix4fv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetAttachedShaders__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetAttachedShaders(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glShaderSource__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glShaderSource(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetShaderSource__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderSource(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetShaderInfoLog__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderInfoLog(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetShaderPrecisionFormat__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderPrecisionFormat(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetProgramInfoLog__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetProgramInfoLog(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glFramebufferRenderbuffer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glFramebufferRenderbuffer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetFramebufferAttachmentParameteriv__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetFramebufferAttachmentParameteriv(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glGetInfoLogARB__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetInfoLogARB(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glVertexPointer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glVertexPointer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glTexCoordPointer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glTexCoordPointer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glColorPointer__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorPointer(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glDrawElements__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawElements(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glDrawArraysInstanced__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawArraysInstanced(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glViewport__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glViewport(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glScissor__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glScissor(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glColorMask__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorMask(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glRenderbufferStorage__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glRenderbufferStorage(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glBlendFuncSeparate__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBlendFuncSeparate(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glStencilFuncSeparate__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilFuncSeparate(p0|0,p1|0,p2|0,p3|0); -} -function _emscripten_glStencilOpSeparate__wrapper(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilOpSeparate(p0|0,p1|0,p2|0,p3|0); -} - -// EMSCRIPTEN_END_FUNCS -var FUNCTION_TABLE_viiiii = [b0,_KeyCallback,_emscripten_glUniform4i__wrapper,_emscripten_glFramebufferTexture2D__wrapper,_emscripten_glShaderBinary__wrapper,_emscripten_glDrawElementsInstanced__wrapper,b0,b0]; -var FUNCTION_TABLE_vd = [b1,_emscripten_glClearDepth__wrapper,_emscripten_glClearDepthf__wrapper,_emscripten_glLineWidth__wrapper]; -var FUNCTION_TABLE_vid = [b2,_emscripten_glUniform1f__wrapper,_emscripten_glVertexAttrib1f__wrapper,b2]; -var FUNCTION_TABLE_vi = [b3,_emscripten_glDeleteShader__wrapper,_emscripten_glCompileShader__wrapper,_emscripten_glDeleteProgram__wrapper,_emscripten_glLinkProgram__wrapper,_emscripten_glUseProgram__wrapper,_emscripten_glValidateProgram__wrapper,_emscripten_glDeleteObjectARB__wrapper,_emscripten_glEnableClientState__wrapper,_emscripten_glClientActiveTexture__wrapper,_emscripten_glBindVertexArray__wrapper,_emscripten_glMatrixMode__wrapper,_emscripten_glLoadMatrixf__wrapper,_emscripten_glEnableVertexAttribArray__wrapper,_emscripten_glDisableVertexAttribArray__wrapper,_emscripten_glDepthFunc__wrapper,_emscripten_glEnable__wrapper,_emscripten_glDisable__wrapper,_emscripten_glFrontFace__wrapper,_emscripten_glCullFace__wrapper,_emscripten_glClear__wrapper,_emscripten_glClearStencil__wrapper,_emscripten_glDepthMask__wrapper,_emscripten_glStencilMask__wrapper,_emscripten_glGenerateMipmap__wrapper,_emscripten_glActiveTexture__wrapper,_emscripten_glBlendEquation__wrapper,b3,b3 -,b3,b3,b3]; -var FUNCTION_TABLE_vii = [b4,_stbi__stdio_skip,_ErrorCallback,_CursorEnterCallback,_CharCallback,_WindowIconifyCallback,_emscripten_glPixelStorei__wrapper,_emscripten_glGetIntegerv__wrapper,_emscripten_glGetFloatv__wrapper,_emscripten_glGetBooleanv__wrapper,_emscripten_glGenTextures__wrapper,_emscripten_glDeleteTextures__wrapper,_emscripten_glBindTexture__wrapper,_emscripten_glGenBuffers__wrapper,_emscripten_glDeleteBuffers__wrapper,_emscripten_glGenRenderbuffers__wrapper,_emscripten_glDeleteRenderbuffers__wrapper,_emscripten_glBindRenderbuffer__wrapper,_emscripten_glUniform1i__wrapper,_emscripten_glBindBuffer__wrapper,_emscripten_glVertexAttrib1fv__wrapper,_emscripten_glVertexAttrib2fv__wrapper,_emscripten_glVertexAttrib3fv__wrapper,_emscripten_glVertexAttrib4fv__wrapper,_emscripten_glAttachShader__wrapper,_emscripten_glDetachShader__wrapper,_emscripten_glBindFramebuffer__wrapper,_emscripten_glGenFramebuffers__wrapper,_emscripten_glDeleteFramebuffers__wrapper,_emscripten_glBindProgramARB__wrapper,_emscripten_glGetPointerv__wrapper,_emscripten_glGenVertexArrays__wrapper,_emscripten_glDeleteVertexArrays__wrapper,_emscripten_glVertexAttribDivisor__wrapper,_emscripten_glBlendFunc__wrapper,_emscripten_glBlendEquationSeparate__wrapper,_emscripten_glStencilMaskSeparate__wrapper,_emscripten_glHint__wrapper,_emscripten_glDrawBuffers__wrapper,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4]; -var FUNCTION_TABLE_ii = [b5,_stbi__stdio_eof,___stdio_close,_emscripten_glGetString__wrapper,_emscripten_glIsTexture__wrapper,_emscripten_glIsBuffer__wrapper,_emscripten_glIsRenderbuffer__wrapper,_emscripten_glCreateShader__wrapper,_emscripten_glIsShader__wrapper,_emscripten_glIsProgram__wrapper,_emscripten_glIsFramebuffer__wrapper,_emscripten_glCheckFramebufferStatus__wrapper,_emscripten_glIsEnabled__wrapper,b5,b5,b5]; -var FUNCTION_TABLE_viddd = [b6,_emscripten_glUniform3f__wrapper,_emscripten_glVertexAttrib3f__wrapper,b6]; -var FUNCTION_TABLE_vidd = [b7,_MouseCursorPosCallback,_ScrollCallback,_emscripten_glUniform2f__wrapper,_emscripten_glVertexAttrib2f__wrapper,b7,b7,b7]; -var FUNCTION_TABLE_iiii = [b8,_stbi__stdio_read,___stdout_write,___stdio_seek,_sn_write,_EmscriptenFullscreenChangeCallback,_EmscriptenKeyboardCallback,_EmscriptenMouseCallback,_EmscriptenTouchCallback,_EmscriptenGamepadCallback,___stdio_write,___stdio_read,_do_read,b8,b8,b8]; -var FUNCTION_TABLE_viiiiiiii = [b9,_emscripten_glCompressedTexImage2D__wrapper,_emscripten_glCopyTexImage2D__wrapper,_emscripten_glCopyTexSubImage2D__wrapper]; -var FUNCTION_TABLE_viiiiii = [b10,_emscripten_glDrawRangeElements__wrapper,_emscripten_glVertexAttribPointer__wrapper,b10]; -var FUNCTION_TABLE_viii = [b11,_WindowSizeCallback,_emscripten_glGetTexParameterfv__wrapper,_emscripten_glGetTexParameteriv__wrapper,_emscripten_glTexParameterfv__wrapper,_emscripten_glTexParameteriv__wrapper,_emscripten_glGetBufferParameteriv__wrapper,_emscripten_glGetRenderbufferParameteriv__wrapper,_emscripten_glGetUniformfv__wrapper,_emscripten_glGetUniformiv__wrapper,_emscripten_glGetVertexAttribfv__wrapper,_emscripten_glGetVertexAttribiv__wrapper,_emscripten_glGetVertexAttribPointerv__wrapper,_emscripten_glUniform2i__wrapper,_emscripten_glUniform1iv__wrapper,_emscripten_glUniform2iv__wrapper,_emscripten_glUniform3iv__wrapper,_emscripten_glUniform4iv__wrapper,_emscripten_glUniform1fv__wrapper,_emscripten_glUniform2fv__wrapper,_emscripten_glUniform3fv__wrapper,_emscripten_glUniform4fv__wrapper,_emscripten_glGetShaderiv__wrapper,_emscripten_glGetProgramiv__wrapper,_emscripten_glBindAttribLocation__wrapper,_emscripten_glGetObjectParameterivARB__wrapper,_emscripten_glNormalPointer__wrapper,_emscripten_glDrawArrays__wrapper,_emscripten_glTexParameteri__wrapper,_emscripten_glStencilFunc__wrapper,_emscripten_glStencilOp__wrapper,b11]; -var FUNCTION_TABLE_vidddd = [b12,_emscripten_glUniform4f__wrapper,_emscripten_glVertexAttrib4f__wrapper,b12]; -var FUNCTION_TABLE_vdi = [b13,_emscripten_glSampleCoverage__wrapper]; -var FUNCTION_TABLE_viiiiiii = [b14,_emscripten_glReadPixels__wrapper,_emscripten_glGetActiveUniform__wrapper,_emscripten_glGetActiveAttrib__wrapper]; -var FUNCTION_TABLE_viiiiiiiii = [b15,_emscripten_glCompressedTexSubImage2D__wrapper,_emscripten_glTexImage2D__wrapper,_emscripten_glTexSubImage2D__wrapper]; -var FUNCTION_TABLE_iii = [b16,_emscripten_glGetUniformLocation__wrapper,_emscripten_glGetAttribLocation__wrapper,b16]; -var FUNCTION_TABLE_i = [b17,_emscripten_glCreateProgram__wrapper,_emscripten_glGetError__wrapper,b17]; -var FUNCTION_TABLE_vdddddd = [b18,_emscripten_glFrustum__wrapper]; -var FUNCTION_TABLE_vdddd = [b19,_emscripten_glRotatef__wrapper,_emscripten_glClearColor__wrapper,_emscripten_glBlendColor__wrapper]; -var FUNCTION_TABLE_vdd = [b20,_emscripten_glDepthRange__wrapper,_emscripten_glDepthRangef__wrapper,_emscripten_glPolygonOffset__wrapper]; -var FUNCTION_TABLE_v = [b21,_UpdateDrawFrame,_emscripten_glLoadIdentity__wrapper,_emscripten_glReleaseShaderCompiler__wrapper,_emscripten_glFinish__wrapper,_emscripten_glFlush__wrapper,b21,b21]; -var FUNCTION_TABLE_viid = [b22,_emscripten_glTexParameterf__wrapper]; -var FUNCTION_TABLE_viiii = [b23,_MouseButtonCallback,_emscripten_glBufferData__wrapper,_emscripten_glBufferSubData__wrapper,_emscripten_glUniform3i__wrapper,_emscripten_glUniformMatrix2fv__wrapper,_emscripten_glUniformMatrix3fv__wrapper,_emscripten_glUniformMatrix4fv__wrapper,_emscripten_glGetAttachedShaders__wrapper,_emscripten_glShaderSource__wrapper,_emscripten_glGetShaderSource__wrapper,_emscripten_glGetShaderInfoLog__wrapper,_emscripten_glGetShaderPrecisionFormat__wrapper,_emscripten_glGetProgramInfoLog__wrapper,_emscripten_glFramebufferRenderbuffer__wrapper,_emscripten_glGetFramebufferAttachmentParameteriv__wrapper,_emscripten_glGetInfoLogARB__wrapper,_emscripten_glVertexPointer__wrapper,_emscripten_glTexCoordPointer__wrapper,_emscripten_glColorPointer__wrapper,_emscripten_glDrawElements__wrapper,_emscripten_glDrawArraysInstanced__wrapper,_emscripten_glViewport__wrapper,_emscripten_glScissor__wrapper,_emscripten_glColorMask__wrapper,_emscripten_glRenderbufferStorage__wrapper,_emscripten_glBlendFuncSeparate__wrapper,_emscripten_glStencilFuncSeparate__wrapper,_emscripten_glStencilOpSeparate__wrapper,b23,b23,b23]; - - return { _llvm_bswap_i32: _llvm_bswap_i32, _roundf: _roundf, _main: _main, dynCall_i: dynCall_i, stackSave: stackSave, _i64Subtract: _i64Subtract, ___udivdi3: ___udivdi3, dynCall_vidddd: dynCall_vidddd, setThrew: setThrew, dynCall_viii: dynCall_viii, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, dynCall_iii: dynCall_iii, _memset: _memset, _sbrk: _sbrk, _memcpy: _memcpy, stackAlloc: stackAlloc, ___muldi3: ___muldi3, dynCall_vd: dynCall_vd, dynCall_vii: dynCall_vii, ___uremdi3: ___uremdi3, dynCall_vid: dynCall_vid, dynCall_vi: dynCall_vi, dynCall_viiiiiii: dynCall_viiiiiii, getTempRet0: getTempRet0, setTempRet0: setTempRet0, _i64Add: _i64Add, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_iiii: dynCall_iiii, _emscripten_get_global_libc: _emscripten_get_global_libc, dynCall_viid: dynCall_viid, dynCall_ii: dynCall_ii, _emscripten_GetProcAddress: _emscripten_GetProcAddress, dynCall_viiii: dynCall_viiii, ___errno_location: ___errno_location, dynCall_viiiii: dynCall_viiiii, dynCall_viddd: dynCall_viddd, dynCall_vidd: dynCall_vidd, _free: _free, runPostSets: runPostSets, dynCall_viiiiii: dynCall_viiiiii, establishStackSpace: establishStackSpace, _memmove: _memmove, _strstr: _strstr, stackRestore: stackRestore, _malloc: _malloc, dynCall_vdi: dynCall_vdi, dynCall_viiiiiiiii: dynCall_viiiiiiiii, dynCall_vdd: dynCall_vdd, dynCall_v: dynCall_v, dynCall_vdddddd: dynCall_vdddddd, dynCall_vdddd: dynCall_vdddd }; -}) -// EMSCRIPTEN_END_ASM -(Module.asmGlobalArg, Module.asmLibraryArg, buffer); - -var real__roundf = asm["_roundf"]; asm["_roundf"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__roundf.apply(null, arguments); -}; - -var real__main = asm["_main"]; asm["_main"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__main.apply(null, arguments); -}; - -var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackSave.apply(null, arguments); -}; - -var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_getTempRet0.apply(null, arguments); -}; - -var real____udivdi3 = asm["___udivdi3"]; asm["___udivdi3"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____udivdi3.apply(null, arguments); -}; - -var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_setThrew.apply(null, arguments); -}; - -var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__bitshift64Lshr.apply(null, arguments); -}; - -var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__bitshift64Shl.apply(null, arguments); -}; - -var real__fflush = asm["_fflush"]; asm["_fflush"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__fflush.apply(null, arguments); -}; - -var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__sbrk.apply(null, arguments); -}; - -var real__llvm_bswap_i32 = asm["_llvm_bswap_i32"]; asm["_llvm_bswap_i32"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__llvm_bswap_i32.apply(null, arguments); -}; - -var real____muldi3 = asm["___muldi3"]; asm["___muldi3"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____muldi3.apply(null, arguments); -}; - -var real____uremdi3 = asm["___uremdi3"]; asm["___uremdi3"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____uremdi3.apply(null, arguments); -}; - -var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackAlloc.apply(null, arguments); -}; - -var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__i64Subtract.apply(null, arguments); -}; - -var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_setTempRet0.apply(null, arguments); -}; - -var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__i64Add.apply(null, arguments); -}; - -var real__emscripten_get_global_libc = asm["_emscripten_get_global_libc"]; asm["_emscripten_get_global_libc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__emscripten_get_global_libc.apply(null, arguments); -}; - -var real__emscripten_GetProcAddress = asm["_emscripten_GetProcAddress"]; asm["_emscripten_GetProcAddress"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__emscripten_GetProcAddress.apply(null, arguments); -}; - -var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____errno_location.apply(null, arguments); -}; - -var real__free = asm["_free"]; asm["_free"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__free.apply(null, arguments); -}; - -var real_establishStackSpace = asm["establishStackSpace"]; asm["establishStackSpace"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_establishStackSpace.apply(null, arguments); -}; - -var real__memmove = asm["_memmove"]; asm["_memmove"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__memmove.apply(null, arguments); -}; - -var real__strstr = asm["_strstr"]; asm["_strstr"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__strstr.apply(null, arguments); -}; - -var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackRestore.apply(null, arguments); -}; - -var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__malloc.apply(null, arguments); -}; -var _roundf = Module["_roundf"] = asm["_roundf"]; -var _main = Module["_main"] = asm["_main"]; -var stackSave = Module["stackSave"] = asm["stackSave"]; -var getTempRet0 = Module["getTempRet0"] = asm["getTempRet0"]; -var ___udivdi3 = Module["___udivdi3"] = asm["___udivdi3"]; -var setThrew = Module["setThrew"] = asm["setThrew"]; -var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; -var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; -var _fflush = Module["_fflush"] = asm["_fflush"]; -var _memset = Module["_memset"] = asm["_memset"]; -var _sbrk = Module["_sbrk"] = asm["_sbrk"]; -var _memcpy = Module["_memcpy"] = asm["_memcpy"]; -var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"]; -var ___muldi3 = Module["___muldi3"] = asm["___muldi3"]; -var ___uremdi3 = Module["___uremdi3"] = asm["___uremdi3"]; -var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"]; -var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; -var setTempRet0 = Module["setTempRet0"] = asm["setTempRet0"]; -var _i64Add = Module["_i64Add"] = asm["_i64Add"]; -var _emscripten_get_global_libc = Module["_emscripten_get_global_libc"] = asm["_emscripten_get_global_libc"]; -var _emscripten_GetProcAddress = Module["_emscripten_GetProcAddress"] = asm["_emscripten_GetProcAddress"]; -var ___errno_location = Module["___errno_location"] = asm["___errno_location"]; -var _free = Module["_free"] = asm["_free"]; -var runPostSets = Module["runPostSets"] = asm["runPostSets"]; -var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"]; -var _memmove = Module["_memmove"] = asm["_memmove"]; -var _strstr = Module["_strstr"] = asm["_strstr"]; -var stackRestore = Module["stackRestore"] = asm["stackRestore"]; -var _malloc = Module["_malloc"] = asm["_malloc"]; -var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; -var dynCall_vd = Module["dynCall_vd"] = asm["dynCall_vd"]; -var dynCall_vid = Module["dynCall_vid"] = asm["dynCall_vid"]; -var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; -var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; -var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; -var dynCall_viddd = Module["dynCall_viddd"] = asm["dynCall_viddd"]; -var dynCall_vidd = Module["dynCall_vidd"] = asm["dynCall_vidd"]; -var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; -var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = asm["dynCall_viiiiiiii"]; -var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; -var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; -var dynCall_vidddd = Module["dynCall_vidddd"] = asm["dynCall_vidddd"]; -var dynCall_vdi = Module["dynCall_vdi"] = asm["dynCall_vdi"]; -var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = asm["dynCall_viiiiiii"]; -var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = asm["dynCall_viiiiiiiii"]; -var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; -var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; -var dynCall_vdddddd = Module["dynCall_vdddddd"] = asm["dynCall_vdddddd"]; -var dynCall_vdddd = Module["dynCall_vdddd"] = asm["dynCall_vdddd"]; -var dynCall_vdd = Module["dynCall_vdd"] = asm["dynCall_vdd"]; -var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; -var dynCall_viid = Module["dynCall_viid"] = asm["dynCall_viid"]; -var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; -; -Runtime.stackAlloc = Module['stackAlloc']; -Runtime.stackSave = Module['stackSave']; -Runtime.stackRestore = Module['stackRestore']; -Runtime.establishStackSpace = Module['establishStackSpace']; -Runtime.setTempRet0 = Module['setTempRet0']; -Runtime.getTempRet0 = Module['getTempRet0']; - - -// === Auto-generated postamble setup entry stuff === - -Module['asm'] = asm; - - - - - - -/** - * @constructor - * @extends {Error} - */ -function ExitStatus(status) { - this.name = "ExitStatus"; - this.message = "Program terminated with exit(" + status + ")"; - this.status = status; -}; -ExitStatus.prototype = new Error(); -ExitStatus.prototype.constructor = ExitStatus; - -var initialStackTop; -var preloadStartTime = null; -var calledMain = false; - -dependenciesFulfilled = function runCaller() { - // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) - if (!Module['calledRun']) run(); - if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled -} - -Module['callMain'] = Module.callMain = function callMain(args) { - assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)'); - assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); - - args = args || []; - - ensureInitRuntime(); - - var argc = args.length+1; - function pad() { - for (var i = 0; i < 4-1; i++) { - argv.push(0); - } - } - var argv = [allocate(intArrayFromString(Module['thisProgram']), 'i8', ALLOC_NORMAL) ]; - pad(); - for (var i = 0; i < argc-1; i = i + 1) { - argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL)); - pad(); - } - argv.push(0); - argv = allocate(argv, 'i32', ALLOC_NORMAL); - - - try { - - var ret = Module['_main'](argc, argv, 0); - - - // if we're not running an evented main loop, it's time to exit - exit(ret, /* implicit = */ true); - } - catch(e) { - if (e instanceof ExitStatus) { - // exit() throws this once it's done to make sure execution - // has been stopped completely - return; - } else if (e == 'SimulateInfiniteLoop') { - // running an evented main loop, don't immediately exit - Module['noExitRuntime'] = true; - return; - } else { - var toLog = e; - if (e && typeof e === 'object' && e.stack) { - toLog = [e, e.stack]; - } - Module.printErr('exception thrown: ' + toLog); - Module['quit'](1, e); - } - } finally { - calledMain = true; - } -} - - - - -/** @type {function(Array=)} */ -function run(args) { - args = args || Module['arguments']; - - if (preloadStartTime === null) preloadStartTime = Date.now(); - - if (runDependencies > 0) { - return; - } - - writeStackCookie(); - - preRun(); - - if (runDependencies > 0) return; // a preRun added a dependency, run will be called later - if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame - - function doRun() { - if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening - Module['calledRun'] = true; - - if (ABORT) return; - - ensureInitRuntime(); - - preMain(); - - if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) { - Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms'); - } - - if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); - - if (Module['_main'] && shouldRunNow) Module['callMain'](args); - - postRun(); - } - - if (Module['setStatus']) { - Module['setStatus']('Running...'); - setTimeout(function() { - setTimeout(function() { - Module['setStatus'](''); - }, 1); - doRun(); - }, 1); - } else { - doRun(); - } - checkStackCookie(); -} -Module['run'] = Module.run = run; - -function exit(status, implicit) { - if (implicit && Module['noExitRuntime']) { - Module.printErr('exit(' + status + ') implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)'); - return; - } - - if (Module['noExitRuntime']) { - Module.printErr('exit(' + status + ') called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)'); - } else { - - ABORT = true; - EXITSTATUS = status; - STACKTOP = initialStackTop; - - exitRuntime(); - - if (Module['onExit']) Module['onExit'](status); - } - - if (ENVIRONMENT_IS_NODE) { - process['exit'](status); - } - Module['quit'](status, new ExitStatus(status)); -} -Module['exit'] = Module.exit = exit; - -var abortDecorators = []; - -function abort(what) { - if (Module['onAbort']) { - Module['onAbort'](what); - } - - if (what !== undefined) { - Module.print(what); - Module.printErr(what); - what = JSON.stringify(what) - } else { - what = ''; - } - - ABORT = true; - EXITSTATUS = 1; - - var extra = ''; - - var output = 'abort(' + what + ') at ' + stackTrace() + extra; - if (abortDecorators) { - abortDecorators.forEach(function(decorator) { - output = decorator(output, what); - }); - } - throw output; -} -Module['abort'] = Module.abort = abort; - -// {{PRE_RUN_ADDITIONS}} - -if (Module['preInit']) { - if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; - while (Module['preInit'].length > 0) { - Module['preInit'].pop()(); - } -} - -// shouldRunNow refers to calling main(), not run(). -var shouldRunNow = true; -if (Module['noInitialRun']) { - shouldRunNow = false; -} - - -run(); - -// {{POST_RUN_ADDITIONS}} - - - - - -// {{MODULE_ADDITIONS}} - - - diff --git a/examples/web/text/text_bmfont_unordered.png b/examples/web/text/text_bmfont_unordered.png deleted file mode 100644 index c676756..0000000 Binary files a/examples/web/text/text_bmfont_unordered.png and /dev/null differ diff --git a/examples/web/text/text_font_sdf.png b/examples/web/text/text_font_sdf.png new file mode 100644 index 0000000..574669e Binary files /dev/null and b/examples/web/text/text_font_sdf.png differ diff --git a/examples/web/text/text_rectangle_bounds.png b/examples/web/text/text_rectangle_bounds.png new file mode 100644 index 0000000..f46b109 Binary files /dev/null and b/examples/web/text/text_rectangle_bounds.png differ diff --git a/examples/web/text/text_ttf_loading.png b/examples/web/text/text_ttf_loading.png index 29ea263..5fdbda1 100644 Binary files a/examples/web/text/text_ttf_loading.png and b/examples/web/text/text_ttf_loading.png differ diff --git a/examples/web/text/text_unicode.png b/examples/web/text/text_unicode.png new file mode 100644 index 0000000..d13b90e Binary files /dev/null and b/examples/web/text/text_unicode.png differ diff --git a/examples/web/textures/models_material_pbr.png b/examples/web/textures/models_material_pbr.png deleted file mode 100644 index 86ba01b..0000000 Binary files a/examples/web/textures/models_material_pbr.png and /dev/null differ diff --git a/examples/web/textures/models_mesh_generation.png b/examples/web/textures/models_mesh_generation.png deleted file mode 100644 index d8eb364..0000000 Binary files a/examples/web/textures/models_mesh_generation.png and /dev/null differ diff --git a/examples/web/textures/models_skybox.png b/examples/web/textures/models_skybox.png deleted file mode 100644 index 31694fa..0000000 Binary files a/examples/web/textures/models_skybox.png and /dev/null differ diff --git a/examples/web/textures/models_yaw_pitch_roll.png b/examples/web/textures/models_yaw_pitch_roll.png deleted file mode 100644 index 5400304..0000000 Binary files a/examples/web/textures/models_yaw_pitch_roll.png and /dev/null differ diff --git a/examples/web/textures/textures_background_scrolling.png b/examples/web/textures/textures_background_scrolling.png new file mode 100644 index 0000000..d21e269 Binary files /dev/null and b/examples/web/textures/textures_background_scrolling.png differ diff --git a/examples/web/textures/textures_image_text.png b/examples/web/textures/textures_image_text.png new file mode 100644 index 0000000..dafbabf Binary files /dev/null and b/examples/web/textures/textures_image_text.png differ diff --git a/examples/web/textures/textures_npatch_drawing.png b/examples/web/textures/textures_npatch_drawing.png new file mode 100644 index 0000000..21df9ca Binary files /dev/null and b/examples/web/textures/textures_npatch_drawing.png differ diff --git a/examples/web/textures/textures_particles_blending.png b/examples/web/textures/textures_particles_blending.png index b0c40fd..f90a87f 100644 Binary files a/examples/web/textures/textures_particles_blending.png and b/examples/web/textures/textures_particles_blending.png differ -- cgit v1.2.3