pax_global_header00006660000000000000000000000064147706052300014516gustar00rootroot0000000000000052 comment=be556d6bccfcd937ce5b08421e9c8b08029ba525 ezquake-3.6.6/000077500000000000000000000000001477060523000131775ustar00rootroot00000000000000ezquake-3.6.6/.gitignore000066400000000000000000000003251477060523000151670ustar00rootroot00000000000000ezquake ezquake.exe ezquake-*.exe ezquake-*-* ezQuake.aps *.vcxproj*.user *.vcxproj*.cache SysPrintf.log .ezquake/ .vs /.vscode *.json.c *.glsl.c vcpkg_installed/ src/.msversion.h /build*/ !.gitignore ezquake-3.6.6/.gitmodules000066400000000000000000000002671477060523000153610ustar00rootroot00000000000000[submodule "src/qwprot"] path = src/qwprot url = https://github.com/QW-Group/qwprot.git branch = master [submodule "vcpkg"] path = vcpkg url = https://github.com/Microsoft/vcpkg ezquake-3.6.6/BUILD.md000066400000000000000000000224371477060523000143700ustar00rootroot00000000000000# Compiling ezQuake ## Introduction To provide a consistent build on Windows, Linux, macOS and BSD across various compilers, dynamic and static linking, all described in one single file, [CMake][cmake] is used, with the help of [vcpkg][vcpkg] to support static linking. In its most basic form on Linux/BSD, with dynamic linking, a build can be invoked as follows: ```shell mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release # Configuration phase make -j $(nproc) # Build phase ``` This will locate all system-wide dependencies and show a clear message if a mandatory dependency is not installed. Check the output to see if it matches your expectations in regard to optional dependencies. When configure phase passes, the build phase will produce a dynamically linked binary. The resulting binary can be found in the build directory at `build/ezquake-linux-x86_64`. The default mode of compilation is to not show the full command line, only errors and warnings. To enable verbose mode, set `CMAKE_VERBOSE_MAKEFILE` to `ON`. While CMake can be configured via `CMAKE_C_CFLAGS`, it also supports picking up `CFLAGS` from the aptly named environment variable `CFLAGS`. The ezQuake build also declares a few options on its own to customize the resulting executable. Unfortunately CMake CLI has no built-in command to list them, so check `CMakeLists.txt`: ```shell grep -E ^option CMakeLists.txt ``` Putting the above customizations to work may look like this: ```shell export CFLAGS=-march=native mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=ON -DRENDERER_CLASSIC_OPENGL=OFF make -j $(nproc) ``` CMake caches as much as possible when the build is initialized to allow for fast iteration when developing. Should an option not activate as expected, removing the build directory and starting over is always a failsafe. Static dependencies are [cached elsewhere](#Caches) and will not have to be rebuilt if only the build directory is removed. ## CMake Presets [CMake presets][cmake-presets] can be seen as aliases that associates a number of build settings to a name. While this may not add much value for the trivial dynamically linked Linux/BSD build, the presets do add some desirable conveniences for other targets as is seen in later sections. There are two types of presets relevant to the ezQuake build: * Configuration Presets * Build Presets The available presets can be listed via: ```shell $ cmake --list-presets Available configure presets: "mingw64-x64-cross" "mingw64-i686-cross" ... $ cmake --build --list-presets Available build presets: "msbuild-x64-debug" - Build msbuild-x64 debug "msbuild-x64-release" - Build msbuild-x64 release "msbuild-x64-relwithdebinfo" - Build msbuild-x64 release with debug info ... ``` These can be invoked, regardless of underlying build system, via: ```shell # Creates build-dynamic directory, and initializes the build cmake --preset dynamic # Builds executable in build-dynamic/Release/ezquake cmake --build --preset dynamic-release # ...or if skipping the build preset, pass path to build directory instead camke --build build-dynamic --config Release ``` The build directory is by convention always called `build-${presetName}` when using presets. All declared presets are of type _Multi-Config_ so they're able to produce _Debug_, _Release_, and _RelWithDebInfo_ variants from the same configuration. While build presets are somewhat optional when building from the terminal, they add convenience when working from within an editor with CMake support. ## Static linking Static builds are supported on Windows, Linux and macOS and offloads building of dependencies to [vcpkg][vcpkg]. The CMake configuration is agnostic to dynamic or static linking and enabling of static linking happens via parametrizing the CMake invocation with the vcpkg toolchain. This is done automatically by using any of the Windows, macOS, or the static presets. Before starting a static build, vcpkg needs to be initialized. This is done by invoking `bootstrap.sh` on *nix-like platforms. Depending on which [type of build](#Visual-Studio) is used on Windows, the `bootstrap.ps1` PowerShell script does the equivalent. The invocation of a Linux static build is near identical to a dynamic build: ```shell ./bootstrap.sh cmake --preset static cmake --build build-static --config Release ``` If you haven't compiled a static version before, or if the project has updated the vcpkg repository version since last build, this will take a few minutes. Note that for Linux/BSD builds, you have to install the appropriate X11/Wayland development headers for the static build to work with each of those targets. ## Cross-Compilation to Windows Any *nix environment can produce a Windows build via: ```shell ./bootstrap.sh cmake --preset mingw64-x64-cross cmake --build build-mingw64-x64-cross --config Release ``` Be sure to install mingw-w64 before running the above commands. A native compiler is also needed as parts of the vcpkg build need to execute on the host. ## Visual Studio ### CMake Mode Microsoft is highly invested in both CMake and vcpkg, so native support in Visual Studio has existed for a number of years by now. Importing the project in Visual Studio 17 detects the CMake and vcpkg combination and builds the dependencies. Once done, the build presets will be listed in the _Configurations_ drop down. The `msbuild-*` or `ninja-msvc-*` related build presets are typically a good fit. To run ezQuake against a specific game directory, go via menu to _Debug_ > _Debug and Launch Settings for ezquake_ which will open up the `launch_schema.json` file where you introduce `currentDir` similar to the following: ```json { "version": "...", "defaults": {}, "configurations": [ { "type": "...", "currentDir": "C:\\Quake" } ] } ``` ### Visual Studio Solution Mode As the Visual Studio Solution is generated first after CMake configuration phase has finished, the `./bootstrap.ps1` PowerShell script must be invoked the first time to initialize vcpkg. ```shell powershell -File bootstrap.ps1 cmake --preset msbuild-x64 ``` Once done you will have a Visual Studio Solution in `build-msbuild-x64/ezquake.sln`. Any compilation changes that should be upstreamed must be updated in `CMakeLists.txt`. During the configuration phase, if a `ezquake.vcxproj.user` file exists in the top directory, this will be copied to the build directory next to the Visual Studio Solution to allow for persisting custom settings as the solution is generated. ## Xcode / macOS To simplify bundling static linking is used to build ezQuake on macOS, so start off by invoking `bootstrap.sh` first. When initializing for example the `macos-arm64` preset an Xcode project will be produced at `build-macos-arm64/ezquake.xcodeproj` with similar structure to that of Visual Studio. The same preset is also used when building via the terminal: ``` ./bootstrap.sh cmake --preset macos-arm64 cmake --build build-macos-arm64 --config Release ``` This will produce `ezQuake.app` under `build-macos-arm64/Release/ezQuake.app` by invoking `xcodebuild` behind the scenes to do the actual building and bundling. ## Caches If you don't intend to build ezQuake again and want to reclaim some space, you can find the shared vcpkg cache at: * All platforms * `./vcpkg/buildtrees` * *nix * `~/.cache/vcpkg/` * Windows * `c:\Users\$UserName\AppData\Local\vcpkg` ## Developer Tidbits ### Adding new files to the project In [CMakeLists.txt](CMakeLists.txt) source files are categorized into their approximate use cases (client, server, common, sys, etc), and this also applies to header files. The reason for this is to serve editors with the correct context, and if generating either a Xcode or Visual Studio project this categorization is also visualized in the project tree view. Looking forward, this will allow adding a `ezquake-sv` target by just reusing the relevant subset of source files. ### Managing static dependencies Vcpkg is used in [manifest mode][vcpkg-manifest], with the dependencies declared in `vcpkg.json`. While it's possible to lock dependencies at a specific version, this is not used today. Instead the vcpkg submodule dictates the set of dependency versions the project relies on. If adding a new mandatory dependency that static versions of ezQuake should use, first find it at [vcpkg.io][vcpkg-list], and if missing, read up on [overlay ports][vcpkg-overlay]. ### Target platforms If a specific platform requires customizations to how the static dependencies are built a [_triplet_][vcpkg-triplets] for this platform can be introduced. An example of such an override is the [x64 MinGW](cmake/triplets/x64-mingw-static.cmake) triplet that adds `-march=nehalem` when building dependencies. [cmake]: https://cmake.org/ [cmake-presets]: https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html [cmake-cflags]: https://cmake.org/cmake/help/latest/envvar/CFLAGS.html [vcpkg]: https://learn.microsoft.com/en-us/vcpkg/ [vcpkg-manifest]: https://learn.microsoft.com/en-us/vcpkg/concepts/manifest-mode [vcpkg-list]: https://vcpkg.io/en/ [vcpkg-overlay]: https://learn.microsoft.com/en-us/vcpkg/concepts/overlay-ports [vcpkg-triplets]: https://learn.microsoft.com/en-us/vcpkg/users/triplets [vscmake]: https://learn.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio ezquake-3.6.6/CMakeLists.txt000066400000000000000000001034301477060523000157400ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.22) project(ezquake C) if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") enable_language(OBJC) endif() option(USE_SYSTEM_LIBS "Use system libraries instead of VCPKG" ON) option(RENDERER_MODERN_OPENGL "Enable modern OpenGL renderer" ON) option(RENDERER_CLASSIC_OPENGL "Enable classic OpenGL renderer" ON) option(DEBUG_MEMORY_ALLOCATIONS "Enable debug prints for memory allocations" OFF) option(ENABLE_SANDBOX "Enables application sandboxing (macOS)" ON) option(ENABLE_LTO "Enable Link Time Optimization" ON) if(NOT RENDERER_CLASSIC_OPENGL AND NOT RENDERER_MODERN_OPENGL) message(FATAL_ERROR "At least one of RENDERER_CLASSIC_OPENGL or RENDERER_MODERN_OPENGL must be enabled.") endif() set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake) include(GitUtils) include(AddResources) include(CheckIPOSupported) include(CheckCCompilerFlag) include(CheckDependency) git_refresh_submodules() git_extract_version(git_version) # Xcode has its own LTO features. if(ENABLE_LTO AND NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin") check_ipo_supported(RESULT USE_LTO) if(USE_LTO) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE) else() message(FATAL_ERROR "Link Time Optimization requested, but not available.") endif() endif() if(ENABLE_LTO) message("-- Link Time Optimization: Enabled") endif() if(CMAKE_C_COMPILER_ID STREQUAL "MSVC") add_compile_options( /nologo /W3 /WX- /diagnostics:column ) set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded$<$:Debug>) set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT $<$:ProgramDatabase>) # Enable automatic parallelization of MSBuild set(CMAKE_VS_GLOBALS "UseMultiToolTask=true" "EnforceProcessCountAcrossBuilds=true" ) if(EXISTS "${PROJECT_SOURCE_DIR}/ezquake.vcxproj.user") configure_file("${PROJECT_SOURCE_DIR}/ezquake.vcxproj.user" "${CMAKE_BINARY_DIR}/ezquake.vcxproj.user" COPYONLY) endif() else() add_compile_options( -std=gnu89 -Wall -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast -Wno-strict-aliasing -Wno-deprecated-declarations -fvisibility=hidden -Werror=format -Werror=strict-prototypes -Werror=old-style-definition $<$:-Werror=unused-function> $<$:-Werror=unused-variable> ) check_c_compiler_flag("-Wstrlcpy-strlcat-size" HAS_STRLCPY_STRLCAT_SIZE) if(HAS_STRLCPY_STRLCAT_SIZE) add_compile_options("-Werror=strlcpy-strlcat-size") endif() check_c_compiler_flag("-Wformat-truncation" HAS_FORMAT_TRUNCATION) if(HAS_FORMAT_TRUNCATION) add_compile_options("-Wno-error=format-truncation" "-Wno-format-truncation") endif() check_c_compiler_flag("-Wparentheses" HAS_PARENTHESIS) if(HAS_PARENTHESIS) add_compile_options("-Wno-parentheses") endif() check_c_compiler_flag("-Wmisleading-indentation" HAS_MISLEADING_INDENTATION) if(HAS_MISLEADING_INDENTATION) add_compile_options("-Wno-misleading-indentation") endif() # While not gnu89, it's in practice allowed by all supported compilers check_c_compiler_flag("-Wtypedef-redefinition" HAS_TYPE_REDEFINITION) if(HAS_TYPE_REDEFINITION) add_compile_options("-Wno-typedef-redefinition") endif() # Should mostly be fixed in mvdsv, and next sync can remove this check_c_compiler_flag("-Wshorten-64-to-32" HAS_SHORTEN_64_TO_32) if(HAS_TYPE_REDEFINITION) add_compile_options("-Wno-shorten-64-to-32") endif() endif() find_library(MATH m) # Override by configuring with -DOpenGL_GL_PREFERENCE=GLVND if(NOT OpenGL_GL_PREFERENCE) set(OpenGL_GL_PREFERENCE LEGACY) endif() find_package(OpenGL REQUIRED) find_package(Threads REQUIRED) # Args: target name, pkg-config name, vcpkg package name, vcpkg target name, extra args check_dependency(Expat "expat" "EXPAT" "expat::expat" REQUIRED CONFIG) check_dependency(FreeType "freetype2" "Freetype" "Freetype::Freetype" OPTIONAL) check_dependency(JPEG "libjpeg" "JPEG" "JPEG::JPEG" REQUIRED) check_dependency(Jansson "jansson" "jansson" "jansson::jansson" REQUIRED) check_dependency(MiniZip "minizip" "unofficial-minizip" "unofficial::minizip::minizip" REQUIRED) check_dependency(PCRE2 "libpcre2-8" "PCRE2" "pcre2::pcre2-8-static" REQUIRED) check_dependency(PNG "libpng" "PNG" "PNG::PNG" REQUIRED) check_dependency(SDL2 "sdl2" "SDL2" "SDL2::SDL2-static" REQUIRED) check_dependency(SndFile "sndfile" "SndFile" "SndFile::sndfile" REQUIRED) check_dependency(Speex "speex" "Speex" "SPEEX::SPEEX" OPTIONAL) check_dependency(SpeexDSP "speexdsp" "SpeexDSP" "SPEEX::SPEEXDSP" OPTIONAL) check_dependency(cURL "libcurl" "CURL" "CURL::libcurl" REQUIRED CONFIG) check_dependency(zlib "zlib" "ZLIB" "ZLIB::ZLIB" REQUIRED) if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") find_library(FRAMEWORK_APPKIT AppKit REQUIRED) find_library(FRAMEWORK_FOUNDATION Foundation REQUIRED) find_library(FRAMEWORK_CORESERVICES CoreServices REQUIRED) find_library(FRAMEWORK_GAMECONTROLLER GameController REQUIRED) endif() # Place special CMake targets in separate VS/Xcode folder set_property(GLOBAL PROPERTY USE_FOLDERS ON) set_property(GLOBAL PROPERTY VS_STARTUP_PROJECT "ezquake") set(SOURCE_DIR ${PROJECT_SOURCE_DIR}/src) set(common_headers ${SOURCE_DIR}/bspfile.h ${SOURCE_DIR}/cmd.h ${SOURCE_DIR}/cmdline_params.h ${SOURCE_DIR}/cmdline_params_ids.h ${SOURCE_DIR}/cmodel.h ${SOURCE_DIR}/common.h ${SOURCE_DIR}/crc.h ${SOURCE_DIR}/cvar.h ${SOURCE_DIR}/cvar_groups.h ${SOURCE_DIR}/fs.h ${SOURCE_DIR}/hash.h ${SOURCE_DIR}/macro_definitions.h ${SOURCE_DIR}/macro_ids.h ${SOURCE_DIR}/mathlib.h ${SOURCE_DIR}/net.h ${SOURCE_DIR}/parser.h ${SOURCE_DIR}/pmove.h ${SOURCE_DIR}/q_platform.h ${SOURCE_DIR}/q_shared.h ${SOURCE_DIR}/sha1.h ${SOURCE_DIR}/sha3.h ${SOURCE_DIR}/version.h ${SOURCE_DIR}/vfs.h ${SOURCE_DIR}/vfs_tar.h ${SOURCE_DIR}/zone.h ) set(common ${SOURCE_DIR}/cmd.c ${SOURCE_DIR}/cmodel.c ${SOURCE_DIR}/com_msg.c ${SOURCE_DIR}/common.c ${SOURCE_DIR}/crc.c ${SOURCE_DIR}/cvar.c ${SOURCE_DIR}/fs.c ${SOURCE_DIR}/hash.c ${SOURCE_DIR}/mathlib.c ${SOURCE_DIR}/md4.c ${SOURCE_DIR}/net.c ${SOURCE_DIR}/net_chan.c ${SOURCE_DIR}/parser.c ${SOURCE_DIR}/pmove.c ${SOURCE_DIR}/pmovetst.c ${SOURCE_DIR}/q_shared.c ${SOURCE_DIR}/sha1.c ${SOURCE_DIR}/sha3.c ${SOURCE_DIR}/version.c ${SOURCE_DIR}/vfs_doomwad.c ${SOURCE_DIR}/vfs_gzip.c ${SOURCE_DIR}/vfs_mmap.c ${SOURCE_DIR}/vfs_os.c ${SOURCE_DIR}/vfs_pak.c ${SOURCE_DIR}/vfs_tar.c ${SOURCE_DIR}/vfs_tcp.c ${SOURCE_DIR}/vfs_zip.c ${SOURCE_DIR}/zone.c ${common_headers} ) source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/common" FILES ${common}) source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/common" FILES ${common_headers}) set(QWPROT_SOURCE_DIR ${SOURCE_DIR}/qwprot/src) set(qwprot_headers ${QWPROT_SOURCE_DIR}/protocol.h ) source_group(TREE ${QWPROT_SOURCE_DIR} PREFIX "Header Files/qwprot" FILES ${qwprot_headers}) set(server_headers ${SOURCE_DIR}/g_public.h ${SOURCE_DIR}/pr2.h ${SOURCE_DIR}/pr_comp.h ${SOURCE_DIR}/progdefs.h ${SOURCE_DIR}/progs.h ${SOURCE_DIR}/qwsvdef.h ${SOURCE_DIR}/server.h ${SOURCE_DIR}/sv_log.h ${SOURCE_DIR}/sv_mod_frags.h ${SOURCE_DIR}/sv_world.h ${SOURCE_DIR}/vm.h ${SOURCE_DIR}/vm_local.h ) set(server ${SOURCE_DIR}/pr2_cmds.c ${SOURCE_DIR}/pr2_edict.c ${SOURCE_DIR}/pr2_exec.c ${SOURCE_DIR}/pr_cmds.c ${SOURCE_DIR}/pr_edict.c ${SOURCE_DIR}/pr_exec.c ${SOURCE_DIR}/sv_ccmds.c ${SOURCE_DIR}/sv_demo.c ${SOURCE_DIR}/sv_demo_misc.c ${SOURCE_DIR}/sv_demo_qtv.c ${SOURCE_DIR}/sv_ents.c ${SOURCE_DIR}/sv_init.c ${SOURCE_DIR}/sv_login.c ${SOURCE_DIR}/sv_main.c ${SOURCE_DIR}/sv_master.c ${SOURCE_DIR}/sv_mod_frags.c ${SOURCE_DIR}/sv_move.c ${SOURCE_DIR}/sv_nchan.c ${SOURCE_DIR}/sv_phys.c ${SOURCE_DIR}/sv_save.c ${SOURCE_DIR}/sv_send.c ${SOURCE_DIR}/sv_user.c ${SOURCE_DIR}/sv_world.c ${SOURCE_DIR}/vm.c ${SOURCE_DIR}/vm_interpreted.c ${SOURCE_DIR}/vm_x86.c ${server_headers} ) source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/server" FILES ${server}) source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/server" FILES ${server_headers}) if(RENDERER_MODERN_OPENGL OR RENDERER_CLASSIC_OPENGL) set(SHARED_GLSL_DIR ${SOURCE_DIR}/glsl/shared) add_resources(shaders_shared ${SHARED_GLSL_DIR}/fxaa.h.glsl ) source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/shared_opengl" FILES ${shared_opengl}) source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/shared_opengl" FILES ${shared_opengl_headers}) endif() if(RENDERER_MODERN_OPENGL) set(MODERN_GLSL_DIR ${SOURCE_DIR}/glsl) add_resources(shaders_modern ${MODERN_GLSL_DIR}/common.glsl ${MODERN_GLSL_DIR}/constants.glsl ${MODERN_GLSL_DIR}/draw_aliasmodel.fragment.glsl ${MODERN_GLSL_DIR}/draw_aliasmodel.vertex.glsl ${MODERN_GLSL_DIR}/draw_sprites.fragment.glsl ${MODERN_GLSL_DIR}/draw_sprites.vertex.glsl ${MODERN_GLSL_DIR}/draw_world.fragment.glsl ${MODERN_GLSL_DIR}/draw_world.vertex.glsl ${MODERN_GLSL_DIR}/fx_world_geometry.fragment.glsl ${MODERN_GLSL_DIR}/fx_world_geometry.vertex.glsl ${MODERN_GLSL_DIR}/hud_draw_circle.fragment.glsl ${MODERN_GLSL_DIR}/hud_draw_circle.vertex.glsl ${MODERN_GLSL_DIR}/hud_draw_image.fragment.glsl ${MODERN_GLSL_DIR}/hud_draw_image.geometry.glsl ${MODERN_GLSL_DIR}/hud_draw_image.vertex.glsl ${MODERN_GLSL_DIR}/hud_draw_line.fragment.glsl ${MODERN_GLSL_DIR}/hud_draw_line.vertex.glsl ${MODERN_GLSL_DIR}/hud_draw_polygon.fragment.glsl ${MODERN_GLSL_DIR}/hud_draw_polygon.vertex.glsl ${MODERN_GLSL_DIR}/lighting.compute.glsl ${MODERN_GLSL_DIR}/post_process_screen.fragment.glsl ${MODERN_GLSL_DIR}/post_process_screen.vertex.glsl ${MODERN_GLSL_DIR}/simple.fragment.glsl ${MODERN_GLSL_DIR}/simple.vertex.glsl ${MODERN_GLSL_DIR}/simple3d.fragment.glsl ${MODERN_GLSL_DIR}/simple3d.vertex.glsl ) set(modern_opengl_headers ${SOURCE_DIR}/glm_brushmodel.h ${SOURCE_DIR}/glm_draw.h ${SOURCE_DIR}/glm_local.h ${SOURCE_DIR}/glm_particles.h ${SOURCE_DIR}/glm_texture_arrays.h ${SOURCE_DIR}/glm_vao.h ) set(modern_opengl ${SOURCE_DIR}/glm_aliasmodel.c ${SOURCE_DIR}/glm_brushmodel.c ${SOURCE_DIR}/glm_draw.c ${SOURCE_DIR}/glm_framebuffer.c ${SOURCE_DIR}/glm_lightmaps.c ${SOURCE_DIR}/glm_main.c ${SOURCE_DIR}/glm_md3.c ${SOURCE_DIR}/glm_misc.c ${SOURCE_DIR}/glm_particles.c ${SOURCE_DIR}/glm_performance.c ${SOURCE_DIR}/glm_rmain.c ${SOURCE_DIR}/glm_rsurf.c ${SOURCE_DIR}/glm_sdl.c ${SOURCE_DIR}/glm_sprite.c ${SOURCE_DIR}/glm_sprite3d.c ${SOURCE_DIR}/glm_state.c ${SOURCE_DIR}/glm_texture_arrays.c ${SOURCE_DIR}/glm_vao.c ${modern_opengl_headers} ) source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/modern_opengl" FILES ${modern_opengl}) source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/modern_opengl" FILES ${modern_opengl_headers}) endif() if(RENDERER_CLASSIC_OPENGL) set(CLASSIC_GLSL_DIR ${SOURCE_DIR}/glsl/glc) add_resources(shaders_classic ${CLASSIC_GLSL_DIR}/glc_aliasmodel_shadow.fragment.glsl ${CLASSIC_GLSL_DIR}/glc_aliasmodel_shadow.vertex.glsl ${CLASSIC_GLSL_DIR}/glc_aliasmodel_shell.fragment.glsl ${CLASSIC_GLSL_DIR}/glc_aliasmodel_shell.vertex.glsl ${CLASSIC_GLSL_DIR}/glc_aliasmodel_std.fragment.glsl ${CLASSIC_GLSL_DIR}/glc_aliasmodel_std.vertex.glsl ${CLASSIC_GLSL_DIR}/glc_caustics.fragment.glsl ${CLASSIC_GLSL_DIR}/glc_caustics.vertex.glsl ${CLASSIC_GLSL_DIR}/glc_draw_sprites.fragment.glsl ${CLASSIC_GLSL_DIR}/glc_draw_sprites.vertex.glsl ${CLASSIC_GLSL_DIR}/glc_hud_images.fragment.glsl ${CLASSIC_GLSL_DIR}/glc_hud_images.vertex.glsl ${CLASSIC_GLSL_DIR}/glc_post_process_screen.fragment.glsl ${CLASSIC_GLSL_DIR}/glc_post_process_screen.vertex.glsl ${CLASSIC_GLSL_DIR}/glc_sky.fragment.glsl ${CLASSIC_GLSL_DIR}/glc_sky.vertex.glsl ${CLASSIC_GLSL_DIR}/glc_turbsurface.fragment.glsl ${CLASSIC_GLSL_DIR}/glc_turbsurface.vertex.glsl ${CLASSIC_GLSL_DIR}/glc_world_drawflat.fragment.glsl ${CLASSIC_GLSL_DIR}/glc_world_drawflat.vertex.glsl ${CLASSIC_GLSL_DIR}/glc_world_secondpass.fragment.glsl ${CLASSIC_GLSL_DIR}/glc_world_secondpass.vertex.glsl ${CLASSIC_GLSL_DIR}/glc_world_textured.fragment.glsl ${CLASSIC_GLSL_DIR}/glc_world_textured.vertex.glsl ) set(classic_opengl_headers ${SOURCE_DIR}/glc_local.h ${SOURCE_DIR}/glc_matrix.h ${SOURCE_DIR}/glc_state.h ${SOURCE_DIR}/glc_vao.h ) set(classic_opengl ${SOURCE_DIR}/glc_aliasmodel.c ${SOURCE_DIR}/glc_aliasmodel_mesh.c ${SOURCE_DIR}/glc_bloom.c ${SOURCE_DIR}/glc_brushmodel.c ${SOURCE_DIR}/glc_draw.c ${SOURCE_DIR}/glc_framebuffer.c ${SOURCE_DIR}/glc_lightmaps.c ${SOURCE_DIR}/glc_main.c ${SOURCE_DIR}/glc_matrix.c ${SOURCE_DIR}/glc_md3.c ${SOURCE_DIR}/glc_misc.c ${SOURCE_DIR}/glc_particles.c ${SOURCE_DIR}/glc_performance.c ${SOURCE_DIR}/glc_sdl.c ${SOURCE_DIR}/glc_sky.c ${SOURCE_DIR}/glc_sprite3d.c ${SOURCE_DIR}/glc_state.c ${SOURCE_DIR}/glc_surf.c ${SOURCE_DIR}/glc_turb_surface.c ${SOURCE_DIR}/glc_vao.c ${SOURCE_DIR}/glc_warp.c ${classic_opengl_headers} ) source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/classic_opengl" FILES ${classic_opengl}) source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/classic_opengl" FILES ${classic_opengl_headers}) endif() set(common_opengl_headers ${SOURCE_DIR}/gl_framebuffer.h ${SOURCE_DIR}/gl_local.h ${SOURCE_DIR}/gl_sprite3d.h ${SOURCE_DIR}/gl_texture.h ${SOURCE_DIR}/gl_texture_internal.h ) set(common_opengl ${SOURCE_DIR}/gl_aliasmodel.c ${SOURCE_DIR}/gl_aliasmodel_md3.c ${SOURCE_DIR}/gl_buffers.c ${SOURCE_DIR}/gl_debug.c ${SOURCE_DIR}/gl_drawcall_wrappers.c ${SOURCE_DIR}/gl_framebuffer.c ${SOURCE_DIR}/gl_misc.c ${SOURCE_DIR}/gl_program.c ${SOURCE_DIR}/gl_sdl.c ${SOURCE_DIR}/gl_sprite3d.c ${SOURCE_DIR}/gl_state.c ${SOURCE_DIR}/gl_texture.c ${SOURCE_DIR}/gl_texture_functions.c ${SOURCE_DIR}/vid_common_gl.c ${SOURCE_DIR}/r_vao.h ${common_opengl_headers} ) source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/common_opengl" FILES ${common_opengl}) source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/common_opengl" FILES ${common_opengl_headers}) set(common_renderer_headers ${SOURCE_DIR}/anorm_dots.h ${SOURCE_DIR}/anorms.h ${SOURCE_DIR}/draw.h ${SOURCE_DIR}/gl_model.h ${SOURCE_DIR}/modelgen.h ${SOURCE_DIR}/particles_classic.h ${SOURCE_DIR}/qmb_particles.h ${SOURCE_DIR}/quakedef.h ${SOURCE_DIR}/r_aliasmodel.h ${SOURCE_DIR}/r_aliasmodel_md3.h ${SOURCE_DIR}/r_brushmodel.h ${SOURCE_DIR}/r_brushmodel_sky.h ${SOURCE_DIR}/r_brushmodel_warpsurfaces_sin.h ${SOURCE_DIR}/r_buffers.h ${SOURCE_DIR}/r_chaticons.h ${SOURCE_DIR}/r_draw.h ${SOURCE_DIR}/r_framestats.h ${SOURCE_DIR}/r_lighting.h ${SOURCE_DIR}/r_lightmaps.h ${SOURCE_DIR}/r_lightmaps_internal.h ${SOURCE_DIR}/r_local.h ${SOURCE_DIR}/r_matrix.h ${SOURCE_DIR}/r_particles_qmb.h ${SOURCE_DIR}/r_performance.h ${SOURCE_DIR}/r_program.h ${SOURCE_DIR}/r_renderer.h ${SOURCE_DIR}/r_renderer_structure.h ${SOURCE_DIR}/r_shared.h ${SOURCE_DIR}/r_sprite3d.h ${SOURCE_DIR}/r_sprite3d_internal.h ${SOURCE_DIR}/r_state.h ${SOURCE_DIR}/r_texture.h ${SOURCE_DIR}/r_texture_internal.h ${SOURCE_DIR}/r_trace.h ${SOURCE_DIR}/render.h ${SOURCE_DIR}/spritegn.h ${SOURCE_DIR}/vx_camera.h ${SOURCE_DIR}/vx_stuff.h ${SOURCE_DIR}/vx_tracker.h ${SOURCE_DIR}/vx_vertexlights.h ) set(common_renderer ${SOURCE_DIR}/r_aliasmodel.c ${SOURCE_DIR}/r_aliasmodel_md3.c ${SOURCE_DIR}/r_aliasmodel_mesh.c ${SOURCE_DIR}/r_aliasmodel_skins.c ${SOURCE_DIR}/r_atlas.c ${SOURCE_DIR}/r_bloom.c ${SOURCE_DIR}/r_brushmodel.c ${SOURCE_DIR}/r_brushmodel_bspx.c ${SOURCE_DIR}/r_brushmodel_load.c ${SOURCE_DIR}/r_brushmodel_sky.c ${SOURCE_DIR}/r_brushmodel_surfaces.c ${SOURCE_DIR}/r_brushmodel_textures.c ${SOURCE_DIR}/r_brushmodel_warpsurfaces.c ${SOURCE_DIR}/r_buffers.c ${SOURCE_DIR}/r_chaticons.c ${SOURCE_DIR}/r_draw.c ${SOURCE_DIR}/r_draw_charset.c ${SOURCE_DIR}/r_draw_circle.c ${SOURCE_DIR}/r_draw_image.c ${SOURCE_DIR}/r_draw_line.c ${SOURCE_DIR}/r_draw_polygon.c ${SOURCE_DIR}/r_hud.c ${SOURCE_DIR}/r_lightmaps.c ${SOURCE_DIR}/r_main.c ${SOURCE_DIR}/r_matrix.c ${SOURCE_DIR}/r_misc.c ${SOURCE_DIR}/r_model.c ${SOURCE_DIR}/r_netgraph.c ${SOURCE_DIR}/r_palette.c ${SOURCE_DIR}/r_part.c ${SOURCE_DIR}/r_part_trails.c ${SOURCE_DIR}/r_particles_qmb.c ${SOURCE_DIR}/r_particles_qmb_spawn.c ${SOURCE_DIR}/r_particles_qmb_trails.c ${SOURCE_DIR}/r_performance.c ${SOURCE_DIR}/r_refrag.c ${SOURCE_DIR}/r_rlight.c ${SOURCE_DIR}/r_rmain.c ${SOURCE_DIR}/r_rmisc.c ${SOURCE_DIR}/r_sprite3d.c ${SOURCE_DIR}/r_sprites.c ${SOURCE_DIR}/r_states.c ${SOURCE_DIR}/r_texture.c ${SOURCE_DIR}/r_texture_cvars.c ${SOURCE_DIR}/r_texture_load.c ${SOURCE_DIR}/r_texture_util.c ${SOURCE_DIR}/vx_camera.c ${SOURCE_DIR}/vx_coronas.c ${SOURCE_DIR}/vx_stuff.c ${SOURCE_DIR}/vx_vertexlights.c ${common_renderer_headers} ) source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/common_renderer" FILES ${common_renderer}) source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/common_renderer" FILES ${common_renderer_headers}) set(common_hud_headers ${SOURCE_DIR}/common_draw.h ${SOURCE_DIR}/hud.h ${SOURCE_DIR}/hud_common.h ${SOURCE_DIR}/hud_editor.h ) set(common_hud ${SOURCE_DIR}/hud.c ${SOURCE_DIR}/hud_262.c ${SOURCE_DIR}/hud_ammo.c ${SOURCE_DIR}/hud_armor.c ${SOURCE_DIR}/hud_autoid.c ${SOURCE_DIR}/hud_centerprint.c ${SOURCE_DIR}/hud_clock.c ${SOURCE_DIR}/hud_common.c ${SOURCE_DIR}/hud_editor.c ${SOURCE_DIR}/hud_face.c ${SOURCE_DIR}/hud_frags.c ${SOURCE_DIR}/hud_gamesummary.c ${SOURCE_DIR}/hud_groups.c ${SOURCE_DIR}/hud_guns.c ${SOURCE_DIR}/hud_health.c ${SOURCE_DIR}/hud_items.c ${SOURCE_DIR}/hud_net.c ${SOURCE_DIR}/hud_performance.c ${SOURCE_DIR}/hud_qtv.c ${SOURCE_DIR}/hud_radar.c ${SOURCE_DIR}/hud_scores.c ${SOURCE_DIR}/hud_speed.c ${SOURCE_DIR}/hud_teaminfo.c ${SOURCE_DIR}/hud_tracking.c ${SOURCE_DIR}/hud_weapon_stats.c ${common_hud_headers} ) source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/common_hud" FILES ${common_hud}) source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/common_hud" FILES ${common_hud_headers}) set(DOCUMENTATION_DIR ${PROJECT_SOURCE_DIR}) add_resources(documentation ${DOCUMENTATION_DIR}/help_cmdline_params.json ${DOCUMENTATION_DIR}/help_commands.json ${DOCUMENTATION_DIR}/help_macros.json ${DOCUMENTATION_DIR}/help_variables.json ) set(client_headers ${SOURCE_DIR}/Ctrl.h ${SOURCE_DIR}/Ctrl_EditBox.h ${SOURCE_DIR}/Ctrl_PageViewer.h ${SOURCE_DIR}/Ctrl_Tab.h ${SOURCE_DIR}/EX_FileList.h ${SOURCE_DIR}/EX_browser.h ${SOURCE_DIR}/EX_qtvlist.h ${SOURCE_DIR}/cdaudio.h ${SOURCE_DIR}/cl_slist.h ${SOURCE_DIR}/cl_view.h ${SOURCE_DIR}/client.h ${SOURCE_DIR}/config_manager.h ${SOURCE_DIR}/console.h ${SOURCE_DIR}/demo_controls.h ${SOURCE_DIR}/document_rendering.h ${SOURCE_DIR}/ez_button.h ${SOURCE_DIR}/ez_controls.h ${SOURCE_DIR}/ez_label.h ${SOURCE_DIR}/ez_listview.h ${SOURCE_DIR}/ez_listviewitem.h ${SOURCE_DIR}/ez_scrollbar.h ${SOURCE_DIR}/ez_scrollpane.h ${SOURCE_DIR}/ez_slider.h ${SOURCE_DIR}/ez_window.h ${SOURCE_DIR}/fchecks.h ${SOURCE_DIR}/fmod.h ${SOURCE_DIR}/fonts.h ${SOURCE_DIR}/help.h ${SOURCE_DIR}/ignore.h ${SOURCE_DIR}/image.h ${SOURCE_DIR}/input.h ${SOURCE_DIR}/keys.h ${SOURCE_DIR}/logging.h ${SOURCE_DIR}/menu.h ${SOURCE_DIR}/menu_demo.h ${SOURCE_DIR}/menu_ingame.h ${SOURCE_DIR}/menu_multiplayer.h ${SOURCE_DIR}/menu_options.h ${SOURCE_DIR}/menu_proxy.h ${SOURCE_DIR}/movie.h ${SOURCE_DIR}/movie_avi.h ${SOURCE_DIR}/mvd_utils.h ${SOURCE_DIR}/mvd_utils_common.h ${SOURCE_DIR}/qsound.h ${SOURCE_DIR}/qtv.h ${SOURCE_DIR}/rulesets.h ${SOURCE_DIR}/sbar.h ${SOURCE_DIR}/screen.h ${SOURCE_DIR}/settings.h ${SOURCE_DIR}/settings_page.h ${SOURCE_DIR}/stats_grid.h ${SOURCE_DIR}/sys.h ${SOURCE_DIR}/teamplay.h ${SOURCE_DIR}/textencoding.h ${SOURCE_DIR}/tp_msgs.h ${SOURCE_DIR}/tp_triggers.h ${SOURCE_DIR}/tr_types.h ${SOURCE_DIR}/utils.h ${SOURCE_DIR}/vid.h ${SOURCE_DIR}/wad.h ${SOURCE_DIR}/xsd.h ${SOURCE_DIR}/xsd_document.h ) if(CMAKE_SYSTEM_NAME STREQUAL "Windows") list(APPEND client_headers ${SOURCE_DIR}/movie_avi.h) endif() set(client ${SOURCE_DIR}/Ctrl.c ${SOURCE_DIR}/Ctrl_EditBox.c ${SOURCE_DIR}/Ctrl_PageViewer.c ${SOURCE_DIR}/Ctrl_ScrollBar.c ${SOURCE_DIR}/Ctrl_Tab.c ${SOURCE_DIR}/EX_FileList.c ${SOURCE_DIR}/EX_browser.c ${SOURCE_DIR}/EX_browser_net.c ${SOURCE_DIR}/EX_browser_pathfind.c ${SOURCE_DIR}/EX_browser_ping.c ${SOURCE_DIR}/EX_browser_qtvlist.c ${SOURCE_DIR}/EX_browser_sources.c ${SOURCE_DIR}/EX_qtvlist.c ${SOURCE_DIR}/cd_null.c ${SOURCE_DIR}/cl_cam.c ${SOURCE_DIR}/cl_cmd.c ${SOURCE_DIR}/cl_demo.c ${SOURCE_DIR}/cl_ents.c ${SOURCE_DIR}/cl_input.c ${SOURCE_DIR}/cl_main.c ${SOURCE_DIR}/cl_multiview.c ${SOURCE_DIR}/cl_nqdemo.c ${SOURCE_DIR}/cl_parse.c ${SOURCE_DIR}/cl_pred.c ${SOURCE_DIR}/cl_screen.c ${SOURCE_DIR}/cl_screenshot.c ${SOURCE_DIR}/cl_skygroups.c ${SOURCE_DIR}/cl_slist.c ${SOURCE_DIR}/cl_tent.c ${SOURCE_DIR}/cl_view.c ${SOURCE_DIR}/collision.c ${SOURCE_DIR}/common_draw.c ${SOURCE_DIR}/config_manager.c ${SOURCE_DIR}/console.c ${SOURCE_DIR}/demo_controls.c ${SOURCE_DIR}/document_rendering.c ${SOURCE_DIR}/ez_button.c ${SOURCE_DIR}/ez_controls.c ${SOURCE_DIR}/ez_label.c ${SOURCE_DIR}/ez_scrollbar.c ${SOURCE_DIR}/ez_scrollpane.c ${SOURCE_DIR}/ez_slider.c ${SOURCE_DIR}/ez_window.c ${SOURCE_DIR}/fchecks.c ${SOURCE_DIR}/fmod.c ${SOURCE_DIR}/fonts.c ${SOURCE_DIR}/fragstats.c ${SOURCE_DIR}/help.c ${SOURCE_DIR}/help_files.c ${SOURCE_DIR}/host.c ${SOURCE_DIR}/ignore.c ${SOURCE_DIR}/image.c ${SOURCE_DIR}/in_sdl2.c ${SOURCE_DIR}/irc.c ${SOURCE_DIR}/irc_filter.c ${SOURCE_DIR}/keys.c ${SOURCE_DIR}/logging.c ${SOURCE_DIR}/match_tools.c ${SOURCE_DIR}/match_tools_challenge.c ${SOURCE_DIR}/menu.c ${SOURCE_DIR}/menu_demo.c ${SOURCE_DIR}/menu_ingame.c ${SOURCE_DIR}/menu_multiplayer.c ${SOURCE_DIR}/menu_options.c ${SOURCE_DIR}/menu_proxy.c ${SOURCE_DIR}/movie.c ${SOURCE_DIR}/mvd_autotrack.c ${SOURCE_DIR}/mvd_utils.c ${SOURCE_DIR}/mvd_xmlstats.c ${SOURCE_DIR}/qtv.c ${SOURCE_DIR}/rulesets.c ${SOURCE_DIR}/sbar.c ${SOURCE_DIR}/settings_page.c ${SOURCE_DIR}/skin.c ${SOURCE_DIR}/snd_main.c ${SOURCE_DIR}/snd_mem.c ${SOURCE_DIR}/snd_mix.c ${SOURCE_DIR}/snd_voip.c ${SOURCE_DIR}/stats_grid.c ${SOURCE_DIR}/sys_sdl2.c ${SOURCE_DIR}/teamplay.c ${SOURCE_DIR}/teamplay_locfiles.c ${SOURCE_DIR}/textencoding.c ${SOURCE_DIR}/tp_msgs.c ${SOURCE_DIR}/tp_triggers.c ${SOURCE_DIR}/utils.c ${SOURCE_DIR}/vid_sdl2.c ${SOURCE_DIR}/vid_vsync.c ${SOURCE_DIR}/vx_tracker.c ${SOURCE_DIR}/wad.c ${SOURCE_DIR}/xsd.c ${SOURCE_DIR}/xsd_document.c ${client_headers} ) if(CMAKE_SYSTEM_NAME STREQUAL "Windows") list(APPEND client ${SOURCE_DIR}/movie_avi.c) endif() source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/client" FILES ${client}) source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/client" FILES ${client_headers}) set(sys_headers ${SOURCE_DIR}/localtime.h) if(CMAKE_SYSTEM_NAME STREQUAL "Windows") set(sys ${SOURCE_DIR}/localtime_win.c) else() set(sys ${SOURCE_DIR}/localtime_posix.c ${SOURCE_DIR}/linux_signals.c ) endif() if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") list(APPEND sys_headers ${SOURCE_DIR}/in_osx.h ) list(APPEND sys ${SOURCE_DIR}/in_osx.m ${SOURCE_DIR}/sys_osx.m ) endif() list(APPEND sys ${sys_headers}) source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/sys" FILES ${sys}) source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/sys" FILES ${sys_headers}) set(central_headers ${SOURCE_DIR}/central.h ) set(central ${SOURCE_DIR}/central.c ${central_headers} ) source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/central" FILES ${central}) source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/central" FILES ${central_headers}) if(CMAKE_SYSTEM_NAME STREQUAL "Windows") set(main ${SOURCE_DIR}/sys_win.c) else() set(main ${SOURCE_DIR}/sys_posix.c) endif() source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/main" FILES ${main}) get_target_property(version_major git_version VERSION_MAJOR) get_target_property(version_minor git_version VERSION_MINOR) get_target_property(version_patch git_version VERSION_PATCH) get_target_property(version_build git_version REVISION) get_target_property(version_commit git_version COMMIT) # macOS icon set(macos_icon "${PROJECT_SOURCE_DIR}/dist/macOS/ezquake.icns") set_source_files_properties(${macos_icon} PROPERTIES MACOSX_PACKAGE_LOCATION Resources) # Windows icon, and exe metadata set(windows_icon "${CMAKE_CURRENT_BINARY_DIR}/ezQuake.rc") set(EZQUAKE_RESOURCE_AUTHOR "QW-Group") set(EZQUAKE_RESOURCE_NAME "ezQuake") set(EZQUAKE_RESOURCE_DESCRIPTION "ezQuake - a QuakeWorld client") set(EZQUAKE_RESOURCE_ICON "${PROJECT_SOURCE_DIR}/dist/windows/ezquake.ico") set(EZQUAKE_RESOURCE_VERSION "${version_major},${version_minor},${version_patch},${version_build}") set(EZQUAKE_RESOURCE_COMMIT "${version_commit}") configure_file("${PROJECT_SOURCE_DIR}/dist/windows/ezQuake.rc.in" ${windows_icon} @ONLY) if(CMAKE_SYSTEM_NAME STREQUAL "Windows") # Mark the executable as a non-console application set(TARGET_TYPE WIN32) elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") # Mark the executable for bundling as .app set(TARGET_TYPE MACOSX_BUNDLE) endif() add_executable(ezquake ${TARGET_TYPE} ${main} ${sys} ${central} ${common} ${common_hud} ${server} ${client} ${common_opengl} ${common_renderer} $<$:${modern_opengl}> $<$:${classic_opengl}> ${qwprot_headers} $,${macos_icon},> $,${windows_icon},> ) target_include_directories(ezquake PRIVATE ${SOURCE_DIR}/qwprot/src ) target_compile_definitions(ezquake PRIVATE BUILDSTRING="${CMAKE_SYSTEM_NAME}" CPUSTRING="${CMAKE_SYSTEM_PROCESSOR}" JSS_CAM USE_PR2 WITH_NQPROGS $<$:DEBUG_MEMORY_ALLOCATIONS> $<$,$>:WITH_RENDERING_TRACE> $<$:GL_SILENCE_DEPRECATION> $<$:RENDERER_OPTION_MODERN_OPENGL> $<$:RENDERER_OPTION_CLASSIC_OPENGL> WITH_PNG WITH_JPEG WITH_ZIP WITH_ZLIB $<$:EZ_FREETYPE_SUPPORT> $<$:EZ_FREETYPE_SUPPORT_STATIC> $<$,$>:WITH_SPEEX> PCRE2_CODE_UNIT_WIDTH=8 ) target_link_libraries(ezquake PRIVATE $<$:shaders_modern> $<$:shaders_classic> shaders_shared documentation git_version ${CMAKE_DL_LIBS} Dep::zlib Dep::cURL Dep::Expat Dep::JPEG Dep::PCRE2 Dep::SDL2 Dep::Jansson Dep::SndFile Dep::PNG Dep::MiniZip $<$:Dep::FreeType> $<$,$>:Dep::Speex> $<$,$>:Dep::SpeexDSP> OpenGL::GL Threads::Threads ${FRAMEWORK_APPKIT} ${FRAMEWORK_FOUNDATION} ${FRAMEWORK_CORESERVICES} ${FRAMEWORK_GAMECONTROLLER} ) if(MATH) target_link_libraries(ezquake PRIVATE ${MATH}) endif() if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") string(TOLOWER "ezQuake" EXECUTABLE_NAME) elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") string(TOLOWER "ezquake" EXECUTABLE_NAME) else() string(TOLOWER "ezquake-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}" EXECUTABLE_NAME) endif() set_target_properties(ezquake PROPERTIES OUTPUT_NAME ${EXECUTABLE_NAME}) if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") get_target_property(version git_version GIT_DESCRIBE) set_target_properties(ezquake PROPERTIES XCODE_ATTRIBUTE_PRODUCT_NAME "ezQuake" XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.ezquake.ezQuake" XCODE_ATTRIBUTE_MARKETING_VERSION "${version}" XCODE_ATTRIBUTE_CURRENT_PROJECT_VERSION "${version}" XCODE_ATTRIBUTE_LLVM_LTO $,$>>,NO,Monolithic> XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL $,0,3> XCODE_ATTRIBUTE_DEAD_CODE_STRIPPING YES XCODE_ATTRIBUTE_GENERATE_INFOPLIST_FILE YES XCODE_ATTRIBUTE_INFOPLIST_KEY_CFBundleDisplayName "ezQuake" XCODE_ATTRIBUTE_INFOPLIST_KEY_LSApplicationCategoryType "public.app-category.action-games" XCODE_ATTRIBUTE_INFOPLIST_KEY_NSHumanReadableCopyright "GNU General Public License, version 2" XCODE_ATTRIBUTE_INFOPLIST_FILE "${PROJECT_SOURCE_DIR}/dist/macOS/MacOSXBundleInfo.plist.in" ) if(ENABLE_SANDBOX) set_target_properties(ezquake PROPERTIES XCODE_ATTRIBUTE_ENABLE_APP_SANDBOX YES XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME YES XCODE_ATTRIBUTE_CODE_SIGN_INJECT_BASE_ENTITLEMENTS[variant=Debug] YES XCODE_ATTRIBUTE_CODE_SIGN_INJECT_BASE_ENTITLEMENTS[variant=RelWithDebInfo] YES XCODE_ATTRIBUTE_CODE_SIGN_INJECT_BASE_ENTITLEMENTS[variant=Release] NO XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "dist/macOS/ezquake.entitlements.plist" ) endif() endif() ezquake-3.6.6/CMakePresets.json000066400000000000000000000414701477060523000164260ustar00rootroot00000000000000{ "version": 3, "cmakeMinimumRequired": { "major": 3, "minor": 22, "patch": 0 }, "configurePresets": [ { "name": "template-common", "hidden": true, "binaryDir": "${sourceDir}/build-${presetName}", "cacheVariables": { "CMAKE_VERBOSE_MAKEFILE": "OFF", "CMAKE_COLOR_DIAGNOSTICS": "ON", "CMAKE_CONFIGURATION_TYPES": "Debug;RelWithDebInfo;Release" } }, { "name": "template-vcpkg", "hidden": true, "inherits": "template-common", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": { "type": "FILEPATH", "value": "vcpkg/scripts/buildsystems/vcpkg.cmake" }, "VCPKG_OVERLAY_TRIPLETS": "${sourceDir}/cmake/triplets", "VCPKG_LIBRARY_LINKAGE": "static", "VCPKG_CRT_LINKAGE": "dynamic", "VCPKG_INSTALL_OPTIONS": "--clean-after-build", "VCPKG_ENABLE_METRICS": "0", "VCPKG_APPLOCAL_DEPS": "OFF", "USE_SYSTEM_LIBS": "OFF" } }, { "name": "template-gcc-mingw-cross", "hidden": true, "cacheVariables": { "CMAKE_SYSTEM_NAME": "Windows" } }, { "name": "template-gcc-mingw-i686", "hidden": true, "inherits": "template-vcpkg", "cacheVariables": { "CMAKE_C_COMPILER": "i686-w64-mingw32-gcc", "CMAKE_CXX_COMPILER": "i686-w64-mingw32-g++", "CMAKE_RC_COMPILER": "i686-w64-mingw32-windres", "CMAKE_C_FLAGS": "-msse2" } }, { "name": "template-gcc-mingw-x64", "hidden": true, "inherits": "template-vcpkg", "cacheVariables": { "CMAKE_C_COMPILER": "x86_64-w64-mingw32-gcc", "CMAKE_CXX_COMPILER": "x86_64-w64-mingw32-g++", "CMAKE_RC_COMPILER": "x86_64-w64-mingw32-windres", "CMAKE_C_FLAGS": "-march=nehalem" } }, { "name": "msbuild-x64", "description": "Configure as Visual Studio project", "generator": "Visual Studio 17 2022", "inherits": "template-vcpkg", "cacheVariables": { "VCPKG_TARGET_TRIPLET": "x64-windows-static" }, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" } }, { "name": "msbuild-arm64", "description": "Configure as Visual Studio project", "generator": "Visual Studio 17 2022", "inherits": "template-vcpkg", "cacheVariables": { "VCPKG_TARGET_TRIPLET": "arm64-windows-static" }, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" } }, { "name": "msvc-x64", "description": "Configure using Ninja to build with msvc", "generator": "Ninja Multi-Config", "inherits": "template-vcpkg", "cacheVariables": { "VCPKG_TARGET_TRIPLET": "x64-windows-static" }, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" } }, { "name": "mingw64-x64-shared", "hidden": true, "description": "Configure using Ninja to build with mingw64 for x64", "generator": "Ninja Multi-Config", "inherits": "template-gcc-mingw-x64", "architecture": { "value": "x64", "strategy": "external" }, "cacheVariables": { "VCPKG_TARGET_TRIPLET": "x64-mingw-static", "CMAKE_SYSTEM_PROCESSOR": "x86_64" } }, { "name": "mingw64-x64", "inherits": ["mingw64-x64-shared"], "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" } }, { "name": "mingw64-x64-cross", "inherits": ["mingw64-x64-shared", "template-gcc-mingw-cross"], "condition": { "type": "notEquals", "lhs": "${hostSystemName}", "rhs": "Windows" } }, { "name": "mingw64-i686-shared", "hidden": true, "description": "Configure with Ninja to build with mingw64 for i686", "generator": "Ninja Multi-Config", "inherits": ["template-gcc-mingw-i686"], "architecture": { "value": "x86", "strategy": "external" }, "cacheVariables": { "VCPKG_TARGET_TRIPLET": "x86-mingw-static", "CMAKE_SYSTEM_PROCESSOR": "x86" } }, { "name": "mingw64-i686", "inherits": ["mingw64-i686-shared"], "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" } }, { "name": "mingw64-i686-cross", "inherits": ["mingw64-i686-shared", "template-gcc-mingw-cross"], "cacheVariables": { "CMAKE_SYSTEM_PROCESSOR": "i686" }, "condition": { "type": "notEquals", "lhs": "${hostSystemName}", "rhs": "Windows" } }, { "name": "macos", "hidden": true, "description": "Configure XCode project file", "generator": "Xcode", "inherits": "template-vcpkg", "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" }, "cacheVariables": { "RENDERER_MODERN_OPENGL": "OFF" } }, { "name": "macos-arm64", "displayName": "XCode (arm64)", "inherits": "macos", "cacheVariables": { "VCPKG_TARGET_TRIPLET": "arm64-osx", "CMAKE_OSX_ARCHITECTURES": "arm64", "CMAKE_OSX_DEPLOYMENT_TARGET": "11.0" } }, { "name": "macos-x64", "displayName": "XCode (x64)", "inherits": "macos", "cacheVariables": { "VCPKG_TARGET_TRIPLET": "x64-osx", "CMAKE_OSX_ARCHITECTURES": "x86_64", "CMAKE_OSX_DEPLOYMENT_TARGET": "11.0" } }, { "name": "dynamic", "description": "Configure XCode project file", "generator": "Ninja Multi-Config", "inherits": "template-common", "cacheVariables": { "USE_SYSTEM_LIBS": "ON" } }, { "name": "static", "description": "Configure XCode project file", "generator": "Ninja Multi-Config", "inherits": "template-vcpkg" } ], "buildPresets": [ { "name": "msbuild-x64-debug", "configurePreset": "msbuild-x64", "displayName": "Build msbuild-x64 debug", "description": "Build Visual Studio Debug configuration", "configuration": "Debug" }, { "name": "msbuild-x64-release", "configurePreset": "msbuild-x64", "displayName": "Build msbuild-x64 release", "description": "Build Visual Studio Release configuration", "configuration": "Release" }, { "name": "msbuild-x64-relwithdebinfo", "configurePreset": "msbuild-x64", "displayName": "Build msbuild-x64 release with debug info", "description": "Build Visual Studio Release configuration", "configuration": "RelWithDebInfo" }, { "name": "msbuild-arm64-debug", "configurePreset": "msbuild-arm64", "displayName": "Build msbuild-arm64 debug", "description": "Build Visual Studio Debug configuration", "configuration": "Debug" }, { "name": "msbuild-arm64-release", "configurePreset": "msbuild-arm64", "displayName": "Build msbuild-arm64 release", "description": "Build Visual Studio Release configuration", "configuration": "Release" }, { "name": "msbuild-arm64-relwithdebinfo", "configurePreset": "msbuild-arm64", "displayName": "Build msbuild-arm64 release with debug info", "description": "Build Visual Studio Release configuration", "configuration": "RelWithDebInfo" }, { "name": "msvc-x64-debug", "configurePreset": "msvc-x64", "displayName": "Build msvc-x64 debug", "description": "Build MSVC debug configuration", "configuration": "Debug" }, { "name": "msvc-x64-release", "configurePreset": "msvc-x64", "displayName": "Build ninja-msvc-x64 release", "description": "Build MSVC release configuration", "configuration": "Release" }, { "name": "msvc-x64-relwithdebinfo", "configurePreset": "msvc-x64", "displayName": "Build MSVC release with debug symbols", "description": "Build MSVC release with debug info configuration", "configuration": "RelWithDebInfo" }, { "name": "mingw64-x64-debug", "configurePreset": "mingw64-x64", "displayName": "Build mingw64-x64 debug", "description": "Build Windows Subsystem for Linux Debug configuration", "configuration": "Debug" }, { "name": "mingw64-x64-cross-debug", "configurePreset": "mingw64-x64-cross", "displayName": "Build mingw64-x64 debug", "description": "Cross-compile with mingw64-x64 Debug configuration", "configuration": "Debug" }, { "name": "mingw64-x64-release", "configurePreset": "mingw64-x64", "displayName": "Build mingw64-x64 release", "description": "Build Windows Subsystem for Linux Release configuration", "configuration": "Release" }, { "name": "mingw64-x64-cross-release", "configurePreset": "mingw64-x64-cross", "displayName": "Build mingw64-x64 release", "description": "Cross-compile with mingw64-x64 Release configuration", "configuration": "Release" }, { "name": "mingw64-x64-relwithdebinfo", "configurePreset": "mingw64-x64", "displayName": "Build mingw64-x64 release with debug info", "description": "Build Windows Subsystem for Linux Release with debug info configuration", "configuration": "RelWithDebInfo" }, { "name": "mingw64-x64-cross-relwithdebinfo", "configurePreset": "mingw64-x64-cross", "displayName": "Build mingw64-x64 release with debug info", "description": "Cross-compile with mingw64-x64 Release with debug info configuration", "configuration": "RelWithDebInfo" }, { "name": "mingw64-i686-debug", "configurePreset": "mingw64-i686", "displayName": "Build mingw64-i686 debug", "description": "Build Windows Subsystem for Linux Debug configuration", "configuration": "Debug" }, { "name": "mingw64-i686-cross-debug", "configurePreset": "mingw64-i686-cross", "displayName": "Build mingw64-i686 debug", "description": "Build Windows Subsystem for Linux Debug configuration", "configuration": "Debug" }, { "name": "mingw64-i686-release", "configurePreset": "mingw64-i686", "displayName": "Build mingw64-i686 release", "description": "Build Windows Subsystem for Linux Debug configuration", "configuration": "Release" }, { "name": "mingw64-i686-cross-release", "configurePreset": "mingw64-i686-cross", "displayName": "Build mingw64-i686 release", "description": "Build Windows Subsystem for Linux Debug configuration", "configuration": "Release" }, { "name": "mingw64-i686-relwithdebinfo", "configurePreset": "mingw64-i686", "displayName": "Build mingw64-i686 release with debug info", "description": "Build Windows Subsystem for Linux Debug configuration", "configuration": "RelWithDebInfo" }, { "name": "mingw64-i686-cross-relwithdebinfo", "configurePreset": "mingw64-i686-cross", "displayName": "Build mingw64-i686 release with debug info", "description": "Cross-compile with mingw64-i686 Release with debug info configuration", "configuration": "RelWithDebInfo" }, { "name": "macos-arm64-debug", "configurePreset": "macos-arm64", "displayName": "Build Xcode debug", "description": "Build Xcode Debug configuration", "configuration": "Debug" }, { "name": "macos-arm64-release", "configurePreset": "macos-arm64", "displayName": "Build Xcode release", "description": "Build Xcode Release configuration", "configuration": "Release" }, { "name": "macos-arm64-relwithdebinfo", "configurePreset": "macos-arm64", "displayName": "Build Xcode release with debug info", "description": "Build Xcode Release with debug info configuration", "configuration": "RelWithDebInfo" }, { "name": "macos-x64-debug", "configurePreset": "macos-x64", "displayName": "Build Xcode debug", "description": "Build Xcode Debug configuration", "configuration": "Debug" }, { "name": "macos-x64-release", "configurePreset": "macos-x64", "displayName": "Build Xcode release", "description": "Build Xcode Release configuration", "configuration": "Release" }, { "name": "macos-x64-relwithdebinfo", "configurePreset": "macos-x64", "displayName": "Build Xcode release with debug info", "description": "Build Xcode Release with debug info configuration", "configuration": "RelWithDebInfo" }, { "name": "dynamic-debug", "configurePreset": "dynamic", "displayName": "Build native dynamically linked release", "description": "Build with community release triplet", "configuration": "Debug" }, { "name": "dynamic-release", "configurePreset": "dynamic", "displayName": "Build native dynamically linked release", "description": "Build with community release triplet", "configuration": "Release" }, { "name": "dynamic-relwithdebinfo", "configurePreset": "dynamic", "displayName": "Build native dynamically linked release", "description": "Build with community release triplet", "configuration": "RelWithDebInfo" }, { "name": "static-debug", "configurePreset": "static", "displayName": "Build native statically linked debug", "description": "Build with statically linked debug", "configuration": "Debug" }, { "name": "static-release", "configurePreset": "static", "displayName": "Build native statically linked release", "description": "Build with statically linked release", "configuration": "Release" }, { "name": "static-relwithdebinfo", "configurePreset": "static", "displayName": "Build native statically linked release with debug info", "description": "Build with statically linked release with debug info", "configuration": "RelWithDebInfo" } ] } ezquake-3.6.6/LICENSE000066400000000000000000000350421477060523000142100ustar00rootroot00000000000000GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS ezquake-3.6.6/README.md000066400000000000000000000062311477060523000144600ustar00rootroot00000000000000# ezQuake — Modern QuakeWorld Client Homepage: [https://ezquake.com][homepage] Community discord: [http://discord.quake.world][discord] This is the right place to start playing QuakeWorld® — the fastest first person shooter action game ever. Combining the features of all modern QuakeWorld® clients, ezQuake makes QuakeWorld® easier to start and play. The immortal first person shooter Quake® in the brand new skin with superb graphics and extremely fast gameplay. ## Features * Modern graphics * [QuakeTV][qtv] support * Rich menus * Multiview support * Tons of features to serve latest pro-gaming needs * Built in server browser & MP3 player control * Recorded games browser * Customization of all possible graphics elements of the game including Heads Up Display * All sorts of scripting possibilities * Windows, Linux, MacOSX and FreeBSD platforms supported (SDL2). Our client comes only with bare minimum of game media. If you want to experience ezQuake with modern graphics and other additional media including custom configurations, maps, textures and more, try using the [nQuake][nQuake]-installer. ## Support Need help with using ezQuake? Try #dev-corner on [discord][discord] Or (less populated these days) visit us on IRC at QuakeNet, channel #ezQuake: [webchat][webchat] or [IRC][IRC]. Sometimes help from other users of ezQuake might be more useful to you so you can also try visiting the [quakeworld.nu Client Talk-forums][forum]. If you have found a bug, please report it [here][issues] ## Installation guide To play Quakeworld you need the files *pak0.pak* and *pak1.pak* from the original Quake-game. ### Install ezQuake to an existing Quake-installation If you have an existing Quake-installation simply extract the ezQuake executable into your Quake-directory. A typical error message when installing ezQuake into a pre-existing directory is about *glide2x.dll* missing. To get rid of this error, remove the file *opengl32.dll* from your Quake directory. ### Upgrade an nQuake-installation If you have a version of [nQuake][nQuake] already installed you can upgrade ezQuake by extracting the new executable into the nQuake-directory. ### Minimal clean installation If you want to make a clean installation of ezQuake you can do this by following these steps: 1. Create a new directory 2. Extract the ezQuake-executable into this directory 3. Create a subdirectory called *id1* 4. Copy *pak0.pak* and *pak1.pak* into this subdirectory ## Compiling On Linux, `./build-linux.sh` produces an ezQuake binary in the top directory. For a more in-depth description of how to build on all platforms, have a look at [BUILD.md](BUILD.md). ## Nightly builds Nightly builds can be found [here][nightly] [nQuake]: http://nquake.com/ [webchat]: http://webchat.quakenet.org/?channels=#ezquake [IRC]: irc://irc.quakenet.org/#ezquake [forum]: http://www.quakeworld.nu/forum/8 [qtv]: http://qtv.quakeworld.nu/ [nightly]: https://builds.quakeworld.nu/ezquake/snapshots/ [releases]: https://github.com/ezQuake/ezquake-source/releases [issues]: https://github.com/ezQuake/ezquake-source/issues [homepage]: https://ezquake.com [discord]: http://discord.quake.world/ ezquake-3.6.6/bootstrap.ps1000066400000000000000000000022521477060523000156420ustar00rootroot00000000000000function Show-MessageBox { param ([string]$message) Add-Type -AssemblyName PresentationFramework [System.Windows.MessageBox]::Show($message, "Bootstrap Error", 'OK', 'Warning') } if (-not (Get-Command git -ErrorAction SilentlyContinue)) { Show-MessageBox "Git is needed to checkout vcpkg, but it's not installed or not available in PATH." exit 1 } git submodule update --init --recursive if (-not (Test-Path "vcpkg/.git")) { if (-not (Test-Path "version.json")) { Show-MessageBox "Unable to checkout correct version of vcpkg without 'version.json'." exit 1 } try { $versionData = Get-Content -Raw -Path "version.json" | ConvertFrom-Json } catch { Show-MessageBox "version.json is not valid JSON." exit 1 } $vcpkgVersion = $versionData.vcpkg if (Test-Path "vcpkg") { Remove-Item -Recurse -Force "vcpkg" } git clone --branch $vcpkgVersion --depth 1 https://github.com/microsoft/vcpkg.git "vcpkg" $cloneExitCode = $LASTEXITCODE if ($cloneExitCode -ne 0) { Show-MessageBox "Checkout of vcpkg failed." exit 1 } } & "vcpkg/bootstrap-vcpkg.bat" -disableMetricsezquake-3.6.6/bootstrap.sh000077500000000000000000000025561477060523000155630ustar00rootroot00000000000000#!/bin/sh -e show_error() { printf "\e[31mError\e[0m: $1\n" exit 1 } required_commands="cmake ninja git automake autoconf pkg-config curl zip unzip tar" missing_deps="" for cmd in $required_commands; do if ! command -v "$cmd" >/dev/null 2>&1; then missing_deps="$missing_deps $cmd" fi done # naming differs on macOS/Linux if ! command -v "libtoolize" >/dev/null 2>&1 && ! command -v "glibtoolize" >/dev/null 2>&1; then missing_deps="$missing_deps libtool"; fi if [ -n "$missing_deps" ]; then show_error "Install packages that provide support for:$missing_deps" fi if [ -e ".git" ]; then echo "Updating submodules..." git submodule update --init --recursive fi if [ ! -e "vcpkg/.git" ]; then if [ ! -f "version.json" ]; then show_error "Unable to checkout vcpkg without 'version.json'." fi vcpkg_version=$(sed -n 's/.*"vcpkg": *"\(.*\)".*/\1/p' version.json) if [ -z "$vcpkg_version" ]; then show_error "Could not extract vcpkg version from version.json." fi if [ -d "vcpkg" ]; then rm -rf "vcpkg" fi git clone --branch "$vcpkg_version" --depth 1 https://github.com/microsoft/vcpkg.git "vcpkg" if [ $? -ne 0 ]; then show_error "Checkout of vcpkg failed." fi fi vcpkg/bootstrap-vcpkg.sh -disableMetrics if [ $? -ne 0 ]; then show_error "vcpkg bootstrap failed." fi ezquake-3.6.6/build-linux.sh000077500000000000000000000133531477060523000157770ustar00rootroot00000000000000#!/bin/sh -e # simple build script for linux # ANSI color codes RED='\e[31m' GREEN='\e[32m' YELLOW='\e[33m' NC='\e[0m' BUILD_LOG=/tmp/ezquake-build.log SKIP_DEPS="${SKIP_DEPS:-0}" PKGS_DEB="git cmake build-essential libsdl2-2.0-0 libsdl2-dev libjansson-dev libexpat1-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libspeex-dev libspeexdsp-dev libfreetype-dev libsndfile1-dev libpcre2-dev libminizip-dev" PKGS_RPM="pcre2-devel cmake mesa-libGL-devel SDL2-devel make gcc jansson-devel expat-devel libcurl-devel libpng-devel libjpeg-turbo-devel speex-devel speexdsp-devel freetype-devel libsndfile-devel libXxf86vm-devel minizip-devel" PKGS_ARCH="base-devel cmake libpng libjpeg-turbo sdl2 expat libcurl-compat freetype2 speex speexdsp jansson libsndfile minizip" PKGS_VOID="base-devel cmake SDL2-devel pcre2-devel jansson-devel expat-devel libcurl-devel libpng-devel libjpeg-turbo-devel speex-devel speexdsp-devel freetype-devel libsndfile-devel libXxf86vm-devel minizip" CPU=$(uname -m | sed -e s/i.86/i386/ -e s/amd64/x86_64/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/alpha/axp/) error() { [ ! -e $BUILD_LOG ] || cat $BUILD_LOG printf "${RED}[ERROR]${NC} %s\n" "$*" exit 1 } step() { printf "${GREEN}[STEP ]${NC} %s\n" "$*" } info() { printf "[INFO ] %s\n" "$*" } warn() { printf "${YELLOW}[WARN ]${NC} %s\n" "$*" } install_check_deb() { step "Install/check dependecies (packages)..." info "You might be prompted to input your password as superuser privileges are required." info "Updating apt repo list... (running with sudo)" sudo apt-get update -y -qq || error "Failed to update package sources. Exiting." info "Checking/installing required packages... (running with sudo)" sudo apt-get install -y -q $PKGS_DEB >>$BUILD_LOG 2>&1 || error "Failed to install required packages. Exiting." } install_check_rpm() { step "Install/check dependecies (packages)..." info "You might be prompted to input your password as superuser privileges are required." info "Updating yum repo list... (running with sudo)" sudo yum clean all -yqqq && sudo yum check-update -yqqq >>$BUILD_LOG 2>&1 || error "Failed to update repo list. Exiting." info "Checking/installing required packages... (running with sudo)" sudo yum install -yq $PKGS_RPM >>$BUILD_LOG 2>&1 || error "Failed to install required packages. Exiting." } install_check_arch() { step "Install/check dependecies (packages)..." info "You might be prompted to input your password as superuser privileges are required." sudo pacman -Sy >>$BUILD_LOG 2>&1 || error "Failed to update repository cache. Exiting." sudo pacman -S --needed --noconfirm $PKGS_ARCH >>$BUILD_LOG 2>&1 || error "Failed to install required packages. Exiting." } install_check_void() { step "Install/check dependencies (packages)..." info "You might be prompted to input your password as superuser privileges are required." info "Updating xbps repo list... (running with sudo)" sudo xbps-install -Sy >>$BUILD_LOG 2>&1 || error "Failed to update package sources. Exiting." info "Checking/installing required packages... (running with sudo)" sudo xbps-install -y $PKGS_VOID >>$BUILD_LOG 2>&1 || error "Failed to install required packages. Exiting." } if [ -f $BUILD_LOG ];then rm -f $BUILD_LOG ||: fi [ -e CMakeLists.txt ] || error "Cannot find 'CMakeLists.txt', please run this script from the source code directory." if [ $SKIP_DEPS -eq 0 ];then command -v sudo &>/dev/null || error "Could not find sudo, please install it. Exiting." if [ -f /etc/os-release ]; then . /etc/os-release || error "Failed to source os-release file" else error "Your environment isn't supported by this script. Exiting." fi [ -n "${ID}" ] || error "Your dist does not specify ID in /etc/os-release. Exiting." [ -n "${VERSION_ID}" ] || VERSION_ID=0 case $ID in arch) install_check_arch ;; manjaro) install_check_arch ;; void) install_check_void ;; linuxmint) [ $VERSION_ID -ge 18 ] || error "Your Linux Mint version '$VERSION_ID' is too old. Exiting." install_check_deb ;; ubuntu) VERSION_ID=${VERSION_ID%.*} [ $VERSION_ID -ge 16 ] || error "Your Ubuntu version '$VERSION_ID' is too old. Exiting." install_check_deb ;; devuan) if [ $VERSION_ID -gt 0 ] && [ $VERSION_ID -lt 4 ] ; then error "Your Devuan version '$VERSION_ID' is too old. Exiting." fi # Includes Devuan testing/unstable as they don't provide a VERSION_ID install_check_deb ;; debian) if [ $VERSION_ID -gt 0 ] && [ $VERSION_ID -lt 8 ]; then error "Your Debian version '$VERSION_ID' is too old. Exiting." fi # Includes Debian testing/unstable as they don't provide a VERSION_ID install_check_deb ;; pop) VERSION_ID=${VERSION_ID%.*} [ $VERSION_ID -ge 17 ] || error "Your Pop!_OS version '$VERSION_ID' is too old. Exiting." install_check_deb ;; centos|rhel|fedora) # FIXME: Versions checks? install_check_rpm ;; *) error "Your dist '$ID' isn't supported by this script. Exiting." ;; esac fi if [ -d ".git" ]; then step "Checking out git submodules..." git submodule update --init --recursive >> $BUILD_LOG 2>&1 || error "Failed to checkout git submodules. Exiting." fi if [ ! -f src/qwprot/src/protocol.h ]; then error "Bad source code directory, not a git repository, and lacks src/qwprot/src/protocol.h." \ "Download an official source release or checkout the official git repository." fi step "Configure build..." if command -v ninja >/dev/null 2>&1; then GENERATOR="-G Ninja" fi cmake -B build "${GENERATOR}" -DCMAKE_BUILD_TYPE=Release step "Compiling sources (this might take a while, please wait)..." cmake --build build --parallel printf "\n${GREEN}Build completed successfully.${NC}\n" printf "Copy ${YELLOW}build/ezquake-linux-${CPU}${NC} into your quake directory.\n\n" ezquake-3.6.6/checksum000066400000000000000000001301341477060523000147260ustar00rootroot000000000000003.6.6 99560d0ec056883476a8196dbcefa8f2a268cb96 ezquake-source-3.6.6/version.json 100644 blob 2af05945cc6f31341b2fcd4059ce5e9ff8226b79 .github/ISSUE_TEMPLATE/bug-report.md 100644 blob 8e98c9013be2dc0e224a89e80375d288d8837c80 .github/ISSUE_TEMPLATE/feature_request.md 100644 blob 02d228c5eaa0f8577cdd356aec95f67cf209eafc .github/workflows/main.yml 100644 blob 4dc0fd929aa69e4c00fd05efaf365d00ce99af42 .gitignore 100644 blob e1e7917e8b56c059475f730384ee2d3263c5eae6 .gitmodules 100644 blob 60caadfb6c7bef5ca6799af0ef6a732cffedb49c BUILD.md 100644 blob a725278d7f200a72dceea86e95c4c28a1294758c CMakeLists.txt 100644 blob aca14b23a33d3c0bb2e10102172559d503808892 CMakePresets.json 100644 blob 2f3289afb5656e59023a4e13e7fa45bf77a51fe9 LICENSE 100644 blob deabd6b729bc440b5bd92ea0644876379ed8db43 README.md 100644 blob e892c0caf660d8e11c94c3f823d9cdc9e81bf3e1 bootstrap.ps1 100755 blob 70ac82a4e23e9fa7509ab34cc492054b1657e024 bootstrap.sh 100755 blob 2dcf9ffd44cbc8b554f347c1a1b5046529caa38b build-linux.sh 100644 blob e222b28f1454b1c3697b60f250d8538bc3d80f06 cmake/AddResources.cmake 100644 blob 5c8989ef86e863d77e5177c38302e124b287c711 cmake/CheckDependency.cmake 100644 blob bdad114b87ca837edf12743af416cd598ba962dc cmake/FindSpeex.cmake 100644 blob f41091c63d9f086b927dbbc0c003753a7480c6ee cmake/FindSpeexDSP.cmake 100644 blob 41dd6679cd4dfb2a9b013be254de55ab3156d37d cmake/GitUtils.cmake 100644 blob 96d831586d585311af8856290200af003f6acc7c cmake/ResourceCompiler.cmake 100644 blob 7bd2073f311f87d642185782c57fb145e1523da6 cmake/triplets/arm64-osx.cmake 100644 blob bf3a3def8befa5822aeff4fd0d48d3fb561dbbe6 cmake/triplets/x64-mingw-static.cmake 100644 blob 3c0431733e6a463c51641d3a16c44f63a9b33c95 cmake/triplets/x64-osx.cmake 100644 blob d76fd2a3fe331a0a869a8195c3675712a947c1e2 cmake/triplets/x86-mingw-static.cmake 100755 blob 47ad5072a2cb617f08c19c702048cd40a70affdc dist/gen-release.sh 100644 blob f79b905571d634be626d5d93ab6b959a99e1431a dist/linux/io.github.ezQuake.128.png 100644 blob 6807ee0aa23b0f005ed4e6fba0dce30a354cec70 dist/linux/io.github.ezQuake.48.png 100644 blob eccd10d2fb91e725be4b2d39a14ff10ff820be8a dist/linux/io.github.ezQuake.64.png 100644 blob 0a650fce17d181a4ec00d89aa7e5118fc9056493 dist/linux/io.github.ezQuake.appdata.xml 100644 blob 2128868f65594a95c5e99d675808b1094fb7669c dist/linux/io.github.ezQuake.desktop 100644 blob e3ad0e58fbb8e60ab831b473fe16306fa602cc84 dist/macOS/MacOSXBundleInfo.plist.in 100644 blob ed48f100e3921e15cf03d5ab77f52d8c55577303 dist/macOS/ezquake.entitlements.plist 100644 blob 56bbab47be90582de5eb01eccd4dc4cdf4040bba dist/macOS/ezquake.icns 100644 blob bb5ece99a6ff5e854e25c9a3928b357fff03df29 dist/windows/ezQuake.rc.in 100644 blob b0a3d4766925348ad3a6c1bd7333cbc2241a6464 dist/windows/ezquake.ico 100644 blob 50c5b7ab728e7ebc47488cadef23d8c75e898dd0 help_cmdline_params.json 100644 blob 20c12014226482933005d24f99464a7794e38304 help_commands.json 100644 blob 7ab27005b4da9840681120165ac1a18de8d605e8 help_macros.json 100644 blob 658977ccfd37629a6aeafbca6a8004ee45de426f help_variables.json 100755 blob 086bb485cf61967371177d775bda851ee9caa377 misc/appimage/appimage-manual_creation.sh 100644 blob f87849a7933c718faada118d9631e9c0d9b4464c misc/appimage/ezquake.appdata.xml.template 100644 blob bb1b7a494b44b1597ee834a0b200bfc24955a632 misc/cfg/cams.cfg 100644 blob 1da1516c3f46bd1b92e007bc7d33534d11506416 misc/cfg/cams.tcl 100644 blob 31d25d384b81617a683c8d5f8b510b6dd6d03502 misc/cfg/eq260.cfg 100644 blob e939adee6f9a5def38b17cd2118d33ec6bcfdd1c misc/cfg/ezhud.cfg 100644 blob 17e304f2cf7f72079cbc77c9d8e4bc56cdb55c1a misc/cfg/gfx_gl_eyecandy.cfg 100644 blob 1edf0fbe4541216b02e01b99611e4b8c5013f7ad misc/cfg/gfx_gl_faithful.cfg 100644 blob 6fd92b856a32a4efd3b7abef69c35bd460d91491 misc/cfg/gfx_gl_fast.cfg 100644 blob 926a8411340f3d8548c9bd4af10b33e6db824814 misc/cfg/gfx_gl_higheyecandy.cfg 100644 blob e3af81233fc851624d5004ec834800a270a115eb misc/cfg/gfx_sw_default.cfg 100644 blob c5bd6a5b429baed640677f8a8242ef68d8f0d4e4 misc/cfg/gfx_sw_fast.cfg 100644 blob 216c1dbb66907bbc03e3fc8dacdea414799e295e misc/cfg/how_to_use_these_files.txt 100644 blob 74d63d7ebdc042b46b962e59f317b9a2c2583574 misc/cfg/hud_aas.cfg 100644 blob ad7fa4b16b7766cedfd5e0f6fc9e3d69225e068a misc/cfg/hud_berzerk.cfg 100644 blob c748cdebcaf40e018e1d93fbae477ffec9ca038a misc/cfg/hud_corner.cfg 100644 blob 071a61e5a5437d680c193d5c83224dd7a5546485 misc/cfg/hud_dobbz.cfg 100644 blob b7deb32d6f068b27c809738207a53153adfc644c misc/cfg/hud_empezar.cfg 100644 blob 9f665820c0da0ca616a95e4dce4d90bbf36bfd38 misc/cfg/hud_murdoc.cfg 100644 blob 257223087961522fbf39f92c21c7aff68bf0c4a7 misc/cfg/hud_senft.cfg 100644 blob e2c9f5f12b781e350291395e8242e4ec34db337b misc/cfg/hud_vleesh.cfg 100644 blob 8e87c751c42aec83f9c66f9dc684608d76732290 misc/cfg/movement.cfg 100644 blob 1c72ecd2a76b964a3a0ce330ad4989707388c745 misc/cfg/mvdhud_1on1.cfg 100644 blob f2f8b454f87a951a7dcf7b2e98b41856cca31c73 misc/cfg/mvdhud_2on2.cfg 100644 blob 989175d498b35ae95b77ece97b382bfb7fe68bbd misc/cfg/mvdhud_3on3.cfg 100644 blob aa95f5deb60b5a28095a0f716fa22b8e95d3b348 misc/cfg/mvdhud_4on4.cfg 100644 blob ea831aab5d3bbf4c7047be0705877f4b4adb66eb misc/cfg/mvdhud_base.cfg 100644 blob 89ee5b604964f0499dd17a10f66f0008d2961255 misc/cfg/mvdhud_base_2.cfg 100644 blob 687509af69f48e239cf7f944677e83bfc7474f6f misc/cfg/mvdhud_base_3.cfg 100644 blob d549312d501b03ee1e2e686427d524b216144f2a misc/cfg/mvdhud_base_4.cfg 100644 blob 60f6ff95f33efa2e6627d0f9870fe284fe21e242 misc/cfg/mvdhud_base_del.cfg 100644 blob 180cd5d560f055d91a19a11c836f88b811456f18 misc/cfg/mvdhud_base_other.cfg 100644 blob d9fdadf369d7f300ecf2183b330eaf8f09386781 misc/cfg/mvdhud_custom.cfg 100644 blob 40fc8d338b221d4b5523ed9eab0daf62f200ffd8 misc/cfg/pingdump.cfg 100644 blob f711b2cbf7d6c33b6974c8205eff2014ae3f7a7f misc/cfg/teamplay.cfg 100644 blob 205c207368bc866396f3f0a159a584e350ba2385 misc/cfg/teamtime.cfg 100644 blob 6db083b190e165ba09ea9b6b4621aded99c44a86 misc/fragfile/fragfile.dat 100644 blob 6bb463972fc5eadf585458da9d14c970fd83c676 misc/pak.lst 100644 blob 7cc725cdb1b7831044119d321910dc1f2dd4ac30 misc/sb/au-sv.txt 100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 misc/sb/cache/empty 100644 blob 7c699519d876a3dbfb6a010bf5b628fc3682cfbc misc/sb/check_sources.sh 100644 blob 248fce413a4bd76901c2ad008562898c1bc50a55 misc/sb/ctf.txt 100644 blob 6ea95f3cb09652efd36bcda79c370be28f746731 misc/sb/eu-4on4.txt 100644 blob 01e2549260d315c1312b7e3bcedcdde0663deab3 misc/sb/eu-sv.txt 100644 blob 4793fc7ecebc9fd0ced986355278922f840d72b4 misc/sb/global.txt 100644 blob a50c28949da2d490acb21af52b2bcb5a01700193 misc/sb/na-sv.txt 100644 blob 099cb5bea320e9efab37bd913212d7e754e5a5da misc/sb/qizmo.txt 100644 blob f0889c374139013d75aeb00d2db9b213089bf3d0 misc/sb/sa-sv.txt 100644 blob 3c166b522a83822b9795fb448a73809aedb023ef misc/sb/sources.txt 100644 blob c2787e94ebe5986a2aa3133decb7817f33298abe misc/sb/tf.txt 100755 blob 09f739de0975f4b8148d93eb0258324fd7f582fa misc/sb/update_sources.bat 100644 blob e0d28653695b82833ab2df0a67b0d7e86801cd48 src/Ctrl.c 100644 blob 77513d9fb7b88dd5ae5bc3c046bd30278ce2f4a7 src/Ctrl.h 100644 blob 5ae799224a4f0d0d6df85719b3c1ed0cfce86e69 src/Ctrl_EditBox.c 100644 blob d434f1827764aa951fed603fccb47341ed82dcfd src/Ctrl_EditBox.h 100644 blob e12701ddc0d4e48b9f2d29e2b15a404e04c93190 src/Ctrl_PageViewer.c 100644 blob 05855e6729591f8df47bcb8da67efa005c20e9fa src/Ctrl_PageViewer.h 100644 blob ca2acebf57e4cf75c2e703d8383353e0f6d77de7 src/Ctrl_ScrollBar.c 100644 blob 50c79413383a47734ce65d881bc0f2024662766e src/Ctrl_Tab.c 100644 blob 46738eedf5d81537c0f79bbd2b33b8632a917c27 src/Ctrl_Tab.h 100644 blob 6914194c20e204e53892d60d5b51852e81fed56e src/EX_FileList.c 100644 blob 8fa9af8e5dfb5009ab33ca858db51d3d521a122c src/EX_FileList.h 100644 blob 0cf38552805468c0b23ff5e90e625e8891d97695 src/EX_browser.c 100644 blob 865ee711528c12bafecfa8acc95cdfcd319a89c1 src/EX_browser.h 100644 blob 8ab9d04f70cb8eaa1619155fa7c045fdc3cd4f44 src/EX_browser_net.c 100644 blob 8266c7717ad400b62e99d02d7ab25e1775e118ee src/EX_browser_pathfind.c 100644 blob 332d239d192e4b32dfd5e4ca42eee48cf3859630 src/EX_browser_ping.c 100644 blob 32100314d87d4d0064a55d4258547dcbc7df35a8 src/EX_browser_qtvlist.c 100644 blob 2a6acb58aa0d7c831bdc08a6c43e6252b42d5d41 src/EX_browser_sources.c 100644 blob 1e01397d1e7eb8d822d87b99af947c85f1cff19c src/EX_qtvlist.c 100644 blob 1873d2a2e16ea976f912c57cf8bbd1306a1dbc47 src/EX_qtvlist.h 100644 blob 324aa30d7df6d9ab68c34923406d9689a6a5cdea src/anorm_dots.h 100644 blob 11a9007e88e8a27b76fb641f778c902eb3e6f737 src/anorms.h 100644 blob 4bd831b5c70e8fab822a61bcc31573ba62ea0544 src/bspfile.h 100644 blob 1c82be4da2979a8cb6d4ae50945507644c88ea8c src/cd_linux.c 100644 blob 1046e9ca6b54432b1b9ac71ca439535ac0ba0c71 src/cd_null.c 100644 blob df462b3d8571c375c2217c8ce944b6b3aec95c26 src/cd_win.c 100644 blob 832033a31ab22a482924cd765b376b4a048392ff src/cdaudio.h 100644 blob ff7c086c08f39b96f062fcda713b8c8eb1a547a8 src/central.c 100644 blob 5706868ab6b0ecf578a06c860564aa21f6517d39 src/central.h 100644 blob aae98e3668ec07166efed5daaba8f5c043127db9 src/cl_cam.c 100644 blob 8fe9db4b5b3c3aab261a704f366a8bf7ddfd9644 src/cl_cmd.c 100644 blob babba12aaf6e0e0a0577db06829408ad529051d4 src/cl_demo.c 100644 blob beb31a04967e148fd97d8a0d7be785c977fe1f17 src/cl_ents.c 100644 blob f60b8fbfae69f28f5ea1cf284fd7f8696ed6222c src/cl_input.c 100644 blob 215ebfe4e93a2d364b4aab3146fb2fd6b3ce8863 src/cl_main.c 100644 blob 67e6bc85317b0d2f0ff22fd68534553687e55705 src/cl_multiview.c 100644 blob 0381ce6e9d538a77924671540f4a5d993a8a7619 src/cl_nqdemo.c 100644 blob d3cbd106d64f11a67c021c1e580d2d82d9e0d726 src/cl_parse.c 100644 blob 53d08c5e2257b345b6af6f25f0b588af8afeda55 src/cl_pred.c 100644 blob 543804fd0423e4b62e0078d748d9bb5a34d1b86f src/cl_screen.c 100644 blob 1b45444e35eec7c9d980d1ba734afb1efeb3b7e3 src/cl_screenshot.c 100644 blob 04ba2b2a7b33d118ef15ba4ffab4089f221d29cc src/cl_skygroups.c 100644 blob 4c9778c8a9d129fccc114f0e3d812c265072ce05 src/cl_slist.c 100644 blob 5c0ff6eaa44aef23084cbbcf78a93d331bf01c82 src/cl_slist.h 100644 blob 4e8c3dc91c8cf5a88d388f9bb9be22f31d335060 src/cl_tent.c 100644 blob a2d56ebee39fbcaa4deedc75d9fac8d5ae167f57 src/cl_view.c 100644 blob e7ceff98cf54eb1ca11cc4936069d0d930309a13 src/cl_view.h 100644 blob 581304ceee59a484e875ba3162e5fce74c2a76f8 src/client.h 100644 blob 11e1270b9b5706bcd10fb7912d0e9e03c2c787cd src/cmd.c 100644 blob db795ba2bb3d66452817fa7ffd6bcaed6f98cf8f src/cmd.h 100644 blob 3c4bad64c2f86ac1ab090a65153ca375e95dabbd src/cmdline_params.h 100644 blob a6e6522ba3c0d9fa98c4187002b652a064a37a46 src/cmdline_params_ids.h 100644 blob 62c70db628208e11be8f17315882ae63f350ace7 src/cmodel.c 100644 blob 7c7e64ec6677af0b8305db254b7be56535e2b700 src/cmodel.h 100644 blob b02d29f8971341eb30ef972bb9f97199c6f21194 src/collision.c 100644 blob bc5e9b9344a4f7bcd563197038997a14ea3e103f src/com_msg.c 100644 blob 5851a3390f69f4cb2a2c8dfb9b3cdb763347ae32 src/common.c 100644 blob 08126dd0168ca476d44204d1504beb6cf6175c3a src/common.h 100644 blob 14e8c158fb04ad87983dcec7b581f3528388d101 src/common_draw.c 100644 blob 7434835e41e43a04c88c674a0d615bcd79a2c254 src/common_draw.h 100644 blob 8e94e5797a500870960241c8f82ffae1b469cdf8 src/config_manager.c 100644 blob 15099007f278bc43810e0123ec3e9fdc8f32c98b src/config_manager.h 100644 blob 2cac99fa6c018ad6e00ac84d7218cd8d2c596709 src/console.c 100644 blob a9ffbe0d43ad9882fde8b78507772c66902ef971 src/console.h 100644 blob f9ca96402c73fe6e831121053bf64dbfb22afd6d src/crc.c 100644 blob 203366215720728f1e738cbb67219c52a5c95db1 src/crc.h 100644 blob b60d9f7322b99debe4a434a841fbded91b488e17 src/cvar.c 100644 blob aa76faa11d4ad59c538c80b413cae81cce3451f2 src/cvar.h 100644 blob a473333d136cff0779f949b12524e9d22afc140f src/cvar_groups.h 100644 blob bc0cff54666ff625f409d441c858d997e4efbd0a src/demo_controls.c 100644 blob c365a722e6248718cd0b1c98976ce8c798444094 src/demo_controls.h 100644 blob 86da9ad746af37284e3c98ad44fe5520cf6d8923 src/document_rendering.c 100644 blob 166bc534125be925de01b17266eaa5e3b41c09dc src/document_rendering.h 100644 blob 62044b65a173edf4aff129e4c3bf0a98f1795846 src/draw.h 100644 blob 277c7aab079add1b93e207399f8048b54b7f2c54 src/ez_button.c 100644 blob 5d4f24ed030353c189a2f57c483d250c561da473 src/ez_button.h 100644 blob 3ee48e1bf790cfee4804c2d10d563215de74029d src/ez_controls.c 100644 blob a5b954b8b784fbd65e1eddd0b69d1af81de5312d src/ez_controls.h 100644 blob 485286bd9cccff0752e6ae71df93a758d1bf9799 src/ez_label.c 100644 blob c9013a82028a4d83789b2696bde5b3ea9e580956 src/ez_label.h 100644 blob 5123448a005866e7936de752d3bf87159e1de285 src/ez_listview.c 100644 blob 0e9d64cfffd0a966851e67a72c492d24a749b174 src/ez_listview.h 100644 blob 8e45693d2e2bf8da60230ea1c4eadc3d23581b01 src/ez_listviewitem.c 100644 blob 6a49cf35bdec387ee0c49608003998c8a001116e src/ez_listviewitem.h 100644 blob 34d2c2cd1cec6ab3b02b39e2c643887337982b1f src/ez_scrollbar.c 100644 blob 916761cd7d0f25441ab793b8d3bd74677a1577b5 src/ez_scrollbar.h 100644 blob c3fa5d98a457014c8c372e8cdaa2ac271f8f6a38 src/ez_scrollpane.c 100644 blob ba1c52acac0332e18b5c6a94b74aa8d7b25c896d src/ez_scrollpane.h 100644 blob 7b850c72752203633de1c15b04c3b717e677d6b5 src/ez_slider.c 100644 blob 75bcef6c48ef44e7ef23c7d65d65ac0391369f49 src/ez_slider.h 100644 blob 9ee12a3afe2a040003adfeb591736d62214e997b src/ez_window.c 100644 blob 7b886df082b9c5f041712edadbc764ec9fae2994 src/ez_window.h 100644 blob c042f1c6623ce62394de7b9fcc2423f6354218c4 src/ezquake-icon.c 100644 blob dae5d8663fcb1405378ee3c8609f17e8cf92afe3 src/fchecks.c 100644 blob c6e3cc58e758dee143cd855993366f313534f25e src/fchecks.h 100644 blob ce6a3a1e80a232bc725e412eb017f491ca80920c src/fmod.c 100644 blob 9286546271ca7c96e7dbf81254384624bac51627 src/fmod.h 100644 blob 3cb7e87458c8bc9ff8bfce92850fb33c50502503 src/fonts.c 100644 blob ed88668a7db9e058952d7a5bfea255411ec0aa7b src/fonts.h 100644 blob 4d04492a6091056e63fa823ac7aaddcda1e39d2c src/fragstats.c 100644 blob 6088d9c4aa9ea7c94dca0c9f920e13aec62c5014 src/fs.c 100644 blob 2f8f03b45cbac7f688edd1a37d164d63b4697362 src/fs.h 100644 blob c13e2c342d7bc137956867e9b642c602129a99a4 src/g_public.h 100644 blob b560ce5d07aae81d30b8eb193ae9c4d4411dcced src/gl_aliasmodel.c 100644 blob ff189d8e920290960950edcbe341d3febe69d55a src/gl_aliasmodel_md3.c 100644 blob 5fce556cdd7d026d180acc5e7f75e00f27e60b42 src/gl_buffers.c 100644 blob ab61a42040d905f47ed755bdcf1d677ac7edc3ef src/gl_debug.c 100644 blob d54e7fe6160420d1a5ae90312573bbca4bcdf42f src/gl_drawcall_wrappers.c 100644 blob 29864808cfc0d5c444d25efb7ff41a1b41a04173 src/gl_framebuffer.c 100644 blob 87d822b35c3c7b384714f04cb05ede6d42f614a1 src/gl_framebuffer.h 100644 blob e36ae2381214a8b32cbc01b61d89ee94bfbbe6b3 src/gl_local.h 100644 blob 5e2de6654c9b1ca853f98765ad1cd989f6bbaf07 src/gl_misc.c 100644 blob 661f87aa62261a7b9aeebdc11b4eaa5f6179393a src/gl_model.h 100644 blob 9a37b705b26c8ab83ac8f2e750e2fb7e7a5df523 src/gl_program.c 100644 blob 929fb232f37cebe13d27371f5d08755ebdc8893e src/gl_sdl.c 100644 blob 024474fdbe937ad298d7c739152617390c6899c9 src/gl_sprite3d.c 100644 blob 93840b7cb42a6a821278300d3775338ee60be025 src/gl_sprite3d.h 100644 blob b0876d976e09510786a32477082e0b595b536fe5 src/gl_state.c 100644 blob 0111e6383986cc62afd0e8b91e8821260eba32bf src/gl_texture.c 100644 blob d59a9fbc0712b6457a4e6226afb0ff8943be78b7 src/gl_texture.h 100644 blob 219ec1a3ecb5243ae794ea52842f62adcf4c0bb2 src/gl_texture_functions.c 100644 blob 55f6672a452920673fbab6a55ccc75048f77f997 src/gl_texture_internal.h 100644 blob c9742158358a6490aae0c48ca27ae85c1a13290f src/glc_aliasmodel.c 100644 blob 90150f08ac97479eb604d849fc948c7c96bbda4c src/glc_aliasmodel_mesh.c 100644 blob a7302dc9a4aaae6854be789b875759e4c321da56 src/glc_bloom.c 100644 blob f5fde55c3e444e1ad568427cfe962d420ef079f7 src/glc_brushmodel.c 100644 blob cd6a9744363744b30ba7d6216ea146477319b114 src/glc_draw.c 100644 blob 90318b091cb75c5f516d74d28c2438186eddd0e9 src/glc_framebuffer.c 100644 blob 1f8c91d602f9a9c4e980764f043143c8686bb10f src/glc_lightmaps.c 100644 blob 5eb93848522ee0dddad0e2fb9301b900b0698927 src/glc_local.h 100644 blob ffd293f8cee5abef742f0eaac083c217545ff304 src/glc_main.c 100644 blob ff2c3d1a081139226b87f7a989af75156597ccaa src/glc_matrix.c 100644 blob e610ef64723e4264173370e1a04b5562df657bfa src/glc_matrix.h 100644 blob 2fdd63e2963b943f411410dc4dd349f7f208ebd4 src/glc_md3.c 100644 blob 64c3c84d7096af81f71cb5bb979bd4a9a48193fe src/glc_misc.c 100644 blob 656cf96b330cbeea9c3b2afef7d7a3776318650c src/glc_particles.c 100644 blob 22bf71bf14e49fd661f24fd45ec497cbd50c2efc src/glc_performance.c 100644 blob 5ae26d600730c7f0f5c3b0ab0daac4486a9592ad src/glc_sdl.c 100644 blob 2649bd6092979d2a07d2f0b89de623280e1e847a src/glc_sky.c 100644 blob 427095c0f03ac833f8889645c01d10e25926a520 src/glc_sprite3d.c 100644 blob 33aa1287d90159ce15b9a122358fceb5b954089c src/glc_state.c 100644 blob de79b56ff1f95263f6ffb4a166e43569667418f1 src/glc_state.h 100644 blob 8b22b6f8d48f3fc56035d3c34e80f60de8a4dc7e src/glc_surf.c 100644 blob d71ec539960ee3b1c4a20c99976b87b755a38065 src/glc_turb_surface.c 100644 blob d46c4e057744c6e182a0daef39363a36d94fbd01 src/glc_vao.c 100644 blob 6f734917b3226c0489a0f7be124695aff57e78e6 src/glc_vao.h 100644 blob 362ce37cd51338a220b271c85a1a6ef8d81c1cfa src/glc_warp.c 100644 blob 9880ef5fe2cf32748dc7e131c2069a484fec0f3e src/glm_aliasmodel.c 100644 blob 445ccf62dac493499544bbf96c85a5275246d44c src/glm_brushmodel.c 100644 blob 80a42358f9deac2f213a52614bc2144adfd8e2e6 src/glm_brushmodel.h 100644 blob 7da5ae7005f96570dc566af9c06f1571f5bedddc src/glm_draw.c 100644 blob e4a556399af8a1c2a566a57efb841355ee57d0d0 src/glm_draw.h 100644 blob 79637fd1de467479b86b674f3b1c6df6d3efa64a src/glm_framebuffer.c 100644 blob ace295bf7f9540aa2f3e5fc25bc3742ae4f9df2d src/glm_lightmaps.c 100644 blob 1690955ef2d4931deefe1c52a609e0707b16ece5 src/glm_local.h 100644 blob fc03fd79ee303040e6d28078796beec1ffb2a9f5 src/glm_main.c 100644 blob b71c0dfaf2a51aba0ac5d010f6f6a3bf34a6e086 src/glm_md3.c 100644 blob 2617cd2519a1a333a599d51cd9186d302e70d75c src/glm_misc.c 100644 blob 4786b7590f687a353e25a65d46af0e4327e09ebf src/glm_particles.c 100644 blob a9a11ce68cf21fe912405c2ca5a6204b63819c7b src/glm_particles.h 100644 blob 8fad8c16e7f06bacb4e354a133fd2bca9d2ab5db src/glm_performance.c 100644 blob 21ae8e0cbbf693940911f5d6cbfcd8a8b1bb8ba6 src/glm_rmain.c 100644 blob 885b7b6b0370130b1399b17023a34692a862d558 src/glm_rsurf.c 100644 blob a50638f79eb511b945715568d974d0252df2b858 src/glm_sdl.c 100644 blob 133ecf885610dd3250a14906ea7418c8c5170768 src/glm_sprite.c 100644 blob 6476eb72e355c94afe8d08bb2644b7fbb717cd58 src/glm_sprite3d.c 100644 blob cac58c30851a9364931daa23acf07ebfccb42f61 src/glm_state.c 100644 blob 03b4568daa2bce65e2d452ff0cc4242ecc47e6f5 src/glm_texture_arrays.c 100644 blob 937caa2a3b6ad25a81dfb7eaa131f2c6ce1f498d src/glm_texture_arrays.h 100644 blob f155693e6b33bb831a66bcaeffd8e45af616b0d2 src/glm_vao.c 100644 blob 27cf0fc00b3925f2da4f3b1fedf67e80cea93837 src/glm_vao.h 100644 blob a9f0ae802da8f44a3bee4867e98f4788dbf52d52 src/glsl/common.glsl 100644 blob c15ac890d8540611e6919dd7102635ac2b86f5d7 src/glsl/constants.glsl 100644 blob 5cb143d8cb276408aff6b60ccb50944636b142a7 src/glsl/draw_aliasmodel.fragment.glsl 100644 blob 9711e95214c402b246ecba34cabc7fb932db9061 src/glsl/draw_aliasmodel.vertex.glsl 100644 blob ebd8e03244856a9ef811df2f5bd04f9e0310c475 src/glsl/draw_sprites.fragment.glsl 100644 blob 474e70c885f4f27dae7313bfdb938eb184760666 src/glsl/draw_sprites.vertex.glsl 100644 blob 9b87422155bd6200f630dc40a92883213d51ee2a src/glsl/draw_world.fragment.glsl 100644 blob a28d7e836f1897a1ae080a2b27b5b6fe90118d51 src/glsl/draw_world.vertex.glsl 100644 blob 66b7245456dbe8322dabdff775cec974b911e402 src/glsl/fx_world_geometry.fragment.glsl 100644 blob c49645b2f54930ab8461ca0a45a0f0ee75a6cdb9 src/glsl/fx_world_geometry.vertex.glsl 100644 blob 3d955e534e0600290547b0f98bca8c1190b8f024 src/glsl/glc/glc_aliasmodel_shadow.fragment.glsl 100644 blob 7b80287e11a28745af9674731af0876ab7bf0a6a src/glsl/glc/glc_aliasmodel_shadow.vertex.glsl 100644 blob 5645cf4a1365eef50d3ee2ccde8fb7129514c149 src/glsl/glc/glc_aliasmodel_shell.fragment.glsl 100644 blob 06c6faffd9de6ab9e92064120366453ec38e54c0 src/glsl/glc/glc_aliasmodel_shell.vertex.glsl 100644 blob bb0ffd3fae7df2e2e87b2b3dcfd4384d5a482923 src/glsl/glc/glc_aliasmodel_std.fragment.glsl 100644 blob 02fc225d6a920e289caf9f0455ef5d72ca673d54 src/glsl/glc/glc_aliasmodel_std.vertex.glsl 100644 blob 5e022ad40e404ecd3e64659cf539ca959d7e173f src/glsl/glc/glc_caustics.fragment.glsl 100644 blob 4abb1ed9094dd6c6408c044f9343e2c4da6f6a9b src/glsl/glc/glc_caustics.vertex.glsl 100644 blob de70fe49f670d42ca1acd56a522d7d3b1fdcdd8c src/glsl/glc/glc_draw_sprites.fragment.glsl 100644 blob c236f3345e8f5230d3f03a1187da88f99ed71a0a src/glsl/glc/glc_draw_sprites.vertex.glsl 100644 blob ec3c86c625d3ae3c0ec0b9ca725c5385d6ea5e94 src/glsl/glc/glc_hud_images.fragment.glsl 100644 blob 4e01e2277d2302f6d158652c95f899a49b0938b8 src/glsl/glc/glc_hud_images.vertex.glsl 100644 blob 18a567e9be3deea132039e52c10f51a36bff2cfe src/glsl/glc/glc_post_process_screen.fragment.glsl 100644 blob 34ece8d57e9946e7b44de35ae80a93affe79c605 src/glsl/glc/glc_post_process_screen.vertex.glsl 100644 blob 35ee843fb8819e12a29164ae22e5e3759bd52fb3 src/glsl/glc/glc_sky.fragment.glsl 100644 blob 96cdc5c7e4cc232569f70bdf23810938f4aeab92 src/glsl/glc/glc_sky.vertex.glsl 100644 blob 084307288f1880d51a1b2084d9acae25100f387e src/glsl/glc/glc_turbsurface.fragment.glsl 100644 blob 777bb3ca061b37f92dd36c23b0cdad0159f72ca5 src/glsl/glc/glc_turbsurface.vertex.glsl 100644 blob 1661b9cedf8d029c71ed6156539e74c30c34d583 src/glsl/glc/glc_world_drawflat.fragment.glsl 100644 blob 894cff5cdbe61ba8e2aa8e0a942c5045a4077317 src/glsl/glc/glc_world_drawflat.vertex.glsl 100644 blob b30b535e5993d8f3ad2d6d96d12dab20c1948ee8 src/glsl/glc/glc_world_secondpass.fragment.glsl 100644 blob 4abb1ed9094dd6c6408c044f9343e2c4da6f6a9b src/glsl/glc/glc_world_secondpass.vertex.glsl 100644 blob fa6eb0966c5252c082288ece2bda9c4544f569c3 src/glsl/glc/glc_world_textured.fragment.glsl 100644 blob f3d9d67cfac953165c9f96169341a6e9597da982 src/glsl/glc/glc_world_textured.vertex.glsl 100644 blob 7019f00e7f68850136ff7bd263220a4a9c762e40 src/glsl/hud_draw_circle.fragment.glsl 100644 blob 37749fcac7a9427a0039be7e896617124f2c0ebb src/glsl/hud_draw_circle.vertex.glsl 100644 blob 94d7fe913d0b324f3319ea26c9136139b25921dd src/glsl/hud_draw_image.fragment.glsl 100644 blob e9a97c96979e7f966348228599a5f827c642bbc8 src/glsl/hud_draw_image.geometry.glsl 100644 blob eae2b284493492507e28d01f7892b91215dc16fe src/glsl/hud_draw_image.vertex.glsl 100644 blob b4a82a27fe0c87120c23e7e08df660c12b0947f5 src/glsl/hud_draw_line.fragment.glsl 100644 blob 8c8136a7e6433689c257a609f6edaa185a18d12f src/glsl/hud_draw_line.vertex.glsl 100644 blob 7019f00e7f68850136ff7bd263220a4a9c762e40 src/glsl/hud_draw_polygon.fragment.glsl 100644 blob 2a4f78bed1ec1d4b7b42cd30e6a381e5fbd4b3a5 src/glsl/hud_draw_polygon.vertex.glsl 100644 blob 63b8c52c090d72941f30cdfd76bfb07c5a76dfcf src/glsl/lighting.compute.glsl 100644 blob b23ccc266286ee4ac09f5cdce72bdabbf8ba1f7b src/glsl/post_process_screen.fragment.glsl 100644 blob c49645b2f54930ab8461ca0a45a0f0ee75a6cdb9 src/glsl/post_process_screen.vertex.glsl 100644 blob 75ebf3b1758b45ae5a701d1ffea159704edbc67f src/glsl/shared/fxaa.h.glsl 100644 blob 48a5b4c74a62f7dfec423d6c576b6b7ff3fce60b src/glsl/simple.fragment.glsl 100644 blob 73ce3f80d6d99c9f55cacc233a8f7cc48acff0c6 src/glsl/simple.vertex.glsl 100644 blob 9a1f747775153a041778fb6bb010caf6337aebad src/glsl/simple3d.fragment.glsl 100644 blob e277ba2165a0125f397e7a17b7d2d98c4326ffee src/glsl/simple3d.vertex.glsl 100644 blob 1e5bf51427b833d60cfdcaa6435879d6dd74ba04 src/hash.c 100644 blob 9b31a5d5474d0d14b5042f4a6c70ff12107b4945 src/hash.h 100644 blob 60e9d40a74db317b58aaf51a547bc0964692b30e src/help.c 100644 blob 83694468f3da0d053b65917750b8cfccaacee46b src/help.h 100644 blob cf11789f91f92a0b6d4ddc0a2235bdc842ba9dc3 src/help_files.c 100644 blob c66c75c5c30ff67a922c675f0f0fefd1b4e26e1f src/host.c 100644 blob 9e745e8af1d7844fc4d6886cb73835f42be80cc8 src/hud.c 100644 blob c64d2947d21c9124229d8ca78fc07d52d397b579 src/hud.h 100644 blob 295e2a841c87256bb9d1fe6eb194a28fece368de src/hud_262.c 100644 blob 345dfe226e824f13975a41e78bbcba3b924bcbe7 src/hud_ammo.c 100644 blob 53a1f84f78a0f88ff0062f2dd7d7fe1703eb5bdb src/hud_armor.c 100644 blob ecd46fe5d85689b3a3a418bd231636dca165a1bb src/hud_autoid.c 100644 blob 69a51e1d1615eda674db62114840c3c3adb96bfc src/hud_centerprint.c 100644 blob 1935df8e75a766f1e26fe9df396af0f7dcad247e src/hud_clock.c 100644 blob 58d667b4d409ce4be41c5dcfe2092cd5fbf72bfa src/hud_common.c 100644 blob 4bd67abce4f7870cccd725da70928ec13e51587b src/hud_common.h 100644 blob 9d40590d24de886848e45d90ed5198ca230bcb0c src/hud_editor.c 100644 blob 33a61a82a9f6a7d88a438e1c936278b1b06a782d src/hud_editor.h 100644 blob b5f81582ae2ee70cfed4d4e1b2eaf7302811b135 src/hud_face.c 100644 blob 922bcdf95b5c2623ac55f5322278f42e8d16b34a src/hud_frags.c 100644 blob 09bd6d75e4e88d55e38b8f2f62a0a56a2c140b67 src/hud_gamesummary.c 100644 blob a7458ac07cd37e3b7fa9972cf7df83a4f46e53f1 src/hud_groups.c 100644 blob 51191a114ef083c1c2b7501b062dff8b805de813 src/hud_guns.c 100644 blob 79198e4e2860771cb54501eb275b5c84859ebb02 src/hud_health.c 100644 blob abdef2655bdd84b89fc9ec02d8ad9a8a1819eb77 src/hud_items.c 100644 blob 020d84f547d309fc510042ea7e358a0f52214c1b src/hud_net.c 100644 blob f5327642246e5ae80e9abc7e1577c34e6ce08e8d src/hud_performance.c 100644 blob cf253cce87f1cc24b5f07595f9ffeb89a28be18e src/hud_qtv.c 100644 blob 66a6eb765e72d4b25d4afc8933aff97b721959aa src/hud_radar.c 100644 blob 36529e3a5ea2346c146768f7fff89c2fe3b9800d src/hud_scores.c 100644 blob 0d1593669275cc7e8505ac4b2c13854acc820153 src/hud_speed.c 100644 blob 427ffc51b04253637bfca7fe291919900b4f6415 src/hud_teaminfo.c 100644 blob 333a575eaca9127517fdf0cac606a813baff443f src/hud_tracking.c 100644 blob 12eb763f61410b4af9b3ad7bf6c6318fbf93a5a7 src/hud_weapon_stats.c 100644 blob 93b31e8cf4814997c5128ebbed118080f3ce94d1 src/ignore.c 100644 blob f0a8d6d6741dcc16924b2b503b6a9fa27a2ce551 src/ignore.h 100644 blob 904a0fa47155a21b627b85fa65c70105b54e7932 src/image.c 100644 blob 27bf3219bc8bed86ad82b7f8e9f1f6d93a1f933b src/image.h 100644 blob d9266e0e57a67548ad519473834af04dea5a93bf src/in_osx.h 100644 blob fe15073df28814bd97413f5505f2d86eed8e0069 src/in_osx.m 100644 blob b01df186e4ba9c2309dcf2767121e5998a8fca2b src/in_sdl2.c 100644 blob df464a05c62ea60d50236b49a244e5eca13460b7 src/input.h 100644 blob 477b2fa7aec6bc86fb86601c8d0bc8362299231b src/irc.c 100644 blob 70819aa5f1df73bdfebf0ea791467dcd228fed98 src/irc.h 100644 blob 2569013f74b1a729cd732a5578fd9606d2e74575 src/irc_filter.c 100644 blob dee20964f64fa75bb114ee58e2d0342934b09691 src/irc_filter.h 100644 blob 1622f3101bae8b4842b65c408e41c392cf6b7cf4 src/keys.c 100644 blob ad14ffb16b87f3d309c8b995b79a57b0cbfa6a8b src/keys.h 100644 blob 1afa98885cb29cddf70ea17d17754be512274172 src/linux_signals.c 100644 blob b9f6964b08390fcfc6abd64a04948b7fa4b6cf92 src/localtime.h 100644 blob a0277eb706071a4cf1de888248a66ebe85033d65 src/localtime_posix.c 100644 blob a79339847415384a52cc6128951f28b814a22849 src/localtime_win.c 100644 blob 559ec2076ee8d194d7b61fefdf4854598d904e43 src/logging.c 100644 blob 8b4ff10fcaa9048260e207ae8b3026fb30436b01 src/logging.h 100644 blob 5baecd8d72eeb79f9af1b29fdb4459b89fd94cc4 src/macro_definitions.h 100644 blob 6ba2121915f7bf621084ede8822c644d01ca7f3e src/macro_ids.h 100644 blob acd08b659bf409bf8681cc31e6a03e6c095a0aa2 src/match_tools.c 100644 blob 0060f6a726ae1a5a2a6f43291f9d81a791aee664 src/match_tools_challenge.c 100644 blob e3880bef98a13fdc83eb930043feb31fe0c7157c src/mathlib.c 100644 blob e1edb58cfeb6dc029c918ce545e70b9cee792bfc src/mathlib.h 100644 blob 4cb8443eee7990ce42bb97d787433bcc711084e2 src/md4.c 100644 blob b6cf1e04f5a012495793e7a50c2a6167dab87f27 src/menu.c 100644 blob 47e1838b9309ff3e79a24299e43a7088b99f662c src/menu.h 100644 blob a52da410abca3223077f71b6a03c3c6bc4a1bc25 src/menu_demo.c 100644 blob 1fa72c5154c99706eb34f5c9a56d767850b7d1ae src/menu_demo.h 100644 blob 3f5ddccb14bbce9ff2a3f734d969ab6ded80f758 src/menu_ingame.c 100644 blob 9627299b22b032a08d5601f6d044cf5a13190d0d src/menu_ingame.h 100644 blob 12a2015a916fa9f82970dddafca85e0db749cf35 src/menu_multiplayer.c 100644 blob ff956957f917156931ee5c86e48c5dd08a524d26 src/menu_multiplayer.h 100644 blob 7cae81bd12fd0256a0f31eb35dde2bf78d47362e src/menu_options.c 100644 blob daca81ded4d44a5250f53a00177da7c1a244135f src/menu_options.h 100644 blob 82e6aa7bed26847cdd26f159a76a5856eaa6bfd7 src/menu_proxy.c 100644 blob cf7428c41cc9175d781e1e17091ba4c4d32432ce src/menu_proxy.h 100644 blob 8d8f5e4faf22abd450976a6736071256ec560309 src/modelgen.h 100644 blob 41297a5192e3ffb69078b250c80ea7660199fb82 src/movie.c 100644 blob 710fc01c57d061521f957d3aef40acb2bcbb1370 src/movie.h 100644 blob 6820c129813db0188babf757ad8f4aab1c6fe9de src/movie_avi.c 100644 blob 4b7e6c3727416fc36659397f0efa419ae55b3a8c src/movie_avi.h 100644 blob fdb675c78fbee422d186bb3f7fecd19e1b303d93 src/mvd_autotrack.c 100644 blob 8187637f15e7fd56832508ea0b43a772ff516416 src/mvd_utils.c 100644 blob 37c45f2a3b0db0ebd099e61624c4eefdaddd600d src/mvd_utils.h 100644 blob aa2b27382274bd3853fa8b1b58172de92e67af34 src/mvd_utils_common.h 100644 blob a3a11df3b76ceb9c51a040af92d4bb8786ab5692 src/mvd_xmlstats.c 100644 blob 30325a0a5d7c03ff1848e1f5c8d22560e2e2c5a7 src/net.c 100644 blob 135725e9ccefbd6f8d1a552c333bb05776c80c63 src/net.h 100644 blob e7ce1af68e777c30a2fd45e6f32fe1738a1264a3 src/net_chan.c 100644 blob 3f2978fcf774d9ae973760f482ada5cb5aa1e992 src/parser.c 100644 blob 10710370088744fb3e1f9af7efa431d98424d57e src/parser.h 100644 blob f6f1461c7dc26317f2c13bfcc26b0b87a4980a50 src/particles_classic.h 100644 blob 7e80f2350fbca1c3ded8d10950485b6176e2dc85 src/pmove.c 100644 blob d970d8b011725a6f657ae1adb76dc080f4a32fee src/pmove.h 100644 blob 901692b1bb2319e118e264add15d808ea10fc6ee src/pmovetst.c 100644 blob e0eb152f41526f34dc0dee5e29b59dcf3283d774 src/pr2.h 100644 blob 18873b66d78d30b9dc989b3779fd1f155e744ab8 src/pr2_cmds.c 100644 blob f40fc8cdc1933b1c8b6944dff150073ca7ca6504 src/pr2_edict.c 100644 blob 06d99136b689dd0eb5dce699cf45ed9b29b333d8 src/pr2_exec.c 100644 blob 30d3ece77bac559ce94eaae245b63dfce49f1dd5 src/pr_cmds.c 100644 blob bdde381c2f31d8f53ffda176cf4027ee987b379f src/pr_comp.h 100644 blob 65857a30ddcfa4f7c069be3fd258e6dd259acc86 src/pr_edict.c 100644 blob cfb9a74c9d0efc89bc350d65901f06632581279f src/pr_exec.c 100644 blob 467aa94e92cda976d0cd0696a8e71f7579742193 src/progdefs.h 100644 blob 17928f7de36099066daa4759ef6ec67f8922eecd src/progs.h 100644 blob e0b3aac4a265ef6e9bc913f4a30a87483fa40fe3 src/q_platform.h 100644 blob d3409738e24203426eda9dbe2e3d3b4e4093ef08 src/q_shared.c 100644 blob a4ed217186aee3b5f0b0a3cb3af5813d601bb8be src/q_shared.h 100644 blob 09bd3b201eac7c82b5e3fba9254bbf461352e60b src/qmb_particles.h 100644 blob 297e5cc2441601e32fb921f0b76e164387adce28 src/qsound.h 100644 blob 3cf9a4de127cb64bed9b8b16f6336636b8c5e826 src/qtv.c 100644 blob c1d6bbc8d0922c1fb0c485d5b89fa30f6567d970 src/qtv.h 100644 blob 5fb5b9ac797f50d510b9f70db5da09954533cfc9 src/quakedef.h 160000 commit dd5165c1b702efeaee391b94f491cd1220018691 src/qwprot 100644 blob 56ca74409c705a57c63cf34132b72e96b42926d8 src/qwsvdef.h 100644 blob 10594d44281b1455bf8f6ac33a35a866a4a0c832 src/r_aliasmodel.c 100644 blob 68fc908219d9064bbe31ead31acb01e40b244a74 src/r_aliasmodel.h 100644 blob 731b43d62235a0fc98c5f7a059b2f754feb5957f src/r_aliasmodel_md3.c 100644 blob a83a4a00456bb9e49afea19d722c5466510feb60 src/r_aliasmodel_md3.h 100644 blob 1a69c468b8adefffe5025902c699cb20ad557b43 src/r_aliasmodel_mesh.c 100644 blob 685b75413d8f40ba35e53e529392581f1d57ef23 src/r_aliasmodel_skins.c 100644 blob f611c957aa92a9cacc98089ca359f63c778c586b src/r_atlas.c 100644 blob f3d3ea1299888ad7ad06b73f9862ce2adf74ef47 src/r_bloom.c 100644 blob a0410444f96ec50065f88e6e4b49caef63e02c63 src/r_brushmodel.c 100644 blob b37d977937da0b9b89726a6fa7814c4f4917bd31 src/r_brushmodel.h 100644 blob 7151baae60e80f382f4fa0de83648f4b7cc25202 src/r_brushmodel_bspx.c 100644 blob 614bd043f13cf4fddc60a099589addf4cef5a5d8 src/r_brushmodel_load.c 100644 blob c46d67e9b2f72ccef7fe32031882fcc9b83add71 src/r_brushmodel_sky.c 100644 blob f32467528bf1c6110ac138c59babcd3fba203763 src/r_brushmodel_sky.h 100644 blob f2476c1e04f917fa285ac3d63ce3960c186e9d74 src/r_brushmodel_surfaces.c 100644 blob b912e88b16d5b2fcbfa0e046204b19bf78f755a6 src/r_brushmodel_textures.c 100644 blob 03b1374a42b592260a831b4800cc145923279502 src/r_brushmodel_warpsurfaces.c 100644 blob fc3fc7d4a4cde8df159e26825e29de19e498169a src/r_brushmodel_warpsurfaces_sin.h 100644 blob abc416d9998093da200fd5da7baf61af282ff2f5 src/r_buffers.c 100644 blob 1242efb12f4193a2c411cdf4424205b76fbd5b42 src/r_buffers.h 100644 blob 3b73e9eaf314120ba91eed24331a27cff1a66378 src/r_chaticons.c 100644 blob bdac9459a68f242cd8d29531af20a92b5702a43a src/r_chaticons.h 100644 blob cf23d2c8ceba7548117eff6c29328565850f467b src/r_draw.c 100644 blob ee35341c63f27f5c52d7e4a7d757dbb129a77d99 src/r_draw.h 100644 blob e5c92e6b2cb81eb241d6e83884442327bdfd520c src/r_draw_charset.c 100644 blob 1a849113cc123e001f02c41834ff8f6bf5e6f18d src/r_draw_circle.c 100644 blob fe7a2d1f39445a3b457899c80595d214f5c841df src/r_draw_image.c 100644 blob 4c5314de86f8f2daa3abd71ae1b6ca4c2493cc87 src/r_draw_line.c 100644 blob 193254638cabef224293d10952f96f585479dce8 src/r_draw_polygon.c 100644 blob 1b5dcc98ffdcdc401cc4a20524da40664a1a9993 src/r_framestats.h 100644 blob ac81980166ad9e3a4e44acb1578cb5f64059376b src/r_hud.c 100644 blob f234de247a6009bde5c7f5c5f77c9bf114e46fed src/r_lighting.h 100644 blob 38c8b428f0706e579ffc441f79803e969b8f1711 src/r_lightmaps.c 100644 blob d90fd5958033aec2c98570a3c816f514aa3f51e9 src/r_lightmaps.h 100644 blob adaf253c9b3e72301ba207508a8127d721514001 src/r_lightmaps_internal.h 100644 blob c211585a27f68a2c16448731606f052ea173deae src/r_local.h 100644 blob 44943e928bbf21af60ad82f5204ac06897262c81 src/r_main.c 100644 blob 2f95ab71b2746b4f1e652b31df74931a8c5646b0 src/r_matrix.c 100644 blob 2f350f71bf428acb55d8e827e1c287525fd23e31 src/r_matrix.h 100644 blob 7a31704a8e452e58e0694219d3bed3103b450993 src/r_misc.c 100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 src/r_misc.cpp 100644 blob c33e96c4c5d0a880ef357293500325814f25f593 src/r_model.c 100644 blob 221b4d26e835873796a1105c7b45cd964726289d src/r_netgraph.c 100644 blob 20953600bf6bdb049453b765bf0bb6695d9850f7 src/r_palette.c 100644 blob a3bb5da25a9036fba44a8f9d78bc26557a609569 src/r_part.c 100644 blob 6cbdd4b68f95034866fd0ae591ebfcd70a1db9f8 src/r_part_trails.c 100644 blob ec41b341fba730e5f8b7fa92531699e48c6de762 src/r_particles_qmb.c 100644 blob bb1f9e07813d5e92d5f4104bb076a6243e868157 src/r_particles_qmb.h 100644 blob 596f846b59e7245b871cc7a0852207aa48983ed0 src/r_particles_qmb_spawn.c 100644 blob ebbe892ca0a9db111a7ad06a839a8ff701a9c9d0 src/r_particles_qmb_trails.c 100644 blob 8ea97ad15777c01e7ce6c0e001fbb95a495c16b3 src/r_performance.c 100644 blob 8b584eabdc34be0cf538802599a8dcb8dfbc7cad src/r_performance.h 100644 blob a1175a83c8abc13362daee712303e830affa9600 src/r_program.h 100644 blob 4db5e5c8a1b3b1764e27b5de947e05fb6a7a0868 src/r_refrag.c 100644 blob 1fd6891062043c5761d33209a140a096efecf558 src/r_renderer.h 100644 blob aa05223052c9db8b16f152ed3de58634fe5be357 src/r_renderer_structure.h 100644 blob 3ade628fa6f427cd22dd3b565e80332c0f806344 src/r_rlight.c 100644 blob 687e724e757db7fab8305dc299ad2b3dde4c2b8b src/r_rmain.c 100644 blob 05682bcdb78bcab1290725befc05444ed277fd15 src/r_rmisc.c 100644 blob 92309479976a46e2b71d77be2d09161111f91c8a src/r_shared.h 100644 blob 391bf58fecd8baa3caef4bdf736bd757e4cda357 src/r_sprite3d.c 100644 blob f986a3242132c5610e8d5c0ec19d9f5d636d172f src/r_sprite3d.h 100644 blob 126777e3a5207e4d3fe936dd190ee3e6c651e68a src/r_sprite3d_internal.h 100644 blob e8e684930e45bc94695a7904a3f325a58d9393a5 src/r_sprites.c 100644 blob db62f4cb5092e68fa6a157861430e69f8df48da9 src/r_state.h 100644 blob 7d51ea8b1bb04a859f3b5ac153ffc18814d23f5a src/r_states.c 100644 blob 65963073fea9842a9b4b0abbc8f38c70934094a9 src/r_texture.c 100644 blob 842bea335eae55563998faa016dbae4501b56d08 src/r_texture.h 100644 blob b94652b6f89823d9364963157685b19226fb2fbc src/r_texture_cvars.c 100644 blob 9f0171d77e5346f99864327baf95e32463cb1352 src/r_texture_internal.h 100644 blob 29e2010a0465d6aec95ff78b263f080a55ed5903 src/r_texture_load.c 100644 blob cc9aa230f63543a49d3e1b57ad0808a056ea7926 src/r_texture_util.c 100644 blob fa8a23d34c6886212ab66e9866ef4d189b4ee1b1 src/r_trace.h 100644 blob 441d5c8ce19a2e0c6415d6220540f67d2921b36d src/r_vao.h 100644 blob 95470e042707116e4c665f170786992fef3ec476 src/render.h 100644 blob 7c7c878cd80653a52e76ab21cf0a4eb92930cfec src/resource.h 100644 blob b5214f487cbae201cfeb47bd5c14a1bb0e7a8b59 src/rulesets.c 100644 blob 85743d8163b41b6baf2d82c762eb6c7eb1eda9e8 src/rulesets.h 100644 blob bfa91ec7af21757437bcef601d2daca9dddefc81 src/sbar.c 100644 blob 3723f11471e237edf182842ee2a861139e6fc4b0 src/sbar.h 100644 blob 00bf780894a8cd1ba59c55fb10701c1ecd9b10ea src/screen.h 100644 blob efd3ab6573fdb563593ef69c1305da9f09e18164 src/server.h 100644 blob 1fa113f267011284ee476ff79040a28b3ea3fc44 src/settings.h 100644 blob fe8715f417b3353a5e5e782cb81186954c3d9309 src/settings_page.c 100644 blob b055ba856b90e7c59ecd1a5a1277dd2a38721cf6 src/settings_page.h 100644 blob 9c9a254d29450b90c16953ce128a05b314980b97 src/sha1.c 100644 blob c7c4fa23d6d7798d245699f733c54b489b49c7f1 src/sha1.h 100644 blob 4e40a19b3218935edad9b9447e774c930cdd025c src/sha3.c 100644 blob 41693ee040ee2cee65f00f22a9e8d861f829bddf src/sha3.h 100644 blob 4fdde18b7a0b3ecdcfc30da84e54444f99322422 src/skin.c 100644 blob a9025b002acf3f12d4df19154d29d64b50e8d8aa src/snd_main.c 100644 blob 17048889d650c4457342cfde688d09649dc15286 src/snd_mem.c 100644 blob a7a2e00a2f19da26955fc8accf1d30b3e88419c0 src/snd_mix.c 100644 blob 77509437689256f6d224149164b388f5cfcd5281 src/snd_voip.c 100644 blob b68435d2f3bce3c1fa372d3b76b8af86a3437c25 src/spritegn.h 100644 blob 91ef36883e41ce490fbd125749cba74189235690 src/stats_grid.c 100644 blob b306b3582c7a477ff19dce138a98aee05fd71cef src/stats_grid.h 100644 blob c87d3a4c6d4116c72c9dee9efb7ea60115110cc3 src/sv_ccmds.c 100644 blob c5571611f535db4ec7c0b467214b184bd91e1bd1 src/sv_demo.c 100644 blob f3d42718d2fdbe652891623e974915ddc126c854 src/sv_demo_misc.c 100644 blob a3dc6dfa15637ab18063f2215611be2131f48d84 src/sv_demo_qtv.c 100644 blob 93e7103173d01482f6b0ad6a48e6760f23c03cf9 src/sv_ents.c 100644 blob afdaffa2ed613beadf2779afacc705179ba8af3b src/sv_init.c 100644 blob 54eb7db6c4975264f7b7ab634edc87e690cb5c82 src/sv_log.h 100644 blob 0882e20216cfee80fa59f7cc79fd7ac7cca52ed3 src/sv_login.c 100644 blob 98ea29c455e636a72669c4839a4554e6e421dc72 src/sv_main.c 100644 blob ff47a78cf3aca7d8cbaca13fdd34f8ac4c749baa src/sv_master.c 100644 blob 8ee98f7e07b5a9a32ab6d6dc5fa6c85d72b9f545 src/sv_mod_frags.c 100644 blob 60290588cd578c1c1efdb12b252c7c6821eabe90 src/sv_mod_frags.h 100644 blob 06911e04a569fb6bd24452145ca9903a492d5ac6 src/sv_move.c 100644 blob aa50261bd332f39931853bd5d13ea83092ba7b23 src/sv_nchan.c 100644 blob 16811fed9addb64495e8c66def8b045c853a0239 src/sv_null.c 100644 blob c65eae9cb3eeed46c5af2d6eae099183ab5a4404 src/sv_phys.c 100644 blob a47e34eb74eefc300747ceed767155efe1b73d5d src/sv_save.c 100644 blob ce987e76b5750776e461e6be233484fb2ffd26a8 src/sv_send.c 100644 blob 56666543d5507495a921a8aa678bdc902987853f src/sv_sys_unix.c 100644 blob d7d24a3e862921ee8d8fa5d4e07f0ae02eea1409 src/sv_sys_win.c 100644 blob f51cf9bdb57b97ed316d5571282e610a9516af49 src/sv_user.c 100644 blob f8f7b8703b8f273a9b869b52d4db5b6d5db2f5ee src/sv_world.c 100644 blob 3aa47e6c0138257e1c0bde008f41670b24ee1648 src/sv_world.h 100644 blob b2c4334b4619f5890cddce1cace8d37ab9041395 src/sys.h 100644 blob 8733f5602477b03a6b2f19ab2ca41d9c79b9868d src/sys_osx.m 100644 blob 5bd478454a072698d065eafff54a34639d825b36 src/sys_posix.c 100644 blob 6331b3db9c0bb3b13ca84197a3511c4624b285a7 src/sys_sdl2.c 100644 blob 2ec48073fa11cd925769b2f37332dcbeba9adedc src/sys_win.c 100644 blob 2494532cdb532636d528ef8a262acbace7e8b514 src/teamplay.c 100644 blob c488e042a0dffd3c3e3571efd1c39b412b51f6b6 src/teamplay.h 100644 blob 509f7dbd591487661dd993908cd4b8c3250c5fc2 src/teamplay_locfiles.c 100644 blob 93a753409a1de2e0f424e4ba5015dd5774417e3a src/textencoding.c 100644 blob a2c06a5d367d801034ffa9e69f72a61037b86176 src/textencoding.h 100644 blob 0d94eb55dbab4d0a9bb64312076c56d4a2bc8b32 src/tp_msgs.c 100644 blob 801114ea6a8b86ee7294fb61dbb2bed8ffaba06e src/tp_msgs.h 100644 blob 864cd25c4e515f5802dfe7ebe8f972b5e8d207c4 src/tp_triggers.c 100644 blob 953e61e6536dc057fb3fdb2fc7ae75af0645dfcc src/tp_triggers.h 100644 blob a3ef2489eb8ddbfcaf3a226b2f8a2cb2ee1f6e61 src/tr_types.h 100644 blob d987076edb0564b919406720a33984dda0cf6fed src/utils.c 100644 blob 84af30f1c18d8529ef4e5b3ae8384716a6d80d8d src/utils.h 100644 blob 4d2e016accbb7ae2a89e26e3cf1a2a481ac9d31d src/version.c 100644 blob 969d7e105dc0f08cd75b3563d4340e04d3540ccf src/version.h 100644 blob b140cf9fc4783eea3d4e7d69c2e2e45d979d3952 src/vfs.h 100644 blob 5064899c47b0fb0beee25dee1b17ab0337ddcc9b src/vfs_doomwad.c 100644 blob e6129b908a42871e20ef1c6acb40e21aedc06667 src/vfs_gzip.c 100644 blob 201daa6dbc43422cf6f516594676b5d2f7c3dfbc src/vfs_mmap.c 100644 blob 2d3a9b51345170583aad4e1d12728497876722b5 src/vfs_os.c 100644 blob 59aa5d5c7829d2546938d9474527154da5f1c154 src/vfs_pak.c 100644 blob 4752d0453871a09a45884d7c0d4e2c36714d48ed src/vfs_tar.c 100644 blob ca93660c1ae629c0f6d22afaa3fbc007a31688ff src/vfs_tar.h 100644 blob 5d48980a6cfa20024b491e5ae79704bfe50f4f0c src/vfs_tcp.c 100644 blob b1954c7bd6e2f85a4dcf1be6cd759435ba5bc539 src/vfs_zip.c 100644 blob 13fef205a79eebe516ffc36be523d95b306f1d27 src/vid.h 100644 blob c4e528c6db8a7557da4a633bdc095f18ad62ecd9 src/vid_common_gl.c 100644 blob dad8fcc7c23ff1cbddc7175aee9cd3016aa488c3 src/vid_sdl2.c 100644 blob 6f273444fe9e95e2d3969a80ce415f5276f18482 src/vid_vsync.c 100644 blob efe9d0dbd799308db5ea36646c1048f6d15e0ce6 src/vk_blending.c 100644 blob 3b7be2ff348630aadba5cc9dc9b424a6b8285c29 src/vk_buffers.c 100644 blob c7ceab0429f5e5d23d06bc3f1294f18354e5dfc0 src/vk_debug.c 100644 blob 472681f27286f417be906f8c54bcf9cc05fe0e0b src/vk_draw.c 100644 blob 3871fb5c415401883d52cdc1edc70bcdcb10fd45 src/vk_graphics_pipeline.c 100644 blob 3e34e5cc38b17d46f720c41f2954f05e84e3d258 src/vk_instance.c 100644 blob ec7c40929d078116dbf630bd94c7b9896eb549ce src/vk_lightmaps.c 100644 blob c0b1011f5e1de3d7040b9a23b90b5d4cc8de450a src/vk_local.h 100644 blob 387231ddb0407d31bc24e17efa8ca3afc7d7aa03 src/vk_main.c 100644 blob 3f5913ef0177d2bd6c15f4b6ffc8444adaabe07c src/vk_md3.c 100644 blob 990a82121743b0ace2b802f8cf1faef3c0c8aeb8 src/vk_misc.c 100644 blob 6789f586cf10d94de053867136db18c2df456c61 src/vk_physical_devices.c 100644 blob e1f4cd0677a5f3c7beee2b0f23877369998b02bc src/vk_renderpass.c 100644 blob 0409a4899e9272f13876da3c5e093921f55ecab0 src/vk_sdl.c 100644 blob 9b9fd3341de8f5f492788621dd9fdc73ef00f6fd src/vk_swapchain.c 100644 blob 67794cb313bffa9488170e3c8aadd82d565358be src/vk_vao.c 100644 blob f794ec5c48d4487a8de52f3b842d62279dee01d5 src/vk_vao.h 100644 blob d9458f7432ffce2d21c1b60d5199c076f3b21d5a src/vk_window_surface.c 100644 blob 578b03bce6723c67c75d61cf14afde9d39afac14 src/vm.c 100644 blob 9fedfb547e82481e721f6dc86504bb5dbda299db src/vm.h 100644 blob ad262ea4767d216c7b5e643b97e912b680a6b7db src/vm_interpreted.c 100644 blob 315ea63d6b7877cb5a5d4d464398ca2279eb7cc8 src/vm_local.h 100644 blob bdd384a972688776cc8b497c4c99f0d033a770a6 src/vm_x86.c 100644 blob f043145e8a06093157f26d685c071cc9ae18b3af src/vx_camera.c 100644 blob 581de89050115f3f8ffa94ff39531811a16a3f66 src/vx_camera.h 100644 blob 718b8845f1ca55bc2e4ffab23a557771f7998021 src/vx_coronas.c 100644 blob 491daf9e86162760bd22f144b28693d58fbb3f39 src/vx_stuff.c 100644 blob 3a2fab0a554ef1cd39613218c033275a5b1d471f src/vx_stuff.h 100644 blob 05830731a4af493d9bd3fe104d40f3d45dc247b4 src/vx_tracker.c 100644 blob e5d00f89e076880ca774929ce75510b3f67bebfb src/vx_tracker.h 100644 blob f9bc24471bc19480d2bf1c32fb7ae0d140d96404 src/vx_vertexlights.c 100644 blob cb4826e8a04a97f1fdf9b29f86ccdd5f0239cf4f src/vx_vertexlights.h 100644 blob f43d541dba6d438b919b8fe1c50b9c11cbecaa9e src/wad.c 100644 blob 8a065ca90248582128a79d7d125545063f8f01b1 src/wad.h 100644 blob adf18513b69f648c89bbb650b99dfb74dee06da6 src/winquake.rc 100644 blob 3d0590682a525fbfdf2e8631df5a4e814cfc1e22 src/xsd.c 100644 blob d114125be00c884cb015310537a6f26cdc00fc55 src/xsd.h 100644 blob 52a1bfc63c5bc40ca93b533bc0d0f84e64d50d95 src/xsd_document.c 100644 blob b45804611d3309265982d105422723b876aac0d0 src/xsd_document.h 100644 blob 131c5a7b78fcd316cc8df5a3b44e87d31d45139f src/zone.c 100644 blob b53097b985f19cc2e02b38dd9cbaa645533dbde5 src/zone.h 160000 commit de99811b2bb81797dd77729cb97b7ccf9cdc6284 vcpkg 100644 blob 0e934ba9cda3297edc43de593d573e9005b0795e vcpkg.json 100644 blob 9956c77b50c1ccad5c30d6aa1d3e53b36abbc232 .github/workflows/main.yml 100644 blob 701b70277ae1af6edda05d35a081fed8f02870e6 README.md 100644 blob 273f50fc9d93792ecdb59335661b9c01a130e55f src/protocol.h ezquake-3.6.6/cmake/000077500000000000000000000000001477060523000142575ustar00rootroot00000000000000ezquake-3.6.6/cmake/AddResources.cmake000066400000000000000000000043631477060523000176520ustar00rootroot00000000000000# Generate C source code that embeds arbitrary files via calling the # ResourceCompiler CMake script using CMake itself. # # Declared like this: # const unsigned char blabla[] = { # 0x23,0x76,0x65,..., # }; # const unsigned int blabla_len = 581; find_program(JQ_EXECUTABLE jq) macro(add_resources target_var) add_library(${target_var} OBJECT) set(RESOURCE_COMPILER "${PROJECT_SOURCE_DIR}/cmake/ResourceCompiler.cmake") set(generated_base_directory "${CMAKE_CURRENT_BINARY_DIR}/${target_var}.dir/resources") foreach(source_file ${ARGN}) file(RELATIVE_PATH source_file_relative "${CMAKE_SOURCE_DIR}" "${source_file}") get_filename_component(source_file_dir "${source_file}" DIRECTORY) get_filename_component(source_file_dir_relative "${source_file_relative}" DIRECTORY) set(generated_directory "${generated_base_directory}/${source_file_dir_relative}") file(MAKE_DIRECTORY ${generated_directory}) get_filename_component(source_file_name "${source_file}" NAME) set(generated_file_name "${generated_directory}/${source_file_name}.c") get_filename_component(source_ext "${source_file}" EXT) if (source_ext STREQUAL ".json" AND JQ_EXECUTABLE) set(validation_command ${JQ_EXECUTABLE} empty "${source_file}") endif() add_custom_command( OUTPUT ${generated_file_name} COMMAND ${validation_command} COMMAND ${CMAKE_COMMAND} -P ${RESOURCE_COMPILER} "${source_file}" "${generated_file_name}" WORKING_DIRECTORY "${source_file_dir}" DEPENDS ${source_file} ${RESOURCE_COMPILER} COMMENT "Generating C file from ${source_file_relative}" VERBATIM ) target_sources(${target_var} PRIVATE ${generated_file_name} ${source_file}) set_source_files_properties("${CMAKE_SOURCE_DIR}/${source_file}" PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties("${generated_file_name}" PROPERTIES GENERATED TRUE) source_group(TREE "${CMAKE_SOURCE_DIR}" PREFIX "Source Files" FILES ${source_file}) source_group(TREE "${generated_base_directory}" PREFIX "Generated Sources" FILES ${generated_file_name}) endforeach() endmacro() ezquake-3.6.6/cmake/CheckDependency.cmake000066400000000000000000000021261477060523000202760ustar00rootroot00000000000000# Check if a dependency exists and declare a target named Dep::$name. # If USE_SYSTEM_LIBS variable is set, find dependency via pkg-config. if (USE_SYSTEM_LIBS) find_package(PkgConfig REQUIRED) endif() macro(check_dependency target_var pkg_config_name vcpkg_name vcpkg_target_name) cmake_parse_arguments(_ARG "REQUIRED;CONFIG" "" "" ${ARGN}) set(_REQUIRED "") if (_ARG_REQUIRED) set(_REQUIRED "REQUIRED") endif() set(_CONFIG "") if (_ARG_CONFIG) set(_CONFIG "CONFIG") endif() string(TOUPPER ${target_var} _TARGET_VAR_UPPER) set(HAVE_${_TARGET_VAR_UPPER} FALSE) if (USE_SYSTEM_LIBS) pkg_check_modules(${target_var} ${_REQUIRED} IMPORTED_TARGET ${pkg_config_name}) if (${target_var}_FOUND) add_library(Dep::${target_var} ALIAS PkgConfig::${target_var}) set(HAVE_${_TARGET_VAR_UPPER} TRUE) endif() else() find_package(${vcpkg_name} ${_CONFIG} ${_REQUIRED}) add_library(Dep::${target_var} ALIAS ${vcpkg_target_name}) set(HAVE_${_TARGET_VAR_UPPER} TRUE) endif() endmacro() ezquake-3.6.6/cmake/FindSpeex.cmake000066400000000000000000000015361477060523000171530ustar00rootroot00000000000000# Can be removed once vcpkg speexdsp package has gained a proper cmake-wrapper. set(_VCPKG_ARCH_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}") find_path(SPEEX_INCLUDE_DIR NAMES speex/speex.h PATHS "${_VCPKG_ARCH_DIR}/include" NO_DEFAULT_PATH REQUIRED) find_library(SPEEX_LIB_RELEASE NAMES speex PATHS "${_VCPKG_ARCH_DIR}/lib" NO_DEFAULT_PATH) find_library(SPEEX_LIB_DEBUG NAMES speex PATHS "${_VCPKG_ARCH_DIR}/debug/lib" NO_DEFAULT_PATH) if(NOT SPEEX_LIB_RELEASE AND NOT SPEEX_LIB_DEBUG) message(FATAL_ERROR "Speex library not found") endif() add_library(SPEEX::SPEEX STATIC IMPORTED) set_target_properties(SPEEX::SPEEX PROPERTIES IMPORTED_CONFIGURATIONS "Debug;Release" IMPORTED_LOCATION_RELEASE "${SPEEX_LIB_RELEASE}" IMPORTED_LOCATION_DEBUG "${SPEEX_LIB_DEBUG}" INTERFACE_INCLUDE_DIRECTORIES "${SPEEX_INCLUDE_DIR}" )ezquake-3.6.6/cmake/FindSpeexDSP.cmake000066400000000000000000000016161477060523000175210ustar00rootroot00000000000000# Can be removed once vcpkg speexdsp package has gained a proper cmake-wrapper. set(_VCPKG_ARCH_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}") find_path(SPEEXDSP_INCLUDE_DIR NAMES speex/speexdsp_types.h PATHS "${_VCPKG_ARCH_DIR}/include" NO_DEFAULT_PATH REQUIRED) find_library(SPEEXDSP_LIB_RELEASE NAMES speexdsp PATHS "${_VCPKG_ARCH_DIR}/lib" NO_DEFAULT_PATH) find_library(SPEEXDSP_LIB_DEBUG NAMES speexdsp PATHS "${_VCPKG_ARCH_DIR}/debug/lib" NO_DEFAULT_PATH) if(NOT SPEEXDSP_LIB_RELEASE AND NOT SPEEXDSP_LIB_DEBUG) message(FATAL_ERROR "SpeexDSP library not found") endif() add_library(SPEEX::SPEEXDSP STATIC IMPORTED) set_target_properties(SPEEX::SPEEXDSP PROPERTIES IMPORTED_CONFIGURATIONS "Debug;Release" IMPORTED_LOCATION_RELEASE "${SPEEXDSP_LIB_RELEASE}" IMPORTED_LOCATION_DEBUG "${SPEEXDSP_LIB_DEBUG}" INTERFACE_INCLUDE_DIRECTORIES "${SPEEXDSP_INCLUDE_DIR}" )ezquake-3.6.6/cmake/GitUtils.cmake000066400000000000000000000107531477060523000170330ustar00rootroot00000000000000find_package(Git QUIET) function(git_refresh_submodules) if (GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git") option(GIT_SUBMODULE "Check submodules during build" ON) if (GIT_SUBMODULE) message(STATUS "Submodule update") execute_process( COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} RESULT_VARIABLE GIT_SUBMOD_RESULT OUTPUT_QUIET ) if (NOT GIT_SUBMOD_RESULT EQUAL "0") message(FATAL_ERROR "git submodule update --init --recursive failed with ${GIT_SUBMOD_RESULT}, please checkout submodules") endif() endif() endif() endfunction() # Will load the version from 'version.json' file on configuration time if it exists. # # The content of this file looks like this: # { # "version": "3.6.5-92-g8e3875f40", # "revision": 7739, # "commit": "595806cd2449d4b17024b892c6e5b169512be5e0", # "date": "2024-08-18T16:53:29+02:00", # "vcpkg": "2024-02-14" # } function(git_extract_version target_var) if (GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git") execute_process( COMMAND ${GIT_EXECUTABLE} rev-parse --is-shallow-repository OUTPUT_VARIABLE GIT_IS_SHALLOW OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) if (GIT_IS_SHALLOW MATCHES "true") message(WARNING "Shallow repository detected, revision not available.") set(GIT_REVISION "0") else() execute_process( COMMAND ${GIT_EXECUTABLE} rev-list HEAD --count OUTPUT_VARIABLE GIT_REVISION OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) endif() execute_process( COMMAND ${GIT_EXECUTABLE} rev-parse HEAD OUTPUT_VARIABLE GIT_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) execute_process( COMMAND ${GIT_EXECUTABLE} describe --tags --always OUTPUT_VARIABLE GIT_DESCRIBE RESULT_VARIABLE GIT_DESCRIBE_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) elseif (EXISTS "${PROJECT_SOURCE_DIR}/version.json") message("-- Loading version from 'version.json'") file(READ "${CMAKE_CURRENT_SOURCE_DIR}/version.json" VERSION_CONTENT) string(JSON GIT_DESCRIBE GET "${VERSION_CONTENT}" "version") string(JSON GIT_REVISION GET "${VERSION_CONTENT}" "revision") string(JSON GIT_COMMIT_HASH GET "${VERSION_CONTENT}" "commit") endif() if (NOT GIT_DESCRIBE) set(GIT_DESCRIBE "0.0.0-0-g00000000") endif() if (NOT GIT_REVISION) set(GIT_REVISION "0") endif() if (NOT GIT_COMMIT_HASH) set(GIT_COMMIT_HASH "0000000000000000000000000000000000000000") endif() string(SUBSTRING ${GIT_COMMIT_HASH} 0 9 GIT_COMMIT_SHORT_HASH) add_library(${target_var} INTERFACE) target_compile_definitions(${target_var} INTERFACE REVISION=${GIT_REVISION} VERSION="${GIT_REVISION}~${GIT_COMMIT_SHORT_HASH}" ) set(VERSION_MAJOR 0) set(VERSION_MINOR 0) set(VERSION_PATCH 0) string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*" "\\1;\\2;\\3" SEMVER_MATCH "${GIT_DESCRIBE}") list(LENGTH SEMVER_MATCH PARTS_SIZE) if(SEMVER_MATCH) if(PARTS_SIZE GREATER 0) list(GET SEMVER_MATCH 0 VERSION_MAJOR) endif() if(PARTS_SIZE GREATER 1) list(GET SEMVER_MATCH 1 VERSION_MINOR) endif() if(PARTS_SIZE GREATER 2) list(GET SEMVER_MATCH 2 VERSION_PATCH) endif() else() message(WARNING "Upstream tags missing. Using default version 0.0.0") endif() set_target_properties(${target_var} PROPERTIES REVISION "${GIT_REVISION}" VERSION "${GIT_REVISION}~${GIT_COMMIT_SHORT_HASH}" COMMIT "${GIT_COMMIT_HASH}" GIT_DESCRIBE "${GIT_DESCRIBE}" VERSION_MAJOR "${VERSION_MAJOR}" VERSION_MINOR "${VERSION_MINOR}" VERSION_PATCH "${VERSION_PATCH}" ) message(STATUS "Version: ${GIT_DESCRIBE} (${GIT_REVISION}~${GIT_COMMIT_SHORT_HASH})") endfunction()ezquake-3.6.6/cmake/ResourceCompiler.cmake000066400000000000000000000012561477060523000205470ustar00rootroot00000000000000# Generate C code with some content encoded as an array of unsigned char. # See AddResources.cmake for more information. set(input_file "${CMAKE_ARGV3}") set(output_file "${CMAKE_ARGV4}") get_filename_component(base_name "${input_file}" NAME) string(REGEX REPLACE "[.]" "_" variable_name "${base_name}") file(READ "${input_file}" content HEX) string(LENGTH "${content}" content_length) math(EXPR data_length "${content_length} / 2") string(REGEX REPLACE "([0-9a-f][0-9a-f])" "0x\\1," data "${content}") string(APPEND data "0x00,") file(WRITE "${output_file}" "const unsigned char ${variable_name}[] = {\n${data}\n};\nconst unsigned int ${variable_name}_len = ${data_length};\n") ezquake-3.6.6/cmake/triplets/000077500000000000000000000000001477060523000161255ustar00rootroot00000000000000ezquake-3.6.6/cmake/triplets/arm64-osx.cmake000066400000000000000000000003251477060523000206670ustar00rootroot00000000000000set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Darwin) set(VCPKG_OSX_ARCHITECTURES arm64) set(VCPKG_OSX_DEPLOYMENT_TARGET "11.0")ezquake-3.6.6/cmake/triplets/x64-mingw-static.cmake000066400000000000000000000003641477060523000221570ustar00rootroot00000000000000set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_ENV_PASSTHROUGH PATH) set(VCPKG_CMAKE_SYSTEM_NAME MinGW) set(VCPKG_C_FLAGS "-march=nehalem ") set(VCPKG_CXX_FLAGS "-march=nehalem ")ezquake-3.6.6/cmake/triplets/x64-osx.cmake000066400000000000000000000003241477060523000203560ustar00rootroot00000000000000set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Darwin) set(VCPKG_OSX_ARCHITECTURES x86_64) set(VCPKG_OSX_DEPLOYMENT_TARGET "11.0")ezquake-3.6.6/cmake/triplets/x86-mingw-static.cmake000066400000000000000000000003441477060523000221610ustar00rootroot00000000000000set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_ENV_PASSTHROUGH PATH) set(VCPKG_CMAKE_SYSTEM_NAME MinGW) set(VCPKG_C_FLAGS "-msse2 ") set(VCPKG_CXX_FLAGS "-msse2 ")ezquake-3.6.6/dist/000077500000000000000000000000001477060523000141425ustar00rootroot00000000000000ezquake-3.6.6/dist/gen-release.sh000077500000000000000000000040611477060523000166710ustar00rootroot00000000000000#!/bin/sh TOP_DIR=$(git rev-parse --show-toplevel) cd "${TOP_DIR}" git submodule update --init --recursive rm -rf release mkdir release cd release EZQ_DIR=$(git rev-parse --absolute-git-dir) VCPKG_DIR=$(git -C "${TOP_DIR}/vcpkg" rev-parse --absolute-git-dir) QWPROT_DIR=$(git -C "${TOP_DIR}/src/qwprot" rev-parse --absolute-git-dir) GIT_REVISION=$(git --git-dir="${EZQ_DIR}" rev-list HEAD --count) GIT_COMMIT_HASH=$(git --git-dir="${EZQ_DIR}" rev-parse HEAD) GIT_DESCRIBE=$(git --git-dir="${EZQ_DIR}" describe --tags) GIT_COMMIT_DATE=$(git --git-dir="${EZQ_DIR}" log -1 --format=%cI) GIT_COMMIT_TIMESTAMP=$(git --git-dir="${EZQ_DIR}" log -1 --format=%cd --date=format-local:%Y%m%d%H%M.%S) VCPKG_TAG=$(git --git-dir="${VCPKG_DIR}" describe --tags) EZQ_NAME="ezquake-source-${GIT_DESCRIBE}" EZQ_TAR="${EZQ_NAME}.tar" EZQ_VERSION="${EZQ_NAME}/version.json" EZQ_CHECKSUM="${EZQ_NAME}/checksum" QWPROT_TAR="qwprot.tar" echo "* Release: ${GIT_DESCRIBE} (rev: ${GIT_REVISION}, vcpkg: ${VCPKG_TAG})" echo "* Creating ${EZQ_TAR}" git --git-dir="${EZQ_DIR}" archive --format=tar --prefix="${EZQ_NAME}/" HEAD > "${EZQ_TAR}" echo "* Creating ${QWPROT_TAR}" git --git-dir="${QWPROT_DIR}" archive --format=tar --prefix=src/qwprot/ HEAD > "${QWPROT_TAR}" echo "* Prepare merging tarballs" tar -xf "${EZQ_TAR}" tar -xf "${QWPROT_TAR}" -C "${EZQ_NAME}/" echo "* Generating ${EZQ_VERSION}" cat > "${EZQ_VERSION}" <> "${EZQ_CHECKSUM}" shasum "${EZQ_VERSION}" >> "${EZQ_CHECKSUM}" git --git-dir="${EZQ_DIR}" ls-tree -r HEAD >> "${EZQ_CHECKSUM}" git --git-dir="${QWPROT_DIR}" ls-tree -r HEAD >> "${EZQ_CHECKSUM}" echo "* Resetting timestamp of generated files" touch -t $GIT_COMMIT_TIMESTAMP "${EZQ_VERSION}" touch -t $GIT_COMMIT_TIMESTAMP "${EZQ_CHECKSUM}" echo "* Assembling ${EZQ_TAR}.gz" tar cfz "${TOP_DIR}/${EZQ_TAR}.gz" "${EZQ_NAME}" cd "${TOP_DIR}" rm -rf release ezquake-3.6.6/dist/linux/000077500000000000000000000000001477060523000153015ustar00rootroot00000000000000ezquake-3.6.6/dist/linux/io.github.ezQuake.128.png000066400000000000000000000500461477060523000216210ustar00rootroot00000000000000‰PNG  IHDR€€Ã>aËŠzTXtRaw profile type exifxÚÝšY¶c7rEÿ1 }ÃA»–gàá{™•*©ªT–ì÷¤G&yqšÀuç¿þóºÿà§æÞ\.Öj¯Õó“{îqð¦ùÏÏxƒÏïïûùñÿþÍçî瑯é{Bý~~ø+¯²ê²ÕV_cÇ6u¼ë¶Ývßã„C*|Ê©ÇN;ýŒKªÝtó-·^s·Ý~ÇϨ}Ãú»ß#jáµø"¥ígÔøÔìÇ%‚à¤(fD,æ@À¨1[1ó-ä9ÅÌwà0•È ‹‚³ƒ"Fó ±Üð3vßÈ9Vñ%nÎÚ‹[ü«‘s ÝŸŒÜïãöGQÛ¢çõ"ö)C-ªOTߟ6bbËøêþÕöõÿõ…æ<×'[)ð&ô eWRªöàó°9ý=·¥]*ŸvŽ÷©…ÑÁ˜Qz:gT#?]¹%FtjZiŽ[¸§Ç» %i;îHý–q”ïÝì.›¥ŸµìîT,ÝåÖÛâÒXN,P ïö M­d†HøÛµY·ÞݺC¶›ÒÙed)«âlkœ¾]¿wVA‚‰·Zä´Ð ¥”¹z;ÃBisÙ82Ê·Mj ÅЀ̲V¯y¯Cá0Z]æDr¾Öâ9^,—Ë,ÍJ˜xf¹ÜbŸÌÄ÷é‰s‘mäPUbÙe¨±%vûé9êÆ£Ù¶âXü"×*gÕ]î ó¶zKW ÖlVÖ‡ªÉ®ÙN³‚€|‘Ó‰õ6m×Êârãd}ûvö,ÅÂN,h¬6z*ÀÊ*;õÚò¥v—+ÔÑìƒ"ïVFá0x¶[*7ðF´w#l¡ä3Á•ÉÚüA:¹7ÿf­¶§ÞWÖm&‚®®cÝKI¤½ÚÙúœu,?Rg+±F™{Žz{¹i’"¾šOi_-‡òäúf®ØóÛÞu†ÈKg]ÔÊíÞŠRù˜Ýylp`5Öï–a9-®”Öš»ÞéÖ&6âäô¹Úi@Ù,;ç®qæo¨/FýîO î…¸³¿­e?¶¡ OæZ¾Ðsì󒻤s.=´ ¹ÜrN 2—Üš”&…0;¬'Ƽ5ȸA¡ÒÞc– •…^V©æÕ©›´ƒ8˜R8iÖ GˆüÛ¹»Ý;)[69*ÇÎŒž‚$i±>Τ¼ç]©Ã)ÃÑö UìRWÓ•(Z;ÇX;1¨PYuW@ÿ!Æ$ÐöFÍÍÓïÞ$•‡ç¶y¥u¯úšôO‡ yÆFd¦BÞæjB AIŠlFæ'؇ÛiœToâ”!ÂVh^Ñæ… ½«3Ü)ö"R#Ü~‘ ž¢ÁI›2ïýE‚쎒±‚‚‡Ë¡UîÓ)püÎ=5 ¤ SBÅ4)°y"´9-ïà¾AA·4ÆÝªøŒ7WµVi†²K«rƬêã¾,Ðeqç­¬Þi‘ S%,I« vH^® ÇÑ¡µEö0µj:uÏä—¥Ï$èºÐF-lð‰BXÌO$æ'­1Ž#ÙÉýƒ­x޲#Ø,Õsº¼ù âÃåÒ¬ 8Wéå¬y'ÜáJÛ‡ÃDÁð B’mÈž¢DqRœ"AF (Å4Y9þPu{s•NÒlR=N7Âf»Ö«ß*óýAC¤ãÌ·",àÌOUPeå I؉ñÞÉßü³×âÓ$Ø‚wôr³1Ìžu™ÏÒÚÓMÖ¹±žy†3²?âµMýHˆ¤ÝaÆ„ãB 2áNðÒ¬m€>ƒ\ñ‚¶D-4•2×`цìZDËÛÂÀ[!Ø@à\)6ä0€"=vÓ"£ú[N£êìTÖ÷+tt~—hÅBP¸Ñ†HR†lÔ*‡… AL|VR”•æø%|_` §Ž.jõÀ1Û€/wÏÚAÚÎ}+.CÆäaoÒ»2_WV­BEEJ P®Ñ°ûøê$HQ`3ú=Rvsâ¸Ñ*È`Qɬ ®† bC&ŽЋßR:ƒ ¤·éŸ,‚­çE(a}‘ºí ï àÔ”Œ˜(›Ô€P(æùäh¤$7ë1Ôú¿rÑ!Á:d á• ±€W~ *Á×¬Ö ‚†¿ÛÈ piyfQ{•nõÐ1hl¨Ç¶ž‘i»QUˆišV`o&¬öSdÝoi™¤± Q&TF™$Ta‚ZŸôì çÏF¶Iµ&®l,Â|ÕÊ¢;õ÷ÈéR6 <¢£:‹ªþV¥ûG} ú›ÞeUö!2”"ýÛ*üÂÊ›c(ÇÁ2©”É©"í‘êÿ®;Ml¥ ˜ÿÐU#ïz[ˆ9!.´˜£Œ%NyÚY“\^þàÑ}±’êw5Àv; !¿¸ONG>˜L¼Œþ„cE’ Õ‘p>è @'Êõ¯MµunºEŠ„ÄO°Î³·|ð ëc¸QW²Ûí~ÿ&‡¥¿g¾¦BËÕëA ãòIH–ıTÅFT!%©cò#l7Vˆ—T`Ó>S%ßlI€NÇf˜øë•eåµÕ7 #ɽ<ÑöíFD¿Ûà2«Yj¥|€/û¾Ž-ÐÀ w ÷(¶#ê;B _ ¡?›g‡ÆxÕÛåûµ½ç˜rò(Â}Èö„0Æà¡=ñ"ËÚhÀ µC-ÆDüÒ¬ã.‡¬™g¾îˆ Œôß4ù±$T2Âç¨cˆyÀ6” 4}‰«Þ›pë ëH!Ü„¦•Ô䀚L˜‚=ÁÌ’mm£fðR¨Du:Ém4·Úvnc°Ô”×nÅ^PT{4uâa\¬ 8ˈÂŒÕïÜ\AŠÝ‘ÌÆ£j›^;1‡$¼ÙÕ§S[°öTû@z„:’±fL«vyX6ΑC.1~d_}G²ù5B™ @ÍïœõÂQxCíâ瀸qorðóuÍeó¨O+ð?"(6jJ Ÿ ­ikÿp`š;=MìÉXø|” U­–gÙ®K¼ž@>¨Uß“eJ(y&“/ò~ISˆ* 8<Žv@s(—J•€lîI§5õáÜEOž—•¨ÛLEV=PE¤¢Z…M€„3”«IG"˜Ýô¤-@ë¡=+,äv™?.{F9ùM\¨«iI]xy¡¨æaœYÀ¢JM8ä˜eJP}ðJúJ!c³ØcY7J]; ³¶……õNëg³ü&Öµk¬%ÇÔÀ$Íë vnZàïjŒ©™Öð®ÚjîxÈÖ!‰¤37ÄwÑ”+»5•{`Cݵì)ÈÍÁAäVpóí‚·Ïöô9Ô¦vÕöK­•˜ÿr­ýü@’–|@gwÑnD×Ö fc–Bj†­§Š¤%3B¦Åz¯ÔÕwJªaU(É"øÐ× „±ðqLÒsNícû¡|Sd4œÚ4À—”†zlÚêõ]Ù¬ÍÞ† 1Õ‰î"±¦›”µàߦ/…p·*Ù¡½Û÷D„ä‚bßš¶Õ1Úg¯à×ÉÒ$¡©º¦¤îÞˆÚ$F‚¨&U€gáU“l–jI…|’²P'¾¿Æ¾þ®´j­ÈNCÝ’iÜ45Id£¶P­º ™–¶çIâ«Fë‘8Y»•C«o£{ Ä)†‡&ëÔs*튣0ÈW .uŽ-$£áÓ©éA85jÿ”³ úßL%Z7û"P/ ©”†–ë^›¥^EQTƒ*„ÆfYOªk0Ê@~‰»-C9Õ%q–œ¼3™2>‰«ÇÏvÒî àIJ쮟nfùãgÞ«û«Ï°LYÔ0®[¨ñý™òO:ÍOÕIŸKÀùˆ¢ÜñýK |e‹#"Â̵«¿:~MíÈõÈJ²»A22X™H¯©ÞÛV·Â„Ö‹ÛSå€ ÛÄI0}ŘºÐ·º¿ØÎÙi¨‡ª’/ïA0†…ƒÆ óµ#™x]äúþš ”Xw™,S¿e]Êy_=9M[K©h‹e¡WnoÃy¼Ñm$‘þÚ—Qÿ ÊëSâÒê(ø3Ö©u•YD2i†ôÃLDVf¤X¤Q“v³` í¦× B‚±É¡6±IœdzT³©c}n ß 4{qç¥+Àox®Þ¡8™bpôô)ñtÈÊHç÷”MæRG|ß  N+“ZÆÁ A;µ?ó8©þÚU´,\!‰·¥=¸‰Éãz`6î™õ¸‰‚¤˜¨‹Ùû;«`= ¬‚Ž«NFN°,ƒÞ^–´-•´?­Qo’;RåÏ5XDImß FíqRÕ][‹é=¼V§zô#©Q_딡ßÒõp!,Òeûv…pŒÌV§L,‚¹· Jz×uêÙÒ;séQ"ûHîhò“H¹(vùÝŽâ¿÷Š×^žJMÕ cF¯­„ÓÔ®\R:àt [<×*˜µ:ô܆ØSd(”¨©»]L±½&mÔÞù‡¾P.ëÓ¼$¨Psâ‹´&u'E°jè¹Ge µÖY³šÄÕ‹z=z2¬¡ ÕU„I“Vqá5Ć\ýY¤ZÐÃŒUò˜‹€’ÓÁ$@ßÖãü·Êú–í5ö}õ`@uŒ }š <Ú«~JèÝíæ&5ŠöY~·•obxê×<á忪m<þCÐ# íÇúpšš';©%*?V¼0ô”+Â|ž`îHˆË=´îÕšcåÀpBŽX¨ÚÕE4¡y7^„i!]hÝKÒ뗌Ԗ®š‡˜—ŒÃðc3@<ê†;†b`Ð?P["4­ŽN}±i|A,Tä§S"º^ô¢bÁœÞ£8’{44ºC[?‡Ê?°hMÌÀù¨<Ò—yاñ»>-ÕñÔ#ß±³’jÒïÇ•·ux¤‡ÐFϽ‰WúVb£!¢#yA{uUaò ’%*ײ6¹ºÓf(°˜áA×â6l’ É“™²ÿ „¶WjþLúýþçŸzåϼþß»¡ØÝý7ñýÃý)8{„iCCPICC profilexœ}‘=HÃ@Å_SŪ Š:d¨NDEµ E¨j…VL.ý‚& IŠ‹£àZpðc±êà⬫ƒ« ~€¸¸:)ºH‰ÿK -b=8îÇ»{»w€P-2Íj4Ý6±¨˜J¯Š¯èD?º1„€Ì,cN’âh9¾îáãë]„gµ>÷çèQ3|"ñ,3L›xƒxzÓ68ï‡X^V‰Ï‰ÇLº ñ#×ß8ç\xfÈL&æ‰CÄb®‰•&fyS#ž"«šNùBÊc•óg­Xfõ{ò3úÊ2×i#†E,A‚eP„­:)´mátý¹rÀȱ€4È®ü~wke''¼¤`hqœ c¨UçûØqj'€ÿ¸ÒþR˜ù$½ÒÐÂG@ï6pqÝД=àrx2dSv%?M!›ÞÏè›Ò@ß-еæõVßÇ餮â7ÀÁ!0š£ìõï4÷öï™z?*ârŠñô׋bKGDÿÿÿ ½§“ pHYs.#.#x¥?vtIMEã  1>=MtEXtCommentCreated with GIMPW IDATxÚíw˜e½Ç?ïÌœº½¦l*©$$„T¥ƒH"• rA¥èU¸êÅrïE@ô"Š(Ò;\Z ”Òû&¤ì&Ù^N™÷½Ì;Ù7‡ =1}ŸgžsrrvÎÌüú÷W^è[}«oõ­¾Õ·úVßê[}«oõ­¾Õ·úVßê[}«oõ­¾Õ·úVßê[ŸÚ%úÁ'þØ^5›D“Zºë€Àd``,P$µ´[°„À²B„!Ķ3)R)”TH©P=$Ì) X¼¼¬: -¢´¦PSö1ÀN ~ø`À8ààX`4³mËŽFâñè¶C‹¡Ãj>¬Žª)-+!‘pˆÇØ–E6“%›ÏÓÙbË–V7leÙò øÒ'›É“JeÈdòäó>J©Ð< üI3C·fGk„ü'é0~–@Øz >œ©U:ååIöÚk£Ç cðà ZÇðáý:´–þýk)+/ö¢†»àÐGŸ{¤2)ZšÛ¨_³‘… êYµj=«ë×3ÿí•4oéÀ— í;<Ü®MEsÁøê>øðqº4œ/W«ùÿŽ()IPSSÁä)c˜9s2Ó§c̘”—U‰„¾]Èà“G)/ ‰ Ì´ÜÎÁÛ¢D Çr´u‰¡ˆ’Ëähؼ‰¹s—ðÌÓ¯óâ óY¿¡×õÑ>ÃóÀïç€4× à8} ð»Ðъ뇖կ‡·Ã¦NÇ!‡Ìâàƒ'3sÖx*Êûk‚·"U'¾Ê…ÒdÕïT@l!B(l`£”%Pú2A!ñƒ¿Q,Ê"²¹^zñm~äU–-­gþüU´´¤ÚµYø°Ú``·À?øPŒ`F$^žu%p:ðà@ U;]õ¿~ýë'sé¥ç±ï¾ãIÄ»ñd#¾Ü‚T(•<.(ADÇò°-‰…@y6¾§p]—|>CgWmmí´´´ÑÑÙëeAøHÏAI”…)„hÆq$#F å°Ã§0e¿ÑÔÖ–±±q ÍM]qí„ ÇÚˆ~ Éù €6¡s—&_¾Fรý%À;:4›²lù2ÖoXHuõP|¿¥mw h„B‰%b{® íy¤ÓÝlÜØÄêÕ[X·~ õõͬ[ÛLssŠ®Î4Ýݬh”šÊbª«’ Û«£Fôc䈌3€j‰Å$Ž“&‹1qß¡ŒÓŸ‰“†q÷ÝÏòò‹KY»®ið+!©· š <}˜XÂgÖ„„·5Õꀳ€̘1–×^[Ž´(Å€»o?*®¿ñBÎ;÷(Š‹<\¿ðøØ¶BúÙ¬"•¾‘·æ¿Ã‚·×òÄóXÿλ®E …¡6² Ÿÿäi•vÈ~L›:Šý&§¶¦’¢¢Jl»ˆ¦æVzð5þð‡‡yõÕúД<¦?ÞÖç £ÿƒbö§”ø¶ñ°÷þKK~Ù¬Yã¹à‚S9þø#¸÷Þ'1œÀ·¬LÕ ,aŸ}ꨮNi,K⺊ö¶,K—®ãþûçrý¯ŸâÊ+æ±G—2o^#xÚIëÖq|°X£íöJ`Žû[ôw³¡jilÈØ¯ÌYkÝwß›<ûì67¶‹º$’UUL˜0Œ1ccY>óç¿0ʲÄD¥Ø¨Ïk±}îá3£D/ïcÀlàg¼áüó¿ÄñÇÊᇌëJ®¸ür~wósAƒ–¤g´¸ˆÝ}÷79ñÄø~–­[šyýÍÜø›‡yé…6ó·sÅk6õZ-oÑŽ[FK¥ghí+Òb?`¨ÆéÏÊÂ{™ù¹(W^~3gN£¦¦†úúþüçg¸á†ûhk!Ä¥Ô5ÀÆÆ1CõYÐÂKJ€³_ÊŠáòïŸÁ·¾u 3fŒÅqZfl;Æ_ÿúBÈ,9à eYLVŠªaê))‰1oÞ*~ö³»¹öÚ—XÿNMÐf-Ùsu¼þ¨׿k&Ø¢™"eHzn[ì|Þ¡aáµÀBýû 5#å˲D|ÃzßùÛßÞ$Þ@2eĈ!ì·ßú÷¯âå—’ËÉJ!ÄT­qê5X¨¡ø´j3Äó´ô|[®TŠÄ¾‡pÑE_å”S¢¢"Šô¶â« ¶m±ysŽK¿s3÷Þ7M„ŸiHöû–%N•ò]‚“‚F¥X¦Qºå:Šp‡í@ù^ø¡/`fËD$K€½ƒ-‹ÉR2Tk®ùñaœyÖ $’Å<ùä<®»î>.lDÑ ”º¸ßŠrú:zÕö§€øÂ ~ð=!Ä÷”"yÐAã¸êª 9餃(.ønJåPÚ¡K&â$wÿíõP ´óô¹'¥ú}'°T1ÿ§¥¿ËPµY-é)ýyJûiãÈjéÏïsÆá0bØÌWŠU@Nвç_X+Þyg5#G gê”Q >€•+7±eK{‰LÐ>Æ*Ã'Ø¡ØÓ ¼ÁPò`YâR¥Tâ°ÃöåÇ?þ&_üâ »7ß„Àr¶£(*‰±bÉzV­i‰èç±X;kEZ ׿h•×GHä.ãè6œ5Tø7¡Dæ×Ìïú†g¿^›‡õ@<µj–,mŽþéŽç?¾?3gM`ìè¬]»‰M íB°ŸfØu¡ÖØZhïáÄ%¿øŽe‰Ë¤TñÙ³§råUçqÈÁ“Qr3žÛ¦¿–•E‘G©Xy‰ Á.D?¬Ú ¬Ööøyàeíµ[š8ú ž2$Û$v¨<ã0A…}þ]È,a8»Xæû*gY¢J)Êzhž9¢S&eÔ¨6lÜÊÆåB0B›¨Mú¾do¹{Vý!¬ë[–¸BJU2eÒ~ù«Kùü¬±àoÆ÷Úz4´ Mª<–ðp"mmy^{}O>¹<<÷ÍÝ:„ÛjHPXÐÑm¨{SjÝûoÆÿfÅyÈ‚ï2„éÍG4ã-TŠ BPmYvÝãÏN8`$û—óÆ›õtwçë„`8ðŠfTË`ùi`€ðFNBüX)U;e¿¡üü——rÐ@mÅ÷ÚAx B¹(åb ËqX»®˜Ç%ßy8<ïàim”áÔ¥ o>m¨øB¢ËƒÂõõƲ@;„¸E} Ý*iYbÀk¯­‰–•D˜¾ÿF¬eÅŠM´·ç†Ð~Ë»ë÷H°õCð€ý…àZ¥pûí?ä°ÃöÃ’Mø~(%s U2@‰'Y½º™ë®{žŸüôÅÀžX¬QŠ¿huŸ3´aËM{Ýá?Ée2ƒo¼†„Œjgo‘R$"kôœWêK˜:y¶-xë­õø’qZkÌÕŽîvÉÞäބw‡?Gp nþÝ÷9îËs:ðÜ€øå¡” Ê ²tNœ%K·róÍ/ðÛ›ßBð¶&þ šà9î›7mö®*âìÍd„&ÁÑxD½”ªØ‰ˆá/½¸&Ú¿_)“' %•ʳzMS„ ¸ežöo"3í1@Ž_øà/±,ñ5¥ˆþì§§sæYÇSZœGºÍ:S—•Ci?J(ŸHQ’Å‹7óóÿ|‚?Þ±„hTàûÌîÔPpˆ¥‡aœIøÞjôvõ2™.Œíca˜*%%–ŘW^­wFªeÆô½Ø°±™-[»‹ ÊØ^К,Œœö( zý>pp¹R 8ìÐq\õËÔ?‚ŸßŠ’Ymó³ 2 ò ]œx„ÅK6sÝÿ<Ë][ã×uÕ ùõ5úa¦5|›2 \36ß:zó"ÃX§_{Íye˜6u(¥% 6lh"ö†h†~I3È=‰Âopm,fO÷}Å­·ü€Iû· ég¶sÈ•òÁ÷‰'Y¿±ƒŸ^ó$¾{¶-ð}õ¢&~ƒ>o—&~—aïMâïN«7g1¦mýr! ^´h“§ ¡¡1EKK· ŒÔ¾ÀFtU‘µ‡¨3„9Ù²Äô\ÎçÚŸ|ûÅöÛ‘~6vmó• ˆMÆHg|n¾éUîºg%–…ô}õ2ð#ûúÁµi§Ï$¾Ú͉IaH °T)®‚%-m)¹pñFN;y*¶mô×É®býL£{(#æ/¥*Ÿ1u'ú%J.¾×;Ê™éƒïâD!ëI~ó+ü꺹•, (´lÔDn× :ùèÙï F1‹xY)ÞóϯâˆCFqþÙÓˆä>Œ Ú9Ĭ=Hõ|Åq¬I^tuƒâ(·CÛýü6Ç•G)+‘ä¹gWqÙO‡çÚüY«}¥ ßnH¾éé«=D8̰n‹f‚ó„às!  |à£\XY‚–Íüóþed\Mð»4ÎïÒŸÙ%?ô‰Â~€j ˆ#¥ªó<ÉO®9‹sÎ9‚ACjij\Ç­·<Áõ×?Ak§‡fü›´6€ÚÝÀjà êæ;~(1rø¹.” r2J¹(•Ƕ}DRðøÝ+yiκð<Ï”i…±¾ê}¢}v» EßË8àjÛGû¾*¸ëÏW2ûèý)¯(fÅÒ…ÜxÃüõ¯shïö ¨%¸xMßkÈ:»ñ ›Ò¿?`ý䇧0lhËÊáùyZà¡|—hE‚†5-Ü{ï66fѱý3šà¾ê…ÿžB|³êIéPîjDZfyž´9x_®¹æ,¦MG")Xµl7üún¾}›üð; w Ã÷ÉìÎ à뛞lY¢NJÅôYã);H·+^éià'Q‹'žªç­… áyž!è ‘„wÙq¿½xŸ°ë_‚…*?IPÞ~‰°ÄPÏ“âß¾1›‹/9…Q#ª±£Y^z~¿¹ñîûçüðó€;è)m£'בwvSâ‡ê¿+¥JuðFŒ¬%êø¸ù–-p»ó¬ßÔES«‡öz7Ñ3œ1Ô½5I Ã,LÕÎ_2™ˆ‘ˆGhmO¡”r*pmvÐ×ÿ1Áj¦–\ >¤ŠÓO?œ¯}õpöÞg ª³ì<«Ö5ñ›ç¦ßÏŲRª•ÚÓŸk`a¨—.ð}üÞ®ÛùÜ[hà ½W¿@ªí‚#B›î§m^vüJJ!˜¦É™“FPׯ˜¨ã“˸ %Jj‡Ý“ˆD„ö”Kã–9W¢=ÿfz:k\ƒ©z[Iàà2`ꘑ˜>u4]]ixô Œk5›7ÅG MgfçÇÀ€7ºŽ‹¾ygœyeIðšÖc[¬Z×ÌÿünÿË|Gàyj=£äBâ‡ÝÈ)Ãd½g!«ómrøÇ…@‰2ÔW8ú*ª¤–à*çÐGĨ"è½+ÕGÑv†Q_êÉ'MVý•‰ ñ“Û> Áðň-H&¶ÝJð-­úkV¬ Œ@¨O&âM]8¯èp‚É%#.úúQ\pÞlö›4 ™nÁKµ¡oÌ«çªïßÍ‹ó¶â8Âs=õ ðW‚>A¥Õ}XÒVèé¿oQ‹S L*b®X¿ViBï¥/|¨&v©fˆíÔl‰m1xX?ªkJ©¨(&Yš žˆ‹E)*ŠQV’ ²´€“κ'x¾–èö<õpŸF'•öuBg¯àùÀ×òàB­ÂkµB‰ØÔTQUYBiY•ÅT”S^ž¤¨(IQQ‚ªÊb(§®µýÊ(+-"šˆb;¶-Âß/¨ÖU~黨´D)WÊ ¶W~0q3|%xníBé¨Nõh6BX¹Œ‡‡êx;AY°m„°õtÆíI£”ô»9rn¤K¬È™CI÷“óBè8¢Ÿñ³ÂŽäÈ/L†|ù-[±Š]^–§Ÿ\Ä)gßœÀ¢Ý—êqMüvÍLíFF/]æ}¤93Þe´,‹aCûó¹i#ØoÂ0ê†õ§¶µÕ%TV%).Žu,[€åo“\²i¼TJy¸Ê p{LÒTÊ¡)F¡T0?S‰@²…žÀÙCl_§|õý)}l—“Q,|ßG¦²x".‚,X­þmMaYúÏJiD!%ʳAf±„ÿqˆo‚K¥À©~¬‚P\~Ù‰œzêLÞo8~[~¦§š»º¸÷o¯ó­«ž ˆ/Ø*%÷Ìê.ÈèÖ3~¤qò!l¡gJÊž‡&¾f=EucUƒ0OèðU)£F©õ¿íÛDaé:b%Í‚°@YÀ)¶C™I>å“;eî£fzDA wp\¬eƒ+˹ìŠ8éä4°¯y=2ß] [;ùûß^ç»?~6̆¬—Š&‡‡H^XÂn&uÌF‘½£pâ @í¥Í@?_ú%‹–®‹-Zºn»q¤µÀÃè±2¼šª~Eô¯NRU#YdãÄm"¶ÀŽ("HldàJK=Wúe:ïo‹”¯žÖ†Æx7Ñq,,Ç hBlƒ!ü@Cy{2H…ïË Íì9àçŽ ¥^Óï ÁIJÁîÃùßøÇ=™XÄ%·i "ââ”BýÆ­ÜðßÏqÓ‹h[±JžþKZ2rF˜g<»{É1°ó?k`f°öô‡è÷ýõQ+ LAr+$î|tE”GWl;ÑçÆW³ÏÄþ \FEM‚²Ò%%Q*‹J“6ñ˜M4f[D#QG`[ G l0`Y UÀÈ‘ˆ@yÏúAò§7]+ƒXÂÆS‚ÖT_*lÛBõÁÛ‘BhY÷{‚Z"±(ŠÙÄ“"cúyõQ<}O;ÔÇêÚüYJÁ¹_;˜óÎ?ŠS†cùÝä6oÁ²=DB²dåþ÷Ž×¸éÎED"Bº®Z üƒ`²GXË`Ž›Ë|€çÃ2@B§=m-· Jj€¦¨R=¨Ý@}T (Qœ³¤96gIs¬·XT]‚J¨PÄ€ÚU•1ÊËã”$mŠ“¢Q‹ˆ#ˆ:9×Çu%ú'>´„"GôC_A$f“ÊúÌyc o.l&“òH&#Ú;0$]ÿr}ÈçµêW ÛTWÅ5¢”½GWP·W9‘¤EÔþP„G¥8ײÄ%RªAWÿàTN;ý`ÆŽªÆoÝL®»“HÂÊKæ-ÞÄßù'Ï-h!¸®šOP¾µLµÛPûÃ|b³ ãâ3˜·màéÍÓ²Bl Ü$©\¨^¥q„›'…ØAѪM™ÄªM™Èû_Œƒ§û¦Ž.å¢óöæK‡ ¢²$‚› ü…P5+ NÔÂCñèÓøÊ¥¯ÓÓ#ñÑÖ™_Ä—OMeM1%•±íÉ^@²ÐËíï8àÇçx¾*Ûg`-ßû¯ð…Ã÷a@¿bܦøéN"IEÞÎ1ïÍn¸þ9ž[Ђc‹¼ëªWt:w±f¬®€'ÿI¿7ñs3‚BfYTJÇ£!³8œÐ£\3Dµ>ÊôçÅZMÆõyñ©¶‡"eΛ+;ÿñ«Ö¸1åTMªBøåÊü(©°ã-9î~¬>$~'Aɺ"š…Û¼ }͵w>²1ùøS[ùâQu44¥ß/}+ xùàrÛ‡{žrŸ5Ž«®>ý§$©Rä6¯Czib% õxê±e\yÅS,oLãØÂ÷|õ¬F÷6Ä7Õ~þà{…¤ñ#–AT«@#˜‰‡ž­Î óÿCÆ +B³’4Á?öÏ®Ž%ð¤R½8z–ÖŒeÀ—„àÓ|OñÝoÇ)§|Ž)ûÖ!rdÛ›@æˆû´gRÌyñ.=óÖ>i—ç«g´Ío(@÷R†ÚßiÍ+&¨‚”¡™Åà ¬Ý S„Ì)`ÓFÚГjž; ì#•¢²µ%O>oNà½YÚøKð³’š¢ûŽ,çÙŠM4¶ùÕúæk¦Ë dª—”ux-¯Kɶ”WÅEÛ1m¿ø®ãXg{žpݵgrÂ)0¨*†êlÂM·£ü‰ A:—â®»çóÿþ"-AŽ!'÷é?¬] cüîäñ?ñ:D§»fJŠ0 «Õ‹Xáͱ \IDAT9r»€¸VÃìèïÂ#ª5À¥ØŒ^]ßEªÃ£¸Ì!/@)@"lŸ—$J&Ž/§n`‚ƶîb‚²WʘlA5Pa‚ËÖ¿ëkÏ{püžUh'çFë+®'+fî=o|÷dŽ>r"UÅ6nÇfü\ ¡²$Ê7wðèãËùö¿¿&˜¶(ÅcÓ½;õ36 7{kXÝ)ëýÒÁªÆèm·-ÑKÚÔÔ½Ýê¥À"ªo8»>ë©çí“EmY)–%4vB¾¯ð}½G•R7°˜7—t£±Œ‚V¨pÆ_®—t°éɇù,A5ñáazØ`’´61G Á¥ fºžŒÍÚ{(¿ºùì;¦–„Èã¶¶#ó]™%Þߦá~ÿ§·ùé o…¿×¦ ([í{!®¿Ó%ÿ£„ì(æ4À+0!…Ìb|VXL1ö  ó­ÕÍ+×v3zx9;Šï{[*܌ǠI>·_-¯¾ÑÌÖvo$A1érz¦{fÙñÄìPó„QJƒf˜bãuèï|SÎSŠq—_|gœ}(cGÖ ºÛñ2H/ƒeåˆU(V­jâwÌç·,kµvö^5˜³í[ÕÝ÷¸Ö)|-A·Ý[ ÜŽ>³Œ¢X& YAÅ’e­:£Žê’~Þѱ™…ÀÏJDµÍÌÉ5ÔÖDØÚîEuy×ÃZ­úl?ر·åj+‚.âÍ:+šÒ1yp¶m‰Ó|©ªn¸ö4N üQ3£I|³pÓý8 =™v´bš:^;iD%ÇV“ˆ‚ïåŒÔ°Â÷$‘„C,aμê7¤C‡rŽvÜìèÍ Ø”Æε,ñ=¥§Ö%gLç{WÅÄQUÐÕ‰—êÂ÷3(7K¢ÔÇŽºÜÿÈJ~}ó|ž|µ9<voK§Î",$¾èc€b„¶y0þé9-âôã†S]Gº¹ Àd[êX¡$ÔÔ–°ª>ÅÛKZÈyªFKñ ÃAõwà›„¾PVkY–¸HJÕ¿„7üòÎ;gƒ+üöü\%³/KQ™ •Ïp÷ý+¸þÖ·yea'š°Ó T›‘Ð ‰ßÛPªɲvCâ›NY°(°ËiÞ^ÔD>¶ÓSnõV¬X¸Y³™9µ–DR ÕùÁ~c}« ò… ¬Þ¸Ñ¶ÅyRªŠpÇÿ~…3¾2š·£ ßËÛÎx’Õ‚L>Ã]÷.ç?o˜Ï˺Ãkÿ A‹V‡&t8‹Ð$¾[5íªç»ó½»ja€3y‚ZºÁ ÒrØÊ“ÊÍ몡°žl$ƒj‹¨_›aѪv¤bAÝü;ôL÷ ¢ Ð<¸AX"%ΉGMâö[ÎâàÏÇÉtáuv dåeÁÏQT!hØÜÉoþ¸˜ÿ¸~1m.M)¿7Š8Rñ3FÜï³óÛÌ ákU ø]+ÅnÎ[têyʦæTôˆ‡0bPGºHF>‰ŸÊSTWB<îð« ttû¡™kD&²æï/‚Ÿ£Qˆo?¸òKì3ªÙц— m¥—EÈÉ*ØÜÔÅî^ÁÕ7-#Œ^k×ĉžqófùVšwqìjâqbw! 3Öžô)wܺ€éS¥¶(Ž×–G!té™"^Ë'—ÎáyÛnx´&rÚH:ùZBû×ÁYJ%í7þâ+|õô™TÄ<òMMH¯+ØgÈÏį°X¾²…›îXÎoïÙÖ¿J{ú‹èÙLªÍPù¡Ã§zÖv¶‰ßÙ³…–ÌhœÝU˜{ì&µ'?˜¸|S§sÔ¬:† H‚—Gz.EqE„N_qçõüâ¶e¬iØV×ÿª–ÊÐù 7nÜ §)EdÂÈÜ|ý¹œ~Êþ© ¹Ö&”ŸFÈ *ŸÆ²ò$*-–­nåÆÛ—qó}ÛPÖk€g¡æ…ö>]ãïÊùöý üV Qœ`W”V .vcfK4Ñ"Ø to(fù3_`H…ÂòrÄÊo/lã¿þ°†§_i¢©S†ý?tÖ¤‰¾Eåh‚®œ§ÌžÂUWÏÄIuøM›ñÒ Ò Ó(7ƒmç‰$%¯¼µ•k³ˆÇ綇×ùð¿spéiÉ6OçwQŒ/zAy]¸ú«Ö„B Ùš¬Ýy¿Q€ l%hRygüRö5' O?ÛÈåÿ½Ç_i'Sh(÷6Š… …­úõl- ý.¹àp~øÃÙ{ü¼Æx¹Ž`£ /ƒt³8¶‡]$yåí&~yã›Ûfÿàñ ˆÖêï*toGįÖ~Éd#ú¹ƒ`vb1»éŒ Â\Bè d´4>wÛ=+5¦”W_oà–»V°©u[9Ø+: [­Õ]§Æ÷k ºp¢#”ó‹gsÎùQ$òdÖ­ vñRAãJ>C,áá9>?ÝÀ•¿XÌŠ†Lˆ'<¡™«IKx߇Юٟ·+Ð=Å»÷T*%˜5p€í-"$Q¥¿#v÷½ƒÃ”rLû)‚6îË 2ÌÕE0!ãOú{Q‚ZÆ­ZÚ¯˜>¡Žo_|$_9}&ª»ÜÖ­ËCy©`ã /C$êB\òìÜ-Ì>ÿu 0éI-Ea¢©0Ì+haÞ%6ßÄ4|Íøÿœ¯ŸZ3ýˆ`ëÛb}ýÝÎnnÂ*¥P¢Šu‚f,ðe K‚BÊ¿kì?ÜMk“–ÌcïCŠ¢6'=‘ï~ëö0kÙT9¤—/ ~<áÑžËsïƒëùÞO—‡Ó®‚áKa‡k`ú½qÈ]øœ ‰ÿ#mçcÆ÷Õö¿F3ƒ»»›³z'Ü;ªÃ—ëôgûtÊÞCPµ\¬‰Ð Æ…À·Ä°ºŽýÂ.¹ð`öÚ»–ÜÚø^KäÁM£ü,ÊÏMztäsÜÿàF¾ù‹mÄïP²w¿&¶)ùf6ÏÛ…!žùœÂÐ6I0eäÛl?o¡ «8ÂöÀþž²}|Xw– m*Œ‡žÐ*x3ÁˆK -‰É{×pѹŸç´ö£8f‘ÙÜôªø|/‡9âE’–TŽ?Þ·Ž«n\þö&é?gÄôa*×,6ñ toWIêøÚæ_F0YÌ4)àÀSúš[äd÷„ýLS×ÿNqvX]îõ»?ðsíùrÈÌÁ|ÿ¼ƒ8jöüî ©†,+~ååP~6(ß*†­©·Ü¶šŸÜ¹K€TÛ$çi+tüüŠþ½Lñslßœ¹«T¿0´ŒEÐò}‚!S±‚ï¾®ïAѳ!æv¥æÎbL EÐSêî£Û\¬%¿xÂÈjN=v_.:&•IȬߊò³XVÔ#s(ß%õijÉpÍõ«¸ëÙ¢~ÞcA¯äÛôÔ˜ÐnŽÐ¥ó!œ½ø‡W3-Ðõ´1°‘`€Vzj#3†Ö’ìæFìh…³ÿl¶ïòÙ;T‡î?Šï\rE Ȭߌ”9,•?Èäá>›’7Vtr׳-ÒÄ¿Mcæ¶/ßê­?oW"£aùZ]ŒHÄ#D"Ùœ‡ëú(ÅV¬Ô×Ý‹¿¢`÷ß5¬P ˜õƒ!Ò®·4·óÆÂ ¼<·žl*E$*né¦Qä ¤?§§•x¸~p¥ð…ØV‰Óçk3ˆÞ[‹ÖÎm©Ž3…àW:1nd?†ªÆ±mòy¥èÖÚëÍ^ˆŸ+ðYÔž¸}|á ëøV1!Ø{Ö΢¿ü}>SGW0ph ;ƒr3H7¥7™ÈoÛhÊŠDÄ"r™¿:cu¶`² ˜ ¹€ ü‚ðtgäóÍž‰Á:oqº€Ÿ*8tÔ*gú¤a ìWA:eÍú´wÿg‚l_îõ¶A–2ë=y…R’Ð7õš~¿7¼ç±•ô+µ1Ž`ÞþÀ¶±¹ë?G3kbµåŽôÉf}|W¢„ÔHq‚HQœÍ-Š·Vå˜;¿{žØÈÊMÝáïuÔø¿I°Ë2 <…I Þ$ÛlHU;0 äôö0CÁç v ±.½àfÍAMy1Ë–7píoŸdCc¶%|©îaûYBfŸá{F,{:˜LN/-ÑïöÓññAèÉãW׫fŸ‘ jŠ,¤’x9ßS(åà8â¥Iˆ&ÙÚa±hm–7¶òò[[yüåM&γ‘ d Á4•p‚ö^œ.iHwÄ@4ËR¶#´É£AýIpâ¹Ó9ð€ÑŒRMWg†'ž]Ä/nz@Ù–XæKŽ“Éòî>ÃÂÆØO(ô–Ãyáü_KÕÑ:)4~›DÔ“Ž¨dÄð8•q+ئ#nN •…K¨(ÊÑÒm±¶1Çòú.¯igÁâ&žx¹Þ¼†ŒÎQ4iuÜ`8]f©FîúÔ:ÖÒ3@€£÷ˬ#÷fʤ! Pí¾½ŽÿÙƒ¬\× ³„x]*õO‚J$¥ ‰Ÿ?âZ Ð‘ ™ ©µAèEO$Øg&Á$4öãÄC*™:¡”½Å\%ž°qónFàùV,A¼¼'ZD*oÓ’R45å¨ß˜¢~};+ëÛ˜·h V5^“kØã0Gö>ÆMçqp¬’ƒÂø 3q£Ç  ¢4NWw†Uk›yâ©…üöö—plÑèùêy O¿CÏÄ–ÐÛO÷ï'êÓ¤ B“×Ú ì (Ófá`’–@@pÆaåsh5ãÆÓ¿4JiÂÁr"(߯sm¤Š`Å’8‰$N$NÞŠÑ™U´·»lÞšbãÖ4ÍiZZR47¥imK³¥)Í–Í)2]ߢb`ŒÚÚjûSÕ¯„ÚšRú (cø rê†TRQQD$jÑÖ‘bñ‚wøÇ½¯ñÇ–„÷—µ ¥âIíƒtÑÓalN1½}õYb€BMÖ†s‹’c Òa:Á¨øá³8~z N+gä^ÅÔVÇT§²,F$泆¥²¢ˆh+GØ1”o‘õ,2yI&'Éf}ÒyEÊ•d=…T „Eı)Ž;$“ŠJâ•ĈÆ„ïÓÒ™gíÖnÞY³™—ŸYÈ­ÿXfj’¥ío” …Î^·Pfzªø¬1¼{;ÓALê×p8U¹Æ ¦ ˜ª`TOBEpèÄ$3&–2rhuý“ ©I0 "N²$Љ œ–í ¬XQ°£`GôámN„@YJXX¾„¼K®ÛeSS7õ›:X½¶…¥ 6ñнKyÇ€¼-Á©xUKüZzöHñîB”‰"òÃ<,>ÅŒ`h¡9°*|Ѧa/Í c O<žlcsÄ!eŒÝ«˜ššE¥1E¢‡DÔ!fÛXv[X`G‚yÄÂÆ·l\_‘õ ãI2—tG–Ž­)/ݬێè:„[£ñŒ%ú}ÊpôÒl¿ùc¾Þý0å§™ µ9Ò. ÅÂ#ü,Ü£V›…ñÆ©Jž¼NXT´©ªŠR”p°#Kô À–๊lÆ¥½-KËF—U½]¤ ­« JÛ–¡´²ý|@“ð9Üñù³„>í Pè„è§9û0Ôáv7ÂÙªuæ­Ž`Bj?ýïJz Q¢ú+ @/°¬e`ÃaŒ¾Çû0¼ ãù z†b&Œó˜ ½ÛˆÓ; ‰%Üeû=s˜”3þ¯PÝÃÇHH}– p™X¼S`"LaÍ4M‰c0‘9 &0GàÈ^¤7œ`’3ˆïÌcN8ùD›K?Ë À5–AÐB áüŸõ óü&¡ŒÍ¶µ«»†t{ïMFùÄëú ÷ÄMá4SsèeoŸ¦t{c€ÐN{’ßÛ!)Øã—T|ÒÇïï4 Þÿ/Ÿ[˜æím™ªÛœWlš3†ß%…¦} ðñŸÕG}†ê~Ö·úVßê[}«oõ­¾Õ·úVßê[}«oõ­¾Õ·úVßê[}«o}œõÿIƒ%f±zI”IEND®B`‚ezquake-3.6.6/dist/linux/io.github.ezQuake.48.png000066400000000000000000000257161477060523000215500ustar00rootroot00000000000000‰PNG  IHDR00Wù‡|iCCPicc(‘}‘=HÃ@Å_SŪ Š:d¨NDEµ E¨j…VL.ý‚& IŠ‹£àZpðc±êà⬫ƒ« ~€¸¸:)ºH‰ÿK -b=8îÇ»{»w€P-2Íj4Ý6±¨˜J¯Š¯èD?º1„€Ì,cN’âh9¾îáãë]„gµ>÷çèQ3|"ñ,3L›xƒxzÓ68ï‡X^V‰Ï‰ÇLº ñ#×ß8ç\xfÈL&æ‰CÄb®‰•&fyS#ž"«šNùBÊc•óg­Xfõ{ò3úÊ2×i#†E,A‚eP„­:)´mátý¹rÀȱ€4È®ü~wke''¼¤`hqœ c¨UçûØqj'€ÿ¸ÒþR˜ù$½ÒÐÂG@ï6pqÝД=àrx2dSv%?M!›ÞÏè›Ò@ß-еæõVßÇ餮â7ÀÁ!0š£ìõï4÷öï™z?*ârŠ~VÛ cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“ pHYs.#.#x¥?vtIMEã  )ú "IDAThÞí™y”Tõ•Ç?¿÷^í][ïô44Ý´ ,Bkƒ1A‚cÐÁ(.G‚g2È€¢¨ÄÑäD%&n˜GgTÔQÇ„(𦠲v½ÑÕku×úê7¼× (Ú™9‡ï9uªNªßïÞß½÷{¿÷÷à".â"þ_Cü/î­ó]:7?ÿŸtÀd…ÀHEQJl6Kª¦*–„”‰h4ŒÅôCÀv`/p ˆš6žÕ©¿…`‚ÍfSP=edéÁùy™îœÜ%##»ÝŠ®ëtvvsìh«Ü¿ÿx_M;úƒ¯‹Çõµ@éȸ¤¥@³Ïç~áž…7^9wîúq¹ªH ëq‚½!‚ÁѨŽÝnGÓl?ÞÁï×UË·ßÞÔP[{è7ºžX§;¢]ÃU`RVVêR·Û5ñóÏëÇä{(大÷;jÙ²å55õ±ú#í¡¶¶îP(‹y=N[vv²«lÔ`ûÄËK”‰oÍ[»¶jùoljØ©NœïX›ËÊ W,[6/ÏåÒ¸ûî§w47w½3uêÈÅóçOð®[W­ª:|¬±±k·®Ë=@ÐD; ÷ûcÆŽ+(™ûÝ+’ZZºX½zCMCC` PÅ—¤Ô7‚¢pï”)cUUÏH=þšìézNÎûÞø0ðSMSÞ·Û-[…à'À`P Â(î4Œ´ËŠ€ËúýŽªïßZ]±b®:4³¨4÷ýá„)Qù•W–ÿËÏV-H¾lŒ›„Þ‚$ȶmÇ´ÍŸ9šHÈçâñÄï€O@#º ú€^ hö…Ãñ꺺†˜ª*Ã&M,ÊojìÚÕ®6ÿ{Þ¢0µ´´ á“MOÊDäW2Ö÷cÙÕþ |ü±i2%ÅYÜ ä^ÀQ{_•¾Âü(‚&M*j›3{´t»m¯š‘:/5œ“’âÙøê¿.‘zhŒõŸ­˜wŠñIWACl6í£›n+ Rk ßäDNEAQaæ-·ýC…ÅaéF$z¨ÞÞÀ“«6·tvF^ÂèªMy­` ¤Z4õ“+G^và ãHö; ÒæÐÕWMU|Ii*‰h3}Ñ/¾´]?x¨ã ºk6O ðôG{ÜΕóçkú5ÓË´çŸ/\[wô]à³8àKö»¯»vz©Õªô õ>¶T7°~ã¡ýÀ:ó䃧ÿ¥ºæ °ßÎÏË|ô¾Å³K‹‹3X¹ò߃›ªö½¼ ÔļÃsF^ZžE"ÒCBFùè‡eKkßÇ4Ù¡.r€IÀfÓ±sI'/‚»Ç_Z¼xÅC7¦išÎÒ¥k:jjë¼ :R£Fge¤x$2ÞK{g/ÕÛ›z0ò¾¿³öcð"PažêWQhžÃn}jάŠG~¹ú®´ÞÞvîY´º¥¦¶þyàuó€@ä\# a°€ðcðyeQßna‰ÍM]iènÃhPpb¤K×ãœk±¨®¶@Ï\#r–}0!=Í÷ØíßÿÖä…wU*n¨æá½Wìxç‹À‡2»CýU#PÌÅ]m= ÈW%ÇçufÛ¶L«EKMñ¹ÒÜ»;=Íå»fJ2Öñ(6M™îJí Ëû5ÍD(:áó: ¾;{|ñî= ѵÿ±µ€9S-Ø€ÙËsYúO×ûÎŒáüêåõ<ùÌÆ}­m½Ïc(ÒSS  LBfeøò JÍv»™·Ã?´0Ù‘áÕr²¼¤¥$‘ä²âóXq9N›ŽC ¢‡»‰ù6^úédω.u’P= 8¨¤$ÛÉÍ´³hÉþ>RTUY4ùÊÒE+–^Ÿ\6ÂÃO½%ŸûeÕŽ¾¾Ø³À3²=œV?p)°PQÄàüÁiŽÉ•ebty6ÅC’ÉͰ㲃…8"CÊ2Bʉx =F&b uTE0|ƒ’;(FªËDˆp¤©‡Î–žÅ·cÅìïL˜óÀ}3¬g˜W®M¬ù·šªp8þøøÈÆu¹c.nÂ|I#ÔÌjŽ›!RÌïê1èÎb²5—öX\·÷³Ñ†à²Ï‡®’åBê1¥Û°YDSOŸþ p¢Ÿ%ˆaݾ+p3p»™©V‹º`Úä²»¼o¦w\‰‹­;jY²rcoÕ¶¦7W€ýæ¾¢ñõ³Pÿµ†þ—‚¦S§¿,ÝÑ-ŸnL›>!]1±eÉ Íw×ìé´b4™°¹®ŠAãT‡ÃúÔü¿¿|ÆÒ{®Ò¥ÆØø_[YöÄ';þÜö ð¦ùßç8u}•B”føúïlbæÂ1@QUõš•ƒ’Z ·SáHSØõéŽÀ <å·€š›å¹íþ{+'Ü·`¬šêìáÝõ5,}¼ªe×¾ŽÕÝõ°iü_ͽqàl@¨£+zù%%©E#òCµZÅÆÍ­Î`_ü•$·”ÌYòIJiù7_›'Ôx€WÞÝÉCOm«?Ð|ø­™¶§dÀ9Ù1‹Du»ª*S¯ž˜¡YEÕª°~s›»±5¼Ø¤kšúðô©eKž~xfJå¨$ÂÁf^x­Ž•ÏîÚ×t"ü ðŒÁ¾ ¾HUgA6ýŸ€ý¨@±ÏmÛüÚÓ²úõ 9{ZzÔiW?ļ'zÜŽu‹î˜¯ß²\Ævß+[?¹A>pç°„7I«Á(êÀÇ×Ë?ð2ð†HüÆè×; J†x;GºÛ„!ئ òsý»W­œ%;v-—ÑwÊ£¸NÞ1'OwØ”MÀM“šçkï~ŒQ'‹ÌH š¹ÈBàNà àñ crÛÞ_3OöÕýP†«çɃ¿›&oš‘Sñ†2-¨¯£†ÝÀ£tÿ6p2P†óÅV‹úë¹×•†j{›Œì¸Sömž%÷¾U!gMI kªx ¸È7#÷uŒÏQ„ø¹„€Àõ@.`èH)1¨2 $[-ꨊqƒìÅÙ½çBï¡vo+þ;p"®ËM:¾™shP&ìŠ"*Ò““þY1µµ=Ø ë‰ç€ÝŒðÅÖ)ˆDczcͮƲD¼/mø 5L¦_%=Åînï–å®xŠ®Ë Fˆpf‰ 0 {œ×íX\1®ðÁ!y©£Ž6vééüø'/ äù¼Õ0Šr¼Ýª,œ6Î{ÕßNuL*u’ä´s¤ÍÊï«CrÖ@ûží»Z}ÛCáØg2¹#3mš6,3Ã3¾¬$çÒQ¥9©--]|°qOÝñ–®ÕÀ&NÎz¿·ç ý7i.`003+Å2§¢<©äú+SìãG&“‘žBXº8Ø,Ùùy7ûë»b'Ú#¡ÎÎhØå²jiIά Ÿ-3Ó+Ž6u²þOû:ªkê? Gâo`ÎN› .Äóc²ó`<¹ÒãT§åÚKÊ‹’2Æôiyy~¼Þ$T‹hÂB(.†%íÛêZâÕ»šZ÷ ìì ÅÖ[1ÆÈvÎ «/ÔŽþhØ1è/ ƒ:Ë­Qà°(—ê·YU»BÄã2ÖÝïîè'"ÑD½4˜æ †œnǨ™3ê£ ýˆI˜é¿pš¯$óÝŠA§:†z agÿ-uÈ4<ñeü­ÐïŒj­rR²KN*߸éÐ']ÄE\Äñ?ÞU´ a(Í\eXIfII* €€†Œž¦(1 ®2¼i‡ÐüCreated with GIMPvvGIMP 2.10.122019:09:23 13:29:47†’âCreated with GIMPbhôÿØÿàJFIFÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ùþŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š+¾ð7Ãï@.c“dÛ {°þø=V“i+°8•-¥“î¦_Sè?<=£€×é/ßýbzú9õ®ÒÓÃÚ=‡ü{YìÇý5süϽrÏN%rŸÚxwT¾ÿ{mÿöÑGó>Õ¤žñ+Œ®Ÿûoÿ_g+mQA”ާ‹Ç®ˆ9O‹%ðGˆ \Éaÿ]£ÿâ«&m2î)$[Xuþµ÷+ÞGÞ“ðŠAiz„H7Äž”,zê‡Ê|*ÊÊpF)+ìm_ῆõ˜Y^ÓËcü^d‡Ó¶áé^Câo€÷ÖnÒé3yÐŽÛUqÓûÒg©5Ñ ]9hO+<^й©i—ZUÑ·»dƒ¶à{ØŸQTë¥;ˆ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢µ4-÷ÄŠÙY&çlç1Á=Èô4›¶¬ 6¶³^Ü¥½ºo•óµrp3ßé^‡uð‡W±ðÖ±(Ý*ìòâùY6žwûç¥{g€þiރΕ<ËÖûÍ– ›ÈèÕÛ]D—4ò­çŸé^}lrŒ­Ô…+Õ¾ ø¬éZÿötób)¿Õ¦ßE‘ ^港øu¼1â[?n"M»zåsÝ«Îò{ ¤¹¶“dÉ­€q‘ƒÁã¡®É%VžIÙŸr]ÞAg’i6 ï‚•y®·ñ¿Ãšs4vr}ªUÆWl‰éÜÇî*ùãXñn¹¯Æ#Ôï|õ”‹éýÐ=b× <¹oQܧ>Ç«êß5ûÔac؉èwG&:zÇì:ão<â{üý§Só3ÿL#É}«š¢»c‡¥ ¢MÙn]Nòs™&ÝÿúT–úΡjA†ãiì)þb¨QZr®Â;;⇋tÙŪ|ƒªýž.z÷Ùï^… þФž^«eòÿÏ_4{öXþ‚¼2ŠÊxjSÝìú¯í> ø¡hÂ)|ÉÆ>m³ sÿ¼;Ç_ uÌe æÙŸãʮ޶âO-\e¥ÜöW)snû&LílŒŒt>ƽwÂ?쿳|XÞlþ^1·»7Ý3×hëýkN¥x;®ÃºgÑ^™ã߇+¥Æ5=÷– Û¦Üm_âbO$ö¯3®¨MM]Õ‚Š(«¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠP;úPÝJ¸ÖµXtëEÝ<Û¶ŒÑK¤€×Öžð=Ÿƒ4¤@7Ýœï~Gñ68ÜGF¬/„þ‹Ã@¿ºþ&}ó¸ög£÷XW£3çšññØ¿³XC¨æ~j–¥©Ûi6mwvû"\s‚{ØQQêz¥¶‘`÷·¶Æx'©°=ȯ—<ñïÅ×­6Û©€wp½ö‚9ZóðØyâgä\šˆß‰ž3ƒÆ:êKk-àÎÉ7Ÿr <`©®"Š+éiÁSŠŒvG;w (¢¬Š( Š( Š( Š( çÀþ=ŸÃäi÷­æigª` Ÿyº…,rÄSüyá8ô÷þÖÓß}”½°FÜm^ç'’{WÒºß xl”éZÏ¦ËøyxÜßÂ2rÄw¬'{H|üÆŸFrTVž¹¦/Qxå8Çä©õ¬ÊÙ;«¡QLŠ( Š( Š( Š( ½CàÇ„—\ñ _Ü.mí1Æ~öôv ŽEyx8¯±ü ¡CᯠÛXÆ0Wvzÿ}©þõrã+{:~¥A]¸è:TEÔÎpƒ©ô¦³W˜|fñcèÚöU¤»ngûÇnqµ£aÔОõ󑌫ÕP]N—h«žiñWÇóø—U}>ØíÓáÆ8~Uº‚0Ë^mEõ4©F”#ÐånîáEV‚ (¢€ (¢€ (¢€ (¢€ (¢€ *Ö§]j·ñYYEæÜˉ¸.p <’@kèo |1Ѽk¹âó.âÎÖù,‡„rC/jÊ­hÓZî4®ršŸ€n®~ØêWñùz•·™¸d½8QѶýÜv¯¯Jø‰ñ>ëÄ× ifÛ,WxÕ7þ;þV¤_4E?¾Ÿ?ðþ’VOEu+ÙÈùÊŠúž×á†í—îÿ¿ƒÿg­;oønÎE‘m÷²ôùäû7½c,Æ’)Q“(|+ÑåÑ|oã|Ùéÿ=ПZ뙩YÀPª0£ ¨‰Í|ö&·´›—s²œ,¬y§Ç ©"ðå¼i÷NìŸøuó­}‰®h¶ž!ÓMèù{7µÊ|{aö 5Q…ùøüb¨XØÎª„ öm+³À¨¢Šï2 (¢€ (­=A½ñðµ²sw;”c‚{‘èi6’»½¼·S¬0®é88ï^ëðóàê*&§®®gdyÿ}O(ÿNÕ×x᎟á(ÅÅÊù×Ï×–^›‡g#£Tß~#Úø:Ð<ûù?ÕC’¹Á\ó´ŽžkÍ­‹”åìèîkY^F—‹ük¦x/K_0í“þYEóâ\ó´ÿ{<×Ë~(ñF¡â­HÝß¾q÷ òð òÎvŠ¥«k7úÝã]ê3ù÷ Õö*ö¢€:T+§†T½ç¬‰”¯°QEÔ@QEP8¢Šî<=ñ = ‡HûF;ý§g¯û'Ö»ýãÅ%n´²¨èßigÏ_HþŸxE„ðôçº)I£ê­3ã‡u'òãºÚþž\‡×ýjècñF™t2·_ù ¿Â¾4¢¸ç–ÆOÝ“Fг]µþÚNVlÿÀMH$V+çð¯Œmµ«éåÆˆêÞ±–SˆµÔ“-b!Øúp½75 ´ÂæÎ;üYý*EùœZñ[}N¥f?¶IÀõ¥Ÿßý+þ-xÃW³Ö’ÂÎo"Î~TmÙT=×#šóâíp ïü„ŸüMz´2º•iªœÉ\æž!'k]y‰ýÿÒ—ÎOïþ•ò/ü%úïüÿäÿâi§ÅšÙë{ÿ“ü+¡e5õ•Øúð0aòþä?›ý п?󊼿Løâ6åd[Íè3”ò£à÷Ûï[>4ñü~0ÑáIbò®£ÝòîÝÕ—¾Ð:-U j5ã'ª VŒâÑçÔQE{§ QEzÏ€>Ï­¸¼Ö—Ê´òÏ!·}áÕ\‚EJ‘¦¯!¤ÞÇ-࿇ú—‹çåÛÏO”önÅ긯¥ü3á]7Â6Ii§ÇóŒå÷7©= ?Þ5£iom§Z k4òâ^§$÷ÏrkË>"üU‹G’M'IýåÈǘüŸq‡ „‚{×WS?gLéŒäl|Bø—oáx~Ëf<ëÙ:WØ{¡×ÍW××:•ä—wry“ÉÏ´ à8t£–gšF’FÜÍÔã¨ëÒÃa£F:jû˜NnL(¢Šé (¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Šú£áþ²ºß„`˜p~n?í£Aé]89¯ø¬÷Zl‡ ›6{çÌcÛú×±¸ÚÄWÇcèû*ò]V„¹ #øÙ£†J5Îwdçþ¹¯¯ô¯¯¬üM¥&¹áÙì˜d¸ÿ¾Áõ•ò•Ô mpð·UÇòÍ{Y=~z!µÔ±Ÿ'õB¾‡×Ò¾±Y–æ>ëgùâ¾8¯{ø=âÇÕ4¹4Kˆñ%®6IŸõ›šG<1ŒzלaÜ骫¦þ‡^§,¹_SÓbG cÓ½|éñOÃrhž$yGú‰±³ðDÏrzšöŸøÃNð•¾û£æ\»Ì;¯p¤tl×Ïž-ñ…÷‹/„÷G¿up¼d(<…ÝǓҬª{D½Ó\\ ÕºœåQ_Jyá]—‚þj^1“tOö{^óa_ûßø«Šê|ð‚MaP×—gÿ<ºîûËÕȽ٠;e¶¶O.è¹'¾{ûšó±xèÒ\°ÜÞ•'©¡èo…ôä²Ó£Ú«Ÿ›s¤Ÿâ'ûƬÞ^Ácl×WM¶%ÇbsÎ;}j®­«ZèöMyzØqÆ<ØQ_9xãÇ—~,º(—h:'⾎•zuUàîy²„£º*ÑE©!EPE¯¤øgWÖÀ:}§œ1×ÔCI´•ØÒ¹‘ZúW‡¯5T2Æ»bÇ}{dwèÖ ´ÿ [>§âK¼¢ã å·ËÉ^¨Ç?y{W3âo›Æ6z:yküYÝ¿¡èË‘‚ `«s»SûÊåKYÖ¦–Ö²yí¸¼pF:õ›EºV!…QLŠ( Š( Š( Š( Š( Š( Š( ‡C† 6Šìô?‰ZÞ‘'ïdûL]“j&:÷Ú}JôÍ3âÖ‹}µ.—+gåùϯ¢{W€Q^}|³YÝ«?#¢ž*¤4¹õµ–¿cvƒÈ¸àöØÞþ¢­M§Xj ‰àÜ}ì?‘ö¯‘-îeµ˜K íqÐànõ¹üCjžLüMp<ž¤î§÷\Œ—½Ýõ?…Ô¤ó<Œ?®ù=¿Ûö®~çàu£çìòlÿ€“üä¯;‹ân»á¥Ü}v ÿÙ*oøZšàèߢñ´(cá§1›Ðë×à-Îü›ü¯§’?øåjAðGL€föl]­ý$úWšÏñ;ÄRŒ%×–}|¸ÏþÉYW>4ñÚŸPÞo&1ü–·T±²Þi¹R]i?€<O1äc'÷ÿNÄÿz°¶·ptEXtCommentCreated with GIMPW%tEXtdate:create2019-09-23T11:29:49+00:00—E6%tEXtdate:modify2019-09-23T11:29:49+00:00sÊýŠtEXtexif:BitsPerSample8, 8, 8í>'!tEXtexif:DateTime2019:09:23 13:29:47'¦©&tEXtexif:ExifOffset208‘Ñ~à'tEXtexif:ImageDescriptionCreated with GIMPdÒ%tEXtexif:ImageLength128AtõtEXtexif:ImageWidth128’Ó8tEXtexif:SoftwareGIMP 2.10.12Ã3´-$tEXtexif:thumbnail:BitsPerSample8, 8, 8 ôStEXtexif:thumbnail:Compression6ùepWtEXtexif:thumbnail:ImageLength256Pp0tEXtexif:thumbnail:ImageWidth256ˆú(tEXtexif:thumbnail:JPEGInterchangeFormat360ýp¬÷/tEXtexif:thumbnail:JPEGInterchangeFormatLength6132Q%ú*tEXtexif:thumbnail:PhotometricInterpretation6Š tEXtexif:thumbnail:SamplesPerPixel3á×ÍZttEXtexif:UserComment0, 0, 0, 0, 0, 0, 0, 0, 67, 114, 101, 97, 116, 101, 100, 32, 119, 105, 116, 104, 32, 71, 73, 77, 80_:6tEXticc:copyrightPublic Domain¶‘1["tEXticc:descriptionGIMP built-in sRGBLgAtEXticc:manufacturerGIMPLžÊtEXticc:modelsRGB[`ICIEND®B`‚ezquake-3.6.6/dist/linux/io.github.ezQuake.64.png000066400000000000000000000311331477060523000215340ustar00rootroot00000000000000‰PNG  IHDR@@ªiqÞ|iCCPicc(‘}‘=HÃ@Å_SŪ Š:d¨NDEµ E¨j…VL.ý‚& IŠ‹£àZpðc±êà⬫ƒ« ~€¸¸:)ºH‰ÿK -b=8îÇ»{»w€P-2Íj4Ý6±¨˜J¯Š¯èD?º1„€Ì,cN’âh9¾îáãë]„gµ>÷çèQ3|"ñ,3L›xƒxzÓ68ï‡X^V‰Ï‰ÇLº ñ#×ß8ç\xfÈL&æ‰CÄb®‰•&fyS#ž"«šNùBÊc•óg­Xfõ{ò3úÊ2×i#†E,A‚eP„­:)´mátý¹rÀȱ€4È®ü~wke''¼¤`hqœ c¨UçûØqj'€ÿ¸ÒþR˜ù$½ÒÐÂG@ï6pqÝД=àrx2dSv%?M!›ÞÏè›Ò@ß-еæõVßÇ餮â7ÀÁ!0š£ìõï4÷öï™z?*ârŠ~VÛ cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“ pHYs.#.#x¥?vtIMEã  J–ׯIDATxÚíšy|Uյǿg¸óy0!$ aRDe¤ZÑ:´µu¨õUûŠå)”–ÚÖªOÔÖ¾ª¯“v°àðjkQ‘I D C L™s“ÜÜ›;œ{ÎÙïs®‰T¨h@ßç±>Ÿý9Üܳ×o­½†ßÚpRNÊI9)'åÿ¯HŸõ>Å^Å@|©òYku ûTí%ŸØŸGP?PT•@à±g  Ø ¼4½€në$ø˜òy@²W0˜ír9ƾa€7/˜áóä(Á ‡CE× ¢½1Z[B¢»;ÒÛÝm ‡{ëtÝX¼ìR6æÿd`†ª*ß)(Èž\3¶2ûÌi㥑#O¡´4›¼|?>¿U•‘eK-Ý0HÄ´·÷P¿»…uëßcå+ôººý»c±äÓÀÀ.,o18Š7|V¨Àh  X \7n܈ŷÿèßä©S*ÈÈTP”$–! ÀDÓ b±$±Þ8±˜†¢*~|þÕÅþ!V­ÜНëÖÕmK&õÿžÂ|É6r¢%¸2ðÞ ªjYWWϽ@}<(991LA7R„BvílaëÖý¼WÛLcc—hm ‘H\WTEÊÍ 8Š‹³åÊ…LšTÉùT3}z•²bÅšq>ºòžýûÛÇ¿öcÅã³@Fß«®.ûâ7^æmllá¾ûûb*eÞ]_pû3ϬšRU}.»w7ðÌ3[yëͽfmmS¤»;Ö’J™€ +àÉÐòdY ºËªªŠ²gÍ©~aÞTjjgÜ}÷Sߨ°aO©ü¨Ãr)ýD[<ä&;Ê3gN0W¯þ¹0ô¿‹ÚÚŸ‰êê’$ppwEEvÕU“DeenLQ¤÷Ç€Û€/3ÉÀx` ÖªNf×Ê µ£G%—-»B<÷Ü"1gÎSU••öç¼–úwŽ1SœNõùó§OY¶ìiüØ„ÙAv–Lkk·òöÚ=N!XÙÙÙ›][ÛØ Åž‚'×÷C@+º°Îu±ŸÀ`›ljk‹v¼óÎ΢H$‘1þ4É0ô¡ ­ƒ Cl±ÿÖÄŒ'¢¯ªò—Î?{Ò]w~ae ºÞŽ0{PÕ$¡Î8/½XçÑ4ã à¯À«À»ý”î°•Ž`¹~«HÚÏx¿³AÚ®if]]]cFKK×  /«¤4mXþŽ!x×þÇ€ÁÀ²9çœ6ãÞ{®¡l0è©4^_]Ïw¾jìmèÜ ¼„UØ4ݶU{lÅ4¬³›¶Üá˰¯õ§¨=t(älié>{v•3ŽU4·ôèÀfìs¼°ÎÛmãÇ—ùþû¾)WWzÐS!0{¤xé•Ý,ZüRjó–æWß;m¥Ã¶…’%}Aúƒ‘²|¿¥¥ÇÝÕÕ[=qB™«¹9<<MÖcLÇ€y9ÙïýôŽk³Î‚¡·ƒA’5V¾VÏ­‹^Nm¿ãEଢ¥ÝÞp²Ÿ¥?©˜ý€ˆ;[[#¹†!FýMÍábÓo=ò@k¸ŠeYºá²ËÎÊ¿àÜQ˜©N„Ñ‹,¥Ø²­•ï/}ͬÛZü؃•ÞÂX.< ]ž B+vì¬ÝÞ¸;77À¨êâ Àå@` "‘¤ ÌVV0åk_9 Ÿ+Š©‡‘EœöÎ(wܹš-[[Þþ„å†iåÓ–H6¨àÜ€ß]xþù5Ì¿d¢êPåyÀÐ.„P¨*Ò/»ìL_ͨ| ­ Œ8†¢óè·òòÊ=­À ¬€×FŸåZùt ®¨,¹dÁ‚¹îáóyòÉõ¦èÔ@NÏËÏÞœ±8¤(ºÞ‹,§xwˆ×ɤñ<°+½/åÁªrg)Šüƒ©SGMºãÇ_•µd„E·ýÑ\·±a£ü  4^àüiSª²GVfah]`ÆÐIñÔ_¶S·3´XE_n?n¾ð{^y匲 .bçŽ=,Yò'ý½÷ß¶Ý @‘Ïç7çœ1½#‘@ ¥5Ê«¯ï3u]¬Á za¬èœV^\öŠÙ?ÿ¤™`pKAnÆ5·Üriðšk§³ò•u,½ýq­~Oû+X±§;ö $PY—1h̨Ð#˜FÕa°­¶•={»BÀúò¼ÞOA7pp&p?V‹ü‘ÝÛ¿xÿx`鸱§œ÷ƒÅ—;f̬dùò—¸ë?Ÿlì~XŽ•Zí}$_~JAVI¾ 3#‰!¼»¥™Î®ä¬¶4]äô·npVsó °Ë>àÎu»?š5c\ÍíK¯ ¢<À/~ù4Ëî)ÒÓ“øà/XýB+}õ†ø´¤]× ‘ÅEA5à="E<¦±cg'º!öb;1þÙúsÜ.Ç@$’)V,I|Œw ¸:';°ðËWÎ(ùàv%øé]OðЯׄ¢ÑäràY +ëDèWo|€‹¨ô9@>äÊ’Tª(r¡$K™~¯kÌ“‡âVS1 I$:]ᤲ€s°\/ÍÙI@UN¶ÿòùŸîß¼e¶qó^§ýN¹Ÿ’% ,,?¥øêïÜ<Ïwõ•“ wµ°äŽ¿ñ§ÇßmŽÅS¿Vbõm@´ß»é€ÜOÑL{³%@0ÄéP‡8j‰Ë©æäçe²²ü~—×åôy\Ž¢ü€”Ÿ$p2dPYSK1a„™S#à–øÒ¼S$yºnÈgI’C )ÂÖOÊÉò©sÏ«‘'ŒÂßÚ¶ì¿8Í¡Ê?¼ìÚùç¸óeÀE@•$I%Y™ÞҢ¬Üìì@ à÷x~ZYQȰ¡ùääÉÏõ‘éÁëqàrʸªb"I)d3‘cjQ„Ð@H&\>÷ΛU¡xIöƒìÉ„ŒÇ-“áhj%•Ò>αóy½®ï_ @p30D–e¥jx)sÏ›@Uõ *Ês(ÈóðJ8% ajˆTÓŒ L‘4BGÝLH!D Dú}E‚<dIN€¤ƒ¤ÂÔ1{S­Éb«ŽæyÀ ù9Áo_wí9y7]?‚Lµë¶pëí/˜ïl8¸øV»Ûf+ç(̰ŠU•ý0Ñ4Íê­ïí¼{oKžÏ¥f”Ëò––f(£*²)šAF†“lŸL¦_Å㵬ïP²$ÂD‘@:;½ ¬HÄ5¤žD’â(n !@U ç ‹8ˆ£²×•Àâ‘Uƒ.½uÁ<—\0'a^z­–%w¬Ô·Ö¶­µ•ß¶|'V =j=¡b¥5@­"³·7‘ÙÛ›È7 ŠÝN9ßåvd©ªð¹Õ@ažÇ•›íR‡ìq)8‹°Ÿ2!—‹f•âVe„­ü®}îÿÝÑÖŠÒ×{¦À4Áé¥ñ£³¥ÓN-@–Ž¸Ç³œª²tÚÔê©K]¬L›®µòôË[Yz×jmWC÷kXån[ù®~ÊUÒ£¦t€MömÂJQž„fzZ2ä„ ÿ@S4ÈÆ*9Ó#«ÀÊ7›jFŽÈô֔ѓ’*±~[?»/œHoaEá´;¦«=×Ëo4ŽRÒ0ª;¢A_vXAùK€gÑóÏ(_xó9 +‰÷äOlâ®Þ‰j‹½ü™¾§›c(±Uûƒ {ÉX¶ÿ0ÒqØ3ýo§½TûóÅaíGû&*jʳ@¤@”—ú(Ìu*ûãë±S +¥•U“)³|×¾ž¥Xi ¤àúÒ¬¾ù997|åt²\QzÂí<ø‡ üì¡M‘Έö4ð.pŽ©¹Rûm$ýbƒ¾@$Ñ—•ÃJÿ?ý³ŽžhªþíçŸQŒ )CýTWdö5Æ«€±RR¼ß;U¬óº +#¥€rà[5£_°xÁ\÷Üå¸EˆŽÎ6îÿõúCm(Ú›Z<‡Ež¶õSþ˜ú‡E‰õwU>âQ³Ý,ÍÆ¦ÙÙÁU2ç¬!JÐ ¦®ãõª„ºS¬ÙØîÐ ñ p>²3íyš D0TE¾á¬3*¦ßÿÓK3O-BÕÛijoäŽÖò›åuͽ1ýàyú˜ã‡8ÀÑ€I¯þ›¥fNX’Q^êÆÐ“H¦I0ÃÅëëÚíÚN –žéïi|ί_wÕÄáw.ž%U•8 bocKï]Ëògö4$’Ư°¨ó&ûo¢!ÇO>Jd@‹'ôI~«|Æ”BCÃ4t‚jwGÕ­uÝVÆéµ-–vEÀÂüÿ·Ýtvî-×M$Ï­ÞÍ{õM,¾ûž]u¨NÓÅÃÀ[¶òéêî¨Óß €øz"É3Ïž\â,ÊR0.¸<.V½Ý’Kï ô¹ì8`YÍèAWÞ³tž÷ª¹å¸0˜aÖÕbÁO6ˆÕëÛ7‚‡±2S3¡òÁpãö˜Ó¥3—HRÔ°•z­áPOíÓ/ïCGA‘!KP ›”.\X”‚ÕE^èr¨œ;sô¼_Ý{…ãÂi%(‰¦Ñͪu |ûÇõÛ:ßðK¬ê®ÉV>Mš|Ëîær†Ã¬FjQI?öÆŸg‹ÏÏ×^\,2ýJ'Öd𽉅Ÿ»éæëg‰ý›ïÚÎ%"¾åzÝt™X¾l¢¨ìÕ°²ÆåÀ¬æÌ‹åiÇ*鬖‡5pí®ÃjüTÒîU­*Ò«gžš/&É6T…À€³©Ào—dEö“ù¢«î'"¹}¡ˆmºZô¬¿Hü|ñhQ”ëŠcå÷‹±H’ô¡Oã±A`V~˜û:ФâÁ5ÛÜX9úoXÓŸbE‘nž8¦tê’ïÌRgV‚”hÆHuO†yø‰zîûÃÞhWDÿ Ÿ²À9LÀ-ÀXÕîØøxÌ å·±(0V~Ÿâv©ÿ~á¬á•Kn:“ƒ¼˜‘F„&ïáË÷ð_+tõô+€¿óáçåx[²må¿U¹>lµˆ0±¬Õƒ5ùq_ÏËòÞrýUón¼²†|¯Ži#B$á®ßïáwÏ4·DãæcXSâF¬4¡o*üI¤B’¸MBºÂ‹Åý¾;JŠö—ô]¾ÖÙU\Ì›?·šB¿ÖÓŽÐ{EœúƒÝ<¹ªÍˆÆÍuÀj¬Hÿ‘ôÕ1ˆ˜éq;ýî3z¢ %žHmÆš²ˆæñ¾Þ|[GWlÄŽ]-¥#†:)ÎL"´(ÂHàq š÷5% {ãfž°HŒƒX.z¬Ê»ñŠ,}wØàÜE“Ç–JjºÜŠÖ !ªBÛ°:FpA¬œBìÚרS¸nkÛ U1”òR·ÃÄ­Àä1Œ«Îv«ª³2Ô­ŸKcL!²±\?}±é£nʶÒÅÀ4I’nÌËñßzÁìÑsfœ><°g»ùM›S)ãa¬sßFßDJÀ‰¹'˜Þd«Ë»"èS.™}ZFÁ×/È•&W{ð9UdÅMÄð±e¯É‹k;X_ۑع·óP¤WÛ•Ôô:¬€šž$ËØÄ­$Iå>ctiqÖðIã‡fŸ>i˜ Exòoï&këš×˜B<ƇY¢þ©vQRÁ †,Zýt`þ |ÇégÔ2æMË’¦ŒÉ$7èÃå ¢á§%,³ã@‚ìèdÛ®ꌧººñîîdR•e);×ãÎÎõ»f9&ŒÄ !Ùjìâ¹W¶›¯½¹«¹;«Ú‡PÓ–ÿаåDÞMSï^¬ùB pš³2ýÊıÃ}yFÔÉ#3¨,Ë`pQ®`qM!’ˆ$!¦²‚Ï¥"LAc{/[j[xkÓsí¦ý¡Î®ø:aEûmô£éaÈ?•Ï'úªlšXqaEj?VoP ŒUeÆúÜÊð²WVE™×‘t)ù9.‚~7ªÃ$«¤ ‰Îîm=šhmŽÛv„âm=ÉýZÊÜŠÕ/l§ï¬‡éc Ä‘6ôYHšErby„‹ÿËÃêJ±ÊßÕ¤žñ+Œ®Ÿûoÿ_g+mQA”ާ‹Ç®ˆ9O‹%ðGˆ \Éaÿ]£ÿâ«&m2î)$[Xuþµ÷+ÞGÞ“ðŠAiz„H7Äž”,zê‡Ê|*ÊÊpF)+ìm_ῆõ˜Y^ÓËcü^d‡Ó¶áé^Câo€÷ÖnÒé3yÐŽÛUqÓûÒg©5Ñ ]9hO+<^й©i—ZUÑ·»dƒ¶à{ØŸQTë¥;ˆ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢µ4-÷ÄŠÙY&çlç1Á=Èô4›¶¬ 6¶³^Ü¥½ºo•óµrp3ßé^‡uð‡W±ðÖ±(Ý*ìòâùY6žwûç¥{g€þiރΕ<ËÖûÍ– ›ÈèÕÛ]D—4ò­çŸé^}lrŒ­Ô…+Õ¾ ø¬éZÿötób)¿Õ¦ßE‘ ^港øu¼1â[?n"M»zåsÝ«Îò{ ¤¹¶“dÉ­€q‘ƒÁã¡®É%VžIÙŸr]ÞAg’i6 ï‚•y®·ñ¿Ãšs4vr}ªUÆWl‰éÜÇî*ùãXñn¹¯Æ#Ôï|õ”‹éýÐ=b× <¹oQܧ>Ç«êß5ûÔac؉èwG&:zÇì:ão<â{üý§Só3ÿL#É}«š¢»c‡¥ ¢MÙn]Nòs™&ÝÿúT–úΡjA†ãiì)þb¨QZr®Â;;⇋tÙŪ|ƒªýž.z÷Ùï^… þФž^«eòÿÏ_4{öXþ‚¼2ŠÊxjSÝìú¯í> ø¡hÂ)|ÉÆ>m³ sÿ¼;Ç_ uÌe æÙŸãʮ޶âO-\e¥ÜöW)snû&LílŒŒt>ƽwÂ?쿳|XÞlþ^1·»7Ý3×hëýkN¥x;®ÃºgÑ^™ã߇+¥Æ5=÷– Û¦Üm_âbO$ö¯3®¨MM]Õ‚Š(«¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠP;úPÝJ¸ÖµXtëEÝ<Û¶ŒÑK¤€×Öžð=Ÿƒ4¤@7Ýœï~Gñ68ÜGF¬/„þ‹Ã@¿ºþ&}ó¸ög£÷XW£3çšññØ¿³XC¨æ~j–¥©Ûi6mwvû"\s‚{ØQQêz¥¶‘`÷·¶Æx'©°=ȯ—<ñïÅ×­6Û©€wp½ö‚9ZóðØyâgä\šˆß‰ž3ƒÆ:êKk-àÎÉ7Ÿr <`©®"Š+éiÁSŠŒvG;w (¢¬Š( Š( Š( Š( çÀþ=ŸÃäi÷­æigª` Ÿyº…,rÄSüyá8ô÷þÖÓß}”½°FÜm^ç'’{WÒºß xl”éZÏ¦ËøyxÜßÂ2rÄw¬'{H|üÆŸFrTVž¹¦/Qxå8Çä©õ¬ÊÙ;«¡QLŠ( Š( Š( Š( ½CàÇ„—\ñ _Ü.mí1Æ~öôv ŽEyx8¯±ü ¡CᯠÛXÆ0Wvzÿ}©þõrã+{:~¥A]¸è:TEÔÎpƒ©ô¦³W˜|fñcèÚöU¤»ngûÇnqµ£aÔОõ󑌫ÕP]N—h«žiñWÇóø—U}>ØíÓáÆ8~Uº‚0Ë^mEõ4©F”#ÐånîáEV‚ (¢€ (¢€ (¢€ (¢€ (¢€ *Ö§]j·ñYYEæÜˉ¸.p <’@kèo |1Ѽk¹âó.âÎÖù,‡„rC/jÊ­hÓZî4®ršŸ€n®~ØêWñùz•·™¸d½8QѶýÜv¯¯Jø‰ñ>ëÄ× ifÛ,WxÕ7þ;þV¤_4E?¾Ÿ?ðþ’VOEu+ÙÈùÊŠúž×á†í—îÿ¿ƒÿg­;oønÎE‘m÷²ôùäû7½c,Æ’)Q“(|+ÑåÑ|oã|Ùéÿ=ПZ뙩YÀPª0£ ¨‰Í|ö&·´›—s²œ,¬y§Ç ©"ðå¼i÷NìŸøuó­}‰®h¶ž!ÓMèù{7µÊ|{aö 5Q…ùøüb¨XØÎª„ öm+³À¨¢Šï2 (¢€ (­=A½ñðµ²sw;”c‚{‘èi6’»½¼·S¬0®é88ï^ëðóàê*&§®®gdyÿ}O(ÿNÕ×x᎟á(ÅÅÊù×Ï×–^›‡g#£Tß~#Úø:Ð<ûù?ÕC’¹Á\ó´ŽžkÍ­‹”åìèîkY^F—‹ük¦x/K_0í“þYEóâ\ó´ÿ{<×Ë~(ñF¡â­HÝß¾q÷ òð òÎvŠ¥«k7úÝã]ê3ù÷ Õö*ö¢€:T+§†T½ç¬‰”¯°QEÔ@QEP8¢Šî<=ñ = ‡HûF;ý§g¯û'Ö»ýãÅ%n´²¨èßigÏ_HþŸxE„ðôçº)I£ê­3ã‡u'òãºÚþž\‡×ýjècñF™t2·_ù ¿Â¾4¢¸ç–ÆOÝ“Fг]µþÚNVlÿÀMH$V+çð¯Œmµ«éåÆˆêÞ±–SˆµÔ“-b!Øúp½75 ´ÂæÎ;üYý*EùœZñ[}N¥f?¶IÀõ¥Ÿßý+þ-xÃW³Ö’ÂÎo"Î~TmÙT=×#šóâíp ïü„ŸüMz´2º•iªœÉ\æž!'k]y‰ýÿÒ—ÎOïþ•ò/ü%úïüÿäÿâi§ÅšÙë{ÿ“ü+¡e5õ•Øúð0aòþä?›ý п?󊼿Løâ6åd[Íè3”ò£à÷Ûï[>4ñü~0ÑáIbò®£ÝòîÝÕ—¾Ð:-U j5ã'ª VŒâÑçÔQE{§ QEzÏ€>Ï­¸¼Ö—Ê´òÏ!·}áÕ\‚EJ‘¦¯!¤ÞÇ-࿇ú—‹çåÛÏO”önÅ긯¥ü3á]7Â6Ii§ÇóŒå÷7©= ?Þ5£iom§Z k4òâ^§$÷ÏrkË>"üU‹G’M'IýåÈǘüŸq‡ „‚{×WS?gLéŒäl|Bø—oáx~Ëf<ëÙ:WØ{¡×ÍW××:•ä—wry“ÉÏ´ à8t£–gšF’FÜÍÔã¨ëÒÃa£F:jû˜NnL(¢Šé (¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Šú£áþ²ºß„`˜p~n?í£Aé]89¯ø¬÷Zl‡ ›6{çÌcÛú×±¸ÚÄWÇcèû*ò]V„¹ #øÙ£†J5Îwdçþ¹¯¯ô¯¯¬üM¥&¹áÙì˜d¸ÿ¾Áõ•ò•Ô mpð·UÇòÍ{Y=~z!µÔ±Ÿ'õB¾‡×Ò¾±Y–æ>ëgùâ¾8¯{ø=âÇÕ4¹4Kˆñ%®6IŸõ›šG<1ŒzלaÜ骫¦þ‡^§,¹_SÓbG cÓ½|éñOÃrhž$yGú‰±³ðDÏrzšöŸøÃNð•¾û£æ\»Ì;¯p¤tl×Ïž-ñ…÷‹/„÷G¿up¼d(<…ÝǓҬª{D½Ó\\ ÕºœåQ_Jyá]—‚þj^1“tOö{^óa_ûßø«Šê|ð‚MaP×—gÿ<ºîûËÕȽ٠;e¶¶O.è¹'¾{ûšó±xèÒ\°ÜÞ•'©¡èo…ôä²Ó£Ú«Ÿ›s¤Ÿâ'ûƬÞ^Ácl×WM¶%ÇbsÎ;}j®­«ZèöMyzØqÆ<ØQ_9xãÇ—~,º(—h:'⾎•zuUàîy²„£º*ÑE©!EPE¯¤øgWÖÀ:}§œ1×ÔCI´•ØÒ¹‘ZúW‡¯5T2Æ»bÇ}{dwèÖ ´ÿ [>§âK¼¢ã å·ËÉ^¨Ç?y{W3âo›Æ6z:yküYÝ¿¡èË‘‚ `«s»SûÊåKYÖ¦–Ö²yí¸¼pF:õ›EºV!…QLŠ( Š( Š( Š( Š( Š( Š( ‡C† 6Šìô?‰ZÞ‘'ïdûL]“j&:÷Ú}JôÍ3âÖ‹}µ.—+gåùϯ¢{W€Q^}|³YÝ«?#¢ž*¤4¹õµ–¿cvƒÈ¸àöØÞþ¢­M§Xj ‰àÜ}ì?‘ö¯‘-îeµ˜K íqÐànõ¹üCjžLüMp<ž¤î§÷\Œ—½Ýõ?…Ô¤ó<Œ?®ù=¿Ûö®~çàu£çìòlÿ€“üä¯;‹ân»á¥Ü}v ÿÙ*oøZšàèߢñ´(cá§1›Ðë×à-Îü›ü¯§’?øåjAðGL€föl]­ý$úWšÏñ;ÄRŒ%×–}|¸ÏþÉYW>4ñÚŸPÞo&1ü–·T±²Þi¹R]i?€<O1äc'÷ÿNÄÿz°¶·ptEXtCommentCreated with GIMPW%tEXtdate:create2019-09-23T11:29:49+00:00—E6%tEXtdate:modify2019-09-23T11:29:49+00:00sÊýŠtEXtexif:BitsPerSample8, 8, 8í>'!tEXtexif:DateTime2019:09:23 13:29:47'¦©&tEXtexif:ExifOffset208‘Ñ~à'tEXtexif:ImageDescriptionCreated with GIMPdÒ%tEXtexif:ImageLength128AtõtEXtexif:ImageWidth128’Ó8tEXtexif:SoftwareGIMP 2.10.12Ã3´-$tEXtexif:thumbnail:BitsPerSample8, 8, 8 ôStEXtexif:thumbnail:Compression6ùepWtEXtexif:thumbnail:ImageLength256Pp0tEXtexif:thumbnail:ImageWidth256ˆú(tEXtexif:thumbnail:JPEGInterchangeFormat360ýp¬÷/tEXtexif:thumbnail:JPEGInterchangeFormatLength6132Q%ú*tEXtexif:thumbnail:PhotometricInterpretation6Š tEXtexif:thumbnail:SamplesPerPixel3á×ÍZttEXtexif:UserComment0, 0, 0, 0, 0, 0, 0, 0, 67, 114, 101, 97, 116, 101, 100, 32, 119, 105, 116, 104, 32, 71, 73, 77, 80_:6tEXticc:copyrightPublic Domain¶‘1["tEXticc:descriptionGIMP built-in sRGBLgAtEXticc:manufacturerGIMPLžÊtEXticc:modelsRGB[`ICIEND®B`‚ezquake-3.6.6/dist/linux/io.github.ezQuake.appdata.xml000066400000000000000000000071271477060523000227370ustar00rootroot00000000000000 io.github.ezQuake ezQuake a modern QuakeWorld client focused on competitive online play CC0-1.0 GPL-2.0 ezQuake team ezquake @ github https://ezquake.github.io/ https://github.com/ezQuake/ezquake-source https://ezquake.github.io/manual.html https://www.quakeworld.nu/forum io.github.ezQuake.desktop

Welcome to the home of ezQuake, a modern QuakeWorld client focused on competitive online play. Combining the features of modern QuakeWorld® clients, ezQuake makes QuakeWorld® easier to start and play. The immortal first person shooter Quake® in a brand new skin with superb graphics and extremely fast gameplay.

  • Modern Graphics: Particle explosions, shaft beam, gunshots, nails, rocket and grenade trails, blood, and others, MD3 models, fog, water effects, killing spree messages, rain
  • Modern competitive gaming features: Fullbright skins, forcing team/enemy colors, advanced weapon handling, teamplay messages, auto game recording, automated screenshots and console logging
  • Graphics customization: Customize your HUD, colors of walls and liquids, turn superfluous graphics effects off, change world textures, crosshair, sky picture, console background, game font
  • Independent Physics: Get the smoothest experience possible without being limited by server or network settings
  • Integrated Server Browser: Easy searching and filtering of online servers
  • Enhanced demo/QTV playback: View recorded games from multiple points of view, watch action on radar, all player stats in a handy table, autotrack the strongest player

Commercial data files are required to run the supported games. These can be aquired though a multitude of sources. See the manual for more info on this.

https://ezquake.github.io/screenshots/armor_battle.png Battle for armor https://ezquake.github.io/screenshots/bloom.jpg Bloom effect https://ezquake.github.io/screenshots/shambler_cutf_bluefog.jpg Special effects moderate moderate moderate intense intense
ezquake-3.6.6/dist/linux/io.github.ezQuake.desktop000066400000000000000000000004411477060523000221670ustar00rootroot00000000000000[Desktop Entry] Comment=A modern QuakeWorld client focused on competitive online play Categories=Game;Shooter; Exec=ezquake.sh Icon=io.github.ezQuake Name=ezQuake StartupNotify=true PrefersNonDefaultGPU=true Terminal=false Type=Application Keywords=quake;first;person;shooter;multiplayer; ezquake-3.6.6/dist/macOS/000077500000000000000000000000001477060523000151445ustar00rootroot00000000000000ezquake-3.6.6/dist/macOS/MacOSXBundleInfo.plist.in000066400000000000000000000015701477060523000216710ustar00rootroot00000000000000 CFBundleIconFile ezquake.icns CFBundleDocumentTypes CFBundleTypeExtensions mvd qwd dem CFBundleTypeIconFile ezquake.icns CFBundleTypeName Quake demo CFBundleTypeRole Viewer CFBundleURLTypes CFBundleURLName QW CFBundleURLSchemes qw NSHighResolutionCapable ezquake-3.6.6/dist/macOS/ezquake.entitlements.plist000066400000000000000000000010421477060523000223750ustar00rootroot00000000000000 com.apple.security.app-sandbox com.apple.security.device.audio-input com.apple.security.network.client com.apple.security.network.server com.apple.security.files.user-selected.read-write com.apple.security.files.bookmarks.app-scope ezquake-3.6.6/dist/macOS/ezquake.icns000066400000000000000000001370011477060523000174710ustar00rootroot00000000000000icns¾ic08½ù‰PNG  IHDR\r¨fsRGB®Îé pHYs  šœ@IDATxì½w”Uוî;Oå\TAQ@„P@ ¡œ%Ë–lÉ’å–lËVhûÚÝý^qÇxoŒ÷ß½}íÛîk·cn'µÝ¶ìvj[ÑB %r.2EQPP•ë}¿µÏ<ìSQ !iOøj…½ö sÍ9WØëìm–P„ $H8p á@„ $H8p á@„ $H8p á@„ $H8p á@„ $H8p á@„ $H8p á@„ $H8p á@„ $H8p á@„ $H8p á@„ $H8p á@„ $H8p á@„ $H8p á@„§©Óžc’a“çÀéþ“/6¹ãt0>ábÂwÃdðTä…O”þÝpþÿ.‹Lnÿˆq ®Üq¿³!W?šRsÝÓø}¤íõ€\7ñ8.sŸ_#œPŒý™»”xœ4RÔ£ÉJ9Pú”õhyïé=‡©¼ûÝÇõ÷þÈ‘3í#×ð¤Á§….?®`yýrõëD{\¥=®ßm'$ò`rÒa\ˆk=Áù½<ܸ?ä£çÄ;è£×ú¤Å'ÃdÅó0y L(µ+q§ÇßÿqG#W`¿î÷ºëñq—²œâu#Žû|©áF‚x7ÕýXeqú[ìE£’Fœ¸B¹"FyP¿/ˆtžÖãû‡¹E,H£Pn±€ ¸†Læ§ý„QRÐ%t§Ñ.·C8”vã×Rf% u&?êä†vxqã~ÚN®}(h ŽüP4,iÄ sÀeÀ…ß•Eø=%Œ+‹‚Y„— (t¹P!”¦ÝAr«…ªt˜ëE‚+<÷¢¤n(pQhÐó£ðp@Ø/´ {…8\÷&mœ¼}^&×h——G;ãívþ¸Ë5'óðÆ7âS餢§.² ½Ç¹Ë5€‚8q …eDGÉQðZ¡N¨‰ù‡ÆÂÞ•ÞËST /ÏÃîöW2êAœÏ 0(z“°[Ø!4[ÒØ&·Y8(`@˜UF†ú;yûÜõ6{= ;üÂH:³?I*}Bˆ÷¹ .Jü®O½Ê”iûpEÇ)ŒP~Ý1({¥P"0Ò¿Wä3ƒ}*£€‹QÀ€õBƒ€qØ#8ÑnÀì…™üÁÀÀ WzçÂÓû5E}°ˆ$ôÑâ€÷9BËèíM<~\„Ûãå #$JÌô}˜0N˜,œ›ö£ü(:Fò2¢Ð῞¿¥”¢OÉrsRòç„0q¡ÔG&QòÕ†K)éaoŸbÝ«?½=\'D´ Ef°ZxGX%¬6 ,XF0; Î7Œäyàzmå DÜŽhDB-xŸã2ÊA(èO(ÁXe?O˜.Œ†¬íYÃc>jÅ…—©;köÁÂTaš0%z¹(Dœ¸7#Gyy¹V\\º°0ߊ ­°¸ÀÊÊŠlР2>¼Êª«*¬¼¼ÌÊJŠ­¤¬Ä 0ùùR|)žŒ@^¾åæ¥ @ouuv[gW§õª¶]=R~€CmíÖÖvPFàµí?h»÷í·Æ]Ív …ø;t(Bû¡CÖÚvÈzÂl!^í,?O¶‹ŒîFãÀ¬€öÑnx‡ÑÄ…w¾ÿ oƸ1ˆó”ëg%e:]R©ÓÅJW~°ÊA°QðÙÂuÊ?Z`Ï&÷•Š‹‹¬vØ`;z¸?Bþj:t>Ôjj¤ôƒ«l¿´D Ÿ_¨©n4õÇÕÈ1Õ›vÑ8Ť¤Cá?z5PÝ×«é¿ C_Ÿ–=ÝÖ#Gfš ìÛ×j{›÷Ycc³mÚ¸Ó6nØb+W‚Û»ï€ Á@L³PhŸ`þ(Ìv \ƒ˜ ° ¹Pƒ€Ÿøinœú‡ã×Þ7?MèƒÏþw4e%ÞÑ5» ¦ø(ýù#þQ7í 4:ÕH^3¤Ê©¶ú‘Õ6nÜ=r¸ ­lC‡ÕXUU©Fú2+¯¨ÐTž=5€a u»C¨Ž‡]¼ŠOó¼IýE–xo>ù¡“š-ôµZãîÛµ½Ù¶mk”1Øf«ÖnµÍ›÷ØÖ-;mç®=¶sÇžcÍ ØH\&¼),ÞÖfż“}4öWçµy‡nô =ú‡’§4¥?¬'.†\q@^ëQ:üWñz"¡þÂ{áDHNP/|\xB8G”¯xvéËÊŠm’Fú™3§Ú…3'ËhcÇŒ¶üüAåQ(䜽3¡¯ÝzSlÒ¡äÈ{T|äÏVàèÑž’„”\ƒ»‡¯Kk¤àQ¸ót Ï ý¶ _™@:Gf‘æq™§9)=i,€ OuîÐRa‹-]ºÎþòâ›ûÊR[³jkØ8ììÀ…Râü&#ð a®°A`߀4Ìp)º?ÜÄóÊ®´nz¯)^™÷ºì¤¼Sç€÷šáˆ†Ýì<¹†¹ 1âgZ;VÀ<*Àc8Fûë®»Ô®¾z¦7e¢Ud•U%VQŽlcCPkŸÆS$KåN©¼6é´ÁÆ *ùwÂïUŽ®óÿ°±ðêif û£™½Fõ£9÷Q..Íq×ý„¹ßmžûUýëÕ¿=>`zO^¹©Å¨ÍäO…Á»Ï:ô˜q÷îý¶mûv[¾|½4w™ýé¿YÓnþ#ëÇè¿\ø“Àfá&bÅ´ˆFà xíÆ@Þ@‡ì1ï“ gúàp©wò¾C˜âVªðXa–0G`sçö¤ã,ɽ<ǯ.† a­=~,ÖÙ„-oêlúùu6ª~ˆUTY·ÎðñÐ!f8®·Ê*:ö¥\¸ÅGpŸsËŽëΖ‹ò_!ŒŽEŒR× Û¦¨, ŒÁÛBµÀHe›6í°gŸ_`“¦Œ°)çpFHëlÖØh\Ð5´‘Ñ^`ç_J“Çz><`Te ™'1ƒ^«mßÙb[¶´ØÖÍÍš]ìÓã¶½ÖÐТ{ŒôÃ(¿OîþMí5Å?9Št%û_ÒŒ¡eßAÓ¾ž­XµÃÊ´‘YU]bÕÕeB© ©)Õ!¦*›8®Ö† dcF×ÚØ±ƒµP)#BPÚÐ%ƒ’§ƒM•vëÍ—XýˆZûÓ¬öÌ3‹í7×éw µ ÕÈw·€!`ÙÅlž³÷‚qÆÚÀÂTF¹A÷½¥Ä¼·ü>ÑÒ:ññɃQÿ.áAQ!Ê?°©¬,ÕTú¦Ô @/ß%Â\¡Q@ ·‹–u‚íÙÓf/Ï]f7\{ ÀÔ0¢¦¤ä¬ï£Ñ—ßñi#p8ô“§ G•5•ÖÑÜNÎëj·ût o—­ZµK»ë;mÅŠFkØ´Çšš†itlc¢G‘¦GŠCZÂþ@¸Î·áؿۿ¿3 aS´í–(Ú?¨­-³ †Øôé#…z›r^½Î; µÁz’Ÿ_ %«%²Öþ@n¥Í˜q©MœXo“Ïf¥?|Ñ^ye•~””5`)pƒ€1@Çž¶ (>aú CØû÷=§,ÁyÏKO ŒsÀ…vAFXb\ÐgËÿ7½ÂD4â‡8÷Ü3ǾøÅ»õƒ›r[½zKØDK' ¿´•Â^™Ò]!0Ôó# )po8SÞy#ìŠ+&¦§óL‹Ù gÇ]#"£~.?çÕF›˜œ¶kÑ3õö‹«íW¿\hO=5ß~÷Ûåöê«mÙÛ;4ê7ÛÞ½íag=šÂSâQ‰6Ó~´‹5kjf.œÖaÙ0d„ÑjÚ‚ÅC± x9 AWõÄþÂî]lÆ&[°p‹Í}yµ-|k£Ž 7‹éš5ðkE&P ÞP‡Â¹V7¢Æ¦ŠGUƒJlëÖ&ñŒ‡,¢‡ã…rÀL€D³-Ú¼¿]¼¯=¬$g†²„çÌ‘äz @1QTæÂ>2ÔÊ…ðˆÀf_VßêWwãǷ믟iÒeÀ¶CÝÖ¦‚¶;£ÌÛ¨]ÿ56ëòñvÁŒ‘:5Ò&è÷55•VZJvƒô˜°Î.½¤V§$5[\dÿþïoŠglR½@”7E`–ÙÖÏ„m@Éa"ÊûÙ™…âsýŒS†g¼¤¤€þ “~0}"—¤Qò?&|M¸XÈê7~j{×]WÚÿ¼[ÓWžéÙö>¶Ú\Û°3¬³ !ø&£ç&‰GI˜¶jê!…ïÓô¸T?ô¬ÇjURþîôã¿`#¬½cŸ­X¹É~ýëEöÝï¼fÿö¯oi]¼F3€¶cG‹ÍÈ2N;£öa­°T`)2_˜—Æ[r \cÖ²JXŸÆk³Àý›„aƒ@°BxGà^ÜeÂt?Öà´ƒÅO…íÓO‹1bo¼¾Q³‚u¶níñ G†µTÑçH_KKË´,g^X¯ý†½¶~}£fKYú 1ÕÂNÞcÔŠú#èÊA ^Ä9ág¤¤$Ó8âê’Âh3"Ðù£ƒÂ!~¯{n½=ôÐ öðÃ7ÛUW]ªC;è0ã^ i·¶Ó–,Ù _Á5).÷3:îxT… "Í”ÇH5^ šÒ¶Ëˆ˜]yåýh¢b¨x;ì7–ÛÓRü§Ÿ~Ûþô§Uöúë[BúövÎxÕÉ%S_¦ñLÕ· (1J‰Â¿-,PZ Aƒ°M@QHß,`¤Ì=³òtæ:í!-÷``mEéÈ“òw ׸‡{!¬[†Çâ” û"ëÖîÖF&›—å[ÅßCÚ0D…*ŧ¡zÊ ŸC-ÒÞK«fNMÚÉâ†fŒÀôºÑFÚaP|7øø!¨O(êÝSbÞ=O%0ï\Fdï Fâ˜Ë„¯÷ 5B†Šô²iÓÇÚßýݽö¹Ï}JÓÿIº†À!Wà€6¬t„Wúβ ššnŠJ”‡ðm|¡¬08„ È¼\ãŠ+F+ÿ:øMöÖ‚eöÓŸ½ißþö«ZÛ¯´w–î°].ÇÜ•EäËEn™Àô÷UáuáMáma@…±P¤ÅzÑ”`Œ¨/.€O´Ä“ÖA˜xø _1ÊÃatVñ™e£äÁ½b…X°`³-Z´Y³ª6½äDê_©Î¢·Ôe#GŽÖFbf?íá§Ç­­4'C¤š(T  üÇèPõ„ÜENð—yOÁ „Þ;¸§DïdjÏ•¸CxR¸Q`ÔÈëÐO~òJ{â‰{ì¶Û®Ð 8nf´ –´±ÕF~ô¸¨(GçÙ÷hžŸ½ú „‰òP†½#-~‰s˜ª•ŽÑ&f4(þfa«€¢2bÓFïŒ!`9´{w›îÐëÆšu„ºU' +4#kÓ¦ ·!CòmݺF¥áö ¡èc…¸ \øN.#(?a'ün<î”\/à”nNn:)x§!d€Døp¤{…¯ Ó®ÊÑqµk®nÿÚn½íZ½co°â55ºõ#º çø€¦~šKÖza&K€TŽÖ¦9ݶms£­Yݨ—] S¸¥c¤CØpF¾:á£ÔŸ¨ó*a®ð‚0OØ °¦gdG0^äM¥P4àÊí~=~|÷àúu\â<Þý¸>› þx|‡ã÷y¼ÇÅË&/Âôí@ÑÑê¿]X-¬(Î(hk ÁZ)úÂ…›õƒ¥ýúQ…Î Œ×žÀDí t…'2ì ŒÑÍ”× `édxå ²WüL¹\<J À©píÔîq¥vå@Ð ÖÝw 3O§õ}®Žãΰ¯ü·{íÆ¯ÑN3…FÞ&=†’Œè—pá—lñ³úè AÓM ´ÀÈè·ö}–¯ƒ<œv[¿aO$Ý€!ÀŒÆBè4m0„%ueýŽàÏæ ¬ó¹ÇAõº£X®ÜXqøÉ?®‡ñW~\òq—üÝOõ‚ðCÔï]SbÞ5 ™\p!:“DpîþF˜!øuí¼h‡ÿRûû¿Àæ\3Gëytr§ôZÓ~ìÒn)z\n‘O…¥ôAVÃ{øýeýbV¯é.¶=MìÍ·6‡ßÔó‹=£ r°V`Š02Ú5#;ñ‹„g„„åLZ¿Ÿ6q`-ëS|W~\®áRYGqq×—nPPZü”ãnºÑ™8Ç#~ûýÞø=~ —ºp CEZWH:‚ëð>lHËl#Ñ©ý:5Øb«W5h_ ÇÎ9gª–S­f°öVm ƒ±C(ÿ¼á½,}È×gT YBnHCç…Œ¹òže*{r·%©O…Vzx Lt Šs‡ð„0SȤ-ÐÈ×Ç.·/ùãz?Kʯ o§fô{¥üèP4Ês6?#£(<ÊÏÛyÂl@Oä†ßè÷ ¿™/(¬ÖWxúlÉÒÍ:̲Oé\~Bݶ*3@ÝÈ%fI°^@ÐW;{¤¡¾d€nP~òp%w¥÷t¸(¼p¸`“Ÿóˆ4„ÝÅsOôOËuâ<ÞëL>Ç{¾„ýžx=¸pÍëAáÇNa—@¸V o1ذ±ÙVê1liY·ž ÔêMÊçh&Pj ô{ƒØ£YÒsßøpcdÉ“8ä†r!Êv?ḟðIQbNŠ]'•Ø»²¸°¾ZøªpYúº- õë´ë¯›aû·÷ÙåW\¢‘›`·Öû»¥ßlêI ƒ‚#›ÈY¢O„å׬€Ïi…ßíéå…œÜ>}i9*×a›ól²åËØGÈÈžBƒÀˆO¦Ô‘i?Fi)S_Ò1’í£`WrWx\â1¸ ]¹ŒbGÀ•©¿KY.ìî**Ô!Sq"úQüu„ü~¿wû×k }hƒ·ÞÀÀý(ꦴ˴}ˆÀl CÛwÐá¡ z<Ø­YÀx›:µÞ:µÚ5æe(1bVˆ!OøÎEêB¾´Çëçm .î—÷ä(1'ǯIM'9HŸÎ£ ¬9Jÿ˜p“€†Ó©¢Â»óÎKí«_½G»þùsõË>+ïÖ{ëÙC2Þ—Ö<£S‘‡Wrɤdx»MnžÞwWˆ,"W‡ôsÜÍöÛÿ\[)‰›7 «vðQj6®áGÐp½(z>½¦(QÅܸK^®DîFÏV8øA9îR.D8y8îú5ÜxZGÞ—ßëáñŽ»Üëa¿"ž6b$×¥Ý ¹øˆ£ÕKupèÀþf€¡zñêt±.Ò÷ 6Æ7fI[% à%}‚!f?†²(Ÿòœ'òfÚ#þ¸”€ã²è¤Ð t„²FXxèáËÂíZ¨¨0/uÃõÚ—Ÿ¼GkþYµ±MšÑóõšŽ0ò3ºÖäÍeðº.ýb_{9š%ä냛¹ú=»éu\ÍÍ{ìÅÞ¶Ÿüd‘~šÛ ïçE¿ìÓM™1Å_"`¨/²AÝ`ÚK0á$Üä÷8Ü8¼’ð†ü!üÎ+ãúuü§“â}C¾„!¯ƒ×-Ž_§^ÎøˆáQtü‚'Û–¬áá{̘íשÀE‹ÔÂ^»è¢q6]»tŽ`¥iqì:MÔk¸€|l˜ 8O0 Êï_Â^wÒ—p\T:À;× JaÕ!œR—]6I»ýwÛìÙ³¤¸%ùµÙ×%ÃϺ>Lù™Ú£Oô;®ä0fÂïéx Ø6ýr %?RþÖûí—¿Zbÿð?_Óïô7Ø~ìéG¬÷ç ‹Î@’+7B|ÄÇOE<ÞÝXåÂuÂá&o@œû㮢ß3ê_®×É]¯u§ÅïmÂuCY,?†`“À #÷Á7œÆä‡EmmmvÞ´:»é–éúžá~½]h£úX)#B~˜  £•­ÏtŽòú×OQ¡~.„K‰8.‹N*̃ûé4ºA@ù¿ °Æ Ä>ÜùÓÇØßmwÜy½ñ~:½zÛº÷艞äˆGzá±Ù¤¦þ®KÄ)¦üaä—òç[NOµ“´f›~§¾Ä¾ÿ½…¶ämž –° ]ž“ÿA# c,Jß•Ü]*à×ð§+—Qr4]¹§`È—x舊DÑïë_¯}9/p©·‡ÝKÛÜÐn¦í̦afQ§ÈÃYŒ52¼X„w Œ=$l®ÓO‰c/eã^+0«@g]ƨO¼® ò8ÕM ÀQYsJ`<`ä‡èx: ë£ð „ M;oŒ}ñÑÛìÞOݤ” “˜i·¿³IÊâ £¿Þ»wxÀ•?}Ö?’IdP»ýŠ ï·Ï×Wò $òõ6 ûÞwçÛw¾³À6lâ©]!¸(ü ¿6 õçÊPx*àŠïaÒÄýÆuá>ç‰+áQ_êÑ6oao§·Ùy@ÿcð ÂfûF ÄbÊ¿båv}â¼Ý®¼â»|ÖØpZpí:&¢3+ž6°`Ÿ½Å8xùñ:ÅýJrlJ À±ùs"W]À]°á)Àh€@s„Ç…K„ ÏéÕÕ_zôNûìgoÕk§Ø/j‘âëãú)iô‘ ÎöK¦2Pß2GdêÏn?†€‘Ÿ3Z÷ç1ò"+½zýÖzûö·Þ´_üÇ ½„9Ì"êµTøƒðŠà#?õFˆ]ñQpÂýà‡ yáÃðÇÉÓÆãÎv¿+¿·×㨻÷¹·×ÛH®Ã'”·1fDÏÌÚôÖcg «Õ»/©Ç´ù¶yK³ ñ0&CÕò 6 +d Ãà}àõST¦~^7âŽJaýœöÂS" ¯ã°˜§·ç"=¶è­uöõ¯Ï³ßþa­µëÑR?Bð^^– ŒôLE‘F(¦ ¸qÅ'LE¼M.ð„!wi~»Kšy?¢Øq¢Í®€Î¿Nñ(~²9È:£P'd–ú¥àAíᚌ=X]?3Öïb›‚ öÖ D>NÎw\÷s-î÷´ÁM @;N*à‚€ à%ŒFa Ñ£ÂÍB†ÏãÇ ·¿ùÚ]vëí—鼿öqøØfÇ^Íì9Â+¥e½²,®?ƒ†®a4íOéG?yúôe‘‡·Þ\cßú?oÚÿ¼^¯î",Bù_ž6Ô¡D`Q|W~ ñ‚Ý% íà Ó@qJú¡§ÚíòÀ5ü¸ðb©EË £7SûÌÆ ?Þ¿ÿ ]{íd«^¡_nÑGS²öpXûïèSö0Øô%‰Ž§<ï3yì/âeÓ#÷„9@GB¸0^zÔÈÿ ði¡JT¤ ž{>q¥ÞÙÿq«\§®Ñ£¾.Mý;õ¥[½Ü#ü„·W:^ôAVÈëdÔ¯½¼rZ#C~™¾v+Ò«ô‹n’òÏ×´¦ý.k¡HnÚ$¼$ôo¿+žó‰0„KœÖðåe&ÀÌ ^ÀjÒ Hù†aÍ2½9_›¸Ñ·Ó—Ùýg)€`¬0&ä8ï/Ûút$%àHžœHŒw¼»>DQ ›„¿Æ€rµQwãuÓíKÝf“§L »üaÓ}@3Ò1éZíé3²¦_º/ù%KzÓ—å—)œ üßþæûÍïÖé[uômVèa®°I@…@6’PtW~\âÉ$]xpÌ0þ„sÀûÿpLä‹+²A˜NĘFaáõ6¾£Ðc„ ¼‡qƒÞ7¨Ó¡:6Q/}éµwt„8Fì-1kxGØ.¸a‘7‹(PÏëJe:5x'Ã|üt(.#þa’¡¡C«ìS÷]k³.»@ŠËh›õNíiW?½®}º‰>Cq!=á×”¿O/›ÈÕÁ‘üR^>™g{w·è³Õˆ_Ë‘§û˜"Î^vÔ“‘¥gNW|üqŧ`Úâ7¡ãp^AðÎA':_Q~üÈ ñ(;÷°ó´À¦l†õ³íeË·é+ÉzÙ¨¾L<\ß.̉¾~êiÆÊs©0N oú>öåºMÇù#Œ@ü¢Ò&t‚pFÂdxHЙXåOŸXâ•^wÜ~©=úØ'ôéÑÖÛѬu¼”_¯ìŠ6ý A!<ö ~‚Ê6<ç0}"•[j{›öØS?YlßûÁÛÝÌ,>‹šbäAhuZåçýH€p„—öàÒ&w½ÍŠJ¨â¼gÆ ÷s ž"7ÌÆX l …Q}áþ6}¹³«;úéòð:1¦ e¯¸­À)Aú˜{&ˆrâäuÉÄ% ÊòÀ\7` ºP`ê?SÈgªo¾q¦üÜbÓΟ¦þ=ú…_‡ 6ÊÏ­™] @ô~”ž~ä9?oùÉÕ>óJõ–ßü"m¶Û/žZdÿóoXÃV gQ£B(þŸ„­‚E?£ÜLûý9?#†€º;‡ ‹»º”fü ¡ïÓ—áaWF¿†ì`˜¹ÿÙØ£† )-ú¶ïhIMšXk×Ì™dz4¸~ãn] Äý¤¥_™E`È"Oàez®—?#À!ü9!ÀXfÃL:š_.œ/d˜\QQbwì2›=çàñõ.?ëæ'½ú§~¸Fýôi¿Há#¥#¿ô1¥£À¹E¹R~M0º»lÞÜÕö£Ÿ¾cë7±‘œED¼,̶ Ôƒ)!‚€p¡ðŒúÔÝGü@z‡ “·[—:à+ Tn!þx‹+„ÿæ ôS 6øž¤O˜ÏÔ7 KJÙ̆}ªp±0LÀ¨“/² ¸îƒ”¼GÒ1/™<‰‰q{'£d(ÿ!ó\—7î̸p¼]tñý@GF]oæéko Šoá³Úú‘¬0ÊDzÅ@¨/5ÈÓùþ”ÞDŸ.[ºÝþ‡Fþ×ÞܪpÑù ¦þ«„ iaÄGù¹îÓ~ü(¾ !.‚ Ñ&1bD&tÊ€ðÓ XxîÀÐ'Lçv Ì TŽ6ˆ{õ®Êò|»úª ÂDý` qËÐpùn0ž OôÁ¨Ç}J¢„N®(ÜÍTì.áJÁnS&²wø×)ºC›~õCŸCêUÝš#9ÈLý½ß üê'„>=òË-Ô{Ê´´Ó=MÛ¶Ø/~¾Ä^|¹A‡C(>C(ó›Â³Bƒ@&zy8qOP>xëƒ.|wCŒ¡ž!Ì!uxD¼µ©[›Å•UÅ6gò¹ú"Ñ~}àe»mÜ´Ç“ö a°X`/B@E\ÊYB£p¦2ø::œ¤€©€¤C¡ ÂåO±c{ÍÕÓì–›gYIƒñn¥V÷ñ›=ÝÊã¾0êKWƒ_}F|×IâõØ/Oò’ShûšÚÏÿýmûÕoWÙA}Ê:FÔaƒ0WX" `•õcôwåÇÅP®QpB8»àºßÓ$î©q>ÒO.Gt }Ã’ žîf ô$iц€>=^¢A P¹jö96mJ­–“\ÉÐ ù¦ È!KQŒ /[ÞÃäÖèpLâ;˜5ÁL:·V¸D¨24¢®Fïô›lÃë­õ}¦þ½ýÃ!ÖûÚØãžÚ Ô_½¸d©÷ùé§Àü¶¿ Œ“~ôa§-×Ôÿç¿\i«ÖîÍ”‘öl–û‚°R`D¡O6ü™ú¸(?ÂÀ¥'žû:3p„÷¾$cª~½ðw‚„%kPN]0­^›È“ôm& %6zÜ(»óöiš]Öêe±d™¡:ù& Ê€U言 Ÿp候ø}d¤W°Ø7 ™Ñ¿ª²Ìîºå"»tÖ9ŠÎ—27[ÏA)x®ôMèÈé5ÕAÙ³,P1Lýs4òç+{í#lZ¹Ù~ö³¥öÖm fJýºð’ÀúëO݈wÅGÑBPt‡·Å?.QÞF%Oè$9à|Eñ\ùÈþ;¯kä¿Nøœ€ a 2T¢×Âϼp”=öÅ+íú›¦ë—žˆZ»~Э/>G§Wç6êP¦›øuáHGÑô/ºí@ÞÌ ÀëÜÄÀšã\¦#œë0ýrÏeM9§Þ>õ‰Y6vÜP…ÙôÓºŸ_ô…G{lîáGÙEü¢‡ÜRú£ëÌù¤úÚø“'UdímõUÞUöó_­ŠØ“;Qð¥ÂBˀџŒú€ˆ+>…FV&„„¤]9 "P*¹Œ0hÀcç;×F ŒÚqÙ2”ÿþ{/µG>?Ëf^2Î ‹[Ȣі.Z¡SŸKõv§mñ éZFÙ}B©‹!Ê÷úê—qâ8äê„u…™PÀÚ «ˆµÙŒ™ãl†vþS9å²Åzýv—ôQ οèÖ´,øR ÄkꯃAá­>zÞŸS¢þÓ+Á–/Ýj¿v£ímaÏ¢ ýEØ(ÐÔ“º±Ö+>ÀG|w‘&„@®·QÞ„NqþÁWúÃu ž;¯QÊéÂ]ÂCÂh!CÌèGÖ±ß5Ã>÷ù+mªÎD{¹]Öqp§½úòÛöãÍ·??»ZïyÀþgƒÀf Ì©“—‹ù% y¿g*E'ÆèLDaà`Ñ?«ÇŽªWzO²²ª!ºÔeÝ¥üZß÷…€d!¼Þ‹~Hƒpx$¨,5 —r 5Ý“4¬~{‹ýÇ/—ÙòÚ@Ì&Nó½#,Ø`ÇÅw ôÔ‡ÅÁïAýAB§—.'ž+|÷Áƒp£ð¸€Ü°VÏ›Æ3/g>|µÝý‰+lp-c ö¢ÛZ[¶Ù Ï,¶oþó\}áySÿ'@äÑ,¼%p ˆÙ7# Ç$·RÇL”\ÌRWœÉâ Zïü©®*³[oºÐ.¹äEi¼ï9¨ ~úÝ|…ÃÔßuOnÈI2–²0Ò~NüéeþÖy¨Ãž{®Á~¥{ìmA‡3D§Îèð=‚0(8Ob Å%ί'Ê/fœ!¢'±Ý€)8<‡÷Ncä¹M¸O˜%dé]ݰÁzZtÝq×%víu“­¬|„’@ûmOãfûå/^³Ÿ=õ–½µxË@Ê¿N _þ"0P‡ÈrÈs<ʪÈñ„¯ÃT¬{PY¹ðmŠ0C`w&ЈÚÁvÝìé6räp…µÑÛ' Ü•yäŠ@58h¤ç¼¯~â[P”§_ù)ký8h»Þóê«[­a3ƒ}íPè5aƒP P7Wt<Œ~FŸtAòE~Âqò6Åãÿ‰q™pr¿ÎSâF ŸÆ b¹XSSiwß}©=ùØ-6é¼Ú;'7¥Ç~º/OïÔ¬aɶ|eSÿÑŸçü „•Š!¢³½ÃétêèÀÐ7´ÁÛ䮢:¸âÄ“ÂOFÝþJ6Dq§ÁfPœRÅzã§?uµ}ñ±;lúù­ ¼Ï‘=J›xRr~ôñé¦ÿa]'·'ía]“àÔ_¾ Hª\íì´5o7Ú› vèË1Ê'›6+Hç³À¾uÓ&Cèx:œÜòãG \ïpÚà~®%tò€®7qå¢?Î>)ü•0JÈ¢‰êõ6èKôˆï†ðV¨¨kX½é'à]{í¥ë5ò¿dOýâ-kÞG|Ñ×Ë…g¦¬HÜ_¼nô?ýî÷0yCÇ$>çíÊâL„_“6ÿ0Ùª«Jí¢㬶n¨Ø,å?´?ŒìáÝþaV_° Èaõòpý &OÅäÚ®-öÛ?n´ù‹ô ¯Ã'¼H¼E˜/ ü(7e?Ÿp ´0€ÜBÉßcqÀûŸ4ðîb´ÅÅèÂ_%¼IxD¸^ð½ye-rrí¢ 'Ú—¿ò1»óc³­”w¡³=ÒYžúè…°¯¾´H#ÿ³öÂKk¬U/éG(;K¿ç…%åVÈ%ÊÏL .ø©Ÿ×‘t^WÚD8Pbœ‘ïpüt4C!ž¯b˜æe¨¾n°Õ®•ªé%‡öéx?ý!~3ÝÇEùÏÝ^ôÁÚžáÑŸRlÝrÀ^zm«­oÈZ÷! +6þȘџŒ¨Óÿxg º‹ß!oB'Èú¾9(?¼E±üz½ü·Ÿ.J„ Ve×]3#<Û¿^›}¥eƒt U·jé×yh·½ôÂ2ûÞ÷_´gÿ²ÚrQËdÁfïë«Â*y(¨ýOf¸€kÁs¹ ¾€ô¸Y”€,vdt. Ã8uÇ ã¦^:Å›2ÎýO2Òª‡°é¬v¯@DŸ÷r@–鬨Ð!WQy*F½Ð×Õaô±ÈUkô]Àã?9¢ôk…MK=Üêv+O±BŽìl]ˆhç»%Êý°|qÞø@àaÚK\ð€ðya¼E55ö)}ýé³ÝhÓfê<x´Kb ÝÌ˳ŽC­öòsoÛÿþ§gí9ü=,³i¯‚(þ Âz¾fRaÃÙ®ø¸.òòL]6¼ ábbÒ\ÀQt² 7–ý\aŒÀH /»æÙ”sët‚k‚U Â&èM?ê\^à´ÛïdÊ6ý¸KDX¿çïCñË‹t(Ç76ÛBýا9ûS^tæfaƒ€0PêDGÇ->Ò&¸”î5÷¨DÚê8ZB®»0yšxþ\‡âqQÌó¯óŧü[øÑ×  × õB]tÁ{è¡ëìö»®ÖoB†‹sºµ—)¿X˜Sb÷m³ŸþôûÉO^·EK7¤üôûËÂkÂFúPúÙ?>ò» àRWúÊÛàrá}¤K%À9q¤ ³èh˜ ±æ:_KÊ×Îý¹“êì‚i£õª&õM_«ô\¼†Ýéõ~胰PÝá¤Q>% Ò÷üzuêo6þæ-ÚimÙ¿õoTrŽüjعbÈA¤£ïx®QW/Å]E H. ¸€ôÔ| Ч…'.P¤õ{ñ¯LÒ|Pˆv¾º0Ͼ&`²(_#û•—MÑçÞoµÛî¼ÊŠJxü¯eaW“NƒÂªkkÙa?ÿÉ«öõo¡^ìÒÖ¼Õ~ð?Û·~øŠ­?üVŸx>ø£ð†À@¿#(;påw×\— \ˆz{_y[Ãÿ“çDä:“\`žwþùÇ F r}½eœ”¿¬Jë¾íw°=¬í£W}ëÖ° Èí‚^úÁoRÌ 4KÈÕÎp#‚Ö…{õùî¥Rþ½JH'nÖ <âa§ O"ïhWtêé~ï|EA´ÏÉýé †h⪶©Éù ¿u -ax€P’†²ÝÏý ÝùÎ~¢îÎü´6ÄyJüyÂ=ÂýÂ!‹Æn·éO>q§MœÂDQlêÓ«ßûd»óòƒÍß¾aýèG±o®mËþü7y¡Àk…ç…—~çA]0ô;üÇ0ýGˆÔÓ}ãr oðÓhÀ>I @Äœø_:@02ý-díþ£ÑtRçé~—–yêíì¥xÝ·Îök7Pw‹ï™ã¿üä—{­P›)TZ¿\¿n­ßÜ¢@±æo˜#ÒÑŸzÅ->ñÄÑÉÔ—RŽEžŽ4øC­äž#prm¼€°EÑ'©*Ìr„?.;^®ûåý@õ†¼ïáü„àÁåÂcÂBö#>ÍÏŸ6Þ¾úøívÇÇ®±ŠÁØO}òíÀ>Mùõá—b²ì¶­«ì}ý÷öß½¡Ï·Ñ…YD_ò˜ïOÂra`§Ÿ›á·oúºâ»KýèKï[Üã’wâq~D¸Ãxü05•–‡—8ð.PyY±MÒË>«j,Å{òëÒ(ŸÒ_Jáè¾Q¿DÇ~•L]Â!Wú–*U¶zØÚØfë6îµ}Ù_öA™þ£üt¶w¬wt¼ãñ{§Ëü¸G#OKßã'OÚ;J¸I¸_- xˆÑè¡IØ @.;Üï|#¿"QùÑNo˾ۅ»…k„,寮.·9WM³{?5Ûn¾ùR«¨Ò#¾nÑ÷s ÅmóSð¥úpëu¦ÿ©§ ¤ü”‡q}VX&°Üƒ·ô †Á éãŸ=U@IDATøúÚB<äíˆBüõNàÒG:Ê&`Pà a£ôìÿ|}˽R‡€è¾î~ðC·Ñ'LÿYû3`€õMAñá/”¼i`Óæý¶bu³ÞýN?fˆƒëÖ€dè|G:ÓLç{Gãº_Þ&Fæ­w  (ùÀ¨NÀøýNØ ÄùC‹ÕÀÑêœgðÕýµò? |I`FzVn µÕákO_øÂvÁ%ꑾnkßf½šÑ¥Š”uA¡uw´Ùü×–Û·¿û’ýæ¿–Ù¡#Ow2­_ üQ`vEùÈusÅ÷ÑÞ]7ðyààD¼·ÁãŽê&àHÖÀ¼xg££…Qþ@|¯mÊÄ‘V>Ô ¾á«½õúãÊŽKn<öc“PS“è bÇ»»mó–ý¶zmsÿÓ_­ºkƒÀˆëuÁB:—Ò% 0ñ°‚G%ÒBîâG† £”Š_'L¬ñø1Œ õ¢$‚·´—6Pˆö],<"Ü!Œ²hú”1ö¥/Üb×ßr‰Mœ4R= à@“–mz…»DDƽ·}¿=÷‡Åöo½`¯½±ÁùÉvŒü‹Â+Â÷†å—Oû]áÝ¥žÎkøí7Ôy8aJ À‘¬rÁw¥¯ê… ¿ª«+l̘Á2ô’Ÿ.kÿHÉ÷üPvFzºÆŸÐl€L‘:õtöÙ–­­¶vc‹N€¹éb4 Ü&—Í77t:ŠOB7ò@œwŸvÉB™‡ <ê<!Ü?ŠC !\òÅ¥|—÷¬ ç¡óÅ»0|uæsÎârõ>ÊïFN^òrmæùãìñ/ݪiÿõVT>X-=`}z¬×ÛÝ}¿¡°Ð:ZwÛsÿµØ¾ýÏ/Ùós׆{ûýaÿ²ðga£/Ùk >(?3f>êSG ýå2@Zøì<' NŠ2}Rw}xÃ@„ÃAK™ú2:Ö㣻Ãôíöê¡e‘ˆ°ûÏé.ø¦þ’§°Û'— A6Ó]“£YAx§»â;uÊì·-Û[e/2}‡‡ @€0¸¢yÇ{§#´qP·L&ò‹\!Ü¥cIô1‰º ?åS¦çs2uÐmï …>SIÔÓëêrïü£"•Â'…G„ …,åçk<÷Ü~™=úù[mæåçYQY™Fü=2Õ{Ô÷RþêRmúZg[“ýîéyö¿þé%ðÙªlŽ ÝdÏ Ï Ûê/é_”E§ßBåÊK}½ÿi‹‡O™ïÎå•Pš³ QŒŠõi—p_qA~jt]UøXýÖ×Ñ© +zć"ƒ0ýGùé/úJ³ýÍÕÈŸË`õ]‹^ìØ =€ƒÙç¿éh6ÿ˜"" ŒJíFÀý„ÉÌÀ]E•h î…hß$A<q#?ÓT”ƒ²êB>\v8_E½oä¼ N^?êK<¯÷y ß"|F˜*dˆ™Ú¨:½¨óŽKí±Goµ‰TlêÜm=ûeÌeЫÔEzåÛÞ][ìW?ŸgßþÎ˶t5Û7GÐFż$ÌðÃGøI?¢ð̲èsF~ÂÄÓO€:{ŸÑ€öœ2}˜ €3f< .påpærÏu†¥¯NñÁϺºAúŸôA#>áÜ«Ýý”FÿèsÞÈOTtÙ¥ü¸ZäðøçÿZ6í:¨ß|cô³ˆé!£Âà Nð“1u#ìuÇï7?N¤¡}ô9® Õ ùg #„cå!¬σº†?D:@yï'y{©õñ¾…‡ðÒ‰ÑþIáf¡Ö#Ý=÷ÜQöù®³Ï×{ eÑ­±¡Á~ùó7í¿óŠ­khöÛãî&ØD}I`iÇ”ŸzÑþ(?ÀPO\ïw\ç+ü~×|þ €ã5˜ëêï OCi]@p¹L‡ LÓ”²¡ú‘Gõ`õ#y»”ŸM ð¬_·—~‚ +½ü#ì Èϧ¾xýîkÚÓf-môo†¤#àBe­øÔÑëÌuü.òfÚŽ?Nô7JÌ=žþùoîce¢èŒZn¨/qԕ뀼ßòþö²i NÔ¿=yÃÌê:¹ (ÖþGIQ¡]sÕTûä}WÛÍzÑë~ê-í;°Çz´Xn‰ yE¹rï±õË7ØÏ~òšýâ×KR~„a¥ð’ð¦ÀÒR/:eg´„õä>x™¦à÷~ó¾sWÉN`Ìúwt¼þ0•ë0ÍÓÁ$g”Ç)*ÄÁPâpÝ@;Óýeæ#*Ó®ÿèúÁVÿIîyË+&ÝÎÔ?=úGw’½â5Z˜fíû:l»fm21"ÀèïÀëN}ð{]½=§K"_·×ã0Ïv¡W † …ÏN)L…?ðÁ…?òüÝbÏŽ¿Ô@Þ^:b?çNáqáÁÓÉ«÷yéž7^7þöävÑUú¬»Î÷[—¾ï°O~Ýzq«nT w6´Ûº…õÒÎ×ìÇ¿Zd»س¥^!<#ÌxºÏa(#¾+}Üò»@¨3vñŸžŸí ÞH:‰p fÈ™‚Û™Dò Ç"˜ïX¸À[YIÕký?¨’Ó|õ¿é'dAÐ¥ÐeúÃ^€W'U_³€ÖÖ.k”èÈþñe£üHí¤Í™vWÞ¦^¤‰ ×â¼âˆvÇÛ†Â_/Ü* ±æ-.Ì_§9ØÑ¥ý ¨ ‘/FÀû€°#“è,ñPGúöcôœ“åL¸[)dÑT=Ú}èÁkìÖ;/ׇ9ÆELoo¶nMûSzÌ—[^¨‘_ž}¶àååöƒo¿ýÃrkÚËŠ-‹ˆ˜/ ükI}¼P~@<ð‘Ÿ>ý•ßûØÛ¡$Ð{E.À”‡Ðĉ0 $ %pЧ‰bÿõ´‡c²}®0>%ì£.Jèxsž€À”ŠôοaCË­¢”¥0çû5ý§jìú‡'Šæû^½ýªIí—b 8Ðm»é$0ýœ!¢I`€ L=x,£Â´ùdžbÔ®î¦ rU·‰ãGh,±={[¬}û¢AÎ?ï\ð~“3^PG€^¹L`±ÏH£Jn†òÔöóÎiŸ{øzû´ÖüÕµõºÖn½ú(Gw‹^Ϊ¶æ ÒŠPýާϼÏyµ}ÿû¯Ù¯ŸYiû4›ëGôÝá/i—,1¨†°úÄ¡ün0êN?»+od“Òq„ß @gPa'‡°xgõw]¸¸´ž.Lpòxäz^´O½6\´` _cq`mÏᄃx0Æ—©b@çQnª¤´@K€jÌ×Zû¤ŸÝô›.…«jRzÝíùs‰ \ ĨÙZ;m§~ÔÖ‘efûü€¶»×Gy/„Eð‚6O®˜OàO >lrß=—[™>JúËß¾fvû%\Êqå¢]0¹æ†€4€0B|¦ÉÛs!Ê¥ŽÄS?¯ý{·ð%áB¾ÍP¡f<7_w¡=þÅ[lÖÕèK¼êîî}Ö¥óü}ú…gJuÍ+ûJõ诫Í^~fýÃ7çÚÜ×6Xkö Ž#ˆ÷‚ŠšÄsž d EtzŒó2…/qnÈ?Äõþ¼$>*(êÚƒò× ä{±À, ‹æèkÆ<4[¯&ÛcOÿnžuuyw„dñüèc¨ßzšèê{ó×ˤô•ÄSÏÑÆîa@Õçß,»ï¾+í²9² )‰Q·¦ü{5í? WvçZnâ$i-Ûì/Ï­´ï}ïe{æ• Ç2l’ÿeáyå§|öÈÈòïO\êJ:@CÔ=Žþ|‰NÇŸ=ž/;Q!'K˜ë. &Mü>sݵ"žסâ¨Ê]¡Ù˜cdœ~€@G™¸—ú9äÍøûבkÇ"½¸'ÇΛ<ÜÆL*3$;Ô²W§ù:ÕXU%'i"G~YûÓÚðÇåQE²_ •åù6|h©ÖÛy¶ÿ}ˆºÏT2.™Pg󰢎à7q¤£ðC á‡óDÞÃ4iÂ0»ÿ“WØÈIãl箽v¨+"m D8Ò¥,p²<=2§‹ñrpÝòCÎlü“…‡…û…:!‹†ÕTÛþêF{ôK·Ù°zõiªÃzuНKë}ÓþG~QŽå–)[ý¨§ëÀ^ûýÌ·oþàu[¼lG¦b2]ú‹ð¬°Qð%%룿»(>p¥§Î®üô™#Þ>EŸ~êoúèÌõ’ý:.á§T:¯àq aDY™qQ¦Û®ìŒZÅö‘Aö{ðîaàB ï飢‚|§ŸýιB¯yúÔÅV]-Û¢©`>üÑ«~ð À !: Ø€€=<ú OˆÆ¯Çœ —wäˆ2›yÁ{ú™ÛÕÄ ˆþð6§£Î¬3¨¼Ä®½zŠÝóñ‹íý¢ {±_‹uv!ŸYïû¬ ïa ¿|ö>GÒŒÊw­Â7Ä hWÿŠK'Û}Ÿœmûø,Z?B×4“;¨iË>ý¬»Ã Jô™6î³ü>kÞ²ÕžÖ.ÿþm¾-|{@åߤ ^æ ›×\F~W|fq®ü¸èMZh2úD\œ$-gŽ8ïXJq»KáøûS¼R4@Ï=ŒºtŽ»”ŨŒ"FrvŸ£¹Lpè¨Z¹(×1ÜC>äéuqWQǧ”6Ý8~Ëò›Qœ\BXá_:žkÑI=møèÜw‘>ÚP£ã¾£FTÙ5úâï]wL³áãUÕCRü–6ëæÃŸ|í%J/—w„Ó°„¾¤ªú‰°f!¦½Ór{ô2êb»ôâZ»hzŽ·Y{'i}òžÒHô‚;|Fª™ÞvÃöðCWÙù—£Ç]byW‹ímjÖÉFïÒ3R‘w“) u [3?2ƒÒUÀ¢¹W#‡ã^§Ÿð~åÉÛmöõ³t˜Kã‡>½Ý}°ÅºÛeˆõ“î‚ MûË•µ~Ï¿G¯ìúùSoØ?~žžñï yÄþPîFáÏ«B£€œ3@¡ì(›€’ ½Þt>~Ð>èL D¨,L¤@g¦W—J 1 3Ó (5ŠŒ‚û”‘E'&‘g&€ë~¦OïŠr4o-).´ruxYE©UèWZ•¥ÅòJŠmNó•”IÉó¬Xæ(Ôã½bMõ¸§¨Xʯgõ\«ÔÎo…vÅG /³ª!ôÒžý¤ü:ÿ/OÁ" M`Š~ 7„4û4C`™@º»§‡ëÝÝʳԾpßd«Ð9ó¿ÌÛnk6í{Wm>ÖÍü¥V ?¢®ÚÆ­±)çŒÐÏ™GÚ´óGÛ¨ñ52ˆÔKåëÅ•|¬Ä…áXy¾×IªP4ÂŒ¤¸Ðá~áá<°Ã:õ¸³WÛVl·ïj½ÿ½§Úîfô8‹\ùÿ¤ØE–ågàb„gÔÇ(?®út  Þ’„,>Ò.—÷ÌŒƒ(ÄÉÄH"»R£Ø>ªOû¹îëpò„Àý ~¡„þ…(v@bjž§×-jTFy«•iÔ.5¾Â3lè «’ªTxP‰ ©*Š^!iE±•êgÖí92 (u¾òÉ“2åÈÏ1|¦Á)}”!âÚÍLÛQnõ‹~ªËK>úø¨§6îzyÜw¨]?ûWßéy?oý éÂ_éÈŸf#"Ê:‚¡áé&*ÌA.tñó_´ÝäéC¬n\µ}üžÉz¯h·f J¢×Œ…! Eçýá W)Ø™òHá' ×1á%ò’¿üÁ¨„Ÿ—Uòk¶BÍ‚ õùñâB™z·]¿BìÐÆ—Ö¼)mfæ© ÖI´‰ ΂iQCÕBùQ”b ºQxT˜-0e~_¯)ÿ_?v›]1g†UÕVÈvë,ÿA½¶«#ú†#/O›}©re­>_ùêûÿô²=ý¬¾ÒsäK<(wžðGaµ ë™™`)˜ö¿¿òs/uƒƒtÀdüï!Q(..Œs Ð®ä¸®àøC‡ƒ9.õ—'”°X?¦)–`–HðŠ¤´ŒÆË4‚×HÁy.]=HJ®Í˜*¡T <\+•Q¢k¯ÔH_,˜6m‚BùpY¡ZÎï4ïQnÅÖx‹<˜Âó{~Fn)e¯Fó>]þýëÕti~Ÿ”-¥÷ºçá }—ÎßGú 7ü *E‘=ÐÂA éÐ1`Fúܲ+×r |´&Vú^@Px<öJƃ­¥«Ü¶ö¶â’àwÂO]ˆ§®´UrÚ*áokµN-i¨‹ld؈ÿ}•IÕ1Sag"¦!Îpn>-Ìhd†k`¸öêiö¥‡o°ko»D Ôz_Ëœ¾}»­s¿Œ€Îñçj§?_²“ªÔ ZZöÛëú@Ç?ýàMûÍŸW[Wt:“Ÿ<­#þ ‹L5u£\ü®ü>âcX P_ê.æÑE½Då¯j…‘ e„¬×™â#mHšK–û³˜­ëÇ&I>Sôr­¿«4Rש°Ú¡UV[[i5Z›òWëwöUå+ËK­P#>£8Óó\UC%3•ÈÕz•ßÕ‡“wt’ÕxlÅ4\¿­Gµ!צÝQ|F)ƒ ºåy,§üÂûüÉSF ïUšðanF{>æ€q ïd82ïû#Ÿ «\Ó}ô3›€Ð€Ü!]D´ƒÒ¥ƒ@T?¥}íÌi—‘ óºWŠŸb‰åв'’7º fvÅO»aFp¸ø°û€ñ ›“ª%†Ž6+ÌÔ—%Dž\îÁ m8\W¢ÞC‚sC£B {#a®WlŒüŸ>+Œ²8^3¸Ò>ÿàµö¹ÏÝdã&»ÄƒƒÛõÊ>=âÓW˜P[žÞä—‹¿¼¸S¯òš7w­ýߘk/¼Ú y1Ê9"F÷¹Â³ÂzeföAB®å\'Œa Þq¡‘7øqŽ(Ô/œ)IzB¨PvFzÖéAäž0±³\Š‚k]Ëè)Ü*Ô ÊÕ’ç}©é¾{®Ò’êr«Ÿ¾Ü¦Ç{:·Ñ¥'8ÈOA©óIöR%¹z°ÇžÿóJûgë^ÊßïÓlä­ ’pºï¹ëœzP'”œQžÑÆqÍŸz£ø¸^Úà7á÷…hÄ,As£ãBX¨Qª (Ï 5e$%®HoºÕeD¯ J>L묺C4¯°Á5Ñõú,¦éü~>'OŸÂ²Êf“x¢6âxÄâW»ëÖ®ø­¿îÕ”¸7=Õ¿©gôB‘}Êøª ƒp3â+;”Z׃€£´Añ¹æ3³†‡P<ñ*'lª§ûè;ŒeQŽ”<ÔI׃Âs£À=…Q4ò†kÁëupWuÔæž¶'t_øIF(Gi0rªg_0RvFo¥ ø×ú?Ó6ùYû£ÀNTKÁ„ûPxêêIÏ^å¾[‡äž ¯±|<¿3ïR(5Pc¼tñÈé ÂW„+ D†øNÃeM²/ê<ÿwÏÑŽ¾V´í»ôÖ®‰•Nmj€à—زZv‰/E}Öºm·ýñ·KíÛÿºÀ^]¸-êÎLŽÁ³Sç ÿ%l¨#?‚‹Ò£ü(½+>ÊÏ5ŒSoí9+àL>n…øìQµÖU#GÑF†ÛSGÙd =²Æ†Žl…úežÞ†š¯ ¸íÎG£¸·]mF€»µŒâ™7B”„‘ZÓ³ô´áìQ|J.#Óê0¥§vAñt_èþ<„¿ÄIÈÙüNÇᄘ´‡kÁ«?”K#@¾aóN,AQB9é¸tÞ¡ Œ ÷p=tÌ”,yÇÙK‚(¯0F0ä#VòPÿ`tx=t ÷ƒ£q[JÛ×C;ERú°s¯:‡§Ql¨*ÞP•àÑýAùU/7‚ê‡ð#ª>VHÂ4Oð¾÷D£P2j„R9ÆÉÿ ᯄiB–òWKöîרï=WÚ iàqžuèE­-Ö#å热läê½y¼Ê½°×Ú¶5Ú/~ºØ¾õo mÙZ¥õ’”yš¶Éý“°PØ-P7mÔåfÊW~Ý•WàÌtWÑ™6á_ “™þ—ÂÙudRÿÂLQ~©©šƒà1š)¤ƒ1èûk¹qr´ö Feç½yŒjá º “0ŒH\CÑ–`öÉh¢á#yºc¢ÇSÜCUÓ‘é^c*Kma&—æZ†ü\QPÂô=Ô%DëO(CaŸ xþA™ÒéIòö0†„xDOœÇ‡Ò×Òu'iŽ-’974a– p4Í 30C!ÀÍž§¼Ô›bÂ%ÚEíÇOÚâm$ß÷Œ±*븄ÀºÁ`v÷™Ú•ºµÞÔÔ¢Ÿ²Ô›l·ÛK¯.‹vñµ{_¥õü ­õ‡Ô–Ù½2{T}• Óô˜Î»×f×¾HV¹@ g­Úõl@ ¥t¬}9P—£GoXŽ0òË`hÕªxx!,PBu:œŽ £3…©.1{Ø"tMqé$áþÐJr ˆPŠ@i7„ñS¦.6“Ná´z2¡p§ôõŒûÓå2c ÉŦñ~›ô§AÉq1¡íèˆÂìOf™BúßüžÁáœBL0€¤%^ÀÂ#€ŸÒ«WN3Q ˆRCÉr‰£a„Q2…»ZxL¸^à‰U†Xï_¥#½_|ä&›sã…6LßiÔ)-½®k¿Îkè@qÕ–”>Û–§¾Ü!o H 6Û÷~ô–ýøé¶mzœE”½Zøƒð†À3}1;Ô ÅfÔønÜpáÒ¹Þ6w½ÝºtvàÇÂ(a¼0Z€É€çÿÌ Ø¤#Bkº4zƒVXÙCd?‚S5:€3rx•Öÿ<£/Ñ!”2R-ÿ`íþ×”kÁ NÞ ²ÈeZ2ëùtžžO[±æÊ$¥ /^¸ì'e¨#ûØìSÙaÇžÏk£èa!Õ”Û“^¯‡ -”TÙ¥$ÐÁT <úÉYð©’àg悃ßûˆþ‹‚Ìx‰?G¿R.éÈ3ÓÏñ{I§ó":¨“ò K]%úQÉÜ®FeÂŒP¹ô­ÁÄòã¦G}¢Eù(>ÔWDdh_I1ÒyðD>S,í–f±2¢[ÎÄ_j…ÒCˆò¡<ÐPááA;À}¹Êtbóú«§Û—¹Á®»i†Fv=•îáÝ{tšù€2cù¨5¿x›7H½8Ú«Ww¯]´Ý¾ó÷ì§O/·Ý{ȳˆ}‰ð‚0_hêIÝPtÖýýŸû¼îî**â*ž³•0¿Ppžë³Î!ŒF uB½ðÿ·÷ÞQ~U¾ounµÔÊ9'K²d[r¶±Áh 6&Ø0À`¸Lza­÷Öûï®õÖzëμ™w/3ÃÜf˜!ÆGœmÀYVÎ9µb«ºÕê÷ùÔ¯÷O§ƒ‚`$ñÛ¿õýU8uêTíÚ{W:uꌱ’ÏsŽK¶âvvGÙÕz0U¯*Í^çÅ(>÷gEšÏúGó¨Ï‘Áø1ÍiêÄ!i˜i#ã†ð¢M£„FŒC=3´ÕùQB©‚PJG Œë§›Ý]„kòl·Ç¸ˆ{yžõæ9•$+,Çs»xþ±j”ŒÄ±p¤í¢GöÖÄÛª|߬,x"5¬²|Î-{ûS¢ˆãq¦“{Öƒ,©)·àx¬Sm(ïa º3´qíez<™ø= Ôá¬Nfá9Ù`áxk‘ýLN•7\×§&Y»òˆ€2yþqëä±·M–P*ºú£Äù Êá‚{À ‹‡›i“ÊùÀ|…÷ýiî¼9<ËçéÏm<âçíL;ˆ|«ÆÂ&oÚ©T¯ÏÊKµ6ýÿ¼š¾uߢ´»ï&*÷à?À+ùB¥ŽÐ²y¬÷=¿J¯!׆ xNo&Ãg©ÌŽ,Ü^°¬+€a`\•êjŒ‹‚i´åQþœY‡Cw£H^@Z½UY‰7„G~¥å¹ ì°SÏ#A!ò(p· #xD3z$k¸uÂ(aÈ`G ¤ã5Ú!<»mbÄÐÀ²Ý„QÉËW™J7Ï,ðDùè>$+*Ü4J=iº• Rá¤è97ë2šG<‘è`u^‡# 2tØY:n†’çsR–éîCc!KPpW8Ö°ø¤ÊLQîœW·>䥿fbXèt»¥@!\Ê»TÒª§h¸ ënœuö±)/3u`Dw˜ºÐ^U®v¬æVcWƒäÓN知 ÆÙéX(EF.wƒ;€Oºì¢iéž^Ÿ>ü¡«Ò´ §pŒv:°/uòß‘ƒŒÖó¸çg†ºáðy9ÂÛO?¾*ý#~?¹&íÞ§Þö 'TúGÁBà°ßѯåq¸³ýúCáCù킲tu»2;êˆ÷Ì& €JmCH!2ŽîÅZ`ç„ëFî8FÂ!›†ÁtN˜È<ó‹<ñ£N„rWk{F9VùDÈE-JÑÄË8Ã1£¸w;º‘¹n!†JãÆà–Âuµ<†Ä0 b;Fûw=*8ÔУV¹ì×Þ¡5 ©Ks %Yô!+–Aµ†rÙ‚’{×znKª;ªRG^k@{;,/S)Ÿr°|ö±˜ìãÚþL]Ë’šúR¹:ذ[×t1⢧j¡’‡£1üÏgæB’Cw » BŽ¥ŽLâåžÝ’IœÊî“ϰAj¹n5½b-£jâ«Xû_OuÕ"³ª$ÆÉÛ)Æ<N™Yw¡ËÖÒÌUüP~åæZðeð  •Éw=.˜;)ýéÞ>ò±›Rãðá­í©«e7ïg sVUZfûk°þ5Üó»·Gçþ¶ôì#+Ò_þÝ/Ó#ÏoHGàu/ÚCø9ðp 9ÚUÑ51äw Ò«ð X~3Q—¨oÔ™Cg&©ÜÒÂ[heDW(内~+·8Úl0{þ¦n¨ü´J94ãj!è·¿y÷O”Äá:}S<øŠì.¾š»vó¾4€µôöôœ¸5häÅ•z}7ÔÐ4³°ÃM6I Å á6¢yK‰ob¤ÐDúÆì²ŽwÔŸ‹×ûÚ¯ë`~Râ#‡QtiyL3 5Œm ¢œ-‡ÓaÖ†wòh.ÝÇD¹6ÑÎôÂz‰ÎŠiϱªãöÆxݪ}éõŻҚõm¼gÄÛ…ŸF–E;:ðí< PWÙO™º¯£‚C†ìä};¹EpºmCnY¶h³0<ƒáÍ(v¸™4~@šÈž“&òE›Q,ˆñḠ°ö±ö·•4@oŸâä`ˆ9é—BæT H§ŒÜ> .=”0 Å>ü¾+ÒGîº6Ýð®y(?btˆÇv,îéDù]Áx”a53þµÂã¼Ñwx[Kzü§KÓ×þõµôxÿÊï ôiðØ,£åSÉíícØoYUþèõ ‡â‡k]Åz}æ’•µR*x@æ ©üö º—4ZÅúXY›^£ AÐ08JpÄ !p´FÀ8›Vƒàµâ|ýq¼%:‚t·¢xâøäw(FAÏ·„ ±a<'›!8á³R^Ãàˆ¡££š8v`èMР¼‹(_þíy,¬[ºÊM(Šq3ÁûÁÁ,Ѓ&‘>|ÛåéÞ?¼5]0 Œˆð_çnöçg¡˜¯d»VB寫c%%6å>ÛøD×›,ðy5½ø[z÷5h[¹Ð3àQ°ÈqeW}Ø”s€®qB¿ /Âè·^ÑE?Ñg6YiĆ’±R3NW# ßÊP™|̰~]ój頻÷\¡r«ôZ{áˆAc 4»ôoCÄ=X”‹¨QI:Ñ:qŒEÙN¡(ƒÁ\x'#Uļç=¥U&J…”ÚΰËU!Ív°ƒè1§Oœþà¶©ì 3# Ïû ìÔž3¨hÝyRd{ÿz†¤õŒT:M/½¾#ýí·—§?¾‘§)²ì±Ïeí·C»÷v¤MÛÛÒë+44n^›.8ohºããùƬ4fÞhVnȆèm–ÀŠ‹"sôGØáU¿ÿWÀ{ÀXP& ð¼ó&§/ß{kz߇®Nfp§ÊKL]-Löjeă.rŸ”y¦*\WÇП¶JLøµ­Ùž¾ý­WÓß}oazcÙÎÒÕÊ9gÏZþÏ‚M dT…ž_e6P•Þòõ(5ô±«D˜$g>©ÜV&ȇò«¼Æ‡Gšˆó\Iž§Е1Âá“®¤ëqÏém §Ò €ÆAFÂÑ‚Æ@ã¡ 8zˆüðöONl;yg¥rÙ²ãÆî?Ô™¶¶ìÈ#ˆKæ OW"`ÕŒ ¬„½­VDaíK9`è_å¨c`MÚ¼v_zÅÿÙ3›û(ß<~;1: oóRà‘ô䯶¦õ| ”ª¦Ï0غ-±œ`ínÑBMN¥@Á OS>„íJƒ7oÄý°÷WÊÔÀcáwñUž»ï¸–-»®NƒÆ2˜<Âs}ñ±¬7·& ë™|3“ŧ©z$„·¿¹1ýø'KÓßÿ;Ê¿åïI–c-x¼T~Ë©|)"¡üº*¿Š¯ÒëZ~Ó3à=DgõŸ[o^š*ä(8ⵤ1ýÞÞ¾¼ß·½Ëä‹a¼åÒô¿üé‡Ò… æäÕ{‰G|Gv3Ëï[|U¬ì£@GyWÄ~u ¬6Ëp7½¹5ý#CþoýxyZËW—{‘2·<ž»€òbCÙ‹ ߆Rþu­cQ_¢3õÏ©8zº2_ÆH2 IQÙ˜¦‹Æ, ‘Âj¼qúã˜é£at‘G01®G’|mãÍCD¡A6ZÜ"¨ôïßtï¹æùD¾DårEù¼¶å±±õ{¾“šæÅ$Ýáôú’½iÝ‚iؤAÜZØó“Д'£! UÚ:Ó6”¬×iŽ–‚MÀëYVy`2|Š0Q™‚Ÿ,w±ü9A÷_\.ø á&ù–iýÖ¶ôÍûVñ„¥‘·cÛ™‘5!݉úw¢Í<êµ¼Žq–)ø‰7¯áÿ$îÁ#Štþ¬ 鮲E÷]×¥ó¯˜Á!®¿Ÿíºx¾Äɾ<éÉRs”¿šrÕó}¾êш“€+žZ“þ毰‰Ç*FlêsR™_O€×€Êoå䟊í-«'ŒóáøÖC’Ç"Ú"ÚÉcgÙPQ1 /Clq+§ßÊ隦&˜ÃÆE|A0¶¿p¤sLktãZáFtm­sS‘ù‘‡ùˆ0 *RƒˆSØõ«`Q–¢a° cÁ`<È“H›¶.)/³‡y>ƒ”˜grÉbuSxó£8âìR^720jDcZµa?+#Q´å¤z˜¥e².&0mb8NR‹d|g1^œg¾ò˹–™à"p!pD•içVx²HÆÞ?¯¬ŒÇ„Þ+\¼¾a<õz–YH»| | x»W&_A¾hö¤üþþÝ÷ܘFLG­w§£;Ø¥—÷ô»h~ ®«@ݱ§ºªù”¿™ª0á³zá–ô×ÿôJúÆ–²¹j±XùòïuðÐȪìwùàÔ°X³ýUü€çZ]©è7l½‚·†Ï: !³V¦È½hÌ`B„u%çé7Þó2ýÅc7ÿ@¤7eôG:ý’é%ÃQ6ó 2^!ó˜å´Á5O óÅ8ã£,ºq܆¡:ÈàÊ»qëÁÔ²ÃÇuœÎÓ„<µè$C®*NQ,%ÃüPEÏïäc FkHLœV®oe;pmZ& “Ja¹vË ³^–).¢ä±"/"^·¿xëõö+Á+ààF0tó›ÝŠ\m)æQ¼fðÏø¸žmo¼Š|Ôß>®Þ®•Éûý›¯¿0}‰Wx¯¿™¯ò°4Dù[éõóz~7(eM?,8ÂÞõ<ã¯sû.{þöŽôâƒËÒ_óµôàÓëûS~ËaÏÿxÈpËhÙô eF׸¢ׯéZïÞ2E½Ëg›' €å¶¢6^±RÑà Žd¸[HÊ 1½ÇU")ò‰sLJ®?Òé‘N×toºH_Lc|änœÃ¡LÑx–-àË/E=O\'âí ô«(ù¸Cý;¦-Û³ð¤3¯/È;÷ðÐ=¯«ç…3)g9å÷¸…Iñ¼qÕEÃÒkË÷¤í;¹(ÝC¨ì3À4°Ø#9R1ë",{¸Æð–©T„r°‡GFýôÝ` p8lüÀГN|ãõÌW¨Xæ+TMï_ó@šÀKc7½óâôÙ»oL×ß:Ÿý"è˜la}ÏÎ|¿ßåã½îž¿«“¹‰ZwíEù±[÷¦ž[ŸþÛßý:=ô̦âh*®±Ïóàa°ئÑóÛIhŒ–YCe>yü>Éâ좢°äV2*h#) ÆÇ1ã ¦¨ˆ‘F¦oœ‚á9!úCiãQ9Ḧé G])΃ñE×4EÄyº‘Ÿ~©˜.ò4^aph¨’X&…;nóÎCl܉꺃ê¼ú®“}þK¯*GvÁÏ2ŽËúª-#ÀsÏkf 4ßÕ­_–k"˜®*ˆ3’Ÿ–Aô'D—É‹¢îº¶A3°žë€Šâ­@_@ä ÈëEÛ[¶P$ãgÏ‚{€uëASØ0æËŸ}WúÈG¯KÓfOd÷ö;Öç:;Y‘UúÔšùx;ÔðÈÏ]|ªàß‘Ö6vðYžþŸ¯¿šždb¶j%îQðX”M•ß2j\Ö_h‚¿ºÆ1dÛzyü¬§¢ÐGeú«X0CèF„_ÆI!“i!t Å/¦õ¸¤+"¿ˆ÷œb¼×5l|”A7Âú#Mø#ås*¦5.ø¡ ÛƒlöÃ@^Fº™/úîÙÙ‘†fö™•uµGkY9‡òså^™ôZJë4@'·5άNÓ¦6§i¬Äs=Baû)oT‡ÌòN¡4]RÁ xüT)êjå‰FM X –•VÃp22/üÒXÆHBE»||Ler!Ô¥Nåß5é㟸.™Éaþè.ñüb« óžìVì.> Mð™U™‰×È÷¯kI>ÌK=ß[”ž{m[9ß‚Ç6Ó =VtÇgŽ?†ý€à«mÝÛÈ_IW[×s’¢ßjådJ‘I*e‘IÁ8ó aéç1Ï“"M¸ÅøÞ~Óx}…Xòx «˜Oø‹n>±û/âå…‚bX¶¼Á0T»šlÓŽƒixS'7ólŸ‰¡=sRÇj` 2•<9sþ|㮃]€ø6ÁH?s«kÒνÁÆ\‡1œ: ¬Q=(¢gÕxjt½@ùdü'#‹"Ÿä›pÞA²ôŽt–€ ÀE xŽ·yMy™Nã¤BYŸš¼|Ìq ¼ iØñùýïº$ýÙ—ß›.ǼTÏK^]ùçNöæwSW¾Â[åH„£(?³ûy¿þÁ\†B+ö¾óÃÅé/ÿiaZ¾Nû܇l¯‡À³@C`ùlSy¦!×X^]ë0Î4ÖAÞ_õ[×"•¶sûú·BÑøžŒÉ´œ` Çd¢ñ‘o™©Å8ÓD^¡Üq½È7Ž›‡qqŽéÂï1É´Å8ÃKq^äUOœq}i=P¸» À¡´hÅî´e׸4„^¼š^È—rfÅ_.žï£«Ô¹öùÃàpŸ·ìXç­Ãt]uɨ´luS(™¼ÆL°¬ §åÒÕèz˧ð–2ÇsŠT4žbØ/fýzר>d:ë+äGðV¥ÐïÄYÜvàíCçx]Ó9wÄòð pÈF7“{'ÜÂ’Þ{ï¹!]ËÅiäÔ¨ ½þ>Võ1‘ç0?ï#iñ»xÔÇ¿‹ûþžï×ð†"÷WiåK[Ò×¾ñFúÞC«Ó–¾ |äëÀžÿM A²ý¬«õ åו‡ÆY~妨üòOȇàg¡áˆ=G)„ý?£zý1ظb|4†å+ÆöXÀp4 ~ÉcA!ø½ó0Þ8]I2ŸPg™Öï‘'„¶+­à#ž«ÖíK7°‘FUWïÖ󒯤ÒËÇKDù¦ — tI÷88êîB|D»PÃÇQ.œ3,Má‹@ W”ïg=c4˜œÜ¢çWp-Ÿ‚+,§qRé"%ÿ‰þCù­ŸçÛþæåu5Ž<Ö™Þò8Ù§1˜ ®w+@ÉW®š?=ýñçnJïþÀ|fï™Fá#œG·óU^Bp’¯š{~{{wìíâ¿áú¡(? sßþ´ðÕm韰4}óÇ+Ó>öMèE*õBðSà°ß²k,-(¿†[þ¾?å¥| âÍ<Ñ-ÊŽás–þ3 @o¦OˆïùÅcņ,æmc*¼R F Ž›Æ8ÏQ)ˆ‹A>¿õKO7ìKvµ³IéÛ{>³VKû÷qº·Ž %ÔaUúÁαã¤ÙS¥Ç~YÃ>åâ+ÀãÀÐ^…Õ2y}sž.ÞS¢8WW²ŽÂüU츞#‘"™^c¸¨x³€ŠïýþЃüêÓgîº2}ìŽ+Ò…WÎbÿ}Ìb ÏêÛØžÛõüÔ¿š5ýù+Eù™ô«f7¢:Ô·†u]­‡ÒóO¯KÿÝ%éÁ§6•ßrÈ[¥,Æ©ü·|× Þ…ò[Oýò.ø‡·ìÏíKØ|~/èxÖþlª¼lƒý¦ˆ:›O(›=žÃÚóÀtÐòæãF7§«/àÕY¶)«ò.åïôë>(¹£€¬ü²^“†è<áÇmA-çÕ1DÞº‰–×ïÏ·Ž ºÉ³6ƒM@¥4ì-JrÔÙxá™§‚8Ï´aL”ëë1]{wí{€eø%PÙ6€¹@å¿L¡4xªÒ3Ç¥{ï¾&}êî+ÓÜ«Îcç#ú˜}¬êãëÃGÞû ¯/ôøè$|•ɾjö&lΞ lÜÙ±»-=óøÚô×ßZ”xrSjëùº´×r4æíÑãà àíHLZªð*¾pD`Ø¿ØëË/ õ-ò#¸_®ÇÏy:“Fo•ÙÑ`Åóúk¼þâŠç(! *€ù†RÖ,+ãX†Íhêê {Ó¯îL£ØÐtÐ(tæ²æY™£f̵|uÂøsÐmÀÑëñNÁ¥s‡¥ŒæýC©e·2›i4ÿ—‡¸kª¨ž0NÊY–¼'ý·DQ7›§ ¯«qñz*ØXà(À^ÕûêUÀs¯w€ù Ç(¡ž]•®¹drú“ÏÝnþÐü4ˆ­àS{ŠÏ~}á #$Ý!¿#o™ô× ›õ¼}X5˜QÐöýéá‡V¥¿ù×ÅééWv†«#ë«Az hŒÖË­¶ì2Ïž_eWñ†ÍI¥æc]$y|Ìý„#þœteà¹N6ð‰Ð[¡Túà‹cÿn3ÌöÄyÀ1#¦‹¸2aÇicR‹^=kdîι¬WÎz 2oÀ 7v´0Œ-À¼¿}~áî´›7»Ékˆ•`)°*ª‚lF p¸ú‹‚lüñ‹ÆqÉz¶®Å:{Ûã¨c#Ð ¬¾,tø8¸X–2 ؘ>qÛÅ髟¿.½ó]³SÓXæîwîfþý|‚œa~ÊÏ®Šôú|Ž\Íæ%žZ&ùưqç°ºt`ýîtÿ«ØÄcYzêW;òC”òJGDOƒÇÀ: ÒË#ëªò¢Ç^ßtB†Iñ)øXäKéÈïÉÿÙ<8M‚J¥ {l-X ²|à~/¿¹%mÞ65M¾h$jÄ¢ ^ú÷kÄYzÍÉ3³!9#,17Ðɪ@7ë¬ÓÈdàÐ4QÄ*ÅúÅ«Á¶…7UWx•ò•ºý8'¥8OWÅÐ( *”×±×W<>|Ü &ãÊ4nô ôÑ÷\˜¾ú¥w¤éó§Q7NßÚ’óñ·è®a£N–óí$)“}ÜïûþCýó±Ùª¦¤mûÞô£ûW¤ÿ÷_–¥7Wñ” œ{Ù£1zhVÛÅž_‹÷úá·Ü¡ôºÖÇ,um‘~²Ïñúý£Š( E±åG³çW`¶€À‰²áaæiÀú=i9{ùåãÐ ¶Øbb¯9£Ï'ç}ò&ýž¡ =ªí< 𣜠øˆÊäi>Fà%Fˆï&…|:PUH„’Z>Ë¥âO¨9tBŠóÌÇQŽõõâ^Kerˆ+¸\r½q31ˆIW_21}ú®KÓ?4/™>‚³ðßAñ¡üí|‡€EO<5Éßyt „;ø`ê±µìò,w7½¶5}ïþ•é´:-Yëà£YFùþ0xÈë,Ut‡ü1ì7,,»ü±.ºæ¡òKúƒú3qì÷Æ•™*q@¡R@t%y£*(Î i §ñÏ›\eÒÜ>ú¾¹éO>Mºî¦Yì Ìàa'Ë™¹ßï` ¯Ÿr¯v¢Ï¬²‹Aäm¾rÏÏÇ:[x­c§Þ¿ùú¢ô­Öò~…¶§™Áëàà'&´¼–5ß…qööÓ¨=~IDATº*¾<(ýAýñ'ŽýÞ¹зÉUIިƒŠ!ÙûL7£M­ûÛÓP^ð¹tÞÈÔ4z Xc|5ä ×yÈ•K÷H)·5¾PÇ÷ F H»YéöÂë;‹ÛŸ«|Ïí WË#bhk¹¼P¸xk<Нb¨øº–ðrð9p7ðq_ù˜;sTúô—¦?¼û²´àúil‘ÞŽòáû0ZÔ9Op2ÌGÛ)ßO`ë.ߨc°‘×xkØÄ£ëà¡´ô…Méüë²ôM”¿e:ÛƒTèWÀƒÝ®K”­³|0qИ.zã…õò'x"D´¥þ us ‡u¯p¥,$ ‚dO¤¨ø œ=ñ* ¢4øÍÀÛ[Ó+‹¶³SÐÁ4rÊ`nÜÓßS\ð£Nð†nÒûgiäøaÞ%hl`²Œ03Ù)h !Ù´½ÇpØG3Á8 2(è^ ʈ7_Ä,CÐ=&ÍŽÇ Ûæº1TÆ›•Ë:} ܃2™xÎŒQéÿüâé½·_œ†¬æ;ºm/›£°¸ÇËr_ï'âS~ÔçÇI`_ªeŸ>äRÅkÐ~þ¥_oIù?¥Ÿ=»5í;(‹{< ëÚ ,«C~Û@ƒŠ½¾n(½i­«<QoÝ õâ@ ßëØïcPYRøU¬è}¼Ÿ.åûâ:†ò—_0*7i÷¾L2ì÷T!y¤… uË`v¸ à ìº[ÛP—ªÙ*¬“-º×ò• ÷ <Øse ×ݶ{@Ëc¹öòîÌs˜èrùõ{Ìúxû Ê‚7Oö9äÿcp3è¡ü~¥è½×ÏNzïuéöÛ.JÍ9ÌÇSŽìÙÏ~}<êã?zGz¹(Ô?¿ùȰ¿—|øÈHÕHŠËê¾§^Ÿþò›KÒOQþ6¾¹Ø‹œx<4´*z”W…/û-¿qB¿–Ä ‹ÊÖÅúžkdQ·Þáˆ?¡[1ý³Gå †Úcªpö>*ßH0L¦Ë·ù~þ|_ÚBO^ÅÛ~GX.ÌL_÷­@·nFŽYK.î÷ýÎ@-_.jP„9mÝæ¶´öØ[o^Ãû_Á,>£×ø‚Qºf.ÅuU&¯ì9aÆãÿøsp5pŽ¡LãF Nw¾g^úß¾rSºéŽKR-¬VJ-ûXã;Pp·ìªrØo¶Ô÷¨«! Ôº®Ÿ{ý*–JÚy =þÔ†ô_ÿaqzø…m|^¾›å+å'O|,*¶u¶Žò<†üŽBéu­‹J¯õ2óàE𨰾zÏJ*¶e±Åø¨o1®˜¶¿bz²$glø5òI¡RØ4NjroéN´í` «çÌÉ’ÖºÔ±‡ÝlùtUi.€Só ² ºåß%Ãþü ¯Â×ÕÖ¥á¼'¿hukzu Ïû' 9Éa°Âï°x3°L–O¡·\¢;s|¥cÝWÉiCùÕÔˆŸÿ¿€Ï™ÀüÊtþ¬±é+Ÿº>}åÞw¦Y—`'èáîÞ›:ö¶2’G÷Pò*{}'úº_áõéG'kúëy…·AåZÇê¾¶ô½¬Jÿ÷7–¦ÞØó åëàqTóx¬’õ³NŽ„ÆW…וÖ#?Üà®õ‰ú–bÏžÿ¿Þ®5è]' eÄõ—>âúÔ¾bz²$¥$"^ÁTéÀ9`*€ºÒ&ÿÆÀpcSãî‘yÎ}@Vâ¼_`4OA_½(?-`È_3 >5±eøÎ‡Ó«|4tO«—)EÁ^T•ÀrxМÃÄUŒW(¢}=.$Ÿïß¾ î£A™šYÕw{òê#W¥{>~e{ÊïdÞæ–¬ü~ƒê³à‘xÊǬFÀwùÙH<¥§n(Ï5`Ákþð§kÓ_~{Ez}™ËúÐFbžèÆ:\˯±’ìõE•_†•¾Ï €÷œ hxÝð‡q믂¶H¤+žÓ_Úr\H9¢âÉBXd¤Œ eB¬ósy‡¥sÁE ó°ƒ{þú†ªtå…£Ò8žÔ0,®a¬4À0Ù'9kÜüTÀåBÄë|™_ä­ÌG9GòíAæVmhMëøhh‡Ÿ+‘웺]{D ’ñ*CQB,›ñEåÿ áÿÜ ÊóøyC±.½ï¦‹ÓŸñ–ô¾\ÂèðˆïÈ.öçoG]ÒË=~ér%D K«üèýýDW=/õTñ•žýÛö§¿o5=ÿŠ´lów}h=1ÿžÛ»:º2ãP|ýEXÏ0Q/ë/Žv3ñúÏ&жëíZ‡¨“ò(¯4–ú#­í<—¨òñ8߸L P…ŽÏ¦ò(tòJ¦*[Ákà&0df/]Ãwÿ[˲Þú4z£v½j‡o½‘ÍÔ›ˆv³PGlzYÍ„™wáƒØ³¹‰0 … -æýùD0,*ƒ)È2XFO–[#¤Áº|\‘áN7<}ø=—¤{>vUšõ 6/E–öòlŸaÿVøuq›Rò›­àòôþGYÓ&^æ©õ]<þ\õZKú΃Ò¿<°!­î»ÀÇr/O€§s!Èò9†úymœ®ç úÁë~¼çE}B?‹õ@ Ï#@Èâü±"Ò¦A4Ÿ@–QÂ=(.Ð#ò÷8L*2M¦†”g¦.Å}ø¢Ì0À+½‡Ò±.-¸`xz/ U5¡Ÿhwß°Ó/õ÷¸3rà׉ýg-ŸåöËA‡×´¦7Øqhåšý©Í‰Äcd4¡,±¡-O”ɸèÕRÉ4³€³ü*ÿpЃfL•¾üéò_Ë.½£)öÖoÍ_åqùn—}¾ÂË ¿üŠžq÷?¨føRO©j‡x¶ïbs“úÑšô÷­ç C=Êï5-Û"ðx¨ä1ÙC} €‚0ý¶ƒu2n¼Ù¯[l;Ãg#Y‡€ Õ_¬ëd·çolG•þ% 8ÅcReÁóÂõXÈ‚ñ†ËT1eVôñÈ(LSõ«„6Ê*ð,¸ dàžo.ßžm{ºåÝSR=¹t²sP‡/ÉäGd¼ÄâWÕ70óÏh!±7€Ÿæ]öâ¶tÿ;ÒÌ”/YÅ«´¤+´—ŠrØÐ–Ã! ¤?[%QYBóâßîï=”߯¿|Vúâ§nLïyÏEiØ”áÌé±ïÎ=©Ý¯òàw—^¿Ã×åD_†÷ü,òq¹3rÕ8Œu ûß\ÈGOÿéþõémíOù-›JÿsðPx5f’eŽž? €®õx~QdŽ®Õ9Û)ê¢^Ú¦Ö=”×¶û(ø  LãèIù¬!òU^¿ÌWþâ:9â+ÔÍ2c³´ÄÆÛÆ©TÒVð2X f‚¬GXùöìk;Ò+(óå󇧚ÁèmëÑt˜W…%3«¯åÛ‚|{¯ÎOp3Ø¿ùPZüæžô·ßߘîûÅÖÔʇGJEÈ×_GœŠãum` ‚d"…E ¥Á›W¾÷KÀCÉäkÈ#ܲë²éé/î}wºñöŠlvlçý}îùyß¡|5oò¹Ñ‰ûõ1ÖÇO¯ß=ë_Çc¾j\ÃΑý‡ÓË<ÛÿÛï®I?xbk:Ø÷û|Ι¼ þxëd™ÃFϯqÖC7zýP…YÆÛˆ`Î˸Þñ;ÛH¾{þ„QÄß> ¼• rBw2PâMº Ãí,:ýSµÜ×7òBLþ¶2»qñ¾tß#ÛÒß–~µ¬•×ä½TP¹½6?ž®‹gÈË¡’h ,‹ŠT²2¥!ÿgßfË\¦éG¦Oôšt燮HsæM¢` ù[øX)_áíd²/ï×爅ž^=̳ü¾ÆKõ}´©AhVŸªöïcÏ“[ÒûçÕé¯ìbŸ“bùó%핞ÕÀÑCY^oBùK<6б^B¾GÆ2¥ÌüçÙ>Q'åL’A·àù*(*¿ÇÔ_ ©|”OÊ…qærü’‡q ¼%ª€àD_7¨ÒÉ7­®~‡µ*Ù0äO‰?ðìÆtíe£ÒÄ ‡¥ê†z>eÝ@gÏó~•Ÿž³}_GZ¸hOúÉcÛÓ÷2/]§ô¡}Ä,€gÁ`¹446¶B¢‚9œVì.*þ'ÀhP¦†úútþô1é£(þgï¾6½å×8m`¿¾ƒR‡½=Ïö-çQ¾š{þ<à3žhøN? xé‰MzùB¬_„âG;Èÿh ãÎV²EŠº¨ø³mmWã _ > z+?QÙ(Êc;"ù©Lx¾äùúåõq©bŽËš| GWF …Sj2x PÈoÙàòfßÞô³ç7§K.ž¦OG©›ž~$h9˜~ÎPÿk?\Ÿ^\¸7àþ¿ÚLÜSà°¨,6°eQYt„Ï`…òàç`+W¸‹Ê¯?”Þc¡ø2EôÍ™Ès”%yõ·ŠóÿÜj RF4¬òW*æ|ŒN‹¨þÉ‹Vèä©R±~•ѰCrù8 LÆço-{ÛÓ0zËK/•j§ó°àÀá´Œí®¾õÒ7~²1=ÿ/Óô2«èùöú+ApØ,¼¦Jãh`;.Ÿ—ƒ†}ÌÈæôñÛ.OŸGùßyëÅi€ŸàÞ¿-º[˜ìce=½øªòW9Óï=¿÷ûÈQ~³‘µÿµ˜“ƼºÌ3þí«÷¦ïÿtCúúÖ¥_-â³^ÇV,réL«ø< ÖYƒ¤kÙ­Ïn¿‚«Ð‡kÃ’†N7ü;[I£Ý›Bù­»f‚{Á ô&åDÿ l¶ù `þòM†>Õ“¼p…NΨâI2X¿ ׯµãcðOîŽO{[ÛóÛ~×.›F±8hÕËÛÒ_ýóÒôõû7¤•ý*){’Jád™ªò¨ä”¯¥µÙÈóÀ€Ï€óA3bpúì]צ?ûÊ{Ò%×ÍÎw]Û¶¦ö–6ê`v¿Ú|ïñ…+ýug'— 8á×0˜[°{Skú6åÿÚÖ¤…+÷÷®ƒ5RO€MÀ[%y¥‚;r±Žú#\ºØ1 /¥0æqùÀYþ×£}¨‹¼ Ù åW޾î#A¤ñÿ6xx>V=·}y¦_þ…¤…KT‰* 8qj®W„Œ·WV˜}$3 ¨y€›vaª™ØÛòæöô?Y÷ã'·¦½û£MQ¦uøOGÞ×KahlPHÛ¼Ö-à àƒ`èAW^<-ýù½7¥ÝyEšzÑDÄ€û}VõÙÃÈÕ}ùÙ>Y:ìg{îämi:è3Ì;þõ¬pœÌÖç«ÒÚ—øPÇ÷Ö¦oþtSZºV=îA*ì2ðsð,Ð@IʘJî ‚ ç°qù§?6\¢z°á³™”•PWR~l_Û6 žÃøOÛuèìTüûÀzÀð2wæ!ïŠ.‡QäXLÅ×ä“®BmÃÙ»Ù;+Ôkßþ¼˜>S3ßµ··ßÏë¾ý箃§Á.à¹Zt MÌy›¿=¿·õn®= yï\séÔôŸWz÷‡0[=bUß‘»R“}ÌîQfôîç!?#îÇ{ùó\øù„ {bÝQe&ü6¯Ø—þÛ?,Mßúé–´«¯SyßÖáy 1 ,—åV`­§®P@e†uÓ åÇ›•A…×!´ºçY§ ývÖMXg•ÿãàçþÈtòø»à `Gá(Áüœ–¿Ô€éå·®èA q…N2/P7„XW…•—+ÀÀX0djíùq‹ˆÖµ—|ü¬*8j—'Må0~[·k¾³Aå=l`ºó½§Ï|âštÙå3x5™U‡>ÛÇ=ì#>³ÃøˆåïòEå¥w.ÀÛ€Zü®ë¯CQx¸œ™þ¿ûþºôoníOù´—ÁÃ@# Â;A*…Òëªì¦µºÁ¿þ΢ҟ+ŠOu{PÈ‹r$/¬§Fý`Ï<åçPžô}÷%Êo~½ùè1©ÈÏRLá¿b Ì8o03”^¦Û€uÀ´÷~ LãÀЩ$›Ã8s0O{}ÛD¿Jc:{ü=@¥º|| ŒebmO:øÞ{Qúä‡¤× C<Îã3Æ©£ujÏßÞó½ç±7¿~öôYñ]éçý?/0ù?*kñC¶>åÕ–ô÷?ؾ÷è¶´¿ï>&•þgàU`Ø:h”b¸o=Bùå•ÐXG•^WHÁ_Ýs‰Tô¨›~ùcX>èʳÛÁÁ|p<’_ò[^;0(öúÊ¢|4?Ó⺺}¨bú°ä¤6 Ûˆ6(}fn{ꇀ–ùýÝ.N™vã³Ç,ÛìõCHTRåßâ94¼| \46eªeeá;LKüÉ«Ó-€æ1$§ÇïÜ»??âó™¾³üy{î<ÃO‘1nLšGLü¹‡=‚¬t_òyðáMé¯ÿm]zv!€ô}Za=žOÅ@Ŷ\ še×§òǰT^'ï¬côZxÏy ¹‰[Ô]þø òÛ›ÞäÀOÁ0¨¿ÁKùþ0D˜*àÄüéï¨LŽÆ”Ñ’®¼t$àñ•àG@º„ÅWT•P¹5@ÅQ9ÄÎnبŽ&n· G›>0ÝrÝÌôÑÛæ¥›o¹ `›ò´¯-u8ÙÇýþQF|—©¢ˆÎîççüW#Àƒ>öï·ø îÝçL?=ÿ¾méév¥ÿþýõ¬îÛ“ F¢"Ùû8zyXëeÝ­ƒ~•?”^×8.˜áÅå‘0½êŽøsÁU„õ–ÖKÞþ\NDŽ®^¿òÔ‰?ó’ŸÝ šÝ0ʨdš×"¯óÁ”c*ýq '#CHÃRËp@!W™mTXk­ëÍ{bX¶Ïw¢Ì,9iD0Ø„2]†`ë·±m)Ø ¼ÇSB l(ѰiumdÓ:ì§Ï{ |÷Z0ô y³Çæ-º?rû…iÛwùRQ÷:XàÓÎND5¼Ì“‹‡‚çm»úw¿ÑççÉ;ÙÁÇø¦Æ®Tç{ülFr€|þíÇÓ×îߘ^_á(¾­!æIð n=Ú¨‘%½óçŽK_½çŠô!>ËU?Ž›nvîd¢ï 0CùZ¿<êºþÜãw?âë6~˜SPÚ¾‹wø$·òÚ¶¶5}÷¡Íé¿þ˺´~›z܇6óSð,°Nžh=-¿=¿'YÿP~ý! òA~TP¼™".Âg£k›JºòG™°^òÁºK÷€?—‚“Qqè¿—ÄýCfä±~ù«ëuô¼f©ñôG=„«¿•¸°1ƒ‚¹2[&G#›&Þø€qR¤3ÞsU‡ü6ô\p{7.ÂíÑ>MêÒGnš¾p÷iþS=»öt±C¯[t·3iÇB~†üK%Wù󫼸ÆÑÛ«øG™ðsøßÄp¿–5ýš¤mK÷¥oþhcúLJ¶OùWP–ŸƒÀ 1“TvWôüaŒ/ ¦¼ ?Qe*òµyyŠŠo±£ÍõÛÆÖY €“‘üÔà>äqL›Ÿr$åµþPzÝ"ŵ‹qe+ÇV<'ã€k£sõÛ!È6œ !…ašh¤8×FÕª›æ*ð1 ˜Êä'ÄæÎ‘Þ}íyéÓw^’.¼n*È¥¶0Ñ·ï`:ÌN¼h>ðˆóqžÃ{fô}†_þ³€x÷ð¯ÁHÔ3ì¯m&-€K¶¦oÜ¿9}ãÁ-ýmâ¡r/‡ýÎa(„3¯÷dŸõ ¡Ô•?Ö™‹•yƒ7ûåÁ¹DÖÑ:Ù–ºÑÖ?“8Û÷ xRòü×ÁÀ6¾«ìò9Œ­|a¼^ðÜr>.YØ ½}È`IA^_æK2Þx'øl¡Ap¸oCz«pø,x/pX݃\ÀŸq¾ûÖÙiÄ$F€<×ïä ¼‡xžÏ_uuiHï?¯èã‘_©÷§(òûü<ê«kb#>Ó…ÕH‹Ø©÷¯¿³)}ï±…MHÊ—¶ì¯pÐx c-·a €†  † F݃EA<©`’Ï™NÑö–3ênÔ=Ž9Ôÿø0cäIHZž+€üuÞ@ªø"x@×ë¿C0㤊ûö8 ³m@× EÐï1ãC0t5#À-à#à:ÐCùýç;¯œšî¾íÂôn>Ä9دò°>ÿÈ^󵱉½¹YjJ==—)ßû—”¿4ôwåù\äÓÀm“„/¾´“e½[Ó}Oò-ÂòDdW"‡ùo‚G½eUV¬‹Â¨jt‹Ê¯¿T¨c®u Á ¡4Ÿs¬ÆÜ¶µ‡¶m÷ Ÿò¼ؾwÛ;S0 ñÝ®ÁƒFV¹0©y÷æ·a¯ëqù¬+¼„î ©bNÈžãì±2_Al(ý*ƒéuUãõ{Ïÿi ò—É!ÿhžïßqóìôÙO\ž.¹|2oñÑž;Ø¥åow¹æû}Wû¡ôÞßç!?#?Íå|@)ì_îhéÆN¬]{ }ã­é;¶ð‰.‹ÒƒTì—ÀÏÁ2`{~Ëkϯ1°ÂzBazyQÁd^g+uW êõRù?þ p>Ç‘^&šnòçN±z{rC¾¾ žkù(K*ºü—ßÁçp½¶¹èJÅ‹þÒÑÂŘñxƒÉº6ŠM,©ü!º6d4¢½Á40”©¶¦&]wéäô…O,HïzÇÌ4vB3¢Ãʼ}¬êãÓã>ÓG¹óF.ì1{ŸíÇã¾îG}) Xö‹ap7ŸZîûCÿ½§Ÿ<Õ’~öË=½•ßro¿ö—q—ÞÜÛ;ÓŸ Çóˆ€K‘¶Š¸*?åƒàmÚÙ‘Cù·ðõ¡Y¦@Ŭƒ€å³ž1Ü÷$ Eo!´®Â|tƒ ÷¨_8KÜbÙïmu W~-÷ï÷ grÄÖÀ0¬žOÁû>‘Çn39{LŠäÕðXT~&|2¯Ãèj DðÙëÆ(@¿¹Y¾c¹8U À‰¸sjÇ‚ÙEæÛ@R¸!<Å8‡Òû(R½Â«Ë6§ÇŸ^–nå1]í>6:ˆ„´Ø“³T×,Un'ül{{~ýYá sLdÃàÀ"Š€ÿÀÁŽ´u§{ýyÕ²¬(T›Áj°8Û¯‡2CÓØóà ^ox!)xÒÛŸžEÁ Ý€|Ñ/ŠõœFØ!ÿÇÁw_$LJZ·¨3Þ³ž¬í¤«r¬£í9\ >>æ‚rÇ:œïEN8"6˜ÁØÑ´oÿA>øâÓR•È|Vƒ_;†9„òë*/6š|×¼÷üÞL–딨bN‰M¿q¢h]]ؘ*—; LYpŽ (ë· ¤ëv¦FNnN ñhŸSäy>®C}dÁ·ùòƹçGª0y4•ß0CM¤©…TÃwªùîàFËÖJû”¥Pá¦9À‰'Ë· 8#­Pš8Í‹‡Â~ë'"m„‰:ã)ʪ+?t%]ÛE×z릲 ü)¸ 8¯S¦¡CšÒÕ—NKçMÃLGÒúÍ»ÒN&q;{î ºŽTþç€|Öøª—ò_ÙÐ ¥Wñ‹†7Êb»¼-ª€·Å¶·|’Â#,…)zT³‡Ux&Ó Ä]iÛÎ6îÕ[åw¥ |7pȨÆTúý:7î` €· .íõÛ|y<ép¿| €L‡Åã«9c>9˜óÆßþC< ØÒÎ>¥ÊP¹l&fóе1¸£@#Pá höËmÖÊOé%7üDçøç:y†“å´NºÂòË _¨hŸ îß \Ö«ÑŒ6Mõõµé¢YøêÒŒ4~ôдsW[Z¶f[ÚÊSœÎB×Ï9«Áãài°8úòº*y±××Èó0¼º–%Êf9ß–¨8÷; H„Pé·±½OlÖ,L—iëüßXΧ¹[¥icÒ°‘ìÏWí7ù¸‡ôñŸ•‡ü>ëG|,Xî¤Ì#À㦣ô:~¢¬®©&!Ÿ‘<8Ìh`ÓŽŽlzÝ:.ÓÀ@ P:7 `†àá-_,ê¨ †ßãRQ8{+¥øÏù²„+ß-k´S0ÓÒ©à#Áõà^ðGàjУ×oàÌKçNLwò¡ÕYÓF¥åk[Òs/­fD·«·òoâÜŸ€'€€×ÔØÊgeA>€@#¼ð»Èc’U À©ñé7M¥€…P™—~Êáž®»Øð FÀÞ8Ó~>º|ÝÞ´býÞÔÄZþéãšRÍÈzîëYÚËží¹§ä>¿Ê7C”úgYaâ¸.ž;wqkáIkêªÓØ éüiÓùSø9ŠìàCžmŒ dN–GùÃ'ãNCÂæS'1-»BëÉQë¤l™G¸xóyºÆý÷Ût½ž° ,[À2[‡€ Ê5ÿ{ÀçÁ=ààm[²Ï˜<*ýñ§nÈ[²à[‰OÿjEzå߸ÕA“Y•i¾Ÿ‚§€=¿|öúöì1ôå—·Âc1À›Ë™†kü["+_¡ß>BPl(ý Ÿ$ÿ½ßv$ ”8P©T2€B‘©íБ´˜ýø7liK#øÖÀ8ÞâkäÙ¾ûôwÑÃód™[¾èÃóåÒvßÿ•e.™Ÿ”Òu°³ÏѶùæÉˆIMiÞÌAiƤž7÷2'p#О?JÚ}áRyXž9`°|*»tR]…T ×:[ß0zQ÷"ôðžv*^KžGŠŠ£_¥²M¼ºÜ> Þäƒu/ÓàæiÁÅ“Ó'n[@Ï1OXަýüÕôÀo¦]{\:уTøŸƒÇÀv`y4ú^ÛĽù…·" “åýyV1pñwH!èò]£®Ãn{#Ø <>(eÚÈç¸^Zº'mÜÜ–F7V§ñãëSíˆ:öîGáyjpÄ¥ÂÌTÓíû+’í|­¼¤žƒêzF£Ó¼¹ƒÓ•s‡¤1ÃRÛÁ£i'Ÿ.ó+ƽHÁ4W‚ ʨðj¼P•?„Õ«yž½œ0¬êðö(¬ÇDP„OżM«_ŸõkTu¥P&Ë*$×?\Þ ¾ þÜfóéAs¦K_ùìéÿúê{ÒÕ󦤇žZ”þêO¤ç_^›¹öH\Z×qÏ€­À²ÈÛ=”?Fºí@^ZNåÔÆ —¨·N}*ôÖ³¨œqŠPèl,y^dã<¦ÐõÉÀvàˆÀ°#gè='g°k_{zsuk¶70¬Lª&†õµ¼â[ÃË>õ¬:©f4p„ûþ¸·Ï'› ³UÜ´·w²eOX[PÓT›òá’)“¦¹Ü^Œ> Î\—ï`±JÛae¯LQV{ÇÙ`˜¦t»ÃqUx…Ûº…XA/ sÔ=Š'oÌ?á"¿úóGzùK0—ÁëTž(ƒÇU@ïã5l—ÿÃàðN`=yLÕðwöôÑé½7œŸî½çútÛ-sÓ€ÚÚôÔ/W¤¿ùç§Ò¯_ÛùéqUâåÀaÿ/À`9å“å±××İ?”ßrznTë`zë)þ(2ú2©œ|J×l]‡š ¡®aÅð$p ¸ \zPJ?}Ü€tûµÃÒ7ŒH æâë=Èé~F»ÛÓÁ<Ã_’ÿéüË¢ãSojTóZÜÚ:^®eCÐÆtèhMjÛÛÉÛ‚ÓÏžÛ‘zakZ´¦Ï v±, ¬p°¼%Ýa^CЛ¬Œ ,¢JVjK¬Àãæ8]©P«Rÿ‘^W^Tn ˜#™‹Á¥`2Ð;ò2ïT_W“®æƒ+_ýÜ é¦÷_œ† mJ¯?¿,ýÕ?<™yvYÚÎŒ¿Ïû d^÷w»>ñÑ8 y¢ÒË»X^ãuCñuͧ‚åzê[Ô§‚o+—ÊI§ÂTQÁ7¬¨ô ¾®O„–?w<þkÁ-@! zÐX>C~åìé¦+†¥.kNçOnLuÃò¬ÓŠôôLHâÞÞ=;ÿå«U;aH1:¹p”PSÅ2U_5Aî›A5Åi«J«X/ðŸ-yÑîôòò=iõæ<ÏvÛ1‹x\ÚÌ‘M`K·»wpØ«1pt£"´µE^ôGÆ[зJ½Ï‘ß>Þtt2ŒSÁ 0 L{ýÒŒ #Ó>¥~Í•3Òu7ÌI—œ7†Ï¾NO½°2}û‡¿N÷?úFjk‹&+gaý^¿èv­·†Åö¶Þöü¦ ªâ•_¿u „e1|ZèxŒ?-™W2éÁyüÖU4’j/ŒÓèÚà ‡~G·‚›Á`\™|ÎßÌPþÝ—Iw½sdºf~3ûjÙ! Ya¸ˆ=ý}­²•Ÿtñjp°@ˆa­ñÕ‚êêÚTÇ㬺Át„̓ÒÑšúÔ¾‡IÈÅ­é¹W·§'_Þ’~½xWÚ±û`rÑR'pDÑ‹Œ!èƒÕ`Ø6D(Í™6&}èæ Ó‡o¿4½h2[©Kk¹8}ýŸžLß}paÚ°moæA!Ëå­Ü‹ÀE>«€quÀ²Æ_·}‹u·þZW{}ýźÊɸÓBÁ¸Ó’Y%““r øBkXaÕU`UjÃöÂp(„Â<Ì׃+@Ÿ«™ÏwϘИæÏ”nf4pÍEƒÒäIØ7þd^ ‹ÛƒÃûްYª"Ž+WÕ ô¼bÅô!Ù2—P]—šI BG8¿ºeÈhëÞ#, :˜V2ñúòÝiù†=iÑÊ]i5ŸCל„ìív‡»ŽT{E@K·kx0­é„J¢²¨!üòFƒ)4˜*³½¼ó%CÁ( âÆÅ1y¦ÿ¸4dà€tñ¬qé*zü«ÌH³çOI3æŒIÍõi z~öèâôƒû_IÏüzuÚŽì‡V÷°÷×o"Ë)Y‡ýÖO×öÖQWÅ·ž2SXß"ž> <}9Vr:‚ߺ6ª® _ÒºcÀžBÑh +Þc+Ü—‚[À•` ðxrDpñôéƒ×I×Ï”æÍ˜†òNO 4~ÿ³‹{‚ß/à6àèQn Te£PMáÐ/üÕ]­cÐØ”j°¼5ÕQ¬ÃÕiϦ¶´pÅ®ôâë-éåÅ-¬UØ•6³zq?ŸBë`[²“Ü&DyåƒoÝ4a k 4aL'ßä†qP7Tî€|ò¸iOH Ü××3‰7dð€4cÒ¨tùe“Ò WÏL×]}^:;R3 lÝÅ'Ò–§ûî{)}óþWéõ-^²V€'Àó` °mlC[…·.a4 ÆÖ„Ò[Oãƒä‘n)tþOÊœÓpJ}9|×Uù%ÝèF§)È …B!0lï6Ü®ã@ä‹—¡QCjÓ8ææŸ7 ݼ`(Æ`p?­>U7“­£çZQVDðˆÊîIÞ[¯ªfá(ƒÜT×Öó;¯²6Öƒ©ªÖ§Ì!tbu¥½»yËG”kÖïK‹W¶¤Œ –­Ù•ÖnÚAèÈÏÆs¡Nþgý¬§J Béð–I~Yßà™üQÑtOJŽx².zú¤iÞìñi‹x.š3.MŸ;!M@é‡ù²îص#­ximúÞC¯§GžZ‘V¬ia¤÷!×/ÁÓ`1ÐBX>ËiTvOÔ …·~°®é£®ž£A2|ÚÉ VèwÏ"ßCCX ‡P‡!Páæ:*P@b¸hïçÜÀµ`˜ òó'HŠ=ÎÀtýÅÍéê¹ÓÓšØu¨.tg`vbIQ tòÞ[±Ý@už4ì¬Òþh (–BcÀíA}=‹‡*;GX“0©ƒËîiO›7ïO«6îOkX½èRØ•öå‘Á®½xŽ÷x%ÙÕ)÷¿}òüf¾˜Ü„ÂûåäÑÜ×O98M›<27{tºø‚ é<¾«8h ½}½¬nO{ö¤•o¬IÏ<±$=úä²ôÈ‹kÓ¾Ò{½ l[l*ÿ‹`)Pùm ’ÇUz¡¿¨ü:? ^(}Œ G[V Ì8—(Ö:éWñí½lh]•?\ý*ôpq,Îóžv ¸¼82Ps{[5±xhô0^V™6 ]sáôN& /œÓ”Yœ{Å“]ôU‡¸EèäÖ ' t1IX…Q¨&¯jÜ*V1|®å6¡¦ŽâÖt0¯p„LlO­{§í-Ó¦-… {Óš­»ÓÊu»Ójü-»öc0 ¼-×ÏDbò¿•€;ï47Õ§áC¥)F¤YSFàOÓ&K3ñ;$ dÛµ0`en¥”mÖ7-Ù”~ñÌŠôï?_ÌÓ­|fñ ·3ýꟷ'>ò| Øë;w¡–iž ÂÛëëäp(¾Ê/L«Ò{®Ç<ß°íÛï…‰?-ä*ôŸÃ"ïmd•=¾¤u¥°Šì1]¥T#`7¥+)0 •#„IààãBÀTàdX²CŸ:®!Íž< ]2½)]8}@š6w×Ç6¦±Œ ªx¢ Rørab4ÐEï~”•ƒ ûñ»)™ë9Tñ4¡…¯'}†Õl|QÕÄ\A#F£‘—¶s>s{÷bâì¯$LÛ™/؉»Û¶ûCëƒlPÚÁ#K&*1‡xzqEHíÌ't² ©Ó' ”Û'˜ÕT Ö{wvÙiðñ%3ööîƒ@ó ú4ŠùŠñ#¥Q#›ÓHzû±c›Ó¨ÑÍiøè©75È. öµîIÛÖµ¤Å¯oL/½¼6½ô*_FZ¾#-Û¬~÷KX7Àrà|…íc;I*~À6 c ÚME—”ýÂö7,…[ æÿ¢žæ¬+Ù½ØÂÆÖUÂÕ¯`iÂ(dB#€–åøè=<ÏG_sÁÕÀ[ƒ ÌéÌ¾¦*Ï\rÞ tO ®dYð´ñ iø˜Ft¸&Õ¢lÕ®æ Næ‡sKEêbÎà(·¬+¤Œ Pz':‡ a¨qt 1`{jƒK|—£ ú?ßR<ÔÖÎâ£ÃùaOk;óíiÐÏËNí¼¿ÐÉä¥ÚAŽ|ý¨®Iƒ›˜—l@éÓС@cjBù®cPMù«êœÜìÖ/vD¦¼JÝžÚ÷±'–=iáâÍé…W6¥Ÿ=¿†IÍFÇ8¾ào öúÏ€¥@c A–¯OIK•Þ°çÚÓÖ5®F@òr¦±í$Ãý!;­qÁÓši%³·ÌÞíÀxý¡üú…AÅ×hô›VÁRp<î,ø0½çãÎèŽë}=¢±l>:žƒ&‚ ¼v<{r}š5i@š>~`š:¾‰ž”‘Á@²¦ç-‰l{ïÏ(áˆóˆôùd9Ÿ*TçÛƒ’[…¨¢Ç®á6¡ %ÆJPbA®TÒÈépq°ñ]wä:«WzZÁ£JŒN#£Wç‰:noR#ìÈ o^}Æås²®íg+4öWØ´vgZ¼b{Z²lGzcÉŽ´ˆÛ‘­;[Ó–íl·ž¯áuúÐZb–€e`%ØTtW~K*{ ùUðð«è"”Þvò<¯m®msüRpðt’«Ð™ÁÞma%XVóô«ô ] AŒ8TîqìhæG“€Ë4æÕ‡T²æUiÖÄù•á9ÌÌ2 . ­KƒxŠ0kp—[&íÑéöKŠŒRw¡Ô]ÜXì¼ØHc@ÑÏ·y2‘ô>q>apïroÎ;Ù˜ýÌ/ä=Í-aVfÎášYm(#âGw´‚QB ¼Õq$dÛóCŒ öòVÞ¶mmiýÆVöWØž^^ºaþN3±¹Jÿú¦:qçìþfðx l*>ËüSq‹Š¯Ò‡¢G*|ý>œr¼æïLù½°…¨Ð™Áb[(ÖUé…~¡ð¡%Ù5¬â'ô{Ìô’~ÓxÓ;ŒÓAŒftÇáôOŽ é]‡ñ-ÂìL4 #àb£iãÓÄQ¼DÄ­ÂxF ÍCx3qO Øz,|‚{yòõBEWôõçâVásm).#…¬ä*¶{˜™F¥×øÁÓA2%òŒ¸ßºëE+tæq Ø.!H{`8Ê¯ÖØ£ A@áSP…ç8"˜ ¦ƒà<0ðL/¯’sÔÅ¥K¡ò?Ñ£x|8qdcÇm· ãxxØ`fÝùÌøhÜfFƒØs  ƒÐà<›ŽÔ¢Èõ¼~\Çp½&+³·é €Eóš¸Þ³gCáÜ‚·‚ÛÆèîWàvhL äù²‘w3Á¸‹aþvæ¶´J›·²¹êŽýi½þ¶êå IÞx?¿¨üË“|뀊¯rÊOy+?CÑU|•¼hÌ«¨ø¡ü¡ðá’,“yKá–B¿ƒ¹]¡3—¶BQl'•]M‘t ‡pjâxÝ0 ¡aqŽ®#ƒÑ@ƒ 1˜4C€·Ç%;a?EîãÅZPƒß7› ÇŒ`ÒˆÁuv6æËÆÍld2œðÐA<-pd@ïßÀ=|ƒ½»UÔAÑójDJÚÅM¿“޼²¬Ò·³×Ÿ1Û³Ÿ§ (ú^íæÕè{ÛSËîÃm¤ñævp„UŽù]…ÞêÖ·F*ý: Â¯Á. r[*I«Ô¡Ü*¼0¬FÀ° _„%æ~¼=ò6ü;§¨Üïü• ž¢}ÂDØ“Uf¡r/"¬«r«üºö\q¿ï1ó AÅ›g±íý½=˜&''ã4‰EÏ?eR¹XhägÉéýñ’Q£[œc0ºÂ;uP‡¿*(V¸^9ñ׉p']—-«ØÙé€÷ö‡»òúßq°F§F*êàc;ïï·5`+ØÔöÞ_Eµ®òPÞz^ óCéU|=FúMgiy§Ò:Ä÷^~ X6•ÞÞÞ´RðÎs¢‡÷\»ØÓ‡ßø@ñzúÍC7økøŒ" V¡³½•Ͱ‚+¤Pðˆ3, «Ü*o]¡pª,‘·i ˆyW:pàâ"Ÿ"è‘®iâ‘$Þÿ²Þ³ {x{{]Ñî iìíUfëk݃*nïžÞtï±ð{͇Á1.€·‡ßðAV¸BgBI£ä Z({øUxÓ…âë¥7­~Ý0ºaŠù+Ø!ÔæeŸ&¨ü¡ApÁ8i4œ[pñ‘F$ÊÖ»£ Y)Ü[â@´©‚©¿¥Žc¡|º¡Ä¡¸ÆI*yœþHÁ^¼˜—ùy}Ã*ŽþP¤HÇ9Ô/y\EX×rý*¤Ç£‡÷šaŠŠï¹ÅžÝóLkyE¤5N Ãõ)Ŗα>ÆKá–Bgð‘±gp1+E;ͰÝC©îðÝPò‘‡kÚð‡kZýR1δR\W¿Ç GþÆõGW¡"~QTÔ¢ßc¡¨Æ‹PìðRÄÅy*½¤ë1)ÒÆu#¾tô,þ¦žÅU¨ý-r ”Qa¶ýCt=ᢂÆ9‹9¼9m1~Éôú#¿bš¸N\?Ò람âMþ¢bG|ñ˜~QTôP~¢Ë† Ήô“L{*eïí†âš‡y{< €aë&EM/L®~aã$]Ëf|PÑqg­ rÖV Rð·Íh{º¨€o\(‚þ€Ç#®ña¢2…áðúM×í}NïÏ å 7ÊgXñ¡üë8G7ò²<¦ó<ýRäÛÛŸžÍQÁ³¹•²ÿfèOx•5ß4‘. A¤‰«GšDZp=G¿itÈàÍ×5àqɸˆ/º*näŠìñÈ?îé‹ã‘g(=‡ÊÀtq¾ñ½Écç UnΙ¦|Û9ž@÷ŽžT¥‰ž<(ÐsŒ‹suÃ`à-+e¤¸PHÃAÆE>Æétqˆ‹´¯k\ÄëÆ±èÙ#éHÒ‡Š×ïsð\ˆ°òªpà­r ¨XžJ¤Â¨ðEÅñXŒ¢¼Ï!I*¦+æ‰ IDI_ICON1 ICON "@EZQUAKE_RESOURCE_ICON@" VS_VERSION_INFO VERSIONINFO FILEVERSION @EZQUAKE_RESOURCE_VERSION@ BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "@EZQUAKE_RESOURCE_DESCRIPTION@\0" VALUE "ProductName", "@EZQUAKE_RESOURCE_NAME@\0" VALUE "ProductVersion", "@EZQUAKE_RESOURCE_COMMIT@\0" VALUE "LegalCopyright", "@EZQUAKE_RESOURCE_AUTHOR@\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END ENDezquake-3.6.6/dist/windows/ezquake.ico000066400000000000000000001022761477060523000200050ustar00rootroot00000000000000 00 ¨%–  ¨>& hæ600¨N; ¨ öWhžd00¨h ¨®vhV(0` €%  -@Q`daUF4% 7h›Ëåô $û "*ü )û ó åÇ’]2 ?•á +ÿYuÿ.ˆ±ÿE²ãÿVÆùÿ`Êúÿ`¿ëÿ_µÜÿ`±Öÿ`­ÑÿS“°ÿ1Vgÿ ÷¹`- '†éäÿ“(dp)s ñPˆžÿ|ÝÿÿaÐüÿLÊüÿXoÿàc(/ãüaKú ÿ«8JØ=^kÿ†ÛúÿmØÿÿUÒÿÿ(mˆÿìp*.ïÒ,»3vÿE¼èÿ4BÿÒD ±.BKÿ„ÐëÿwÞÿÿ\Öÿÿ.z˜ÿòy+IÿaN#ÿSÄîÿGÏÿÿIÍüÿ2=ÿ„%)ÿs¶Îÿyáÿÿ^Ùÿÿ5ˆ§ÿ õ.J3©8t‰ÿW×ÿÿHÊøÿI½åÿ öE_ óTŒ ÿxáÿÿgÞÿÿB›»ÿ û3( ìVºÛÿPÐúÿNÕÿÿ2}–ÿ¹LâÐÿÿ'—Æÿ $/Øe U(.Òÿ„:!9@íhÄåÿaãÿÿ-Œ°ÿ Å3üko‡V-6É`¥½ÿqçÿÿ7“´ÿÏK•å94FWò)qˆÿ«C Z‹Ÿÿ~ñÿÿF©Éÿ )ÝV ©Œ ’BŸÀÿTèÿÿ!XkÿNEmvõwäûÿO¸Òÿ &2à^ 3!@KßY×úÿLËòÿ8DÔg)FPïsÕéÿfÎêÿ2>ínX6wˆþ^ëÿÿ7’°ÿ‡‰%6?ÅvÀÑÿwÛïÿAMðx -F_rx ¾F¨Åÿ\çÿÿ#]qú—ji‚ òu©i ¨ÿ‡èôÿ+Ta÷‡2s š#6=»,IPÚ-W`ð4m|ü9~ÿ;‡™ÿ?•¬ÿVÐòÿYÚüÿC¤¾þ1u„ü6zŠþ5u„þ?Ž›ÿ2v…ÿz‰W€†ûêúÿ7gqûŽ~ì%(ÿJnwÿi£²ÿ|ËÞÿ†áøÿ‹ðÿÿŒ÷ÿÿ…÷ÿÿláþÿ\Õõÿ`âÿÿlæÿÿ{æÿÿ„èÿÿÿÿÿU¡¬ÿz^A_dé‹ÛæÿGz€üŸ&  0Uu˜*-´2FJÊA\a×FgpïqÈÙÿpðþÿK¬Àÿ4;ß$5<Ã)89¿B`fàFmtÿ {>1DEÕ†ÍÓÿX“ÿª+gTˆý‡ÿÿÿEš«ÿŽ 4è +-¯t¬²ÿeœ¤ÿ¸3@^aë’ÿÿÿaÍÝÿ #»f@ ‰a‹‘þo¥¬ÿ!Á;"/0²Šßçÿ‚úÿÿ*\bö^dMnrêi¤ÿ04ÍD^e”–ÿšÿÿÿ`ÆÏÿ Ä*<:XYÍVŒ‘ÿ#&Á(66É™êíÿÿÿÿEŽ“ÿ¡^$<=ÿ./«HRssø©ÿÿÿˆÿÿÿ:y{ÿ  "8))×ê-zeŒŒÿ­ÿÿÿ”ÿÿÿ4_`þp<Y!99â'@@ÿ ]ƒ_……ý¥ííÿ1RRÒ«$FFì²pB,(6`%%«Ammý:__ÿ rb+99Ùš:NNÚ¯ÿþÿ‡××ÿV‹Šÿ6ZZå&::Õ%;;Ó;[[ß[Žÿn¬«ÿAgfò l/+77Ánÿ™ÏÏÿ¬èçÿ¨çæÿŸàßÿ˜ÕÔÿ‡º¹ÿ\‰ˆù(<<±=J €-99©6HE»9II»1AA«€>ÿÿÿÿÿÿÿÿÿÿÀ?ÿÿÿüÿøÿðÿðàÿàøÿÀøÿÁüÿ€ÿþƒÀþÿŸ€ÿ€ÿàÿÀÿðÿÀ?øÿà?ðÿðÁÿðÿüÿþÿÿ€ÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿ(  €%.;^@QŠ:Eˆ"(R 8K„s•ê1v”ù.^tÐ)N_¹,JXÕ.4Ç 3xRÆñÿ"v›ó6&+c È0/>>"""#$ ,.4INEcjNrzW‡’}×êqáúcÝ÷`Ý÷-do*/15"15"031GLs±¾N{ƒ^^^x­·£ÿÿDv666Q€‰†ñÿkâû^Ñé"((&6:___`‡©ÿÿSŠ”5OTòÿqäúfßö',hhh;;;=UZ¥ôýh§± }}}%&“èõ|èûrïÿ+\eggg...bbb#/2šßç{½Åwww///~¾Å‹óÿwñÿN¤°)))…½Ä…ÈÑlllzzzMorœýÿ{ìûpèö.1 d“ŒÒÛ%'\\\™åëŠòý}øÿN¡© ===DcgÏØ24\\\WWW^†ˆ¢ÿÿïú{öÿ(RVMMM\\\.LNZ—š888ãæ–ùÿ‚öÿpáç$&eee !$%}}}AYZ®ÿÿöü„ýÿiÒÖeee&=?PPP999dŠ‹°ÿÿŽöû†ÿÿjÔ×&'\\\$$9]^%%qž²ÿÿ“ùü‘ÿÿb°±***xxxJzz ##"d‰Šµÿÿªÿÿ8[[qqqOOO888000*IId¥¦()444F__ÉÉ#&&$$~ÕÔS””..GGGqqqUUU""".-i¬«t½¼!!ooorssyyyRmmÁÿÿ¨ÿÿ—üúvÉÇRŒ‹0RQ22((,,)DCQ„ƒƒÐΟ÷õ[Œ‹OOOÐÿ'—Æ1GOšššBNS1GOhÄåaãÿ-Œ°:?B”””M[a`¥½qçÿ7“´5BHjjj)Q`)qˆXbfknoZ‹Ÿ~ñÿF©É*Zd8R[sÕéfÎê%BL‘‘‘7xŠ^ëÿ7’°vvvbbbXekvÀÑwÛï+NY‡‡‡CFHF¨Å\çÿ)bthhh•••–––}}}Š‹Œi ¨‡èô2[fxxx_mqKek;ak8o~9~;‡™?•¬VÐòYÚüD¦À5w‡7{Œ6v†?Ž›2v…†ˆˆxvvZ‚ˆêúLL&11eŒŒ­ÿÿ”ÿÿ5`a¦¦¦?Zr{z• \³ÔeštttL”¬<—·X¬ÆW…“L»ÜSh¦´Yˆ’ŽŽŽR`cLy„Z °b¼Ï_ÜýK¬ÄW¥°Pš©u¡ªT‰pÕçV–£ez}‡£¦Nw|r²¹`«´Mosšª«øÿlˆŠ=SU€®¯‹íðS``ˆ§¦i——„œ…œLon–²²¥¥t•”‚ÿÿÿÿþü}ü>ùŸùÏgùsùýøþü}þ“ÿ‡ÿÿÿÿ(0` €€€€€€€€€ÀÀÀÀÜÀðʦ @ ` €   À à@@ @@@`@€@ @À@à`` `@```€` `À`à€€ €@€`€€€ €À€à    @ ` €   À àÀÀ À@À`À€À ÀÀÀààà à@à`à€à àÀàà@@ @@@`@€@ @À@à@ @ @ @@ `@ €@  @ À@ à@@@@ @@@@@`@@€@@ @@À@@à@`@` @`@@``@`€@` @`À@`à@€@€ @€@@€`@€€@€ @€À@€à@ @  @ @@ `@ €@  @ À@ à@À@À @À@@À`@À€@À @ÀÀ@Àà@à@à @à@@à`@à€@à @àÀ@àà€€ €@€`€€€ €À€à€ € € @€ `€ €€  € À€ à€@€@ €@@€@`€@€€@ €@À€@à€`€` €`@€``€`€€` €`À€`à€€€€ €€@€€`€€€€€ €€À€€à€ €  € @€ `€ €€  € À€ à€À€À €À@€À`€À€€À €ÀÀ€Àà€à€à €à@€à`€à€€à €àÀ€ààÀÀ À@À`À€À ÀÀÀàÀ À À @À `À €À  À ÀÀ àÀ@À@ À@@À@`À@€À@ À@ÀÀ@àÀ`À` À`@À``À`€À` À`ÀÀ`àÀ€À€ À€@À€`À€€À€ À€ÀÀ€àÀ À  À @À `À €À  À ÀÀ àÀÀÀÀ ÀÀ@ÀÀ`ÀÀ€ÀÀ ðûÿ¤  €€€ÿÿÿÿÿÿÿÿÿÿÿÿ›RIIIIIIIR››I[nv···¶¶®®[R¤Inw··®[RIIIIR]­[›Rnwwv]IR¤¤IR[IRI[www][RRIRI]·wwnR›I®··wII›­··w[II[I[···]IR]wIRR···]I·ww¤¤I¶··m[]·wvI­··n›I¶·w]RI[··n›R·w·R›RR·¿¶I[[]··nI›¤I¶¿¶R›[[In··]I¤¤¤¤¤I[­¿·RR[RIIRS[[]···vSRSSRRm[[I¿·RRRIIR®¶·················¿[[R[·¿RIIIR­÷¶··¿¿¿¿·········¿¿[[›I¶¿[I›RIIIR[[­····[IIRRR¶][I÷¿]IR­¿··IIR[I­¿­R¿··I›R[¿®¤I¿¿¿[›I›I¶¶¤I¶¿¿nII¶¶›¤[¿¿¿I­¶I[I·¿¿mIR[¶I[[­¿¿¿[R[R­RI¶¿¿¶I›II¤[¿¿¿¶›IR[R­ö¿¿¶I[I[II­ö¿¿¶I¤I[II­ö¿[¤RRRR­IR[¶II¶­IIR¤[II­¶I›¤¤›ö¿¿¶­[IIIR­¶¿­IRR÷öööööö¿öö¿­I[RIR¤­÷÷­¤RI[¤›[[[¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿü?ÿÿøøÿÿðÿÿÿà?ÿÇÿÿàÿãÿÿøÿóÿÿŒÿùÿÿÿýÿÿÿÿÿþÀÿÿþà?ÿÿþÀÿÿüÈÿÿàÿøÿ€ÿ€Àÿüðÿüø?ÿþÏüÿþßþÿþÿÿƒÿþÿÿÁÿÿÿÿàÿÿÿÿðÿÿ€ÿÿùÿÿ€ÿñÿÿÀ?ÿãÿÿà?ÿ‡ÿÿðÿÿÿø@xÿÿü?ÿÿÿ€ÿÿÿàÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ( @€€€€€€€€€ÀÀÀÀÜÀðʦ @ ` €   À à@@ @@@`@€@ @À@à`` `@```€` `À`à€€ €@€`€€€ €À€à    @ ` €   À àÀÀ À@À`À€À ÀÀÀààà à@à`à€à àÀàà@@ @@@`@€@ @À@à@ @ @ @@ `@ €@  @ À@ à@@@@ @@@@@`@@€@@ @@À@@à@`@` @`@@``@`€@` @`À@`à@€@€ @€@@€`@€€@€ @€À@€à@ @  @ @@ `@ €@  @ À@ à@À@À @À@@À`@À€@À @ÀÀ@Àà@à@à @à@@à`@à€@à @àÀ@àà€€ €@€`€€€ €À€à€ € € @€ `€ €€  € À€ à€@€@ €@@€@`€@€€@ €@À€@à€`€` €`@€``€`€€` €`À€`à€€€€ €€@€€`€€€€€ €€À€€à€ €  € @€ `€ €€  € À€ à€À€À €À@€À`€À€€À €ÀÀ€Àà€à€à €à@€à`€à€€à €àÀ€ààÀÀ À@À`À€À ÀÀÀàÀ À À @À `À €À  À ÀÀ àÀ@À@ À@@À@`À@€À@ À@ÀÀ@àÀ`À` À`@À``À`€À` À`ÀÀ`àÀ€À€ À€@À€`À€€À€ À€ÀÀ€àÀ À  À @À `À €À  À ÀÀ àÀÀÀÀ ÀÀ@ÀÀ`ÀÀ€ÀÀ ðûÿ¤  €€€ÿÿÿÿÿÿÿÿÿÿÿÿ¤[[[[[¤[[nnnm]]]S[[[nwm[¤›SR¤RnwnR÷RR¶·nR÷[®·nR›I[][›­¿nRn¿[¤[·vR[·w[[··R÷]¿n¤››¶·S¤¤Rn·[›÷÷¤I¤­¿[¤›[[[]mm··n]]]m]¤¤­¿[I[®¶·¿¿¿·····¿¿­¤›¶]›÷¤››¤›¶¿nR››¤[¤[¶­­¿mI¤›÷­[[¿¶[÷¤­­[›¶¿[¤­[­¿¶R¤­[[¿¿m[R›¿¿[›RR­¿¿[÷RR¤¤¿›[[[[[››¿¶­[[[›­­[›­¶¶¶÷­¤¤¤¤¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿü‡ÿøçÿø?ùÿüùÿâÿÿáÿÿÃÁÿÿÇÿþà€ðÿÇŸ‡ÿÿÃÿÃÿñÿáÿøÿàÿýÿàùÿøãÿøçÿþÿÿ€ÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ( €€€€€€€€€ÀÀÀÀÜÀðʦ @ ` €   À à@@ @@@`@€@ @À@à`` `@```€` `À`à€€ €@€`€€€ €À€à    @ ` €   À àÀÀ À@À`À€À ÀÀÀààà à@à`à€à àÀàà@@ @@@`@€@ @À@à@ @ @ @@ `@ €@  @ À@ à@@@@ @@@@@`@@€@@ @@À@@à@`@` @`@@``@`€@` @`À@`à@€@€ @€@@€`@€€@€ @€À@€à@ @  @ @@ `@ €@  @ À@ à@À@À @À@@À`@À€@À @ÀÀ@Àà@à@à @à@@à`@à€@à @àÀ@àà€€ €@€`€€€ €À€à€ € € @€ `€ €€  € À€ à€@€@ €@@€@`€@€€@ €@À€@à€`€` €`@€``€`€€` €`À€`à€€€€ €€@€€`€€€€€ €€À€€à€ €  € @€ `€ €€  € À€ à€À€À €À@€À`€À€€À €ÀÀ€Àà€à€à €à@€à`€à€€à €àÀ€ààÀÀ À@À`À€À ÀÀÀàÀ À À @À `À €À  À ÀÀ àÀ@À@ À@@À@`À@€À@ À@ÀÀ@àÀ`À` À`@À``À`€À` À`ÀÀ`àÀ€À€ À€@À€`À€€À€ À€ÀÀ€àÀ À  À @À `À €À  À ÀÀ àÀÀÀÀ ÀÀ@ÀÀ`ÀÀ€ÀÀ ðûÿ¤  €€€ÿÿÿÿÿÿÿÿÿÿÿÿ÷]][[÷·]R¤­¶­¤mn®­v­®­¤[]®¶·n®­­­¶­¤÷[¶®[÷¿­R÷¿÷[÷­÷÷[÷÷­÷ÿÿÿÿþü}ü>ùŸùÏgùsùýøþü}þ“ÿ‡ÿÿÿÿezquake-3.6.6/help_cmdline_params.json000066400000000000000000000122401477060523000200570ustar00rootroot00000000000000{ "-allowmultiple": { "description": "On Windows, launch multiple copies of ezQuake rather than re-using the existing instance", "systems": [ "windows" ] }, "-basedir": { "arguments": "", "description": "The \"base\" directory is the path to the directory holding the quake.exe and all game directories.\n\nThis can be overridden with the \"-basedir\" command line parm to allow code debugging in a different directory." }, "-bpp": { "arguments": "", "description": "Allows setting of 'r_colorbits' cvar during start-up" }, "-cdaudio": { "flags": [ "incomplete" ] }, "-cddev": { "arguments": "", "description": "On Linux, specifies the cd device to use. Must specify -cdaudio for this to have effect", "remarks": "(is this only used in meson build?)", "systems": [ "linux" ] }, "-cheats": { "description": "enable cheats on local server (/noclip etc)" }, "-clientport": { "flags": [ "incomplete" ] }, "-conbufsize": { "arguments": "", "description": "set size of console buffer", "remarks": "between 32KB & 4MB, default is 64KB" }, "-condebug": { "description": "log all console output to qw/qconsole.log" }, "-conheight": { "description": "set vid_conheight during startup" }, "-conwidth": { "description": "set vid_conwidth during startup" }, "-data": { "system-generated": true }, "-democache": { "arguments": "", "description": "create memory buffer during startup, used instead of writing directly to disk when recording demos", "remarks": "Minimum value 2048KB" }, "-detailtrails": { "description": "sets /gl_particle_fulldetail 1 during startup" }, "-dev": { "system-generated": true }, "-display": { "flags": [ "incomplete" ] }, "-enablelocalcommand": { "flags": [ "incomplete" ] }, "-forceTextureReload": { "flags": [ "incomplete" ] }, "-forcetexturereload": { "system-generated": true }, "-freq": { "flags": [ "incomplete" ] }, "-game": { "flags": [ "incomplete" ] }, "-gamma": { "flags": [ "incomplete" ] }, "-gl-debug": { "description": "enables OpenGL debug output. Must be used in conjunction with -dev" }, "-gl-forward-only-profile": { "system-generated": true }, "-gl_ext": { "flags": [ "incomplete" ] }, "-glsl-renderer": { "flags": [ "incomplete" ] }, "-heapsize": { "flags": [ "incomplete" ] }, "-height": { "flags": [ "incomplete" ] }, "-ip": { "flags": [ "incomplete" ] }, "-maxtmu2": { "flags": [ "incomplete" ] }, "-mem": { "flags": [ "incomplete" ] }, "-minmemory": { "flags": [ "incomplete" ] }, "-no-accel-visuals": { "description": "Requests un-accelerated graphics (used in debugging to create OpenGL 1.1 context)" }, "-no-triple-gl-buffer": { "flags": [ "incomplete" ] }, "-no24bit": { "flags": [ "incomplete" ] }, "-noatlas": { "system-generated": true }, "-noconinput": { "flags": [ "incomplete" ] }, "-nodesktopres": { "system-generated": true }, "-nohome": { "flags": [ "incomplete" ] }, "-nohwgamma": { "flags": [ "incomplete" ] }, "-nohwtimer": { "flags": [ "incomplete" ] }, "-noindphys": { "flags": [ "incomplete" ] }, "-noinvlmaps": { "flags": [ "incomplete" ] }, "-nolibjpeg": { "flags": [ "incomplete" ] }, "-nolibpng": { "flags": [ "incomplete" ] }, "-nomouse": { "flags": [ "incomplete" ] }, "-nomtex": { "flags": [ "incomplete" ] }, "-nonpot": { "system-generated": true }, "-nopriority": { "flags": [ "incomplete" ] }, "-norjscripts": { "flags": [ "incomplete" ] }, "-noscripts": { "flags": [ "incomplete" ] }, "-nosound": { "flags": [ "incomplete" ] }, "-nostdout": { "flags": [ "incomplete" ] }, "-oldgamma": { "system-generated": true }, "-particles": { "flags": [ "incomplete" ] }, "-port": { "flags": [ "incomplete" ] }, "-progtype": { "flags": [ "incomplete" ] }, "-r-debug": { "system-generated": true }, "-r-no-amd-fix": { "system-generated": true }, "-r-nocallback": { "system-generated": true }, "-r-nomultibind": { "system-generated": true }, "-r-novao": { "system-generated": true }, "-r-trace": { "system-generated": true }, "-r-verify": { "system-generated": true }, "-ruleset": { "flags": [ "incomplete" ] }, "-showliberrors": { "flags": [ "incomplete" ] }, "-startwindowed": { "flags": [ "incomplete" ] }, "-userdir": { "flags": [ "incomplete" ] }, "-width": { "flags": [ "incomplete" ] }, "-window": { "flags": [ "incomplete" ] } } ezquake-3.6.6/help_commands.json000066400000000000000000002213051477060523000167060ustar00rootroot00000000000000{ "+attack": { "description": "When active the player will fire the weapon he is currently holding.\nThis is the primary command used to make the player fire the gun.\nFor as long as the key that is bound to this command is held down and this command is active the player will keep on firing the gun." }, "+attack2": { "description": "Secondary attack button." }, "+back": { "description": "When active the player will move backwards." }, "+cl_wp_stats": { "system-generated": true }, "+fire": { "system-generated": true }, "+fire_ar": { "system-generated": true }, "+forward": { "description": "When active the player will move forward." }, "+jump": { "description": "When active the player will do a single jump. The next jump won't be performed until \"-jump\" has been issued." }, "+klook": { "description": "When active, \"+forward\" and \"+back\" become \"+lookup\" and \"+lookdown\" respectively.\nThis command is useful if the player needs to look at objects which are above or below him." }, "+left": { "description": "When active the player will turn left." }, "+lookdown": { "description": "When active the player will look down." }, "+lookup": { "description": "When active the player will look up." }, "+mlook": { "description": "When active moving the mouse or joystick forwards and backwards performs \"+lookup\" and \"+lookdown\" respectively.\nThis command is very useful if the player needs to look at objects which are above or below him.\nMost players execute this command and never remove it. This way they can use the keyboard to move the player forward and back and strafe left and right, while using the mouse to turn the player left and right and to make him look up and down.\nIn order to have this command set permanently you will have to create a file called autoexec.cfg in the qw/ directory and put in the line \"+mlook\" into that file.\nBy doing this the game will automatically execute the autoexec.cfg file and it will also active that command.\nAlmost every player uses this command nowadays, because the combination of using mouse and keyboard is widely considered the best." }, "+movedown": { "description": "When active the player will swim down when in the water." }, "+moveleft": { "description": "When active the player will strafe left." }, "+moveright": { "description": "When active the player will strafe right." }, "+moveup": { "description": "When active the player will swim up when in the water." }, "+qtv_delay": { "system-generated": true }, "+right": { "description": "When active the player will turn right." }, "+showscores": { "description": "Display scoreboard." }, "+showteamscores": { "description": "Display team scoreboard." }, "+speed": { "description": "When active the player will run." }, "+strafe": { "description": "When active, \"+left\" and \"+right\" function like \"+moveleft\" and \"+moveright\", strafing in that direction." }, "+use": { "description": "When used it will activate objects in the game that have been designed to react at \"+use\"" }, "+voip": { "system-generated": true }, "+zoom": { "system-generated": true }, "-attack": { "description": "When used the player will stop firing the gun if \"+attack\" is active." }, "-attack2": { "description": "Secondary attack button." }, "-back": { "description": "When used the player will stop moving back if \"+back\" is active." }, "-cl_wp_stats": { "system-generated": true }, "-fire": { "system-generated": true }, "-fire_ar": { "system-generated": true }, "-forward": { "description": "When used the player will stop moving forward if \"+forward\" is active." }, "-jump": { "description": "When used the player will stop jumping if \"+jump\" is active." }, "-klook": { "description": "When used the forward and back keys will stop making the player look up and down if \"+klook\" is active." }, "-left": { "description": "When used the player will stop turning left if \"+left\" is active." }, "-lookdown": { "description": "When used the player will stop looking down if \"+lookdown\" is active." }, "-lookup": { "description": "When used the player will stop looking up if \"+lookup\" is active." }, "-mlook": { "description": "When used the mouse forward and back movement will stop making the player look up and down if \"+mlook\" is active." }, "-movedown": { "description": "When used the player will stop moving down if \"+movedown\" is active." }, "-moveleft": { "description": "When used the player will stop moving left if \"+moveleft\" is active." }, "-moveright": { "description": "When used the player will stop moving right if \"+moveright\" is active." }, "-moveup": { "description": "When used the player will stop moving up if \"+moveup\" is active." }, "-qtv_delay": { "system-generated": true }, "-right": { "description": "When used the player will stop turning right if \"+right\" is active." }, "-showscores": { "description": "When used the score screen will disappear if +showscores is active." }, "-showteamscores": { "description": "When used the score screen will disappear if +showteamscores is active." }, "-speed": { "description": "When used the player will walk." }, "-strafe": { "description": "When used the turn left and turn right keys will once again perform their original functions." }, "-use": { "description": "When used it will stop activating objects in the game that have been designed to react at \"+use\"." }, "-voip": { "system-generated": true }, "-zoom": { "system-generated": true }, "acc_block": { "system-generated": true }, "acc_create": { "system-generated": true }, "acc_list": { "system-generated": true }, "acc_remove": { "system-generated": true }, "acc_unblock": { "system-generated": true }, "addip": { "description": "Add a single IP or a domain of IPs to the IP list of the server.\nVery useful for banning people or for specifying which IPs only have access to the server.\n\nExamples:\naddip 123.123.123.123\naddip 123.123.123", "syntax": "" }, "addloc": { "arguments": [ { "description": "The name of the loc.", "name": "locname" } ], "description": "Adds a new loc with the specified name at current location.", "syntax": "\"locname\"" }, "addserver": { "description": "Server Browser: This allows you to add a server to the UNBOUND source.\nThis can be used to quickly bookmark servers." }, "alias": { "description": "Used to create a reference to a command or list of commands.\nWhen used without parameters, displays all current aliases.", "remarks": "Enclose multiple commands within quotes and separate each command with a semi-colon." }, "alias_in": { "arguments": [ { "description": "Alias to be changed", "name": "alias" }, { "description": "Variable whose value is inserted into alias", "name": "variable" }, { "description": "Bitmask:\n0 - insert from left\n1 - from right side\n2 - check in advance whether a string being inserted already exists in alias\n4 - print an error message if the inserted string is already present in the alias\n8 - automatically create an alias if it doesn't exist yet", "name": "options" } ], "description": "Inserts contents of variable into alias.", "syntax": " []" }, "alias_out": { "system-generated": true }, "aliasedit": { "description": "Allows you to edit your alias in console manually.", "syntax": "" }, "aliaslist": { "arguments": [ { "description": "Prints only [regexp] matching aliases", "name": "[regexp]" } ], "description": "Prints all aliases.", "syntax": "[regexp]" }, "align": { "system-generated": true }, "allskins": { "description": "Downloads all skins that is currently in use.\nUseful for refreshing skins without exiting the level." }, "authenticate": { "system-generated": true }, "autotrack": { "description": "Toggles auto-tracking.\nAuto-tracking switches views for you when you are a spectator or when you are watching a demo or a broadcasted QTV match.\nIt chooses the best available autotrack - if you are spectator, looks for server-side command autotrack, if you are watching a demo or QTV stream, turns on both demo_autotrack and mvd_autotrack, mvd_autotrack will get turned off as soon as demo_autotrack data are found.\nAs a last resort if all previous autotrack are not available, cl_hightrack will be used." }, "bar_armor": { "description": "HUD element that displays a bar representing your amount of armor." }, "bar_health": { "description": "HUD element that displays a bar representing your amount of health." }, "batteryinfo": { "system-generated": true }, "bf": { "description": "This command shows a background screen flash that is the same one that is produced when the player picked up an item in the game.\nThis command basically serves no useful function except when people want to use it in scripts to give the user some visual feedback when an aliases is used for example." }, "bind": { "description": "This command binds one or several commands to a key.\nTo bind multiple commands to a key, enclose the commands in double-quotes (\") and separate them with semicolons (;)." }, "bindedit": { "description": "Allows you to edit your bind in the console.", "syntax": "" }, "bindlist": { "description": "Prints all binds." }, "calc_fov": { "arguments": [ { "description": "The old wide aspect FOV used in v2.x", "name": "old_fov" } ], "description": "Converts (ezq2) wide aspect FOV to new FOV." }, "calendar": { "description": "Same as \"date\" but also shows a small calendar of the month. Nice :)" }, "cam_angles": { "arguments": [ { "description": "", "name": "pitch" }, { "description": "", "name": "yaw" } ], "description": "Set new camera angles.", "syntax": " or cam_angles \"pitch yaw\"" }, "cam_pos": { "arguments": [ { "description": "X coordinate", "name": "x" }, { "description": "Y coordinate", "name": "y" }, { "description": "Z coordinate", "name": "z" } ], "description": "Set new camera position.", "syntax": " or cam_pos \"x y z" }, "cancel": { "system-generated": true }, "cd": { "description": "cd play 5 plays cd track #5", "remarks": "You need -cdaudio to use this command." }, "centerview": { "description": "Centers the player's view ahead after +lookup or +lookdown." }, "cfg_load": { "description": "This will do a cfg_reset and then execute filename.cfg (ezquake/configs).", "syntax": "" }, "cfg_reset": { "description": "This command will unbind all keys, delete all aliases, msg_triggers, reset all plus commands, teamplay settings and reset all variables.\nUser made variables (created with set/seta) are deleted.\nAfter resetting all the above, it executes default.cfg and then autoexec.cfg." }, "cfg_save": { "description": "This command will dump all aliases, bindings, plus commands, msg_triggers, teamplay settings and variables to filename.cfg .\nUser made variables (created with set/seta) are saved as well.", "remarks": "Configs saved with cfg_save are saved in quake/ezquake/configs/*.cfg", "syntax": "" }, "check_maps": { "system-generated": true }, "cl_messages": { "description": "Prints amount and size of messages sent from server to ezQuake client." }, "clear": { "description": "This command clears the console screen of any text." }, "clearlocs": { "description": "Clear all currently loaded locs." }, "clipboard": { "description": "Copies all the following arguments to the system clipboard" }, "cmd": { "description": "Sends a command directly to the server." }, "cmdlist": { "description": "Prints a list of all available commands into the console." }, "cmdlist_re": { "description": "This command same as cmdlist, but supports (perl) regexp matching." }, "color": { "description": "This command sets the color for the player's shirt and pants.", "remarks": "If only the shirt color is given, the pant color will match." }, "connect": { "arguments": [ { "description": "IP address of a QuakeWorld server.", "name": "address" } ], "description": "Connects your client to a QuakeWorld server.", "syntax": "
" }, "connectbr": { "description": "Connects to given server via fastest available path (ping-wise)." }, "cuff": { "system-generated": true }, "cvar_in": { "system-generated": true }, "cvar_out": { "system-generated": true }, "cvar_reset": { "description": "Resets the cvar to default.\n\nExample:\ncvar_reset topcolor\n - sets topcolor to default.", "syntax": "" }, "cvar_reset_re": { "description": "Resets cvar(s) matching the regex to default.\n\nExample:\ncvar_reset ^gl_.*\n- resets all gl_ settings to default values.", "syntax": "[regex]" }, "cvaredit": { "system-generated": true }, "cvarlist": { "description": "Print cvars." }, "cvarlist_re": { "description": "This command same as cvarlist, but supports (perl) regexp matching." }, "date": { "description": "Shows current time, date, month and year." }, "demo_capture": { "arguments": [ { "description": "Tells the client to start capturing.", "name": "start" }, { "description": "Duration of the capture, in seconds.\nCan be float value. Must be positive. Required argument.", "name": "time" }, { "description": "An .avi file is saved instead of screenshots. See demo_capture_codec.", "name": "avifile" }, { "description": "Stop the capture manually before